Versioning policy
- Major (
v2.x): Breaking changes to request/response contracts or authentication. Announced with a migration guide and deprecation period. - Minor (
v1.2): New endpoints, fields, or features. Backwards-compatible. - Patch (
v1.1.1): Bug fixes and performance improvements. No contract changes.
Stability guarantees
- Existing response fields are never removed or renamed within a major version.
- New optional fields may be added to responses at any time — clients should ignore unknown fields.
- Webhook payload schemas follow the same policy.
API version header
All endpoints are prefixed with/v1. When a new major version is released, the previous version will remain available for a documented deprecation period.
v1.2.0
Conditional Rule Applicability (When Gating)- Added optional
whenclause on policy rules — rules are only evaluated when the clause matches the decision context. - Non-matching rules return NA (not applicable) with a human-readable reason on the decision receipt.
- New optional fields on
EvaluationResult:rules_na(count) andna_rules(details). - Supported
whenoperators:equals,in,exists, withall/anycombinators for nested logic. - Snapshot hash includes
whenclauses (backward compatible — existing hashes unchanged).
- Decision receipts are now signed with Ed25519 when a signing key is configured.
- Receipts include
signature,signature_kid, andsignature_algorithmfields. - Auditors can verify receipts using the public key alone — no shared secret needed.
- Encryption key versioning with rotation support and legacy fallback.
- Rate limiting upgraded to shared state across API replicas.
v1.1.0
- Added policy groups (CRUD + listing policies within a group).
- Added alert webhook subscriptions with HMAC-signed delivery.
- Added webhook delivery history and statistics endpoints.
- Added decision SSE stream (
GET /v1/decisions/stream). - Added audit log verification (
POST /v1/audit-log/verify). - Added API key naming (
key_name) for audit attribution. - Added advisory mode for policies.
- Added two-tier rate limiting (pre-auth + post-auth).
v1.0.1
Production hardening release. All fixes are backwards-compatible at the HTTP layer.- SDK
apiKeyconfiguration is now required (throws a clear error if missing). idempotency_keyis now required when recording decisions (no longer auto-generated).- Added
dryRun()as a semantic alias forevaluate(). - Recorded decisions now capture audit attribution (
api_key_id,api_key_name). - Infrastructure failures (database, pool exhaustion) now return
503 Service Unavailablewithretry_afterinstead of500. SKIP_AUTHenvironment variable is ignored in production with a security warning.
v1.0.0
- Initial release.
- Policy CRUD with immutable versioning.
- Decision evaluation (dry-run) and recording (persisted).
- Decision replay for audit verification.
- Alert listing and acknowledgement.
- API key management with scoped access.
- Audit event listing.
- OpenAPI 3.0 spec and Swagger UI.