EddytorDocs & API
Policies

Partially update a policy. Omitted fields keep their current value — the enable/disable toggle sends only `{"enabled": …, "expectedVersion": …}` and can never rewrite semantics. A builder-managed policy whose `kind`/`columnName` changes is re-generated from its stored definition.

**Required scope:** `rls_policies:write`

PATCH
/v1/organisations/{org_id}/policies/{id}

Authorization

BearerAuth
AuthorizationBearer <token>

Security scheme for OpenAPI endpoints. Validates both JWT tokens and API keys.

In: header

Path Parameters

org_id*string
Formatuuid
id*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request body for a partial policy update. Omitted fields keep their current value; clearing a nullable field (e.g. tableFqn) requires a full PUT. The enable/disable toggle sends {"enabled": …, "expectedVersion": …} and nothing else — it can never rewrite policy semantics.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/organisations/497f6eca-6276-4993-bfeb-53cbbbba6f08/policies/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "expectedVersion": 0  }'
{  "id": "string",  "tableFqn": "string",  "tableId": "string",  "columnName": "string",  "kind": "rls",  "policyText": "string",  "definition": {    "effect": "permit",    "subject": {      "everyone": null,      "role": null,      "attribute": null,      "op": null,      "value": null    },    "condition": null  },  "enabled": true,  "version": 0,  "createdAt": "string",  "updatedAt": "string"}
Empty
Empty
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}
{  "code": "string",  "message": "string",  "request_id": "string",  "details": [    {      "field": "string",      "message": "string"    }  ]}