Skip to content

Configuration

1. Biến môi trường

Khoá core kế thừa từ EnvironmentKeys của @nx/core; khoá riêng ledger trong src/common/environments.ts.

Core (chọn lọc)

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_PORTnumber3000Cổng HTTP lắng nghe (ngoài 31060)
APP_ENV_BASE_PATHstring/v1/api/ledgerTiền tố route
APP_ENV_NODE_IDnumberSnowflake worker ID (6)
APP_ENV_DB_URLstringKết nối PostgreSQL
APP_ENV_S3_BUCKETstringledgerBucket S3 đích
RUN_MODEstringmigrate short-circuit đăng ký component/service/controller

Kafka

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_KAFKA_BROKERSstringBrokers ngăn cách bằng dấu phẩy
APP_ENV_KAFKA_CLIENT_IDstringSVC-00060-LEDGERClient id producer/consumer
APP_ENV_KAFKA_GROUP_IDstringSVC-00060-LEDGER_GROUPConsumer group
APP_ENV_KAFKA_CONSUMER_COUNTnumber1*Số instance consumer worker
APP_ENV_KAFKA_SASL_ENABLEbooleantrueBật/tắt SASL
APP_ENV_KAFKA_SASL_MECHANISMstringSCRAM-SHA-512Cơ chế SASL
APP_ENV_KAFKA_SASL_USERNAME / _PASSWORDstringCredential SASL

* int() của giá trị chưa đặt — đặt rõ ràng cho >1.

WebSocket (role worker)

TênKiểuMặc địnhMô tả
APP_ENV_WEBSOCKET_REDIS_MODEsingle|clustersingleTopology Redis emitter
APP_ENV_WEBSOCKET_REDIS_HOST / _PORT / _PASSWORD / _DBlocalhost/6379/—/0Kết nối chế độ single
APP_ENV_WEBSOCKET_REDIS_CLUSTER_NODESstringNodes chế độ cluster (bắt buộc nếu cluster)
APP_ENV_WEBSOCKET_REDIS_IDENTIFIER / _MAX_RETRYledger-ws-redis/5

Riêng service

TênKiểuMặc địnhMô tả
APP_ENV_APPLICATION_ROLESstringapi,workerCSV của api/worker; không hợp lệ/rỗng fallback cả hai
APP_ENV_LEDGER_ENCRYPTION_KEYstringKhoá AES-256-GCM (bắt buộc cho encrypt/decrypt)
APP_ENV_SWEEP_INTERVAL_MSnumber300000Chu kỳ quét recovery
APP_ENV_STALL_THRESHOLD_MSnumber180000Cutoff job kẹt
APP_ENV_JOB_TIMEOUT_MSnumber120000Timeout generate mỗi job (Promise.race)
APP_ENV_WORKER_IDLE_TIMEOUT_MSnumberTimeout idle worker
APP_ENV_FORCE_GENERATEbooleanfalseBỏ qua skip in-flight + dùng job mới nhất (testing)
APP_ENV_ALLOW_CURRENT_PERIODbooleanfalseBao gồm tháng/quý hiện tại khi mở rộng batch
APP_ENV_EXTERNAL_DATA_BASE_URLstringBase URL nguồn dữ liệu ngoài

2. Feature Flags

FlagMặc địnhHiệu ứng
APP_ENV_FORCE_GENERATEfalseTạo lại ngay cả khi không có job PENDING (testing)
APP_ENV_ALLOW_CURRENT_PERIODfalseTạo batch bao gồm kỳ đang diễn ra

3. Dữ liệu seed

src/migrations/processes/migration-process.ts chạy theo thứ tự. alwaysRun: true = seed permission idempotent; false = một lần.

FileSeedAlways runGhi chú
ledger-0001-seed-permissionshàng LedgerSystemPermissionsUpsert theo code
ledger-0002-seed-tax-declaration-levelsTaxDeclarationLevelTIRE_1, TIRE_2, TIRE_3Dải thuế + rule lịch nộp
ledger-0003-seed-merchant-ledger-configsMột MerchantLedgerConfig mỗi merchant (năm hiện tại, requiredLedgerTypes=[S1a-HKD], origin: migration)Bỏ qua nếu config tồn tại; bỏ qua hoàn toàn nếu thiếu bậc TIRE_1
ledger-0004-seed-role-permissionsGrant role→permission cho permission ledgerMap code LedgerSystemPermissions tới role

4. Lưu trữ Configuration

Config runtime theo từng merchant nằm trong bảng MerchantLedgerConfig (không phải bảng Configuration chung). Service này không lưu credential mã hoá nào; secret duy nhất là APP_ENV_LEDGER_ENCRYPTION_KEY (env).

ConfigLưu trữĐọc bởi
Loại sổ bắt buộc, lịch nộp, bậc thuếledger.MerchantLedgerConfigMerchantLedgerConfigService, validate batch

5. Trang liên quan

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.