Policies

Draft an executable policy pack from unstructured sources

POST
/v1/orgs/{org_id}/policies/packs/draft

Same inputs as the strategy draft, but the output is the executable Decionis policy pack — { name, all|any: [{field, op, value}], action } rules. Every synthesized rule is validated through the rules compiler before it is returned; anything that cannot become an executable predicate is returned under review, never as a broken rule. The draft is persisted for the org (pack_id) so it can be reviewed, edited, and finalized. Requires an org API key with the ADMIN role and the autonomous:manage or org:* scope.

Authorization

ApiKeyAuth
AuthorizationBearer <token>

An organization API key. Its scopes decide what it may call; decision:shadow is the narrowest: SHADOW evaluations through POST /v1/authority/grants or its alias POST /v1/authority/enforce-and-bind only (DECISION_SHADOW_MODE_DENIED in any other mode; DECISION_SHADOW_FIELD_DENIED for a body carrying context.decionis_policy, evidence or escalation), with no integration dispatch. A key whose only scope is decision:shadow (an AgentSafe hosted gateway's) reaches exactly those two, POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm and POST /v1/hosted-gateway/keys/revoke-self; every other route answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED. decision:enforce is an enforced hosted gateway's key: evaluations in SHADOW or ENFORCEMENT through POST /v1/authority/grants or its alias (400 DECISION_ENFORCE_FIELD_DENIED for a body carrying context.decionis_policy; it never holds policy:write), and the grants and managed escalations they bind. A key whose scopes are decision:enforce (with or without decision:shadow) reaches exactly POST /v1/authority/enforce-and-bind, POST /v1/authority/grants, GET /v1/authority/grants/{grant_id}, POST /v1/authority/grants/{grant_id}/claims, POST /v1/authority/grants/{grant_id}/receipts, POST /v1/authority/grants/{grant_id}/reconciliations, POST /v1/execution/verify-token, POST /v1/execution/claim-token, POST /v1/execution/consume-token, POST /v1/execution/finalize-token, GET /v1/authority/escalations/{escalation_id}, DELETE /v1/authority/escalations/{escalation_id}, POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm and POST /v1/hosted-gateway/keys/revoke-self, each id a UUID; every other route answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED.

In: header

Path Parameters

org_id*string
Formatuuid

Header Parameters

X-Correlation-ID?string

Request Body

application/json

Provide manual sources, live connector ids, or both — at least one of the two is required.

suggested_name?string
Lengthlength <= 160
workflow_key?string
Lengthlength <= 120
sources?array<>
Itemsitems <= 20
live_connector_ids?array<>

Org policy-source connectors to pull live at draft time (Jira, Confluence, Notion, Google Drive, Git repository, SAP).

Itemsitems <= 6

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/policies/packs/draft" \  -H "Content-Type: application/json" \  -d '{}'
{  "org": {    "id": "string",    "name": "string"  },  "generated_at": "2019-08-24T14:15:22Z",  "pack_id": "57cc3d41-f96b-4516-a620-a3167d9dc6bf",  "draft": {    "status": "string",    "used_llm": true,    "suggested_name": "string",    "workflow_key": "string",    "pack": {      "rules": [        {}      ]    },    "source_summary": [      null    ],    "review": [      null    ]  }}