Skip to content

Auth Methods

Roster has different authentication methods for each surface.

SurfacePreferred methodNotes
Platform web UIRoster Auth browser sessionHuman login through form auth or configured identity providers.
REST APIAPI-key bearer tokenImplemented for automation, SDKs, and external integrations.
MCP serverAPI key or Roster OAuth token

Controlled by ROSTER_MCP_AUTH_MODE.

CLIMCP OAuth for humans, API keys for automationCLI is MCP-first.
Provider connectorsProvider-specific outbound credentialsStored through connector configuration and provider secrets.

API keys use the rst_ prefix and are owned by Roster identities. Admins create, inspect, and revoke API keys from Platform API Keys.

Terminal window
curl "https://roster.example.com/api/v1/projects?limit=10" \
-H "Authorization: Bearer ${ROSTER_API_KEY}"

API keys can carry REST scopes, MCP scopes, or both. Write scopes automatically include their matching read scope when created through the platform presets. Scopes limit what the key can try to do; they do not elevate the owner. Runtime access is key scopes ∩ owner rights ∩ resource rules, and all expands only the scope dimension.

Implemented REST endpoints require API-key bearer auth. REST scopes use the api: prefix, for example:

api:projects:read
api:participants:write
api:resolve
api:resolve-requests:read

REST API authentication mode is configured by the deployed Roster runtime.

MCP auth is configured with ROSTER_MCP_AUTH_MODE:

none
api_key
oauth
api_key,oauth

Production rejects unset or none auth mode. Individual MCP tools enforce mcp:* scopes such as mcp:resolve and mcp:participants:read. OAuth consent offers MCP write and label scopes only to admins and effective project owners; ordinary members can approve Resolve and non-label read scopes.

Directory connector credentials are outbound provider credentials. They are not login identity providers and they do not authenticate REST or MCP clients.

Encrypted provider secrets use:

Terminal window
ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY=<high-entropy-secret>
ROSTER_PROVIDER_SECRET_KEY_ID=env:prod-2026-05