For the complete documentation index, see llms.txt. This page is also available as Markdown.

Manual Object Tagging

Manual Object Tagging — apply tags to data entities and columns; the read-side counterpart to Management → Tags.

Tags are the platform's lightweight labelling mechanism — apply them to tables, datasets, columns, and quality tests to drive faceted search, organise the catalog by domain or stage, and signal special handling (PII, Important, Deprecated).

This page is the read-side canonical home for tagging — how operators apply, browse, and filter by tags. The operator-mutating side (curate the tag vocabulary, set the Important flag, manage namespace-scoped tags) lives at Management → Tags.

What tags are

A tag is an operator-curated label that can be attached to any data entity or to any individual column. Tags drive:

  • Discovery. The Tag facet on Search and Filtering is one of the seven catalog filters; selecting one or more tags narrows the search to entities carrying any of them.

  • Organisation. Tags are how operators encode lightweight, cross-cutting groupings that do not justify their own Data Entity Group.

  • Catalog Overview surfacing. The most-used tags surface as the Top tags chip strip on the Catalog Overview home page — one-click filter into the catalog.

  • Important-flag visibility. A tag flagged as Important in Management → Tags is rendered visually distinct on entity pages and result rows, surfacing high-priority labels (PII, Restricted, Deprecated) without requiring operators to scan every tag chip.

Applying tags

Apply tags both to data assets as a whole and to individual columns of datasets.

The same UI flow applies at both granularities — open the entity (or column) detail surface, click the tag-management control, and pick from the existing tag vocabulary or create a new tag inline.

The platform exposes three TAG_* RBAC permissions:

Permission
Action

TAG_CREATE

Create a new tag in the catalog vocabulary.

TAG_UPDATE

Edit a tag's name or its Important flag.

TAG_DELETE

Remove a tag from the catalog vocabulary.

Plus the cross-cutting TAG_ASSIGNMENT_UPDATED activity-event marker emitted whenever tag assignments on an entity change. This is not an RBAC permission — it is an entry on the ActivityEventType enum, surfaced on the Activity Feed for the affected entity rather than gating who can mutate tags.

For the platform-wide permission catalog and how to compose roles around these permissions, see Permissions.

Tag-driven discovery

Once tags are applied, three discovery paths rely on them:

  • Search → Tag facet — multi-select filter; results match entities carrying any of the selected tags.

  • Catalog Overview → Top tags — one-click chip strip filtering into the catalog by the most-used tags across the deployment, rendered on the home page.

  • Tag-based per-entity badges — tags appear on entity detail pages and in search result rows; Important-flagged tags render visually distinct.

Operator workflow

The full lifecycle of a tag splits across two surfaces by design:

  1. Author the vocabulary — go to Management → Tags to create the canonical tag list, set the Important flag where appropriate, and govern the vocabulary across teams.

  2. Apply tags — on entity detail pages, attach tags from the curated vocabulary to specific entities and columns.

  3. Narrow searches — use the Tag facet on the Catalog page to find tagged entities.

Tags appear in two places, each for a different user action. This page covers applying tags to entities and finding entities by tag. The Management → Tags page is where operators create and edit the tag vocabulary itself — renaming, deleting, marking tags as Important for higher list ordering. Apply and find by tags here; manage the catalog of tags there.

Known limitations and operator caveats

A few behaviours of the tagging surface are non-obvious from the UI alone. Each item below states what an operator might assume, what actually happens, and what to do today.

Fixed in 0.28.0 — "Top tags" and the Tag-facet seed list now rank by true popularity. Releases up to 0.27.x truncated the tag directory to the requested page size before computing per-tag usage (the window ordered by tag.id), so once the directory exceeded the page size the strip showed the oldest tags re-ranked among themselves and younger, more-used tags never appeared (the empirical case: 35 tags, size=30 — the 5 youngest absent regardless of usage). As of 0.28.0 the platform aggregates usage over the full directory first, then orders by usage count with tag id as a deterministic tiebreak, then paginates — the endpoint's "sorted by popularity" promise holds past one page and page boundaries are stable. No operator action needed; the pre-0.28.0 workaround (querying tag-to-entity relations directly for governance reviews) is no longer necessary.

Surface
Permission gating the surface
Effect on the tag directory

POST /api/tags

TAG_CREATE

The documented path.

PUT /api/dataentities/{id}/tags

DATA_ENTITY_TAGS_UPDATE

A novel tag name on an entity mints a new tag in the directory.

PUT /api/terms/{id}/tags

TERM_TAGS_UPDATE

A novel tag name on a term mints a new tag in the directory.

PUT /api/datasetfields/{id}/tags

DATASET_FIELD_TAGS_UPDATE

A novel tag name on a column mints a new tag in the directory.

Collector ingestion (ExternalTagIngestionRequestProcessor)

Collector token (no per-tag permission)

An ingested entity carrying tag names that do not yet exist mints them in the directory.

Tag names are case-sensitive — finance and Finance are two separate tags. The platform stores tag names verbatim. Two tags with names that differ only in capitalisation are distinct rows; entities tagged with one are not surfaced by a Tag-facet filter on the other. When seeding the catalog vocabulary on Management → Tags, settle a casing convention up front (uniform lowercase, Title-case, or all-uppercase) and audit GET /api/tags periodically for accidental near-duplicates — particularly after a collector ingestion run, which often emits framework-specific casing different from the operator-curated style.

Action
Audit-feed event

Tagging a data entity (PUT /api/dataentities/{id}/tags)

Emits a TAG_ASSIGNMENT_UPDATED event scoped to the entity, capturing the before-and-after tag list.

Tagging a dataset field / column (PUT /api/datasetfields/{id}/tags)

Emits a DATASET_FIELD_TAGS_UPDATED event capturing the before-and-after tag list.

Tagging a term (PUT /api/terms/{id}/tags)

Emits no activity event today.

Where to next

  • Data entity detail page — the per-entity surface where the sidebar Tags panel lives and Important-flagged tags render visually distinct on entity rows.

  • Search and Filtering — where the Tag facet narrows the catalog.

  • Data Entity Groups & Domains — the heavier-weight grouping mechanism for related entities (datasets, transformers, quality tests).

  • Management — the operator-mutating side: tag vocabulary curation, Important flag, namespace scoping.

  • Activity Feed — the audit trail for TAG_ASSIGNMENT_UPDATED + DATASET_FIELD_TAGS_UPDATED events (read the audit-asymmetry caveat above before relying on it).

  • Permissions — the platform-wide permission catalog, including the three TAG_* rows plus the four *_TAGS_UPDATE side-channel rows.

Last updated