Authentication
CmdCal uses two authentication layers: session-based auth for the dashboard and API key auth for programmatic access. Both are scoped to your organization.
Sign-up and Login
Create an account or sign in at paperjsx.com/login. Two methods are available:
- Google OAuth -- click "Continue with Google" to authenticate via your Google account.
- Magic link -- enter your email address to receive a one-time sign-in link. No password is required.
After signing in, you are redirected to /dashboard. A Supabase session cookie is set and used for all subsequent dashboard requests.
API Key Authentication
For programmatic access to the V2 runtime endpoints (/api/v2/render, /api/v2/preflight, /api/v2/jobs), authenticate with an API key. Keys use the pj_live_ prefix.
Two header formats are supported:
# Bearer token (recommended)
Authorization: Bearer pj_live_YOUR_KEY
# x-api-key header
x-api-key: pj_live_YOUR_KEY
Create and manage keys from /dashboard/api-keys. See API Keys for details.
Session vs. API Key
| Aspect | Session (cookie) | API Key |
|---|---|---|
| Used by | Dashboard UI | External services, CI/CD, SDKs |
| Identity | User (email + OAuth) | Organization-level |
| Permissions | Role-based (owner/admin/member) | Full org access |
| Revocation | Sign out or session expiry | Revoke from dashboard |
| Rate limiting | Standard | Plan-based usage limits |
The V2 runtime endpoints accept both authentication types. Dashboard management endpoints (settings, key creation, usage) require a session.
Service Accounts for CI/CD
There is no dedicated service account type. For CI/CD pipelines, create a named API key (e.g. "GitHub Actions") and store it as a secret in your CI environment. The key authenticates directly against the runtime -- no OAuth flow is needed.
# GitHub Actions example
env:
PAPERJSX_API_KEY: ${{ secrets.PAPERJSX_API_KEY }}
Session Management
Sessions are managed by Supabase Auth. Key behaviors:
- Sessions persist across browser restarts via secure HTTP-only cookies.
- Signing out clears the session and redirects to
/login. - The dashboard shell sets Sentry user context and tracks page views per session.
SSO
Next Steps
- API Keys -- create and manage API keys
- Access -- role-based permissions within your organization
- Automation -- use API keys in CI/CD pipelines