Repository navigation
v0.5.0
Pre-release
Pre-release
Added
- Added the opt-in
delegator/vaultbuiltin to read downstream credentials from Vault KV v2 for a user, client, or workload. Routes using it must authorize before delegation. (#168) - Request header assertions can use a declared
secret.<name>value for static upstream credentials. Values are resolved at startup and read from the secret store at the point of use, so rotation takes effect on the next request after refresh without fetching on the request path. Unknown names and response assertions using secrets are rejected. (#174) - Added an OCSF audit sink as an unpublished reference plugin. It emits decision records with optional chained attestations and DSSE signatures for offline verification. (#171)
- Exposed MCP tool, resource, and prompt annotations to policy, including
readOnlyHintanddestructiveHint. Workload attestation timestamps are available as RFC3339 strings and Unix seconds; APL can compareattested_at_epochagainst a fixed threshold. (#175) - Added secret-provider health details through
secrets_healthand atomic value/generation reads throughSecretRef::snapshot. (#191)
Changed
- Breaking: Secret configuration reloads that change
secrets:now fail; restart to apply those changes. Theenvprovider rejects unused settings.secrets_last_successretains its last successful timestamp after a failure, so usesecrets_healthto detect outages. (#191) - Breaking for Rust callers: Secret assertions add
HttpExtension::secret_headers; exhaustive struct literals must initialize it, and hosts must preserve it between hooks.SourcePath::resolveandassertions::rendernow take a secret store,AssertionsConfig::validatetakes secret configuration,SourcePath::capabilityreturnsOption<Capability>, andSourcePathgains aSecret(String)variant and is non-exhaustive. (#174) - Breaking for custom CEL functions:
CelResolver::with_functionsand its registration callback now returnResult. Conflicts with standard-library overloads fail construction; later registration failures deny even withon_error: allow. Hosts that need such overloads must use a CELEnvoverload. (#185) - CEL 0.15 counts Unicode code points instead of UTF-8 bytes in string
size().exists()returnstrueif an element matches even when another element errors. Review policies that depend on byte limits or list-predicate errors, since previously denied requests may now allow. (#185) - JSON floats now parse with
serde_json'sfloat_roundtripfeature. Exact numeric boundaries and re-serialized audit records can change. (#171)
Removed
- Breaking for Rust callers: Removed eight
CAP_READ_*names for unrestricted CMF slots and sevenBAG_*_PREFIXconstants. The policy attributes remain available. (#175)
Fixed
- Rejected JWTs with unsupported critical headers. OAuth token exchange now validates issued token type, granted scopes, and JWT audience and subject by default. Empty scope requests accept IdP defaults;
allowed_extra_scopespermits named defaults alongside requested scopes. (#188) - Bound CIBA approvals to the selected route, tool, and authenticated requester, with atomic single-use redemption within a plugin instance. Backchannel and poll failures no longer expose OP response bodies that may contain credentials. (#188)
- Made non-scalar numeric policy comparisons fail closed. Structured JSON redaction now matches keys without case sensitivity, supports recursive paths, preserves keys containing dots, and bounds recursive traversal. (#188)
- Kept secret assertion headers redacted in plugin and audit views across subsequent hooks, config reloads, and header case normalization. Plugin header writes preserve the original credential while allowing unrelated changes. (#174)
- Confined file-provider reads to
base_dir, rejecting symlinks that escape it while supporting links within it, including Kubernetes projected secrets. (#191) - Corrected CMF capability namespace descriptions, including the
read_teamsmapping, and added checks against the keys the bridge actually emits. (#175)
Documentation and tests
- Added integration, resilience, and security suites through the reference host, covering Cedar, CEL, OPA, dependency failures, concurrency, and credential leaks, with optional live Keycloak, Valkey, and Vault scenarios. (#180)
- Expanded authorization coverage for glob and wildcard entity routes, including route specificity. (#122)
- Defined requirements for audit serialization, delivery, and offline verification. (#173)
- Updated project governance, contribution, security, maintainer, and code ownership guidance. (d2bf93c, 940c5c5, 93580f2)
New Contributors
- @Levaj2000 made their first contribution in #173
Contributors
Full Changelog: v0.4.1...v0.5.0