Skip to content

Configuration

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

Nguồn: khoá môi trường @nx/core + common/ của package này. Signal dùng khoá VerifierApplication chuẩn cộng khoá riêng WebSocket-, Redis-, và Kafka- bên dưới.

Application & Identity

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_APPLICATION_NAMEstringĐịnh danh service
APP_ENV_SERVER_PORTnumber3000Cổng HTTP lắng nghe (dev 31090)
APP_ENV_SERVER_BASE_PATHstring/v1/apiTiền tố route (base hiệu lực /v1/api/signal)
APP_ENV_IDENTITY_SERVICE_BASE_URLstringBase URL identity để xác minh JWKS
APP_ENV_JWKS_REST_PATHstring/jw-certsPath endpoint JWKS
APP_ENV_SNOWFLAKE_WORKER_IDnumber9Snowflake worker ID

Database (core datasource)

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_POSTGRES_*Khoá Postgres core chuẩn (lưu notification + authz)

WebSocket — ECDH

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_WEBSOCKET_ECDH_INFOstringChuỗi info HKDF; phải khớp giá trị phía client

WebSocket — Redis (bus pub/sub)

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_WEBSOCKET_REDIS_MODEsingle | clustersingleChế độ kết nối
APP_ENV_WEBSOCKET_REDIS_HOSTstringlocalhostHost (chế độ single)
APP_ENV_WEBSOCKET_REDIS_PORTnumber6379Port (chế độ single)
APP_ENV_WEBSOCKET_REDIS_DBnumber0DB index (chế độ single)
APP_ENV_WEBSOCKET_REDIS_PASSWORDstringPassword
APP_ENV_WEBSOCKET_REDIS_MAX_RETRYnumber5Max retry (chế độ single)
APP_ENV_WEBSOCKET_REDIS_CLUSTER_NODESstringclusterCặp host:port ngăn cách bằng dấu phẩy (bắt buộc ở chế độ cluster)

Đây là Redis duy nhất Signal dùng — không có Redis cache/queue riêng. Mọi publisher (Signal + emitter service) phải trỏ tới cùng instance/cluster.

Kafka — consumer activity-notification

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_KAFKA_BROKERSstringBrokers ngăn cách bằng dấu phẩy; rỗng/chưa đặt → fail-fast lúc boot
APP_ENV_KAFKA_CLIENT_IDstringSVC-00090-SIGNAL_NOTIF_CONSUMERClient id consumer
APP_ENV_KAFKA_GROUP_IDstringSVC-00090-SIGNAL_NOTIF_CONSUMER_GROUPGroup id consumer
APP_ENV_KAFKA_SASL_ENABLEbooleanfalseBật SASL
APP_ENV_KAFKA_SASL_MECHANISMstringnếu SASLvd SCRAM-SHA-512
APP_ENV_KAFKA_SASL_USERNAMEstringnếu SASL
APP_ENV_KAFKA_SASL_PASSWORDstringnếu SASL

2. Feature Flags

Không. Hành vi hoàn toàn do env vars ở trên chi phối (công tắc chế độ: Redis single/cluster, Kafka SASL on/off).

3. Dữ liệu seed

Các process migration ở src/migrations/processes/alwaysRun: true, idempotent.

FileSeedIdempotentGhi chú
signal-0001-seed-permissions.tsPermission WebSocketClient.* (6)Upsert mỗi entry SignalPermissions theo code
signal-0002-seed-role-permissions.tsGrant role→permissionGrant mọi permission signal cho OWNER, EMPLOYEE, CASHIER qua PolicyDefinition; bỏ qua cái đã grant

Signal không có schema migration — nó không sở hữu bảng nào. Các migration này chỉ seed dữ liệu authorization vào bảng @nx/core.

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

Không dùng. Signal không giữ config runtime theo từng merchant.

5. Trang liên quan

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