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_IDnumber-Snowflake worker ID (6)
APP_ENV_DB_URLstring-Kết nối PostgreSQL
APP_ENV_S3_BUCKETstringledgerBucket S3 đích
RUN_MODEstring-migrate short-circuit đăng ký component/service/controller

Kafka

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_KAFKA_BROKERSstring-Brokers 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 / _PASSWORDstring-Credential 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 / _DB-localhost/6379/-/0Kết nối chế độ single
APP_ENV_WEBSOCKET_REDIS_CLUSTER_NODESstring-Nodes chế độ cluster (bắt buộc nếu cluster)
APP_ENV_WEBSOCKET_REDIS_IDENTIFIER / _MAX_RETRY-ledger-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_KEYstring-Khoá 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_MSnumber-Timeout 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_URLstring-Base 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 khai báo thứ tự seedPaths. alwaysRun: true = seed permission idempotent; false = dữ liệu tham chiếu một lần (upsert theo natural key).

FileSeedAlways runGhi chú
ledger-0001-seed-permissionsCác hàng permission ledgerUpsert theo code
ledger-0004-seed-role-permissionsGrant role→permission cho permission ledgerMap code permission ledger tới role
ledger-0005-seed-ledger-identifiers6 hàng LedgerIdentifier (S1a-HKD..S2e-HKD) với i18n name/description-Upsert theo identifier
ledger-0006-seed-tax-tiers4 hàng TaxTier (TIRE_1..TIRE_4) với biên doanh thu-Upsert theo code
ledger-0007-seed-ledger-tax-configsPhương pháp thuế LedgerTaxConfig theo từng bậc (requiredLedgers, metadata.isDefault/isSelectable)-Upsert theo (taxTierId, code); bỏ qua một phương pháp nếu thiếu TaxTier của nó (chạy 0006 trước)

4. Lưu trữ Configuration

Dữ liệu tham chiếu (danh mục mẫu sổ, bậc thuế, phương pháp thuế) được seed vào các bảng ledger.* riêng, 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
Danh mục mẫu sổ HKDledger.LedgerIdentifierLedgerIdentifierController, pipeline tạo sổ
Bậc doanh thuledger.TaxTierTaxTierController
Phương pháp thuế + mẫu sổ bắt buộcledger.LedgerTaxConfigLedgerTaxConfigController
Onboarding thuế theo merchant theo nămledger.MerchantTaxConfigchỉ-schema (chưa wire repository/service)

5. Trang liên quan

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