Docs

Docs

x-cpod-domain: policies

Policies

Governance policy documents with lifecycle management — acceptable use, data handling, security, HR. Policies can be published, retired, and reviewed on a cadence.

Try in explorer client.policies

Policy

A versioned governance policy document with an owner, category, and review cadence.

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

// create:
await client.policies.policies.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  name: "example name",
  app_id: "example app_id",
})
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_byuuidUserUser id from the caller's JWT (sub).
updated_byuuidUserUser 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_byuuidUserUser id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
name*stringHuman-readable policy name (e.g. 'Acceptable Use Policy').
bodystringFull policy text (markdown).
versionstringPolicy version identifier (e.g. '1.2.0'). Bump on material edits.
categoryenumPolicy domain / category.securityprivacyhrcompliancefinanceoperationsother
statusenumLifecycle state.draftin_reviewapprovedpublishedretired
owner_iduuidUserPolicy owner (user id).
published_atdate-timeTimestamp the policy was formally published. Stamped automatically by the publish action.
next_review_atdate-timeNext scheduled review date.
tagsjsonFree-form tags for categorizing or searching the policy.

PolicyAcknowledgement

Records that a person has read and agreed to a specific version of a policy.

REST path/api/v1/policies/acknowledgements
Operations
listgetcreatedelete
SDK
// list — returns only your records; add filters/search:
await client.policies.acknowledgements.list()

// create:
await client.policies.acknowledgements.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  policy_id: "policy_01HXEXAMPLE",
  person_id: "person_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_byuuidUserUser id from the caller's JWT (sub).
updated_byuuidUserUser 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_byuuidUserUser id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
policy_id*uuidPolicyThe policy being acknowledged.
person_id*uuidPersonWho acknowledged the policy.
policy_versionstringVersion of the policy at the time of acknowledgement (snapshot).
acknowledged_atdate-timeISO 8601 timestamp when the user clicked 'I agree'.
ip_addressstringSource IP address for stronger audit trail.
user_agentstringUser-Agent of the browser/client at acknowledgement time.

PolicyReview

A scheduled (or completed) periodic review of a policy. Enforces 'all policies reviewed at least annually' controls.

REST path/api/v1/policies/reviews
Operations
listgetcreateupdatedeletecomplete
SDK
// list — returns only your records; add filters/search:
await client.policies.reviews.list()

// create:
await client.policies.reviews.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  policy_id: "policy_01HXEXAMPLE",
  due_at: "2026-01-01T00:00:00Z",
})
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_byuuidUserUser id from the caller's JWT (sub).
updated_byuuidUserUser 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_byuuidUserUser id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
policy_id*uuidPolicyThe policy under review.
reviewer_iduuidUserAssigned reviewer (user id).
due_at*date-timeWhen the review is due.
completed_atdate-timeWhen the review was completed. Null if still pending.
statusenumReview lifecycle state.scheduledin_progresscompletedoverdue
outcomeenumResult of the review. Set via the complete action.no_changeminor_revisionmajor_revisionretire
notesstringReviewer notes — e.g. what was changed and why.