Skip to main content

Configuration

Environment variables and configuration options for the Facilities API.

Environment Variables

Required

VariableDescriptionExample
DATABASE_URLPostgreSQL connection stringpostgresql://user:pass@host:5432/facilities_db

Optional

VariableDefaultDescription
PORT3106HTTP server port
NODE_ENVdevelopmentEnvironment mode
HOSTdev.digiwedge.comLocal hostname for Swagger
PRODUCTION_DOMAINfacilities-api.uat.digiwedge.comProduction domain
APP_VERSION1.0API version shown in Swagger

Outbox & Event Queue

The facilities service uses a transactional outbox pattern for reliable event publishing. Events are written to the FacilityOutbox table and relayed to BullMQ for downstream processing.

VariableDefaultDescription
FACILITIES_OUTBOX_EVENT_QUEUEfacilities-eventsBullMQ queue name for outbox events
FACILITIES_OUTBOX_QUEUE(fallback)Legacy alias for queue name
OUTBOX_EVENT_QUEUE(fallback)Global fallback for queue name
FACILITIES_OUTBOX_POLL_INTERVAL_MS2000Relay polling interval in milliseconds
FACILITIES_OUTBOX_CLAIM_BATCH_SIZE25Max events claimed per relay cycle
FACILITIES_OUTBOX_CLAIM_TIMEOUT_SECONDS120Lock duration for claimed events
FACILITIES_ENABLE_OUTBOXfalseForce-enable outbox relay (even in tests)
FACILITIES_DISABLE_OUTBOXfalseForce-disable outbox relay

Queue name resolution order:

  1. FACILITIES_OUTBOX_EVENT_QUEUE
  2. FACILITIES_OUTBOX_QUEUE
  3. OUTBOX_EVENT_QUEUE
  4. Default: facilities-events

Redis (for BullMQ)

VariableDefaultDescription
REDIS_URL-Full Redis connection URL (preferred)
REDIS_HOSTlocalhostRedis host (fallback)
REDIS_PORT6379Redis port (fallback)
REDIS_PASSWORD-Redis password (fallback)
BULLMQ_DISABLEDfalseDisable BullMQ (uses in-memory queues)

Database

The Facilities service uses its own PostgreSQL database with the Prisma schema at:

libs/prisma/facilities-data/prisma/schema.prisma

Generate Prisma Client

pnpm nx run facilities-data:prisma:generate

Run Migrations

pnpm nx run facilities-data:prisma:migrate:dev

Seed Data

pnpm nx run facilities-data:prisma:seed

Local Development

Using Infisical

infisical run --env=dev --path=/facilities --recursive -- \
pnpm nx serve facilities-api

Using .env

Create a .env file in the project root:

DATABASE_URL=postgresql://postgres:postgres@localhost:5432/facilities_db
PORT=3106
NODE_ENV=development

Then run:

pnpm nx serve facilities-api

Docker

Build Image

pnpm nx run facilities-api:container-local

Run Container

docker run -p 3106:3106 \
-e DATABASE_URL="postgresql://..." \
facilities-api:latest

Swagger Configuration

Swagger UI is mounted at /api/docs with:

  • Theme: One Dark
  • Persist Authorization: Enabled
  • Request Duration: Displayed

CDN redirects are configured for Swagger assets to avoid 404s in bundled deployments.