flyingImer opened a new issue, #16165: URL: https://github.com/apache/iceberg/issues/16165
### Proposed Change **Context** New to the Iceberg community, actively contributing to Polaris OSS on tagging. This issue opens a discussion on standardizing a first-class Tag concept in the REST Catalog spec, complementary to the in-flight read-restrictions and labels proposals. A discussion thread will follow on the dev list. **Summary** Add a first-class Tag entity to the Iceberg REST Catalog spec. Tags have identity (name + namespace) and optional schema (allowed values, inheritability). Tag attachments carry a value and are applied to tables, columns (via field-id), views, and namespaces. **Scope** - Tag entity CRUD at namespace level - Tag attachment management: attach, detach, reverse lookup, dedicated retrieval endpoint - Normative behavior contracts: privilege enforcement, visibility filtering, rename atomicity **Goals** - Provide a portable classification primitive across catalogs so governance tooling, AI agents, FinOps dashboards, and discovery surfaces integrate once, not per catalog - Cover the cross-vendor convergent pattern: Snowflake, Unity Catalog, BigQuery Data Catalog, Atlas, Ranger, Gravitino, DataHub - Serve multiple use cases: governance classification, ownership, FinOps, AI and semantic hints, data discovery - Complement read-restrictions as the classification input side of the governance pipeline (tag is input, read-restrictions is output) - Coexist with labels without conflict: different problems, different tools **Non-Goals** - No changes to Iceberg table format files - No typed multi-field per-attachment value schema (Atlas and BigQuery advanced usage; addable non-breaking later) - No Governed-vs-Standard type system (UC's pattern; expressible via configuration rather than a type split) - No tag-to-policy binding wire format (belongs in a separate Policy authoring phase) - No LoadTableResult changes (tag attachments retrieved via dedicated endpoint) **Relationship to existing work** - Read-restrictions proposal (in flight): delivers enforcement to engines. Tag handles classification management. Together they form a governance pipeline. - Labels proposal (#15521): generic catalog-managed metadata channel. Tags have identity and lifecycle; labels are ephemeral annotations. The two solve different problems. **Next Steps** - Full design document to follow: wire shape, behavior contracts, cross-catalog interoperability analysis - Seeking input from community reviewers, especially contributors outside Polaris - Looking for co-champions from catalog implementations interested in cross-catalog validation ### Proposal document To be added (design document in progress). ### Specifications - [ ] Table - [ ] View - [x] REST - [ ] Puffin - [ ] Encryption - [ ] Other -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
