Compliance Catalog

Policies API v1 endpoints for the compliance standards and controls catalog.

Read the compliance standards and controls catalog, including control results and summaries.

All paths are relative to /policies/api/v1. See Policies API v1 for authentication and conventions.

Endpoints

OperationMethodPath
List compliance controlsGET/compliance-controls
List compliance standardsGET/compliance-standards
Count compliance controlsGET/compliance-controls/count
Get compliance controls summaryGET/compliance-controls/summary
Get a compliance controlGET/compliance-controls/{id}
List built-in compliance standardsGET/compliance-standards/built-in
Count compliance standardsGET/compliance-standards/count
Get compliance standards summaryGET/compliance-standards/summary
Get a compliance standardGET/compliance-standards/{id}
List compliance controls by admin stateGET/compliance-controls/by-admin-state/{adminState}
List compliance controls by cloud providerGET/compliance-controls/by-cloud-provider/{cloudProvider}
List compliance controls by control IDGET/compliance-controls/by-control-id/{controlId}
List compliance controls by statusGET/compliance-controls/by-status/{status}
List compliance controls by subject areaGET/compliance-controls/by-subject-area/{subjectArea}
Get results for a compliance controlGET/compliance-controls/{id}/results
List compliance standards by categoryGET/compliance-standards/by-category/{category}
List compliance standards by typeGET/compliance-standards/by-type/{type}
Refresh compliance results for a standardPOST/compliance-standards/{id}/refresh

Reference

List compliance controls

GET /policies/api/v1/compliance-controls

Returns all compliance controls for the tenant, paginated in memory.

Roles: admin

Query parameters

NameTypeRequiredDefaultDescription
limitintegerNo50Maximum number of items to return
offsetintegerNo0Number of items to skip

Response 200 (application/json)

Paginated: {items: ComplianceControlDto[], total, limit, offset}

FieldTypeDescription
idstringControl ID (UUID)
namestringControl name
controlIdstringStandard control identifier, e.g. 1.1.1
subControlIdstring—
descriptionstring—
subjectAreastring—
cloudProvidersstring[]—
adminStatestringenabled | disabled
statusstringControl state
statusBySourceTypeobjectStatus per source type
policiesstring[]Mapped policy names
propertiesobject—
isManualbooleanRequires manual attestation
manualComplianceDetailsobject—
validSourceTypesstring[]—
fullControlIdstringcontrolId plus subControlId (computed)
displayNamestringcomputed
policyCountintegercomputed

Errors

  • 500 — Retrieval failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance standards

GET /policies/api/v1/compliance-standards

Returns all compliance standards for the tenant, paginated in memory. Controls are not included.

Roles: admin

Query parameters

NameTypeRequiredDefaultDescription
limitintegerNo50Maximum number of items to return
offsetintegerNo0Number of items to skip

Response 200 (application/json)

Paginated: {items: ComplianceStandardDto[], total, limit, offset}

FieldTypeDescription
idstringStandard ID (UUID)
namestring—
versionstring—
descriptionstring—
typestringnirmataManaged (built-in) | userManaged (custom)
categorystringStandard category, e.g. cis
adminStatestringenabled | disabled
scoreintegerCompliance score
lastUpdateTimeinteger (epoch ms)—
k8sMinVersionstringMinimum supported Kubernetes version
k8sMaxVersionstringMaximum supported Kubernetes version
gradestringA-F derived from score, N/A if no score (computed)
displayNamestringcomputed
controlCountintegercomputed; controls are not populated by this API

Errors

  • 500 — Retrieval failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

Count compliance controls

GET /policies/api/v1/compliance-controls/count

Returns the number of compliance controls for the tenant.

Roles: admin

Response 200 (application/json)

{count}

FieldTypeDescription
countinteger—

Get compliance controls summary

GET /policies/api/v1/compliance-controls/summary

Returns counts of total, active/inactive, and enabled/disabled compliance controls.

Roles: admin

Response 200 (application/json)

{total, active, inactive, enabled, disabled}

