Skip to content

v0.5.0 — one engine, every surface: AuthZEN + MCP reach parity

Choose a tag to compare

@ericlovold ericlovold released this 09 Jul 22:05
5a350ce

Ten days, twenty-two changelog entries. v0.2.0 governed spend; v0.5.0 governs the fleet — and proves it.

Highlights

  • One engine, every surface. Sanction's core guarantee — same request, same policy, same state, same decision — now holds across the native API, the OpenID AuthZEN 1.0 PDP, and MCP. Frozen wallets, cost-per-outcome ceilings, and all three token-budget horizons enforce identically everywhere, pinned by a cross-surface parity test suite.
  • Spend answers to outcomes. Your systems attest results (POST /v1/outcomes — an enrollment, a booking); a wallet with a cost_per_outcome ceiling escalates every further charge once its windowed ratio crosses the line. Around it, the two controls a CFO reaches for: wallet freeze (one call pauses a subtree across every surface, deleting nothing) and atomic budget reallocation between sibling pools.
  • Decisions are evidence. Every decision persists the policy revision and exact engine context it evaluated; GET /authorize/{id}/evidence replays it and reports whether the outcome reproduces. Every denial answers four questions — what happened, why, what changes the answer, where's the proof — with a signed appeal path on hard budget denials.
  • What-if before you commit. POST /policy/simulate replays your real history under a candidate policy — as-recorded or sequentially, where an early denial frees budget downstream — and policy packs ship with a 30-day simulated preview before one-call install.
  • Seats you can hand around. Agents became seats: holders, expiries that fail closed on both auth planes, rotation that moves the person while history stays, batch creation across a fleet — with per-seat monthly token budgets and pooled per-department daily caps enforced at the gateway.
  • Approvals that find you. Escalations land in Slack natively; human approvals mint single-use, TTL'd grants; the loop speaks AuthZEN's AARP profile end-to-end.
  • The audit plane. One unified feed for decisions, token usage, and secret access (CSV included), day-bucketed reporting over any range, a Monday digest, and DB-level tenant isolation (Postgres RLS) underneath it all.

Also in this release

  • TypeScript SDK (@sanction/sdk) with framework adapters for the Vercel AI SDK, plus runnable LangChain and Bedrock Action Group guides.
  • Gateway metering extended to Perplexity; provision authorization (allocate) joins spend and tool governance.
  • sanction-mcp 0.4.0: outcome logging, escalation polling via sanction_check_authorization, eight tools total — npx sanction-mcp.

Next up, already on main: tamper-evident audit exports — signed, hash-chained decision history any auditor can verify offline.

Full story: changelog · roadmap · docs