Cấu hình
1. Biến môi trường
Nguồn:
EnvironmentKeystrong@nx/core/src/common/environments.ts. Service đọc quaapplicationEnvironment.get<T>(key).
Core runtime
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_PORT | number | 3000 | Cổng lắng nghe HTTP (container) | |
APP_ENV_HOST | string | 0.0.0.0 | Địa chỉ bind | |
APP_ENV_BASE_PATH | string | /v1/api/sale | Tiền tố route | |
APP_ENV_NODE_ID | number | - | ✓ | Snowflake worker ID - phải là 3 cho sale |
APP_ENV_LOG_LEVEL | info|debug|warn|error | info | Cấp độ logger | |
APP_ENV_NODE_ENV | string | development | Nạp qua dotenv-flow | |
RUN_MODE | migrate|server | migrate chuyển sang entry migration |
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 |
APP_ENV_DB_POOL_MAX | number | 10 | Kích thước pool tối đa |
Redis (chỉ cache auth)
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_REDIS_HOST | string | - | Tùy chọn - auth cache tắt khi không đặt | |
APP_ENV_REDIS_PORT | number | 6379 | - | |
APP_ENV_REDIS_PASSWORD | string | - | - | |
APP_ENV_REDIS_DB | number | 0 | - |
Kafka (chỉ producer)
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_KAFKA_BROKERS | csv | - | ✓ | Danh sách broker, phân tách bằng dấu phẩy |
APP_ENV_KAFKA_CLIENT_ID | string | SVC-00030-SALE_PRODUCER | Client id của producer | |
APP_ENV_KAFKA_SASL_ENABLE | 'true'|'false' | false | Bật/tắt xác thực SASL | |
APP_ENV_KAFKA_SASL_MECHANISM | enum | NA | Khi SASL bật | |
APP_ENV_KAFKA_SASL_USERNAME | string | NA | Khi SASL bật | |
APP_ENV_KAFKA_SASL_PASSWORD | string | NA | Khi SASL bật |
Sale chỉ đăng ký Producer - không có Kafka consumer trong package này.
Authentication
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_JWKS_URL | url | - | ✓ | Endpoint JWKS của identity service |
APP_ENV_BASIC_AUTH_* | string | - | Thông tin xác thực basic cho service-to-service |
Mạng các service anh em
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_PRICING_BASE_URL | url | - | ✓ | Base HTTP @nx/pricing cho PricingNetworkService |
APP_ENV_COMMERCE_BASE_URL | url | - | ✓ | Base HTTP @nx/commerce (đọc liên package) |
2. Feature Flags
Hiện không có feature flag toàn cục. Các công tắc policy huỷ đơn / pricing v2 nằm trong các bản ghi
Configurationtheo từng merchant (xem §4).
3. Dữ liệu Seed
Process migration trong
src/migrations/processes/. Chạy khi bootstrap (prestart→bun run rebuild→migrate.ts).
| File | Phạm vi | Idempotency Key | Ghi chú |
|---|---|---|---|
sale-0001-seed-permissions.ts | Permission (catalogue RBAC) | code | Tổng hợp tất cả nhóm permission của sale (controllers/permissions.ts) |
sale-0002-create-pos-session-report.ts | Bootstrap schema DB cho PosSessionReport | n/a (DDL) | Tạo bảng report nếu chưa có - tách khỏi runner migration chính |
4. Lưu trữ Configuration (bảng Configuration)
| Loại configuration | Mã hóa | Đọc bởi |
|---|---|---|
| Thông tin xác thực nhà cung cấp thanh toán theo từng merchant (ở đây chỉ đọc) | AES-256-GCM (mã hoá bởi @nx/payment) | PaymentWebhookService (hiếm - phần lớn đọc tại MQ-Pay; sale chủ yếu dùng webhook payload) |
| Tỷ lệ quy đổi điểm loyalty theo từng merchant | - | CustomerPointService.awardPointsForOrder |
Sale đọc từ
Configuration; việc ghi do service phát hành cấu hình sở hữu (vd: payment).
5. Thứ tự Boot
6. Trang liên quan
- Vận hành - triển khai + observability
- API Sự kiện - constant cho topic Kafka
- Quyết định