Configuration
1. Biến môi trường
Nguồn:
packages/core/src/common/environments.ts+packages/pricing/src/common/keys.ts.
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 (ngoài 31070 ở dev) | |
APP_ENV_HOST | string | 0.0.0.0 | runtime | Host bind | |
APP_ENV_BASE_PATH | string | /v1/api/pricing | runtime | Tiền tố route | |
APP_ENV_NODE_ID | number | 7 | ✓ | 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 (schema pricing) |
Redis / Kafka
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_REDIS_HOST / APP_ENV_REDIS_PORT | string / number | — / 6379 | ✓ | Chỉ cache permission authorization |
APP_ENV_KAFKA_BROKERS | string | — | ✓ | Brokers ngăn cách bằng dấu phẩy; binding throw nếu rỗng |
APP_ENV_KAFKA_CLIENT_ID | string | PRICING_PRODUCER / PRICING_CONSUMER | Client id producer/consumer | |
APP_ENV_KAFKA_GROUP_ID | string | PRICING_CONSUMER_GROUP | CDC consumer group | |
APP_ENV_KAFKA_SASL_ENABLE | string ('true') | chưa đặt | Bật khối SASL bên dưới | |
APP_ENV_KAFKA_SASL_MECHANISM / _USERNAME / _PASSWORD | string | NA | Credential SASL (chỉ khi bật) |
Riêng service
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_DEFAULT_TAX_RATE | string | — | Khai báo trong PricingEnvironmentKeys nhưng không dùng — không calculator nào đọc nó |
Sale (caller) cần
APP_ENV_PRICING_SERVICE_BASE_URL+APP_ENV_BASIC_AUTH_USERNAME/PASSWORDđể tới pricing. Những cái đó nằm trong config của sale, không phải pricing.
2. Feature Flags
Không. Không có runtime feature flag. Tách v1/v2 là phân biệt route ở tầng code (/simulation vs /simulation-v2), không phải một flag.
3. Dữ liệu seed
Các process migration ở
src/migrations/processes/—alwaysRun: true, idempotent, chạy lúc bootstrap (modemigrate).
| File | Seed | Idempotent | Ghi chú |
|---|---|---|---|
pricing-0001-seed-permissions.ts | PricingPermissions (permission resource theo từng controller) | ✓ | Upsert theo code (create hoặc update) |
pricing-0002-seed-role-permissions.ts | Grant TẤT CẢ permission pricing cho OWNER, EMPLOYEE, CASHIER | ✓ | Baseline rộng — siết theo role sau qua API policy-definition merchant |
CDC worker cũng "seed" FareSet/Fare lúc runtime, nhưng đó là nạp dữ liệu (xem API Events), không phải migration.
4. Lưu trữ Configuration (bảng Configuration)
Không dùng. Pricing không giữ credential mã hoá theo merchant hay hàng config runtime nào.