MATIH Platform is in active MVP development. Documentation reflects current implementation status.
10. Data Catalog & Governance
Tagging System

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:

CategoryDescriptionExample Tags
BUSINESSBusiness domain classificationsales, marketing, finance
TECHNICALTechnical metadatapartitioned, materialized-view, streaming
CLASSIFICATIONData sensitivity labelspii, phi, pci, confidential
CUSTOMUser-defined tagsq4-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/tags
curl -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

ComponentFile
Tag CRUDCatalogController.java -- listTags(), getTagsByCategory(), createTag()
Tag entityCatalogTag.java
Tag repositoryCatalogTagRepository.java