Environment Variables
Code-derived runtime environment contract grouped by usage.
This is the runtime environment contract derived from src/lib/env.ts and direct process.env usage.
Required runtime variables
| Variable | Used by | Notes |
| --- | --- | --- |
| DATABASE_URL | Prisma datasource | Must be a valid PostgreSQL URL. |
| NEXTAUTH_URL | NextAuth/session URLs | Should match actual app origin (http://localhost:3030 in local dev). |
| NEXTAUTH_SECRET | NextAuth + fallback secrets | Must be at least 32 chars. Also used as fallback for storefront session/OTP secrets. |
| UPLOAD_DIR | File uploads and file asset paths | Base folder for physical uploads. |
Auth and API behavior
| Variable | Used by | Notes |
| --- | --- | --- |
| EMAIL_AUTH_ENABLED | src/lib/auth.ts | Enables optional Google provider when true and credentials are present. |
| GOOGLE_CLIENT_ID | src/lib/auth.ts | Required with GOOGLE_CLIENT_SECRET for Google sign-in. |
| GOOGLE_CLIENT_SECRET | src/lib/auth.ts | Required with GOOGLE_CLIENT_ID for Google sign-in. |
| WORKBASE_STOREFRONT_SESSION_SECRET | storefront customer cookie signing | Recommended (>=32 chars). Falls back to NEXTAUTH_SECRET. |
| WORKBASE_OTP_PEPPER | OTP hashing | Optional pepper for email OTP codes. |
| API_KEY_MAP | bearer auth fallback | Comma-separated key:ROLE list. DB API keys are checked first. |
| WORKBASE_AUTH_DEBUG | auth/storefront debug logs | Set to 1 to enable verbose auth diagnostics. |
Proxy/CORS/rate-limit controls
| Variable | Used by | Notes |
| --- | --- | --- |
| API_ALLOWED_ORIGINS | proxy.ts | Comma-separated allowed origins for /api/v1/*. |
| API_RATE_LIMIT | proxy.ts | In-memory request limit per minute for /api/v1/* (default 60). |
Integration and feature flags
| Variable | Used by | Notes |
| --- | --- | --- |
| MOYSKLAD_API_BASE_URL | MoySklad client fallback | Prefer DB-stored company credentials where possible. |
| MOYSKLAD_API_USERNAME | MoySklad client fallback | Legacy aliases are also supported. |
| MOYSKLAD_API_PASSWORD | MoySklad client fallback | Legacy aliases are also supported. |
| MOYSKLAD_API_URL | MoySklad legacy fallback | Legacy alias for base URL. |
| MOYSKLAD_LOGIN | MoySklad legacy fallback | Legacy alias for username. |
| MOYSKLAD_PASSWORD | MoySklad legacy fallback | Legacy alias for password. |
| MOYSKLAD_REQUEST_TIMEOUT_MS | MoySklad client | Overrides default request timeout. |
| MOYSKLAD_VISIBILITY_ATTR_ID | storefront catalog filtering | Used to build visibility filter for remote assortment requests. |
| USE_LOCAL_PRODUCTS | storefront product/catalog sources | When true, storefront product/catalog APIs use local DB instead of MoySklad. |
| USE_LOCAL_CATEGORIES | storefront categories route | Enables local category source in storefront categories endpoint. |
| YARVET_API | Yarvet module admin routes | Required for Yarvet export/update actions. |
| DISCOUNT_MODE | Discounts module | final_price (default) or delta. |
Seed-only variables (prisma/seed.ts)
| Variable | Default |
| --- | --- |
| SEED_COMPANY_SLUG | default |
| SEED_COMPANY_NAME | Default Company |
| ADMIN_EMAIL | admin@example.com |
| ADMIN_PASSWORD | changeMe123! |
| ADMIN_NAME | Administrator |