Evaluate before execute
POST an ActionIntent. Get allow, deny, or wait — plus reasons and an HMAC receipt. Audit stores a scrubbed projection (minimal by default)—not the full intent.
This node is the open-source Limetry control plane. Agents, MCP hosts, and the CLI call it to evaluate tool-call intents, return an outcome (allow, deny, or wait), and audit a scrubbed projection (minimal by default) — before an irreversible tool runs.
POST an ActionIntent. Get allow, deny, or wait — plus reasons and an HMAC receipt. Audit stores a scrubbed projection (minimal by default)—not the full intent.
Every evaluation and recorded outcome becomes a structured event for operators and CI.
Same contract as @limetry/sdk, @limetry/cli, and @limetry/mcp.
Bearer tokens need matching scopes. JWT routes use operator login.
| Method / path | Auth | Purpose |
|---|---|---|
GET / |
none | This landing page |
GET /health |
none | Liveness JSON |
GET /metrics |
bearer · metrics:read |
Process metrics snapshot |
POST /v1/policy/evaluate |
bearer · policy:evaluate |
Evaluate ActionIntent (or legacy TransactionIntent) |
POST /v1/actions/record |
bearer · actions:record |
Record executed / skipped / blocked outcome |
GET /v1/audit |
bearer · audit:read |
List audit / telemetry events |
GET /v1/policies |
bearer · policies:read |
List registered policies |
PUT /v1/policies/:policyId |
bearer · policies:write |
Upsert ActionPolicy |
GET /v1/approvals |
bearer · approvals:read |
List pending / resolved approvals |
POST /v1/approvals/:approvalId/approve |
bearer · approvals:write |
Approve a pending action after payload-hash match |
POST /v1/approvals/:approvalId/deny |
bearer · approvals:write |
Deny a pending action |
POST /v1/auth/register |
none | Create operator user + tenant |
POST /v1/auth/login |
none | JWT login (requires tenantId) |
POST /v1/auth/logout |
JWT | Revoke current JWT |
GET /v1/profile |
JWT | Current operator profile |
POST / GET / DELETE /v1/tokens |
JWT | Create, list, revoke API tokens |
CRUD /v1/rules |
JWT or bearer · rules:* |
Governance rule management |
With the server running and LIMETRY_BEARER_TOKEN set, upsert a policy then evaluate a denied action:
curl -s http://localhost:4801/health
curl -s -X PUT http://localhost:4801/v1/policies/$POLICY_ID \
-H "Authorization: Bearer $LIMETRY_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"policy":{ ... ActionPolicy ... }}'
curl -s -X POST http://localhost:4801/v1/policy/evaluate \
-H "Authorization: Bearer $LIMETRY_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"policy_id":"'"$POLICY_ID"'","intent":{ ... ActionIntent ... }}'