Core Primitives

Constraints

A law, policy, jurisdiction, posture, ethical boundary, or funding limit that governs what the operation can and cannot do. Constraints are not afterthoughts — they are operational parameters.

The Constraint object

Constraint
{
  "id": "con_mno345",
  "operation_id": "op_abc123",
  "type": "jurisdiction",
  "description": "Operation subject to Singapore MAS regulations",
  "scope": "all_transitions",
  "enforced": true,
  "created_at": "2025-01-15T09:15:00Z",
  "metadata": {
    "regulation": "MAS Notice PSN02",
    "jurisdiction": "SG"
  }
}
ParameterTypeDescription
idstringUnique identifier. Prefixed with con_
operation_idrequiredstringThe operation this constraint applies to
typerequiredstringConstraint classification
descriptionrequiredstringHuman-readable description
scopestringWhat the constraint applies to
enforcedbooleanWhether the constraint is actively enforced by the API
created_atdatetimeISO 8601 timestamp
metadataobjectArbitrary key-value pairs
Constraint types
jurisdictionregulationpolicyethical_boundaryfunding_limittime_limitaccess_restriction

Endpoints

Add a constraint

POST
/v1/operations/:id/constraints
TypeScript
const constraint = await md.constraints.create("op_abc123", {
  type: "jurisdiction",
  description: "Operation subject to Singapore MAS regulations",
  scope: "all_transitions",
  enforced: true,
  metadata: {
    regulation: "MAS Notice PSN02",
    jurisdiction: "SG",
  },
});

List constraints

GET
/v1/operations/:id/constraints

Update a constraint

PATCH
/v1/constraints/:id