Outbox dispatcher (background thread, FOR UPDATE SKIP LOCKED claim, exponential backoff, no transaction held during HTTP I/O). n8n callback endpoint with shared-secret auth and idempotency by event ID. Automation nav + UI with manual retry. 49 backend tests passing, ruff clean. Fixed a crash-on-redelivery bug in seeded outbox payloads and made the dispatcher defensive against malformed payloads. Verified the full live round trip against a real n8n instance: return -> outbox -> dispatcher -> n8n workflow -> callback -> succeeded, including the S5 failed-retry demo scenario.
36 lines
1.0 KiB
Bash
36 lines
1.0 KiB
Bash
COMPOSE_PROJECT_NAME=mobilityops
|
|
MOBILITYOPS_ENV=development
|
|
MOBILITYOPS_DEMO_MODE=true
|
|
MOBILITYOPS_PUBLIC_URL=http://localhost:1228
|
|
MOBILITYOPS_API_URL=http://localhost:8128
|
|
DATABASE_URL=postgresql+psycopg://mobilityops:mobilityops@db:5432/mobilityops
|
|
POSTGRES_DB=mobilityops
|
|
POSTGRES_USER=mobilityops
|
|
POSTGRES_PASSWORD=mobilityops
|
|
APP_SECRET=replace-in-production
|
|
DEMO_TODAY=2026-08-01
|
|
TZ=Europe/Brussels
|
|
|
|
# n8n
|
|
N8N_BASE_URL=http://n8n:5678
|
|
N8N_WEBHOOK_URL=http://n8n:5678/webhook/mobilityops-return
|
|
N8N_ENCRYPTION_KEY=replace-me
|
|
N8N_BASIC_AUTH_ACTIVE=true
|
|
N8N_BASIC_AUTH_USER=admin
|
|
N8N_BASIC_AUTH_PASSWORD=change-me
|
|
MOBILITYOPS_CALLBACK_TOKEN=replace-me-n8n-callback-token
|
|
|
|
# RAGcore integration
|
|
KNOWLEDGE_PROVIDER=demo
|
|
RAGCORE_BASE_URL=http://ragcore-api:8000
|
|
RAGCORE_TENANT=northstar-mobility-demo
|
|
RAGCORE_WORKSPACE=mobilityops
|
|
RAGCORE_COLLECTION=internal-procedures
|
|
RAGCORE_API_TOKEN=
|
|
|
|
# ITWorx MCP Hub integration
|
|
MCP_HUB_REGISTRATION_ENABLED=false
|
|
MCP_HUB_BASE_URL=http://itworx-mcp-hub:8000
|
|
MCP_HUB_SERVICE_TOKEN=
|
|
MCP_PROVIDER_ID=mobilityops
|