Skip to main content

Authentication

Subscriberbot uses Burdenoff Workspaces identity. All authentication flows are handled through the platform's OAuth2 and token infrastructure.

Supported flows

FlowUse caseClient id
OAuth2 Device CodeInteractive CLI, browser extension, VS Code extensionburdenoff_cli_subscriberbot
OAuth2 Authorization Code + PKCEWeb and mobile appsVaries by app
Client CredentialsService-to-service / M2M / CI automationIssued per app
Email / PasswordDirect SDK sign-inN/A (platform native)

OAuth2 Device Code

The default flow for CLI, browser extension, VS Code extension, and MCP server:

  1. The client requests a device code from the global gateway (/global/oidc/device/code).
  2. The user opens the verification URL and enters the code.
  3. The client polls /global/oauth/device/token until the user completes approval.
  4. The client receives an access token + refresh token pair.
  5. For workspace-scoped operations, the client calls issueWorkspaceToken to mint a workspace token.

Workspace queries send both headers:

  • Authorization: Bearer <platform token>
  • X-Workspace-Authorization: Bearer <workspace token> (browser extension)
  • Or the workspace token is exchanged internally by the SDK/CLI.

Token storage

SurfaceStorage pathPermissions
CLI~/.config/subscriberbot-cli/auth.json0600
Browser extensionchrome.storage.localExtension-only
VS Code extensionVS Code SecretStorageOS keychain
MCP server~/.config/subscriberbot-mcp/0600
Node SDKIn-memory or caller-providedCaller-managed
Python SDKIn-memory or caller-providedCaller-managed

Token refresh

Platform tokens auto-refresh before expiry (typically every ~1 hour). Workspace tokens are re-issued on workspace switch or as needed by the SDK/CLI. The SDKs support autoRefresh: true by default.

Environment-specific issuers

EnvironmentOIDC issuerGlobal gateway
prod (default)https://graphql.burdenoff.com/globalhttps://graphql.burdenoff.com/global/graphql
alphahttps://alphagraphql.burdenoff.com/globalhttps://alphagraphql.burdenoff.com/global/graphql
localhttp://localhost:4000/globalhttp://localhost:4000/global/graphql

Override with SUBSCRIBERBOT_OIDC_ISSUER or the equivalent per-product env var.

Managing identity

Profile, MFA, sessions, SSO, and API keys are platform-level concerns managed through Burdenoff Workspaces:

Environment selection

All auth flows target production by default. To authenticate against alpha or local, set BURDENOFF_ENV=alpha|local or pass explicit oidcIssuer / globalEndpoint values. See Environment Selection for endpoint details.