FieldTypeDescription
totalinteger—
activeinteger—
inactiveinteger—
enabledinteger—
disabledinteger—

Get a compliance control

GET /policies/api/v1/compliance-controls/{id}

Returns a single compliance control by ID.

Roles: admin

Path parameters

NameTypeDescription
idstringControl UUID

Response 200 (application/json)

ComplianceControlDto

FieldTypeDescription
idstringControl ID (UUID)
namestringControl name
controlIdstringStandard control identifier, e.g. 1.1.1
subControlIdstring—
descriptionstring—
subjectAreastring—
cloudProvidersstring[]—
adminStatestringenabled | disabled
statusstringControl state
statusBySourceTypeobjectStatus per source type
policiesstring[]Mapped policy names
propertiesobject—
isManualbooleanRequires manual attestation
manualComplianceDetailsobject—
validSourceTypesstring[]—
fullControlIdstringcontrolId plus subControlId (computed)
displayNamestringcomputed
policyCountintegercomputed

Errors

  • 404 — Control not found
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List built-in compliance standards

GET /policies/api/v1/compliance-standards/built-in

Returns Nirmata-managed (built-in) compliance standards for the tenant. Not paginated.

Roles: Any role with permission for this resource. See Roles.

Response 200 (application/json)

ComplianceStandardDto[] (plain array)

FieldTypeDescription
idstringStandard ID (UUID)
namestring—
versionstring—
descriptionstring—
typestringnirmataManaged (built-in) | userManaged (custom)
categorystringStandard category, e.g. cis
adminStatestringenabled | disabled
scoreintegerCompliance score
lastUpdateTimeinteger (epoch ms)—
k8sMinVersionstringMinimum supported Kubernetes version
k8sMaxVersionstringMaximum supported Kubernetes version
gradestringA-F derived from score, N/A if no score (computed)
displayNamestringcomputed
controlCountintegercomputed; controls are not populated by this API

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

Count compliance standards

GET /policies/api/v1/compliance-standards/count

Returns the number of compliance standards for the tenant.

Roles: admin

Response 200 (application/json)

{count}

FieldTypeDescription
countinteger—

Get compliance standards summary

GET /policies/api/v1/compliance-standards/summary

Returns counts of total, built-in, custom, active (adminState enabled), and inactive compliance standards.

Roles: Any role with permission for this resource. See Roles.

Response 200 (application/json)

{total, builtIn, custom, active, inactive}

FieldTypeDescription
totalinteger—
builtIninteger—
custominteger—
activeinteger—
inactiveinteger—

Get a compliance standard

GET /policies/api/v1/compliance-standards/{id}

Returns a single compliance standard by ID.

Roles: admin

Path parameters

NameTypeDescription
idstringStandard UUID

Response 200 (application/json)

ComplianceStandardDto

FieldTypeDescription
idstringStandard ID (UUID)
namestring—
versionstring—
descriptionstring—
typestringnirmataManaged (built-in) | userManaged (custom)
categorystringStandard category, e.g. cis
adminStatestringenabled | disabled
scoreintegerCompliance score
lastUpdateTimeinteger (epoch ms)—
k8sMinVersionstringMinimum supported Kubernetes version
k8sMaxVersionstringMaximum supported Kubernetes version
gradestringA-F derived from score, N/A if no score (computed)
displayNamestringcomputed
controlCountintegercomputed; controls are not populated by this API

Errors

  • 404 — Standard not found
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance controls by admin state

GET /policies/api/v1/compliance-controls/by-admin-state/{adminState}

Returns all compliance controls whose admin state matches the given value. Not paginated.

Roles: admin

Path parameters

NameTypeDescription
adminStatestringenabled | disabled

Response 200 (application/json)

ComplianceControlDto[] (plain array)

