Repository navigation
v0.5.0
0.5.0 - 2026-10-31
Phase 5 (Publishing and Adoption) is complete with hosted access control.
See docs/access-control.md.
Added
- Per-key hosted access policies:
allowanddenytool-name globs, an
optionalexpires_atand an optionaltask_id. Deny wins. An expired policy
denies every tool exceptcore.access_status. A stored policy that fails
validation denies every tool. Keys without a policy keep the default hosted
surface, and policies cannot re-enablechaos.run_experimentortower.*. - Enforcement at dispatch, outside the model: before each hosted handler runs,
after the caller's session lock is acquired, the server re-authenticates the
key and reloads its policy. Revocation, policy changes and expiry therefore
apply to queued calls, retries and existing connections. Calls already
running are not cancelled. An unreachable key store denies the call. - Hosted
tools/listlists only the tools the caller's policy permits. - Direct hosted calls to
chaos.run_experimentortower.*, which are hidden
from hostedtools/list, are still refused and now return and log a
correlated denial record. core.access_status: the caller's allow/deny lists, task scope, expiry and
permitted tools. Over local stdio it returnsenforced: false.- Correlated MCP-local
mcp.access-decision.v1evidence. Denied calls return a
denialorrevocation_acknowledgedrecord inaccess_decision. Every
hosted call logs JSONdispatch/completionrecords (or the denial) to the
deep_agentic_core_mcp.accesslogger under onecorrelation_id. Records
never include keys, key digests or tool arguments. - Policy configuration:
DEEP_AGENTIC_CORE_MCP_API_KEYSentries may be
{"key": ..., "permissions": {...}}, validated at startup. Supabase/PostgreSQL
stores policies in a new nullablemcp.users.permissionscolumn, and DynamoDB
in apermissionsmap on theUSER#item. deep-agentic-core-mcp-adminoperator CLI:show,set-permissions,
clear-permissionsandrevokeby user ID with the store's credentials, so
revocation does not depend on the agent's key.examples/hosted_access_status.py.- CI runs the PostgreSQL store tests against a
postgres:16service.
Changed
- The HTTP endpoint authorizes keys into a principal (user plus policy);
third-party key stores that only implementauthenticatekeep the default
surface. Tower'sMCPAccessRevokerinterface is unchanged.
Upgrade notes
- Supabase/PostgreSQL deployments must re-run
deploy/supabase/schema.sql
(orALTER TABLE mcp.users ADD COLUMN IF NOT EXISTS permissions jsonb;)
before deploying 0.5.0. Without the column, authentication fails with
HTTP 503. DynamoDB and environment-key deployments need no migration. - Hosted image pins and sibling dependency ranges are unchanged.