Docs

Docs

x-cpod-domain: grc

GRC

Governance, risk and compliance program — frameworks, controls, evidence, incidents, risks.

Framework

A compliance framework being tracked (SOC 2, ISO, PCI).

REST path/api/v1/grc/frameworks
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.grc.frameworks.list()

// create:
await client.grc.frameworks.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
slugstringStable human-readable slug for the framework.
namestringFull display name of the framework.
versionstringVersion or edition of the framework.
statusstringLifecycle status of this framework record.
authorityjsonIssuing regulatory body.
jurisdictionjsonISO 3166-1 alpha-2 country codes where this framework applies.
industriesjsonIndustry sectors this framework targets.
effective_datedate-timeDate the framework came into force.
compliance_deadlinedate-timeDeadline by which organizations must comply.
scope_and_applicabilityjsonDescribes what is in scope for this framework.
exemptions_and_exceptionsjsonKnown exemptions or exceptions under this framework.
control_categoriesjsonTop-level control categories defined by this framework.
control_countnumberCached count of controls under this framework.
risk_categoriesjsonRisk categories addressed by this framework.
risk_impactstringOverall risk impact level associated with non-compliance.
assurance_levelstringAssurance level this framework provides when achieved.
related_framework_idsjsonIDs of related or overlapping frameworks.
derived_from_framework_idstringID of the parent framework this one is derived from.
penaltiesjsonPenalty or consequence structure for non-compliance.
reporting_requirementsjsonReporting obligations imposed by the framework.
certificationstringCertification or opinion type issued on compliance.
reference_docsjsonURLs or DOIs pointing to official framework documentation.
key_termsjsonGlossary of key terms defined by the framework.
tagsjsonFree-form tags for filtering.

Control

A control statement attached to a Framework.

REST path/api/v1/grc/controls
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.grc.controls.list()

// create:
await client.grc.controls.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
framework_idstringID of the Framework this control belongs to.
control_refstringFramework-specific control reference number.
namestringShort name of the control.
descriptionstringFull description of the control requirement.
categorystringControl category within the framework.
objectivestringControl objective statement.
implementation_guidancestringRecommended steps for implementing this control.
implementation_maturitystringCurrent maturity level of this control's implementation.
effectivenessnumberEffectiveness score between 0 and 1.
owner_idstringID of the Person who owns this control.
next_review_datedate-timeDate when this control is next due for review.
evidence_idsjsonIDs of Evidence records that support this control.
mapped_control_idsjsonIDs of controls in other frameworks that this control maps to.
mitigated_risk_idsjsonIDs of Risk records that this control mitigates.
related_document_idsjsonIDs of related documents.
knowledge_entity_idstringBridge to the Knowledge Graph entity for this control.
custom_fieldsjsonTenant-defined additional fields.
tagsjsonFree-form tags for filtering.

Evidence

Evidence collected against a Control.

REST path/api/v1/grc/evidence
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.grc.evidence.list()

// create:
await client.grc.evidence.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
control_idsjsonIDs of Controls this evidence satisfies. One evidence item may cover multiple controls.
namestringShort descriptive name of the evidence.
descriptionstringDescription of what this evidence demonstrates.
evidence_typestringClassification of the evidence artifact.
collection_methodstringHow the evidence was collected.
document_idstringID of the bound source Document, if stored as a Document.
chunk_idsjsonIDs of text chunks extracted from the source document.
minio_refstringDirect MinIO file pointer when not backed by a Document.
periodjsonValidity window the evidence covers.
collected_atdate-timeISO 8601 timestamp when the evidence was collected.
collected_bystringID of the user or service that collected the evidence.
assessorstringName of the external auditor who assessed this evidence, if applicable.
assessment_resultstringOutcome of the assessment of this evidence.
findingsjsonKey findings from the assessment.
recommendationsjsonRecommendations arising from this evidence review.
expiry_datedate-timeDate after which this evidence is no longer considered fresh.
next_collection_datedate-timeDate when evidence should next be collected.
connector_idstringID of the Connector used to collect this evidence automatically.
custom_fieldsjsonTenant-defined additional fields.
tagsjsonFree-form tags for filtering.

Incident

A security or compliance incident.

REST path/api/v1/grc/incidents
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.grc.incidents.list()

// create:
await client.grc.incidents.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
incident_numberstringHuman-readable incident reference number.
titlestringShort title of the incident.
descriptionstringDetailed description of the incident.
categorystringClassification of the incident type.
severitystringSeverity rating of the incident.
statusstringCurrent lifecycle status of the incident.
detected_atdate-timeISO 8601 timestamp when the incident was detected.
reported_atdate-timeISO 8601 timestamp when the incident was formally reported.
contained_atdate-timeISO 8601 timestamp when the incident was contained.
closed_atdate-timeISO 8601 timestamp when the incident was closed.
realized_risk_idsjsonIDs of Risk records that were realized by this incident.
affected_asset_idsjsonIDs of assets affected by this incident.
affected_account_idsjsonIDs of accounts affected by this incident.
consolidated_investigation_idsjsonIDs of SOC Investigations rolled up into this incident.
triggered_by_alert_idsjsonIDs of SOC Alerts that triggered this incident.
owner_idstringID of the Person who owns this incident.
commander_idsjsonIDs of Persons serving as incident commanders.
root_causestringRoot cause analysis summary.
lessons_learnedjsonLessons learned from this incident.
corrective_action_idsjsonIDs of follow-up tasks created as corrective actions.
reportable_tojsonIDs of regulators to whom this incident must be reported.
reported_to_regulators_atdate-timeISO 8601 timestamp when the incident was reported to regulators.
customer_notified_atdate-timeISO 8601 timestamp when affected customers were notified.
financial_impactnumberEstimated financial impact in USD.
mttd_minutesnumberMean time to detect in minutes.
mttr_minutesnumberMean time to recover in minutes.
tagsjsonFree-form tags for filtering.

Risk

A GRC risk record, distinct from operational RiskItem.

REST path/api/v1/grc/risks
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.grc.risks.list()

// create:
await client.grc.risks.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
titlestringShort descriptive title for the risk.
descriptionstringDetailed description of the risk scenario and its potential impact.
categorystringDomain category of the risk.
owner_idstringID of the Person who owns this risk.
asset_idsjsonIDs of knowledge-graph asset entities threatened by this risk.
threat_actor_idsjsonIDs of knowledge-graph threat actor entities posing this risk.
inherent_likelihoodnumberInherent likelihood score (1–5) before controls are applied.
inherent_impactnumberInherent impact score (1–5) before controls are applied.
inherent_ratingnumberComputed inherent risk rating (inherentLikelihood × inherentImpact).
residual_likelihoodnumberResidual likelihood score (1–5) after controls are applied.
residual_impactnumberResidual impact score (1–5) after controls are applied.
residual_ratingnumberComputed residual risk rating (residualLikelihood × residualImpact).
mitigating_control_idsjsonIDs of Controls that mitigate this risk.
treatmentstringSelected risk treatment approach.
treatment_rationalestringExplanation of why this treatment was chosen.
statusstringCurrent lifecycle status of the risk.
acceptance_levelstringDelegation level for risk acceptance.
accepted_bystringID of the Person who formally accepted this risk.
accepted_atdate-timeISO 8601 timestamp when the risk was formally accepted.
next_review_datedate-timeDate when this risk is next due for reassessment.
last_assessed_atdate-timeISO 8601 timestamp of the most recent assessment.
assessment_notesstringNotes from the most recent assessment.
realized_incident_idsjsonIDs of Incidents that realized this risk.
tagsjsonFree-form tags for filtering.