Tagging System
Tags are a core organizational primitive in the Catalog Service. They enable categorization, discovery, and policy-based governance of data assets.
Tag Categories
Tags are organized by category using the TagCategory enum:
| Category | Description | Example Tags |
|---|---|---|
BUSINESS | Business domain classification | sales, marketing, finance |
TECHNICAL | Technical metadata | partitioned, materialized-view, streaming |
CLASSIFICATION | Data sensitivity labels | pii, phi, pci, confidential |
CUSTOM | User-defined tags | q4-review, deprecated, migration-ready |
List Tags
GET /api/v1/catalog/tags?page={page}&size={size}curl "http://localhost:8086/api/v1/catalog/tags?page=0&size=50" \
-H "X-Tenant-ID: 550e8400-e29b-41d4-a716-446655440000"List Tags by Category
GET /api/v1/catalog/tags/category/{category}curl "http://localhost:8086/api/v1/catalog/tags/category/CLASSIFICATION" \
-H "X-Tenant-ID: 550e8400-e29b-41d4-a716-446655440000"Response
[
{ "id": "tag-001", "name": "pii", "category": "CLASSIFICATION", "description": "Personally identifiable information" },
{ "id": "tag-002", "name": "phi", "category": "CLASSIFICATION", "description": "Protected health information" },
{ "id": "tag-003", "name": "pci", "category": "CLASSIFICATION", "description": "Payment card industry data" }
]Create Tag
POST /api/v1/catalog/tagscurl -X POST "http://localhost:8086/api/v1/catalog/tags" \
-H "Content-Type: application/json" \
-H "X-Tenant-ID: 550e8400-e29b-41d4-a716-446655440000" \
-d '{
"name": "gdpr-relevant",
"category": "CLASSIFICATION",
"description": "Data subject to GDPR regulations"
}'Response (201 Created)
{
"id": "tag-004",
"tenantId": "550e8400-...",
"name": "gdpr-relevant",
"category": "CLASSIFICATION",
"description": "Data subject to GDPR regulations"
}Tag-Based Discovery
Tags integrate directly with the search and discovery features. Tables can be filtered by tag, and tags appear in search results for improved discoverability. See Tables for tag-based table filtering.
Source Reference
| Component | File |
|---|---|
| Tag CRUD | CatalogController.java -- listTags(), getTagsByCategory(), createTag() |
| Tag entity | CatalogTag.java |
| Tag repository | CatalogTagRepository.java |