Per-column annotation
Per-column annotation on a dataset's Structure tab — description, tags, glossary terms, enum values, and business name editors on each column row, plus the write-path and UI caveats.
Every dataset in the catalog exposes a Structure tab next to its Overview tab. The Structure tab lists the dataset's columns and lets an operator annotate each column with a description, tags, business-glossary terms, enum values, and a business name — the column-level counterparts to the entity-level Overview surfaces. Each column row opens a composer that hosts five sub-editors stacked vertically; saving a sub-editor calls a distinct backend endpoint per sub-surface.
This page covers the composer's five sub-editors, the permissions each one is gated by, the audit-trail coverage per sub-surface, and three load-bearing write-path caveats plus two latent UI hazards.
Where to find it
Open any dataset's detail page → Structure tab. The columns table lists every column with its name, type, primary-key flag, source-side description, and the operator-authored annotations (when set). Clicking a column row expands the composer below the row, surfacing five sub-editors in order:
Description — free-text Markdown rendered with the same pipeline as the entity-level description.
Tags — column-scoped tag chips, sharing the deployment-wide tag vocabulary with Manual Object Tagging.
Glossary terms — business-glossary terms linked to the column, separately from terms linked to the parent dataset (see Business Glossary).
Enum values — operator-curated enumeration list documenting the column's allowed values (one row per enum entry with a label and a description).
Business name — a human-readable alternative to the technical column name, surfaced alongside the technical name everywhere the column is rendered (see Business names).
The composer is the only place to author these annotations; the API is the same surface — third-party clients calling the per-sub-editor endpoints listed below write the same fields with the same caveats.
Permissions
Each sub-editor is gated by a distinct permission:
Description
The Description sub-editor + PUT /api/datasetfields/{id}/description.
Term — add
The Add-term affordance on the Terms sub-editor. See the wiring-bug caveat below — this permission is not the one the server enforces today.
Term — delete
The remove-affordance on each term row + DELETE /api/datasetfields/{id}/terms/{term_id}.
Enum values
The Enum-values sub-editor + POST /api/datasetfields/{id}/enum_values.
Business name
The Business-name affordance + PUT /api/datasetfields/{id}/name.
All six are scoped against the dataset that owns the column in the URL, not the column itself — granting any of them on a dataset grants the corresponding edit on every column of that dataset.
Activity trail
Each sub-editor emits its own Activity Feed event on save:
Description
DATASET_FIELD_DESCRIPTION_UPDATED
Before / after description text.
Tags
DATASET_FIELD_TAGS_UPDATED
Before / after tag-name sets.
Term — add or delete
DATASET_FIELD_TERM_ASSIGNMENT_UPDATED
Before / after term-id sets.
Enum values
DATASET_FIELD_VALUES_UPDATED
Before / after enum-value sets.
Business name
DATASET_FIELD_INTERNAL_NAME_UPDATED
Before / after business name.
All five emit the full before/after payload — column-level annotations have a fuller audit shape than several entity-level mutations (see the Activity Feed scope summary and the Audit trail scope for the platform-wide audit-coverage matrix).
Known limitations and operator caveats
PUT /api/alerts/{alert_id}/status (resolve an alert)
DATA_ENTITY_ALERT_RESOLVE
DATASET_FIELD_ADD_TERM
POST /api/datasetfields/{dataset_field_id}/terms (add a term to a column)
DATASET_FIELD_ADD_TERM
DATA_ENTITY_ADD_TERM
Where to next
Data entity detail page — the parent container for the Structure tab and the Overview tab; covers the per-class panel matrix that decides which tabs appear.
Entity description — the entity-level counterpart to the column-level description sub-editor; shares the Markdown renderer and the load-bearing no-write-time-sanitisation caveat across six surfaces (this page is one of the six).
Custom metadata — sibling per-entity Overview surface for typed key/value annotations; same authoring philosophy, different cardinality.
Manual Object Tagging — the read-side canonical home for tags, including the operator-caveat list for the global vocabulary the column-level Tags sub-editor writes into.
Business Glossary — the canonical home for terms; the column-level Terms sub-editor is one of three places terms can be linked (alongside the entity-level Terms panel and the term-mention
[[Namespace:Term]]auto-link in any Markdown description).Business names — the canonical home for business-name semantics; the column-level Business-name sub-editor shares the same vocabulary.
Permissions — the canonical home for the six
DATASET_FIELD_*permissions and the wiring-bug flag onDATASET_FIELD_ADD_TERM.
Last updated