Auth
RoadmapToken issuance scoped to specific users, with audit-log accountability for every agent action.
Auth models
- Magic link GA: primary user auth. 14-day reusable TTL, server-side
tenant_sessions. What humans use to log in. - Tenant API key Beta: machine-to-machine bearer token, tenant-scoped. Acts under a synthetic
api_useridentity. Right for batch jobs, cron, and integrations that don’t represent a specific human. - Agent-on-behalf-of-user token Roadmap: the surface external Slack agents need. A deal-desk user authorizes an agent to act as them, and the agent gets a short-lived token scoped to that user’s permissions. The agent inherits the user’s approval scope (a rep’s agent can’t auto-approve a VP-level discount). Every action is recorded with both the agent identity and the on-behalf-of-user identity.
Why on-behalf-of-user matters
The naive model is to issue a tenant-wide API key to the agent and let it do anything. That fails procurement review at any serious mid-market SaaS. The correct model is: each deal-desk user can authorize agents individually, and the agent’s scope is the union of the user’s scope and the authorization grant. A rep’s agent can draft a quote and propose a 10% discount, but it cannot auto-approve a 30% discount that requires VP sign-off. That still routes to the human.
Audit accountability
Every action taken with an agent-on-behalf-of-user token records the tuple (agent_id, on_behalf_of_user_id, action, deterministic_inputs, computed_outputs) in the audit log. A SOX-style review can reconstruct who (human or agent) did what, with which inputs, producing which outputs. The deterministic boundary means the “outputs” replay reproduces the same numbers months later.
Scope model (planned)
quote:read: read quotesquote:write: create / edit quote line items, change discount within approval scopequote:send: send to customer / generate documentcatalog:read: read product catalogaudit:read: read audit logapproval:request: request approval (routing follows the user’s scope, not the agent’s)
What’s next
Auth shape is being scoped with the same design partners working on webhooks and the MCP server. If you’re building a custom Slack agent and need on-behalf-of-user auth before GA, talk to us.