Skip to content

feat(auth): authenticate Substrate actor calls to the control plane - #3282

Draft
EItanya wants to merge 3 commits into
mainfrom
feat/runtime-actor-jwt
Draft

EItanya wants to merge 3 commits into
mainfrom
feat/runtime-actor-jwt

Conversation

@EItanya

@EItanya EItanya commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Actors now authenticate to the controller with Substrate-issued JWTs in the standard Authorization header. A separate runtime listener (:8084 by default) requires Actor JWTs and allows only TaskStore and Memory. The user listener keeps its configured authentication mode and rejects Actor JWTs as user credentials.

TaskStore checks the session, atespace, and current Actor UID. Memory derives its agent and user scope from the same persisted binding, so request fields and forwarded headers cannot select another identity's memory. Actors do not inherit their session owner's general API permissions.

Substrate egress replaces a placeholder with a five-minute JWT for the kagent-runtime audience. The controller verifies it through Substrate OIDC discovery/JWKS using the existing JWT dependencies. This works with the pinned Substrate v0.6.0-alpha3. config.substrate.actorJwtIssuer defaults to https://idp.ate-system.svc.

Controller and runtime images must upgrade together; older runtime snapshots must be recreated. Memory now uses the stored namespace/name agent reference as its key; existing entries keyed by runtime display names are not migrated.

Validated real JWT injection, credential rejection, and checkpoint/fork restoration on kagent, Codex, Claude, and BYO ADK. Go and Python tests, gRPC/PostgreSQL integration tests, 52 Helm checks, protobuf checks, and Go lint pass.

Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
@github-actions github-actions Bot added the enhancement New feature or request label Oct 19, 2026
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
@EItanya EItanya changed the title feat(auth): verify runtime calls with Substrate Actor JWTs feat(auth): authenticate Substrate actor calls to the control plane Oct 19, 2026
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant