Skip to content

331 controlled vocabulary - #543

Open
kjlippold wants to merge 12 commits into
release/v2.0.0from
331-controlled-vocabulary
Open

kjlippold wants to merge 12 commits into
release/v2.0.0from
331-controlled-vocabulary

Conversation

@kjlippold

Copy link
Copy Markdown
Contributor
  1. Unnested vocabulary endpoints from their parent resource types so they can be included as OGC feature collections.
  2. Added additional vocabulary management API endpoints (create, update, and delete) for admin use.
  3. Added optional description field to all vocabulary tables.
  4. Added vocabularies to include parameter for collection endpoints.

Ken Lippold and others added 11 commits September 18, 2026 16:32
Specifically, this commit fixes breaking signature changes for the Python client where code and name were swapped so existing scripts would have loaded data into the wrong fields. Fixed some frontend display issues, reverted changes to the QC app, and standardized a few missing fields like Method.sensor_model_definition being a CharField, not a URL field like the others
@daniel-slaugh
daniel-slaugh self-requested a review September 25, 2026 16:18

@daniel-slaugh daniel-slaugh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approach looks good to me. Everything seems to be working except one blocker the agents picked up:

Blank descriptions fail the new API contract.
Vocabulary schema, line 21
POST and PATCH reject description: "" because the inherited validator converts it to None, which the str field rejects. This affects all eight vocabularies and result qualifiers: default TypeScript objects cannot be created with blank descriptions, and an existing description cannot be cleared with an empty string.
The fix must preserve empty strings through validation in both vocabulary and qualifier request schemas. Also align the Python client’s omitted-description behavior: it currently sends null, which fails too.

This branch has not been deployed

No deployments
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