FieldTypeDescription
idstringControl ID (UUID)
namestringControl name
controlIdstringStandard control identifier, e.g. 1.1.1
subControlIdstring—
descriptionstring—
subjectAreastring—
cloudProvidersstring[]—
adminStatestringenabled | disabled
statusstringControl state
statusBySourceTypeobjectStatus per source type
policiesstring[]Mapped policy names
propertiesobject—
isManualbooleanRequires manual attestation
manualComplianceDetailsobject—
validSourceTypesstring[]—
fullControlIdstringcontrolId plus subControlId (computed)
displayNamestringcomputed
policyCountintegercomputed

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance controls by cloud provider

GET /policies/api/v1/compliance-controls/by-cloud-provider/{cloudProvider}

Returns controls whose cloudProviders list contains the given provider (case-insensitive) or ALL. Not paginated.

Roles: admin

Path parameters

NameTypeDescription
cloudProviderstringCloud provider name

Response 200 (application/json)

ComplianceControlDto[] (plain array)

FieldTypeDescription
idstringControl ID (UUID)
namestringControl name
controlIdstringStandard control identifier, e.g. 1.1.1
subControlIdstring—
descriptionstring—
subjectAreastring—
cloudProvidersstring[]—
adminStatestringenabled | disabled
statusstringControl state
statusBySourceTypeobjectStatus per source type
policiesstring[]Mapped policy names
propertiesobject—
isManualbooleanRequires manual attestation
manualComplianceDetailsobject—
validSourceTypesstring[]—
fullControlIdstringcontrolId plus subControlId (computed)
displayNamestringcomputed
policyCountintegercomputed

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance controls by control ID

GET /policies/api/v1/compliance-controls/by-control-id/{controlId}

Returns all compliance controls whose control ID matches the given value. Not paginated.

Roles: admin

Path parameters

NameTypeDescription
controlIdstringStandard control identifier (exact match)

Response 200 (application/json)

ComplianceControlDto[] (plain array)

FieldTypeDescription
idstringControl ID (UUID)
namestringControl name
controlIdstringStandard control identifier, e.g. 1.1.1
subControlIdstring—
descriptionstring—
subjectAreastring—
cloudProvidersstring[]—
adminStatestringenabled | disabled
statusstringControl state
statusBySourceTypeobjectStatus per source type
policiesstring[]Mapped policy names
propertiesobject—
isManualbooleanRequires manual attestation
manualComplianceDetailsobject—
validSourceTypesstring[]—
fullControlIdstringcontrolId plus subControlId (computed)
displayNamestringcomputed
policyCountintegercomputed

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance controls by status

GET /policies/api/v1/compliance-controls/by-status/{status}

Returns all compliance controls whose status matches the given value. Not paginated.

Roles: admin

Path parameters

NameTypeDescription
statusstringControl status (exact match)

Response 200 (application/json)

ComplianceControlDto[] (plain array)

FieldTypeDescription
idstringControl ID (UUID)
namestringControl name
controlIdstringStandard control identifier, e.g. 1.1.1
subControlIdstring—
descriptionstring—
subjectAreastring—
cloudProvidersstring[]—
adminStatestringenabled | disabled
statusstringControl state
statusBySourceTypeobjectStatus per source type
policiesstring[]Mapped policy names
propertiesobject—
isManualbooleanRequires manual attestation
manualComplianceDetailsobject—
validSourceTypesstring[]—
fullControlIdstringcontrolId plus subControlId (computed)
displayNamestringcomputed
policyCountintegercomputed

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance controls by subject area

GET /policies/api/v1/compliance-controls/by-subject-area/{subjectArea}

Returns all compliance controls whose subject area matches the given value. Not paginated.

Roles: admin

Path parameters

NameTypeDescription
subjectAreastringSubject area (exact match)

Response 200 (application/json)

ComplianceControlDto[] (plain array)

FieldTypeDescription
idstringControl ID (UUID)
namestringControl name
controlIdstringStandard control identifier, e.g. 1.1.1
subControlIdstring—
descriptionstring—
subjectAreastring—
cloudProvidersstring[]—
adminStatestringenabled | disabled
statusstringControl state
statusBySourceTypeobjectStatus per source type
policiesstring[]Mapped policy names
propertiesobject—
isManualbooleanRequires manual attestation
manualComplianceDetailsobject—
validSourceTypesstring[]—
fullControlIdstringcontrolId plus subControlId (computed)
displayNamestringcomputed
policyCountintegercomputed

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

