Deployment: hbf-data-retention
Infrastructure config for this service. Full platform deployment:
docs/architecture/deployment.md
Runtime
- Port: configurable via
SERVICE_PORT(default: 3004 per .env) - Base image: node:22-slim (multi-stage)
- Start command:
npm run start:prod - Health check: none defined
Required Environment Variables
| Variable | Example | Description |
|---|---|---|
| HBF_CORE_URL | http://hbf-core:8080 | Core service base URL |
| HBF_CORE_ACCESS_TOKEN | Auth token for core service | |
| EXECUTION_INTERVAL_IN_HOURS | 6 | Polling interval for cleanup runs |
| THRESHOLD_OF_DELETION_RETIRES | 1 | Max retries before skipping a deletion |
| SERVICE_PORT | 3004 | HTTP listen port |
| AWS_REGION | AWS region (required) | |
| AWS_ACCESS_KEY | AWS access key (required) | |
| AWS_SECRET_ACCESS_KEY | AWS secret key (required) | |
| AWS_S3_BUCKET_NAME | S3 bucket name (required) | |
| MINIO_ENDPOINT | Optional MinIO endpoint URL | |
| S3_FORCE_PATH_STYLE | Force path-style S3 URLs (for MinIO, true/false) | |
| PINO_LOGGER_USE | true | Enable pino logger |
| PINO_LOGGER_LEVEL | debug | Log level |
| PINO_LOGGER_AUTO_LOGGING | false | Auto-log requests |
| ELASTIC_APM_ACTIVE | false | Enable Elastic APM agent |
| ELASTIC_APM_SERVER_URL | APM server URL | |
| ELASTIC_APM_SECRET_TOKEN | APM secret token | |
| ELASTIC_APM_SERVICE_NAME | hbf-data-retention | APM service name |
| ELASTIC_APM_ENVIRONMENT | local | APM environment |
Docker
# Build
docker build -t hbf-data-retention .
# Run (local dev)
docker compose up
docker-compose runs the service only (no ports mapped, no sidecar dependencies).
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
- Polling daemon with no HTTP endpoints. Runs periodic GDPR data cleanup against hbf-core.