Environment Variables
Complete catalog of all environment variables used in the codebase
58 variables across infrastructure, APIs, security, and configuration.
Database
| Variable | Default | Used In | Purpose |
|---|---|---|---|
PGHOST | localhost | src/db/index.ts | PostgreSQL host |
PGPORT | 5433 | src/db/index.ts | PostgreSQL port |
PGUSER | user | src/db/index.ts | PostgreSQL username |
PGPASSWORD | password | src/db/index.ts | PostgreSQL password |
PGDATABASE | enrichnodedb | src/db/index.ts | PostgreSQL database |
Redis
| Variable | Default | Used In | Purpose |
|---|---|---|---|
REDIS_HOST | localhost | src/lib/redis.ts | Redis host |
REDIS_PORT | 6379 | src/lib/redis.ts | Redis port |
REDIS_PASSWORD | — | src/lib/redis.ts | Redis auth password |
API Server
| Variable | Default | Used In | Purpose |
|---|---|---|---|
API_PORT | 3000 | src/api/index.ts | API server port |
CORS_ORIGIN | http://localhost:3000 | src/api/index.ts | CORS allowed origin |
LOG_LEVEL | — | src/logger.ts | Pino log level |
NODE_ENV | — | Various | Environment mode |
Authentication
| Variable | Default | Used In | Purpose |
|---|---|---|---|
JWT_SECRET | '' | src/api/auth.ts | JWT signing secret |
KEYCLOAK_URL | — | src/lib/keycloak.ts | Keycloak server URL |
KEYCLOAK_REALM | — | src/lib/keycloak.ts | Keycloak realm |
KEYCLOAK_CLIENT_ID | — | src/lib/keycloak.ts | Keycloak client ID |
KEYCLOAK_CLIENT_SECRET | — | src/lib/keycloak.ts | Keycloak client secret |
KEYCLOAK_DEV_MODE | false | src/lib/keycloak.ts | Dev bypass mode |
Security
| Variable | Default | Used In | Purpose |
|---|---|---|---|
HASH_SALT | '' | src/compliance.ts | HMAC-SHA256 salt for opt-out |
WEBHOOK_SECRET | '' | src/lib/webhooks.ts | Webhook HMAC secret |
External APIs
| Variable | Default | Used In | Purpose |
|---|---|---|---|
SERPER_API_KEY | — | src/enrichment/sources/serper.ts | Serper.dev API key |
GOOGLE_PLACES_API_KEY | — | src/enrichment/sources/maps.ts | Google Places API |
FIRECRAWL_API_KEY | — | src/enrichment/sources/firecrawl.ts | Firecrawl API |
ANTHROPIC_API_KEY | — | src/api/kundkort.ts | Claude AI API |
OPENAI_API_KEY | — | src/lib/embeddings.ts | OpenAI embeddings |
HUNTER_API_KEY | — | src/hunterIntegration.ts | Hunter.io (deprecated) |
BV_CLIENT_ID | — | src/fetchers/bolagsverket/openApi.ts | Bolagsverket OAuth |
BV_CLIENT_SECRET | — | src/fetchers/bolagsverket/openApi.ts | Bolagsverket OAuth |
BOLAGSVERKET_API_KEY | — | src/fetchers/bolagsverket/real-api.ts | BV API key |
BOLAGSVERKET_API_URL | — | src/fetchers/bolagsverket/real-api.ts | BV API URL |
SCB_API_BASE_URL | api.scb.se/... | src/fetchers/scb/index.ts | SCB API base |
SCB_TABLE_ID | TAB1292 | src/fetchers/scb/index.ts | SCB table ID |
ECO_API_URL | http://localhost:3001 | src/enrichment/ecoApiIntegration.ts | ECOAPI endpoint |
Email / Notifications
| Variable | Default | Used In | Purpose |
|---|---|---|---|
SMTP_HOST | — | src/lib/article14Notification.ts | SMTP server |
SMTP_PORT | — | src/lib/article14Notification.ts | SMTP port |
SMTP_USER | — | src/lib/article14Notification.ts | SMTP username |
SMTP_PASS | — | src/lib/article14Notification.ts | SMTP password |
EMAIL_API_URL | — | src/lib/article14Notification.ts | Email API fallback |
NOTIFICATION_FROM_EMAIL | — | src/lib/article14Notification.ts | From address |
SMTP_PROBE_EHLO_HOST | — | src/lib/smtpEmailValidator.ts | SMTP EHLO host |
SMTP_PROBE_FROM_EMAIL | — | src/lib/smtpEmailValidator.ts | SMTP probe from |
OPT_OUT_URL | https://enrichnode.io/opt-out | src/lib/article14Notification.ts | Opt-out page URL |
PRIVACY_NOTICE_URL | https://enrichnode.io/privacy | src/lib/article14Notification.ts | Privacy notice URL |
Worker Configuration
| Variable | Default | Used In | Purpose |
|---|---|---|---|
ENRICH_CONCURRENCY | 20 | src/workers/enrichWorker.ts | Enrich worker concurrency |
UPDATE_CONCURRENCY | 50 | src/workers/updateWorker.ts | Update worker concurrency |
PLAYWRIGHT_CONCURRENCY | 4 | src/workers/playwrightWorker.ts | Playwright worker concurrency |
DISPATCHER_BATCH_SIZE | 13 | src/workers/enrichDispatcher.ts | Dispatcher batch size |
DISPATCHER_INTERVAL_MS | 300000 | src/workers/enrichDispatcher.ts | Dispatcher interval |
DISPATCHER_STALE_MONTHS | 6 | src/workers/enrichDispatcher.ts | Stale threshold |
Feature Flags
| Variable | Default | Used In | Purpose |
|---|---|---|---|
USE_CRAWLEE | — | src/enrichment/sources/website.ts | Enable Crawlee scraper |
USE_FIRECRAWL | — | src/enrichment/sources/website.ts | Enable Firecrawl fallback |
SCRAPE_LIMIT_BYPASS | — | src/api/kundkort.ts | Bypass 3x/year scrape limit |
Embeddings
| Variable | Default | Used In | Purpose |
|---|---|---|---|
EMBEDDING_PROVIDER | openai | src/lib/embeddings.ts | Embedding provider |
EMBEDDING_MODEL | text-embedding-3-small | src/lib/embeddings.ts | Embedding model |
EMBEDDING_DIMENSIONS | 1536 | src/lib/embeddings.ts | Vector dimensions |
News (Disabled)
| Variable | Default | Used In | Purpose |
|---|---|---|---|
NEWS_API_KEY | — | src/enrichment/sources/newsJobs.ts | News API key |
NEWS_API_PROVIDER | — | src/enrichment/sources/newsJobs.ts | News provider |
NEWS_DAYS_BACK | — | src/enrichment/sources/newsJobs.ts | News lookback period |
Webhooks
| Variable | Default | Used In | Purpose |
|---|---|---|---|
WEBHOOK_MAX_RETRIES | 3 | src/lib/webhooks.ts | Max retry attempts |
WEBHOOK_TIMEOUT | 30000 | src/lib/webhooks.ts | Webhook timeout ms |
WEBHOOK_BATCH_SIZE | — | src/lib/webhooks.ts | Batch size |
Missing / Not Configured
These env vars are referenced but not in
.env.example
CONTROLLER_NAME— referenced but purpose unclear