Skip to content

Configuration

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

Nguồn: packages/core/src/common/environments.ts + packages/taxation/.env.development.

Core / Server

TênKiểuMặc địnhBắt buộcMô tả
RUN_MODEstartup|migratestartupstartup khởi động app + CDC consumer; migrate chạy seed
NODE_ENVstringdevelopmentMôi trường runtime
TZstringAsia/Ho_Chi_MinhMúi giờ
APP_ENV_APPLICATION_NAMEstringtaxationTên app
APP_ENV_APPLICATION_CODEstringSVC-00130-TAXATIONMã service
APP_ENV_SERVER_HOSTstringlocalhostHost để bind
APP_ENV_SERVER_PORTnumber31130Port HTTP (container 3000)
APP_ENV_SERVER_BASE_PATHstring/v1/api/taxationTiền tố route
APP_ENV_SNOWFLAKE_WORKER_IDnumber13Snowflake worker id (cố định cứng - nguy cơ trùng id nếu mở rộng)
APP_ENV_SNOWFLAKE_EPOCH_CHECKPOINTnumber1735689600000Mốc epoch cơ sở của Snowflake

Database

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_POSTGRES_HOSTstring-Host PostgreSQL
APP_ENV_POSTGRES_PORTnumber35432Port
APP_ENV_POSTGRES_USERNAMEstring-User
APP_ENV_POSTGRES_PASSWORDstring-Password
APP_ENV_POSTGRES_DATABASEstringnx_sellerDatabase (schema tax, pricing)

Identity / Auth

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_IDENTITY_SERVICE_BASE_URLstring-Base URL của identity cho JWKS
APP_ENV_JWKS_REST_PATHstring/jw-certsĐường dẫn endpoint JWKS
APP_ENV_APPLICATION_SECRETstring-App secret

Kafka (CDC consumer)

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_KAFKA_BROKERSstring-Danh sách broker, phân tách bằng dấu phẩy
APP_ENV_KAFKA_CLIENT_IDstringSVC-00130-TAXATIONClient id của consumer
APP_ENV_KAFKA_GROUP_IDstringSVC-00130-TAXATION_CONSUMER_GROUPConsumer group
APP_ENV_KAFKA_SASL_ENABLEbooleantrueBật SASL
APP_ENV_KAFKA_SASL_MECHANISMstringSCRAM-SHA-512Cơ chế SASL
APP_ENV_KAFKA_SASL_USERNAME / _PASSWORDstring-Thông tin đăng nhập SASL

2. Feature Flags

Không có. Hành vi được điều khiển bởi env vars và payload CDC.

3. Dữ liệu Seed

Các migration process trong src/migrations/processes/. Chạy ở RUN_MODE=migrate qua bun run migrate:dev. Cả bốn đều là alwaysRun: true (upsert idempotent). Dữ liệu tham chiếu VN KHÔNG được seed ở đây.

FileSeedsIdempotentGhi chú
taxation-0001-seed-discrimination-types.tsPhân loại thuế (scope tax_classification): VAT, Excise, Environmental, Luxury, PIT, CustomLàm nền cho TaxGroupItem.discriminationTypeId
taxation-0002-seed-tax-groups.ts13 tax group hệ thống + các TaxGroupItem của chúng (9 DIRECT + 4 DEDUCTION)Phân giải item theo DiscriminationType
taxation-0003-seed-permissions.tsTaxationPermissions (quyền đọc TaxGroup, TaxGroupItem, Vn*)Upsert theo code
taxation-0004-seed-role-permissions.tsCấp tất cả quyền taxation cho OWNER, EMPLOYEE, CASHIERMức cơ bản nới lỏng; siết lại sau qua policy-definition API

Tax group hệ thống (13)

Phương pháp DIRECT (9 - VAT + PIT theo ngành):

IdentifierVATPITNgành
VN_DIRECT_VAT0_PIT05_DISTRIBUTION0%0.5%Phân phối
VN_DIRECT_VAT1_PIT05_DISTRIBUTION1%0.5%Phân phối
VN_DIRECT_VAT0_PIT2_SERVICES0%2%Dịch vụ
VN_DIRECT_VAT0_PIT5_SERVICES0%5%Dịch vụ
VN_DIRECT_VAT5_PIT2_SERVICES5%2%Dịch vụ
VN_DIRECT_VAT5_PIT5_SERVICES5%5%Dịch vụ
VN_DIRECT_VAT0_PIT15_MANUFACTURING0%1.5%Sản xuất
VN_DIRECT_VAT3_PIT15_MANUFACTURING3%1.5%Sản xuất
VN_DIRECT_VAT2_PIT1_OTHER2%1%Khác

Phương pháp DEDUCTION (4 - bậc VAT):

IdentifierVAT
VN_DEDUCTION_VAT00%
VN_DEDUCTION_VAT55%
VN_DEDUCTION_VAT88%
VN_DEDUCTION_VAT1010%

Enum tham chiếu

EnumSourceValues
TaxMethodstax/tax-group/constants.ts000_DIRECT, 100_DEDUCTION
FixedTaxTypespricing/tax-type/constants.ts000_VAT, 100_EXCISE, 200_ENVIRONMENTAL, 300_LUXURY, 400_PIT, 999_CUSTOM
TaxModespricing/tax/constants.ts000_AMOUNT, 100_PERCENTAGE, 200_PER_UNIT_AMOUNT
TaxUsagespricing/tax/constants.ts000_SALE, 100_PURCHASE
TaxChargeTargetspricing/tax-type/constants.ts000_CUSTOMER, 100_MERCHANT

4. Lưu trữ Configuration (bảng Configuration)

Không dùng. Taxation không giữ cấu hình runtime theo từng merchant hay thông tin đăng nhập được mã hoá.

5. Trang liên quan

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