You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add an async user-consent broker for always-on agents #1757
Always-on agents may need explicit user authorization when the user is not actively in session: new resource consent, step-up authentication, or sensitive action approval. Today the practical choices are fail the task, require an active session, or use an over-privileged service account. None preserve user attribution and isolation simultaneously.
Proposed Design
Expose an async consent request API with principal, resource, scope/action, reason, expiry, and correlation ID.
Initiate CIBA or equivalent provider-specific approval with the identity provider.
Return a pending handle to the agent; never return token material.
Allow the agent to suspend and resume when the handle becomes approved, denied, expired, or failed.
Store approved tokens under the same gateway-side custody, attenuation, and audit rules as other broker-issued credentials.
Acceptance criteria:
An agent can request consent, receive a pending handle, suspend, and resume after approval without seeing the resulting token.
Approved, denied, expired, and failed consent states are explicit and machine-readable.
Consent request, user approval, token acquisition, and downstream token use share correlation IDs.
The design composes with gateway/operator approval rather than replacing it.
Alternatives Considered
Fail whenever consent is missing: safest, but blocks useful autonomous workflows.
Use long-lived service-account access: operationally easy, but undermines user attribution and least privilege.
Require active interactive sessions for all user-scoped work: reduces autonomy and creates brittle UX.
Agent Investigation
OpenShell has gateway-mediated policy decisions and operator-style approval concepts, but no documented user-scoped async consent broker for IdP-issued tokens.
Providers v2 refresh strategies (oauth2_client_credentials, oauth2_refresh_token, google_service_account_jwt, static, external) are all machine-credential or pre-acquired-token shaped; none initiate user consent.
CIBA is one relevant standard, but the feature should be an async consent abstraction that can use CIBA or provider-specific step-up mechanisms where supported.
Activity