Get results for a compliance control

GET /policies/api/v1/compliance-controls/{id}/results

Returns compliance results for this control collected from all cluster, repository, and namespace compliance reports in the tenant.

Roles: admin

Path parameters

NameTypeDescription
idstringControl UUID

Response 200 (application/json)

{controlId, controlName, results: ComplianceResult[], totalResults, message}

FieldTypeDescription
controlIdstring—
controlNamestring—
totalResultsinteger—
results[].complianceControlNamestring—
results[].complianceControlIdstring—
results[].policystring—
results[].rulestring—
results[].statusstringpass | failed | warn | notapplicable | notavailable (lowercased)
results[].kubeBenchIndexstring—
results[].nistToCisMappingsobject—

Errors

  • 404 — Control not found
  • 500 — Retrieval failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance standards by category

GET /policies/api/v1/compliance-standards/by-category/{category}

Returns standards in the given category. Not paginated.

Roles: Any role with permission for this resource. See Roles.

Path parameters

NameTypeDescription
categorystringCategory value (exact match, e.g. cis)

Response 200 (application/json)

ComplianceStandardDto[] (plain array)

FieldTypeDescription
idstringStandard ID (UUID)
namestring—
versionstring—
descriptionstring—
typestringnirmataManaged (built-in) | userManaged (custom)
categorystringStandard category, e.g. cis
adminStatestringenabled | disabled
scoreintegerCompliance score
lastUpdateTimeinteger (epoch ms)—
k8sMinVersionstringMinimum supported Kubernetes version
k8sMaxVersionstringMaximum supported Kubernetes version
gradestringA-F derived from score, N/A if no score (computed)
displayNamestringcomputed
controlCountintegercomputed; controls are not populated by this API

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

List compliance standards by type

GET /policies/api/v1/compliance-standards/by-type/{type}

Returns standards of the given type. Not paginated.

Roles: Any role with permission for this resource. See Roles.

Path parameters

NameTypeDescription
typestringnirmataManaged | userManaged

Response 200 (application/json)

ComplianceStandardDto[] (plain array)

FieldTypeDescription
idstringStandard ID (UUID)
namestring—
versionstring—
descriptionstring—
typestringnirmataManaged (built-in) | userManaged (custom)
categorystringStandard category, e.g. cis
adminStatestringenabled | disabled
scoreintegerCompliance score
lastUpdateTimeinteger (epoch ms)—
k8sMinVersionstringMinimum supported Kubernetes version
k8sMaxVersionstringMaximum supported Kubernetes version
gradestringA-F derived from score, N/A if no score (computed)
displayNamestringcomputed
controlCountintegercomputed; controls are not populated by this API

Errors

  • 500 — Query failed
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

Refresh compliance results for a standard

POST /policies/api/v1/compliance-standards/{id}/refresh

Requests an on-demand, asynchronous recomputation of the standard’s compliance results across its applied clusters and repositories instead of waiting for the next background cycle. Repeated requests are debounced.

Roles: admin, platform, security

Path parameters

NameTypeDescription
idstringStandard UUID

Response 202 (application/json)

{id, queued, lastEvaluatedAt, message?}

FieldTypeDescription
idstringStandard ID
queuedbooleantrue if a refresh was queued; false if there are no applied sources
lastEvaluatedAtinteger (epoch ms)Last evaluation time
messagestringPresent when nothing was queued

Errors

  • 404 — Standard not found (code COMPLIANCE_STANDARD_NOT_FOUND)
  • 429 — Refresh requested recently (REFRESH_DEBOUNCED) or already running (REFRESH_IN_PROGRESS)
  • 503 — Refresh queue full (REFRESH_QUEUE_FULL)
  • 500 — REFRESH_FAILED
  • 401 — Not authenticated
  • 403 — Caller’s role is not permitted for this operation

Example

Errors use {status, message, code}.