Skip to content

feat(spec): add quac:searchable for QGIS's Not searchable field flag - #20

Merged
simonokeefe merged 3 commits into
mainfrom
claude/blissful-mccarthy-llex2k
Nov 11, 2026
Merged

simonokeefe merged 3 commits into
mainfrom
claude/blissful-mccarthy-llex2k

Conversation

@simonokeefe

@simonokeefe simonokeefe commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

What this adds

A new field on a table:columns entry, quac:searchable. It is written only as false, when the QGIS field's configurationFlags hold NotSearchable. That flag is Not searchable in the Configuration column of the Fields tab. QGIS's search of the active layer's features skips such a field (QgsActiveLayerFeaturesLocatorFilter, src/app/locator/qgsactivelayerfeatureslocatorfilter.cpp), so the field is marked Stable. The field is still shown, filtered on and edited as before.

  • parseFieldEditRules reads the flag into FieldEditRule.notSearchable. deriveTableColumns writes quac:searchable: false, and readCollectionFieldEditRules reads it back.
  • configurationFlagsOf is now the one reader of configurationFlags, for this flag and for HideFromWms and HideFromWfs.
  • New: the spec entry, the schema property, the type on TableColumn, the first-tier example spec/examples/searchable/, the every-field example, and the regenerated server snapshot.
  • The QGIS Server plugin declares no quac: field on a column (declared_fields.json), so the Python needs no change for the field. test_first_tier.py filters undeclared fields out.

Schema version

The schema moves to https://vectoriahq.github.io/quac/v0.2.0/schema.json. This covers its $id, QUAC_SCHEMA_URL in the JavaScript and the Python, the spec, the README, the examples and the test catalogues.

  • schema-pages.yml keeps each version in its own folder, so the v0.1.0 schema stays published unchanged.
  • isNewerQuacMajor compares only the major version, so a reader built on this release still reads a catalogue that lists v0.1.0, and the reverse holds too.

Package version

packages/quac/package.json is set to the test version 0.2.0-next.1, to be published as a pre-release from this branch. Before merging, set it to 0.2.0.

Checks

  • npm test: 833 passed.
  • npm run typecheck: passed.
  • npm run test:server: 55 passed.

🤖 Generated with Claude Code

- A field whose configurationFlags hold NotSearchable gets `quac:searchable: false` on its table:columns entry, and readCollectionFieldEditRules reads it back as `notSearchable`.
- The one reader of configurationFlags now serves this and the WMS and WFS flags; spec entry, schema, first-tier example and server snapshot added.
- npm test, npm run typecheck and npm run test:server pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Sets the package and lockfile version for a pre-release from this branch, so a dependent application can try quac:searchable before the release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The schema's $id, QUAC_SCHEMA_URL in the JavaScript and the Python, the spec, the README, the examples and the test catalogues now name https://vectoriahq.github.io/quac/v0.2.0/schema.json; the v0.1.0 schema stays published at its own address.
- Readers compare only the major version, so a catalogue listing v0.1.0 is still read.
- npm test, npm run typecheck and npm run test:server pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@simonokeefe
simonokeefe merged commit c6e6e81 into main Nov 11, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants