Configuration
1. Biến môi trường
Nguồn:
packages/core/src/common/environments.ts(EnvironmentKeys) +src/common/của package này.
Core
| Tên | Kiểu | Mặc định | Bắt buộc | Phạm vi | Mô tả |
|---|---|---|---|---|---|
APP_ENV_PORT | number | 3000 | runtime | Port HTTP lắng nghe (external 31110 ở dev) | |
APP_ENV_HOST | string | 0.0.0.0 | runtime | Host bind | |
APP_ENV_BASE_PATH | string | /v1/api/outreach | runtime | Prefix route | |
APP_ENV_NODE_ID | number | 10 | ✓ | runtime | Snowflake worker ID |
APP_ENV_LOG_LEVEL | info|debug|warn|error | info | runtime | Mức logger |
Database
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_DB_URL | string | — | ✓ | URL kết nối PostgreSQL (DB nx_seller, schema outreach) |
APP_ENV_DB_POOL_MAX | number | 10 | Kích thước pool tối đa |
WebSocket Redis
Tiêu thụ bởi
ApplicationWebSocketComponent. Mode chọn single vs cluster; cluster yêu cầu..._CLUSTER_NODEShoặc boot fail vớiWEBSOCKET_REDIS_CLUSTER_NODES_NOT_CONFIGURED.
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_WEBSOCKET_REDIS_MODE | single|cluster | single | Topology Redis của emitter | |
APP_ENV_WEBSOCKET_REDIS_IDENTIFIER | string | outreach-ws-redis | Tên kết nối single-mode | |
APP_ENV_WEBSOCKET_REDIS_HOST | string | localhost | Host single-mode | |
APP_ENV_WEBSOCKET_REDIS_PORT | number | 6379 | Port single-mode | |
APP_ENV_WEBSOCKET_REDIS_PASSWORD | string | — | Redis password (cả hai mode) | |
APP_ENV_WEBSOCKET_REDIS_DB | number | 0 | Chỉ số DB single-mode | |
APP_ENV_WEBSOCKET_REDIS_MAX_RETRY | number | 5 | Max retry single-mode | |
APP_ENV_WEBSOCKET_REDIS_CLUSTER_IDENTIFIER | string | outreach-ws-redis-cluster | Tên kết nối cluster-mode | |
APP_ENV_WEBSOCKET_REDIS_CLUSTER_NODES | string | — | ✓ (chỉ cluster) | Seed cluster host:port,host:port,... |
Không có biến
APP_ENV_KAFKA_*— Outreach không có Kafka.
2. Feature Flags
Không. Không có toggle feature runtime; hành vi cố định trong code.
3. Dữ liệu Seed
Các migration process trong
src/migrations/processes/. Load bởigetMigrationProcessestrongmigration-process.ts; cả hai chạy vớialwaysRun: true(re-seed idempotent mỗi lần migrate).
| File | Seeds | Idempotent | Ghi chú |
|---|---|---|---|
outreach-0001-seed-permissions.ts | Quyền CRUD cho Inquiry + Subscriber (OutreachPermissions) | ✓ | Upsert theo code (create hoặc update) |
outreach-0002-seed-role-permissions.ts | Cấp tất cả quyền outreach cho role OWNER, EMPLOYEE, CASHIER | ✓ | Baseline khoan dung; skip đã-cấp; siết sau qua merchant policy API |
4. Lưu trữ Configuration (bảng Configuration)
Không dùng. Outreach không có dòng Configuration theo từng merchant — cả hai bảng là global và không có credential encrypted.