Deployment: hbf-session-manager
Infrastructure config for this service. Full platform deployment:
docs/architecture/deployment.md
Runtime
- Port: 3000
- Base image: node:22-slim (multi-stage)
- Start command:
npm run start:prod - Health check: none defined
Required Environment Variables
| Variable | Example | Description |
|---|---|---|
| PORT | 3000 | HTTP listening port |
| DB_HOST | localhost | MySQL host |
| DB_PORT | 3306 | MySQL port |
| DB_USERNAME | root | MySQL user |
| DB_PASSWORD | secret | MySQL password |
| DB_NAME | hbf-session-manager | MySQL database name |
| CORE_URL | http://hbf-core:8080 | hbf-core API base URL |
| CORE_TOKEN | token | Auth token for hbf-core |
| NLP_URL | http://nlp:8080 | NLP service base URL |
| CHAT_SESSION_CHECK_INTERVAL_IN_MINS | 5 | Interval to check chat sessions |
| NLP_PIPELINE_CHECK_INTERVAL_IN_MINS | 5 | Interval to check NLP pipelines |
| NLP_PIPELINE_POLL_INTERVAL_IN_SECS | 10 | NLP pipeline poll frequency |
| NLP_PIPELINE_POLL_TIMEOUT_IN_SECS | 300 | NLP pipeline poll timeout |
| SESSION_SERVICE_URL | http://session:3000 | Session service base URL |
| SESSION_SERVICE_REQUEST_TIMEOUT | 5000 | Session service request timeout (ms) |
| FIND_CHAT_SESSIONS_REQUEST_PAGE_SIZE | 100 | Page size for chat session queries |
| BOT_EXPIRE_CONVERSATION_AFTER_DEFAULT_VALUE | 15 | Default conversation expiry (minutes) |
| EVENT_PUBLISHER_URL | http://event-publisher:3000 | Event publisher service URL |
| FIND_SURVEYS_REQUEST_PAGE_SIZE | 100 | Page size for survey queries |
| PINO_LOGGER_USE | true | Enable Pino logger |
| PINO_LOGGER_LEVEL | info | Pino log level |
| ELASTIC_APM_ACTIVE | true | Enable Elastic APM |
| ELASTIC_APM_SERVER_URL | http://apm:8200 | APM server URL |
| ELASTIC_APM_SECRET_TOKEN | token | APM auth token |
| ELASTIC_APM_SERVICE_NAME | hbf-sessions | APM service identifier |
| EMAIL_HOST | smtp.example.com | SMTP host |
| EMAIL_PORT | 587 | SMTP port |
| EMAIL_SECURE | false | Use TLS for SMTP |
| EMAIL_USERNAME | user | SMTP username |
| EMAIL_PASSWORD | pass | SMTP password |
| EMAIL_FROM_ADDRESS | noreply@helvia.ai | Sender email address |
| EMAIL_FROM_NAME | Helvia | Sender display name |
| EMAIL_IGNORE_TLS | false | Skip TLS verification |
| CONSOLE_URL | https://console.helvia.ai | Console frontend URL |
Docker
# Build
docker build -t hbf-session-manager .
# Run (local dev)
docker compose up
docker-compose includes MySQL 8.0.34 (DB name: hbf-session-manager).
CI/CD
- Trigger: push to main/staging/develop
- Steps: SonarQube audit -> Docker build -> Push to ECR -> Deploy to EKS
- Deploy target: AWS EKS (helvia-dev, helvia-stg, helvia)
Notes
- Elastic APM support for distributed tracing.
- Connects to NLP and event-publisher services for session lifecycle management.
- Sends emails for session events (e.g., transcript delivery).