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 | Cổng HTTP lắng nghe (bên ngoài là 31110 ở dev) | |
APP_ENV_HOST | string | 0.0.0.0 | runtime | Host để bind | |
APP_ENV_BASE_PATH | string | /v1/api/outreach | runtime | Tiền tố của route | |
APP_ENV_NODE_ID | number | 10 | ✓ | runtime | Snowflake worker ID |
APP_ENV_LOG_LEVEL | info|debug|warn|error | info | runtime | Mức log |
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
Được
ApplicationWebSocketComponenttiêu thụ. Mode chọn giữa single và cluster; chế độ cluster yêu cầu..._CLUSTER_NODES, nếu không quá trình khởi động sẽ lỗi 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 | Cấu trúc Redis của emitter | |
APP_ENV_WEBSOCKET_REDIS_IDENTIFIER | string | outreach-ws-redis | Tên kết nối ở chế độ single | |
APP_ENV_WEBSOCKET_REDIS_HOST | string | localhost | Host ở chế độ single | |
APP_ENV_WEBSOCKET_REDIS_PORT | number | 6379 | Port ở chế độ single | |
APP_ENV_WEBSOCKET_REDIS_PASSWORD | string | - | Mật khẩu Redis (cả hai chế độ) | |
APP_ENV_WEBSOCKET_REDIS_DB | number | 0 | Chỉ số DB ở chế độ single | |
APP_ENV_WEBSOCKET_REDIS_MAX_RETRY | number | 5 | Số lần thử lại tối đa ở chế độ single | |
APP_ENV_WEBSOCKET_REDIS_CLUSTER_IDENTIFIER | string | outreach-ws-redis-cluster | Tên kết nối ở chế độ cluster | |
APP_ENV_WEBSOCKET_REDIS_CLUSTER_NODES | string | - | ✓ (chỉ cluster) | Danh sách seed cluster host:port,host:port,... |
Không có biến
APP_ENV_KAFKA_*- Outreach không có Kafka.
2. Feature Flags
Không có. Không có công tắc feature lúc runtime; hành vi được cố định trong code.
3. Dữ liệu Seed
Các migration process nằm trong
src/migrations/processes/. ĐượcgetMigrationProcessesnạp trongmigration-process.ts; cả hai chạy vớialwaysRun: true(seed lại idempotent mỗi lần migrate).
| File | Seed | Idempotent | Ghi chú |
|---|---|---|---|
outreach-0001-seed-permissions.ts | Các permission CRUD cho Inquiry + Subscriber (OutreachPermissions) | ✓ | Upsert theo code (tạo hoặc cập nhật) |
outreach-0002-seed-role-permissions.ts | Cấp toàn bộ permission của outreach cho các role OWNER, EMPLOYEE, CASHIER | ✓ | Baseline rộng rãi; bỏ qua những grant đã có; siết lại 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 đều dùng chung toàn cục và không có thông tin đăng nhập được mã hoá.