Governance API Reference
The Governance API provides endpoints for managing data governance policies, evaluating policy compliance, tracking violations, and retrieving governance statistics. All endpoints are served by the Catalog Service at the base path /v1/governance/policies.
Authentication
All requests require a valid JWT token in the Authorization header. Certain endpoints require additional role-based permissions (GOVERNANCE_ADMIN or DATA_STEWARD).
Policy CRUD Endpoints
Create Policy
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies |
| Auth | GOVERNANCE_ADMIN or DATA_STEWARD |
Request body fields:
| Field | Type | Required | Description |
|---|---|---|---|
tenantId | UUID | Yes | Tenant identifier |
name | String | Yes | Policy name |
description | String | No | Detailed description |
policyType | Enum | Yes | ACCESS_CONTROL, DATA_QUALITY, RETENTION, CLASSIFICATION, MASKING, AUDIT, USAGE, SHARING, ENCRYPTION, COMPLIANCE, CUSTOM |
scopeType | Enum | Yes | GLOBAL, DATA_SOURCE, DATABASE, SCHEMA, TABLE, COLUMN, TAG, CLASSIFICATION, CUSTOM |
scopeEntities | List | No | Entity identifiers in scope |
classifications | List | No | Classification levels |
rules | List | No | Policy rules |
enforcementActions | List | No | Enforcement actions |
enforcementMode | Enum | Yes | MONITOR, WARN, SOFT_ENFORCE, HARD_ENFORCE |
priority | Integer | No | Priority level (default 100) |
effectiveFrom | Instant | No | Start of effective period |
effectiveUntil | Instant | No | End of effective period |
tags | List | No | Tags for categorization |
metadata | Map | No | Additional metadata |
owner | String | No | Policy owner |
stewards | List | No | Responsible stewards |
createdBy | String | No | Creator identifier |
Get Policy
| Field | Value |
|---|---|
| Method | GET |
| Path | /v1/governance/policies/:policyId |
List Policies
| Field | Value |
|---|---|
| Method | GET |
| Path | /v1/governance/policies |
| Query | tenantId (required), standard pagination |
List Active Policies
| Field | Value |
|---|---|
| Method | GET |
| Path | /v1/governance/policies/active |
| Query | tenantId (required) |
List Policies by Type
| Field | Value |
|---|---|
| Method | GET |
| Path | /v1/governance/policies/by-type |
| Query | tenantId (required), type (required) |
Update Policy
| Field | Value |
|---|---|
| Method | PUT |
| Path | /v1/governance/policies/:policyId |
| Auth | GOVERNANCE_ADMIN or DATA_STEWARD |
Delete Policy
| Field | Value |
|---|---|
| Method | DELETE |
| Path | /v1/governance/policies/:policyId |
| Auth | GOVERNANCE_ADMIN |
Policy Lifecycle Endpoints
Submit for Approval
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/:policyId/submit |
| Query | submittedBy (required) |
| Auth | GOVERNANCE_ADMIN or DATA_STEWARD |
Approve Policy
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/:policyId/approve |
| Query | approvedBy (required) |
| Auth | GOVERNANCE_ADMIN |
Reject Policy
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/:policyId/reject |
| Query | rejectedBy (required), reason (required) |
| Auth | GOVERNANCE_ADMIN |
Activate Policy
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/:policyId/activate |
| Query | activatedBy (required) |
| Auth | GOVERNANCE_ADMIN |
Suspend Policy
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/:policyId/suspend |
| Query | suspendedBy (required) |
| Auth | GOVERNANCE_ADMIN |
Policy Evaluation Endpoints
Evaluate Policies
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/evaluate |
| Query | tenantId (required) |
Request body (evaluation context):
| Field | Type | Required | Description |
|---|---|---|---|
entityId | UUID | Yes | Entity being accessed |
entityFqn | String | Yes | Fully qualified entity name |
entityType | String | No | Type of entity |
databaseName | String | No | Database name |
schemaName | String | No | Schema name |
tableName | String | No | Table name |
columnNames | List | No | Column names |
classification | String | No | Classification level |
tags | List | No | Entity tags |
userId | String | No | User performing the operation |
userRoles | List | No | User roles |
userPermissions | List | No | User permissions |
userAttributes | Map | No | Custom user attributes |
operationType | String | Yes | SELECT, INSERT, UPDATE, DELETE, EXPORT |
requestedRowCount | Integer | No | Rows requested |
exportFormat | String | No | Export format requested |
dataMetrics | Map | No | Data quality metrics |
lastUpdated | Instant | No | Last update timestamp |
Evaluate by Type
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/evaluate/type/:policyType |
| Query | tenantId (required) |
Check Access
| Field | Value |
|---|---|
| Method | POST |
| Path | /v1/governance/policies/check-access |
| Query | tenantId (required) |
Violation Endpoints
Get Recent Violations
| Field | Value |
|---|---|
| Method | GET |
| Path | /v1/governance/policies/violations/recent |
| Query | tenantId (required), limit (default 50) |
| Auth | GOVERNANCE_ADMIN or DATA_STEWARD |
Get Policy Violations
| Field | Value |
|---|---|
| Method | GET |
| Path | /v1/governance/policies/:policyId/violations |
| Query | tenantId (required) |
| Auth | GOVERNANCE_ADMIN or DATA_STEWARD |
Statistics Endpoint
Get Governance Statistics
| Field | Value |
|---|---|
| Method | GET |
| Path | /v1/governance/policies/statistics |
| Query | tenantId (required) |