Skip to content

Configuration

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

Nguồn: packages/core/src/common/environments.ts + các khoá chứng chỉ của package này. Licensing service đọc tập env application/DB/Redis/auth chuẩn của core; chỉ khoá chứng chỉ là riêng của package.

Application

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_APPLICATION_NAMEstringlicensingTên service
APP_ENV_APPLICATION_CODEstringSVC-00140-LICENSINGService code (gán lại từ SVC-00110; xem ADR-0002)
APP_ENV_APPLICATION_SECRETstring✓ (cho cert)Secret AES-256-GCM để mã hoá payload chứng chỉ
APP_ENV_SERVER_HOSTstringlocalhostHost bind
APP_ENV_SERVER_PORTnumber31120Cổng HTTP lắng nghe
APP_ENV_SERVER_BASE_PATHstring/v1/api/licensingTiền tố route
APP_ENV_SNOWFLAKE_WORKER_IDnumber11Snowflake worker ID

Database

TênKiểuBắt buộcMô tả
APP_ENV_POSTGRES_HOST / _PORT / _DATABASE / _USERNAME / _PASSWORDstringKết nối PostgreSQL (PostgresCoreDataSource)

Redis (component cache)

TênKiểuMặc địnhMô tả
APP_ENV_CACHE_REDIS_MODEsingle | clusterChế độ kết nối
APP_ENV_CACHE_REDIS_IDENTIFIERstringcacheĐịnh danh logic
APP_ENV_CACHE_REDIS_HOST / _PORTstring / numberEndpoint chế độ single
APP_ENV_CACHE_REDIS_CLUSTER_NODESstringhost:port ngăn cách bằng dấu phẩy (chế độ cluster)
APP_ENV_CACHE_REDIS_PASSWORDstringPassword Redis

Không env Kafka hay BullMQ nào được tiêu thụ — các component đó không được đăng ký.

Auth

TênKiểuMô tả
APP_ENV_IDENTITY_SERVICE_BASE_URLstringBase URL identity để xác minh JWKS
APP_ENV_JWKS_REST_PATHstringPath endpoint JWKS
APP_ENV_BASIC_AUTH_USERNAME / _PASSWORDstringCredential HTTP Basic (chiến lược auth thay thế)

Riêng service — Chứng chỉ

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_LICENSING_ED25519_PRIVATE_KEYstring (PEM)✓ (để ký)Private key Ed25519 để ký chứng chỉ
APP_ENV_LICENSING_ED25519_PUBLIC_KEYstring (PEM)✓ (consumer xác minh)Public key Ed25519 — gửi tới service verifier qua @nx/core
APP_ENV_LICENSING_CERT_TTL_SECONDSnumber86400Cert TTL → cả Redis EX và payload certExpiresAt
APP_ENV_LICENSING_SERVICE_BASE_URLstringĐịnh nghĩa trong env registry của core; không dùng lúc runtime (consumer đọc cert cache, không gọi service)

Suy giảm mềm: nếu thiếu APP_ENV_LICENSING_ED25519_PRIVATE_KEY hoặc APP_ENV_APPLICATION_SECRET, publishCertificate() log một cảnh báo và bỏ qua sinh cert. License vẫn phát hành, nhưng License.certificatenull và consumer nhận null từ LicenseMiddleware.

2. Feature Flags

FlagMặc địnhOwnerMô tả
KhôngKhông có runtime feature flag. Entitlement PolicyFeature là dữ liệu domain, không phải flag deploy.

3. Dữ liệu seed

Các process migration ở src/migrations/processes/ — tất cả alwaysRun: true (upsert idempotent) lúc bootstrap (RUN_MODE=migrate).

FileSeedIdempotentGhi chú
licensing-0001-seed-permissions.tsTất cả LicensingPermissions (CRUD trên 4 subject + hành động vòng đời license)Upsert mỗi permission theo code
licensing-0002-seed-free-trial-plan.ts1 Policy (FREE_TRIAL: TRIAL, 30 ngày, ACTIVATED, product Trial)Upsert theo (product, type, status)
licensing-0003-seed-role-permissions.tsGrant TẤT CẢ permission licensing cho OWNER, EMPLOYEE, CASHIERBaseline rộng — siết sau qua API policy-definition
licensing-0004-seed-guest-permissions.tsGrant License.issueFreeTrial cho GUEST (domain wildcard *)Trial tự phục vụ trước onboarding merchant

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

Loại configurationMã hoáĐọc bởi
KhôngLicensing không dùng bảng Configuration theo từng merchant. Secret chứng chỉ đến từ env, không phải config runtime mã hoá.

5. Trang liên quan

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