Environment Selection
All TimeCampus ecosystem tools default to production. You can switch to alpha or local by setting the BURDENOFF_ENV environment variable. No code or config file changes are required.
Overview
| Variable | Values | Default |
|---|---|---|
BURDENOFF_ENV | prod (default) | alpha | local | prod |
Set the variable in your shell before running any tool:
export BURDENOFF_ENV=alpha
Or prefix a single command:
BURDENOFF_ENV=local timecampus auth login
BURDENOFF_ENV=alpha bun run build
Endpoints per environment
| Env | Workspace gateway | Global gateway | App URL |
|---|---|---|---|
| prod (default) | https://graphqlworkspaces.burdenoff.com/workspaces/graphql | https://graphql.burdenoff.com/global/graphql | https://app.timecampus.com |
| alpha | https://alphagraphqlworkspaces.burdenoff.com/workspaces/graphql | https://alphagraphql.burdenoff.com/global/graphql | https://alphaapp.timecampus.com |
| local | http://127.0.0.1:4003/workspaces/graphql | http://127.0.0.1:4000/global/graphql | https://app.local.timecampus.com |
Tool-specific notes
CLI
The timecampus CLI reads BURDENOFF_ENV at startup and resolves the workspace + global gateway URLs automatically. You can also override endpoints directly:
TIMECAMPUS_WORKSPACE_ENDPOINT=https://custom.example.com/graphql timecampus auth status
Node SDK
Pass BURDENOFF_ENV into the process, or provide explicit endpoints in the constructor:
import { TimecampusSDK } from '@timecampus/sdk';
// Defaults to prod when no env var is set
const sdk = new TimecampusSDK();
Python SDK
The Python SDK follows the same pattern:
from timecampus_sdk import TimecampusSDK
sdk = TimecampusSDK() # defaults to prod
Browser extension
Endpoints are baked at build time via BURDENOFF_ENV:
bun run build # prod endpoints
BURDENOFF_ENV=alpha bun run build # alpha endpoints
BURDENOFF_ENV=local bun run build # local endpoints
Only the selected environment's URLs are included in the extension bundle.
VS Code extension
Set BURDENOFF_ENV before launching VS Code:
BURDENOFF_ENV=local code .
All endpoint URLs are defined in src/config/environment.ts inside the extension repo.
MCP server
Override via TIMECAMPUS_* env vars (highest priority) or BURDENOFF_ENV:
BURDENOFF_ENV=local bun run dev
Doctor E2E
The doctor suite uses TIMECAMPUS_TARGET instead:
TIMECAMPUS_TARGET=local make test
TIMECAMPUS_TARGET=alpha make test
make test # defaults to prod
For alpha runs behind Cloudflare Access, also export:
E2E_CF_ACCESS_CLIENT_ID=<service-token-id>
E2E_CF_ACCESS_CLIENT_SECRET=<service-token-secret>