API reference

Drafts and approvals

Every change the AI proposes is a draft. A named person approves or rejects it.

get

/v1/drafts

Drafts in the caller's outlet scope (status: proposed (default) | executing | executed | failed | rejected | stale | decided)

operationId listDrafts

Auth

Member token+Tenant header

Parameters

  • statusin queryenum (7)optional
    proposedexecutingexecutedfailedrejectedstaledecided
  • outletin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
  • sourcein querystringoptional
    pattern ^(intel:[a-z_]+|import|member)$
  • limitin queryintegeroptional
  • cursorin querystringoptional

Response 200

V1DraftsResponsecontract v1.drafts.response
  • itemsarray of objectrequired
    • draftV1Draftrequired
    • decisionobject | nullrequired
      • decision_idUuid7required
      • verdictenum (3)required
        approvededitedrejected
      • reasonstring | nullrequired
      • decided_byobjectrequired
        Show fields of decided_by
        • member_idUuid7required
        • namestring | nullrequired
      • decided_atIsoDatetimerequired
    • unverified_refsarray of stringrequired
  • has_morebooleanrequired
  • next_cursorstring | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/drafts/{id}

One draft with its decision and history

operationId getDraft

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Response 200

V1DraftDetailcontract v1.draft.detail
  • draftV1Draftrequired
  • decisionobject | nullrequired
    • decision_idUuid7required
    • verdictenum (3)required
      approvededitedrejected
    • reasonstring | nullrequired
    • decided_byobjectrequired
      • member_idUuid7required
      • namestring | nullrequired
    • decided_atIsoDatetimerequired
  • unverified_refsarray of stringrequired
  • historyarray of objectrequired
    min items 1
    • eventstringrequired
      pattern ^[a-z_.]+$
    • atIsoDatetimerequired
    • byone of 3required

      Variant 1

      • member_idUuid7required
      • namestring | nullrequired

      Variant 2

      • member_idUuid7required
      • rolestringrequired
        min length 1
    • reasonstring | nulloptional
    • decision_idUuid7 | nulloptional
    • changesarray of objectoptional
      • refstringrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
      • valueone of 3 | nullrequired
      • now_refstring | nullrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
      • nowone of 3 | nullrequired
    • sqlstatestringoptional
      pattern ^[0-9A-Z]{5}$

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/drafts/{id}:approve

drafts.approve.v1 — approve as proposed or edited (payload draft_id must equal the path id)

operationId approveDraft

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "drafts.approve.v1"required
  • payloadDraftsApproveV1required

Response 200

CommandResultcontract command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/drafts/{id}:reject

drafts.reject.v1 — reject with a reason (payload draft_id must equal the path id)

operationId rejectDraft

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "drafts.reject.v1"required
  • payloadDraftsRejectV1required

Response 200

CommandResultcontract command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/drafts/{id}/lineage

A draft up (finding, run, snapshots) and down (decision, touched rows), including rejected, stale and failed ones

operationId getDraftLineage

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Response 200

V1LineageDraftcontract v1.lineage.draft
  • chainobjectrequired
    • auditobject | nullrequired
      • seqintegerrequired
        ≥ 1≤ 9007199254740991
      • actionstringrequired
        min length 1
      • entitystringrequired
        pattern ^[a-z_]+\.[a-z_][a-z0-9_]*$
      • entity_idstringrequired
        min length 1
      • atIsoDatetimerequired
      • actorobjectrequired
        Show fields of actor
        • member_idUuid7 | nullrequired
        • kindstringrequired
          min length 1
        • rolestringrequired
          min length 1
      • decision_idUuid7 | nullrequired
    • decisionobject | nullrequired
      • decision_idUuid7required
      • verdictenum (3)required
        approvededitedrejected
      • reasonstring | nullrequired
      • reason_codeenum (5) | nullrequired
        wrong_numbersnot_neededalready_donebad_timingother
      • decided_byobjectrequired
        Show fields of decided_by
        • member_idUuid7required
        • namestring | nullrequired
      • decided_atIsoDatetimerequired
    • draftobject | nullrequired
      • draft_idUuid7required
      • command_typestringrequired
        pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
      • sourcestringrequired
        pattern ^(intel:[a-z_]+|import|member)$
      • outlet_idsarray of Uuid7required
      • created_atIsoDatetimerequired
      • outcomeobjectrequired
        Show fields of outcome
        • statusenum (6)required
          proposedexecutingexecutedfailedrejectedstale
        • reasonstring | nullrequired
        • reason_codeenum (5) | nullrequired
          wrong_numbersnot_neededalready_donebad_timingother
        • changesarray of objectrequired
          Show fields of changes
          • refstringrequired
            pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
          • now_refstring | nullrequired
            pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
        • sqlstatestring | nullrequired
          pattern ^[0-9A-Z]{5}$
        • failure_reasonstring | nullrequired
          pattern ^[a-z][a-z0-9_]*$
    • findingobject | nullrequired
      • finding_idUuid7required
      • packstringrequired
        min length 1
      • typestringrequired
        min length 1
      • statusenum (3)required
        opendismissedresolved
      • created_atIsoDatetimerequired
    • runobject | nullrequired
      • run_idUuid7required
      • triggerstringrequired
        min length 1
      • actorstringrequired
        min length 1
      • issued_atIsoDatetimerequired
    • snapshotsarray of objectrequired
      • snapshot_idUuid7required
      • template_idstringrequired
        pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$
      • template_versionintegerrequired
        ≥ 1≤ 9007199254740991
      • refsarray of Refrequired
    • unverified_refsarray of stringrequired
  • touchedarray of objectrequired
    • tablestringrequired
      pattern ^[a-z_]+\.[a-z_][a-z0-9_]*$
    • idstringrequired
      min length 1
    • actionstringrequired
      min length 1
    • seqintegerrequired
      ≥ 1≤ 9007199254740991

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/draftables

The draftable command types, for forms and the SDK

operationId listDraftables

Auth

Member token+Tenant header

Response 200

V1Draftablescontract v1.draftables
  • itemsarray of objectrequired
    • command_typestringrequired
      pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
    • proposal_schemamap of anyrequired
    • command_schemamap of anyrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.