Codapult includes enterprise-grade SSO via BoxyHQ Jackson, supporting SAML 2.0 identity providers (Okta, Azure AD, Google Workspace, OneLogin, etc.).
When to Use SSO
SSO is typically required by enterprise customers who need:
- Centralized user management through their identity provider
- Automatic provisioning/deprovisioning via SCIM (see Teams)
- Compliance with corporate security policies
Environment Variables
SSO_PROVIDER="jackson"
SSO_PRODUCT="your-product-name"
# Production: use Postgres for durable storage
SSO_DB_ENGINE="sql"
SSO_DB_TYPE="postgres"
SSO_DB_URL="postgres://user:password@host:5432/jackson"
For development, Jackson defaults to in-memory storage — no database configuration needed.
In server code, access the product identifier via env.sso.product from @/lib/config instead of reading process.env.SSO_PRODUCT directly.
Admin Setup
- Go to Admin → Enterprise SSO
- Click Add Connection
- Enter the tenant slug (matches the organization) and paste the IdP metadata XML or URL
- Share these values with the customer's IT team:
| Value | URL |
|---|---|
| ACS URL | https://your-app.com/api/auth/sso/callback |
| Entity ID | https://your-app.com/api/auth/sso |
Sign-In Flow
- User enters their email on the sign-in page
- Codapult detects the SSO connection by email domain
- User is redirected to their company's identity provider
- After IdP authentication, the user is redirected back and signed in
Testing SSO Locally
Use a free SAML IdP for testing:
- Create a test IdP at mocksaml.com or use samltest.id
- Register your local ACS URL:
http://localhost:3000/api/auth/sso/callback - Add the connection in the admin panel using the test IdP's metadata
For more details on Jackson configuration and supported IdPs, see the BoxyHQ Jackson docs.