Cấu hình
1. Biến môi trường
Nguồn:
EnvironmentKeystrong@nx/core/src/common/environments.ts. Service đọc quaapplicationEnvironment.get<T>(key).
Core runtime
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_PORT | number | 3000 | Cổng HTTP listen | |
APP_ENV_HOST | string | 0.0.0.0 | Địa chỉ bind | |
APP_ENV_BASE_PATH | string | /v1/api/identity | Tiền tố route | |
APP_ENV_NODE_ID | number | — | ✓ | Snowflake worker ID — phải là 1 cho identity |
APP_ENV_LOG_LEVEL | info|debug|warn|error | info | — | |
APP_ENV_NODE_ENV | string | development | dotenv-flow loader | |
RUN_MODE | migrate|server | migrate chuyển sang entry migration |
Database
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_DB_URL | string | — | ✓ | URL kết nối PostgreSQL |
APP_ENV_DB_POOL_MAX | number | 10 | — |
Redis (OTP + auth cache)
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_REDIS_HOST | string | — | ✓ | OTP yêu cầu Redis; auth cache là tuỳ chọn |
APP_ENV_REDIS_PORT | number | 6379 | — | |
APP_ENV_REDIS_PASSWORD | string | — | — | |
APP_ENV_REDIS_DB | number | 0 | — |
JWKS / Ký token
| Tên | Kiểu | Mặc định | Bắt buộc | Mô tả |
|---|---|---|---|---|
APP_ENV_APPLICATION_SECRET | string | — | ✓ | Dùng bởi CryptoUtility cho AES-256-GCM (mã hoá mail/SMS configs) |
APP_ENV_JWKS_PRIVATE_KEY (hoặc k8s secret) | PEM | — | ✓ | Private key ES256 để ký JWT |
APP_ENV_JWKS_PUBLIC_KEY (hoặc k8s secret) | PEM | — | ✓ | Public key tương ứng được publish tại /jw-certs |
Tên env-var chính xác phụ thuộc vào cấu hình
@nx/core/IssuerApplication. Tham khảo JWT helper của@nx/coređể biết tên chuẩn.
Mail (SMTP)
| Tên | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
APP_ENV_SMTP_HOST | string | smtp.gmail.com | Máy chủ SMTP |
APP_ENV_SMTP_PORT | number | 587 | — |
APP_ENV_SMTP_USERNAME | string | — | — |
APP_ENV_SMTP_PASSWORD | string | — | — |
WebSocket
| Tên | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
APP_ENV_WEBSOCKET_REDIS_MODE | SINGLE|CLUSTER | SINGLE | Chế độ single-instance vs Redis Cluster cho WS emitter |
2. Feature Flags
| Flag | Lưu trữ | Mặc định | Mô tả |
|---|---|---|---|
| OTP bật theo channel | Bản ghi Configuration | enabled | Bật/tắt email vs phone OTP |
| Mail templates theo merchant | Configuration theo merchantId | global | Override template hệ thống |
3. Dữ liệu Seed
7 process migration trong
src/migrations/processes/. Chạy khi bootstrap.
| File | Phạm vi | Ghi chú |
|---|---|---|
identity-0001-seed-roles.ts | 6 system roles | SUPER_ADMIN, ADMIN, OPERATOR, OWNER, EMPLOYEE, CUSTOMER (bất biến) |
identity-0002-seed-users.ts | User admin/test mặc định | Tiện cho dev |
identity-0003-seed-table-configurations.ts | Mặc định OTP/mail/password trong Configuration | OTP TTLs, giới hạn số lần thử, lockout |
identity-0004-seed-mail-configurations.ts | Mail templates (verify-email, forgot-password, welcome, password-changed × en/vi) | 8 bản ghi |
identity-0005-seed-permissions.ts | Toàn bộ IdentityPermissions | Permission CRUD theo controller; alwaysRun=true |
identity-0006-seed-sms-configurations.ts | Cấu hình provider VN Pay SMS | đã mã hoá |
identity-0007-seed-sms-templates.ts | SMS templates (phone-auth, add-phone × en/vi) | 4 bản ghi |
4. Cách dùng bảng Configuration
Identity đọc/ghi:
| Loại Configuration | Group | Mã hoá | Đọc bởi |
|---|---|---|---|
| Mail validation defaults (CODE_LENGTH, CODE_EXPIRY, v.v.) | MAIL_VALIDATION | — | hằng số MailValidationFields |
| Mail templates | MAIL | — | MailTemplateService |
| OTP policy | OTP | — | BaseOTPBasedMFAService |
| SMS templates | SMS | — | SmsTemplateService |
| SMS provider credentials | SMS_PARAMETER_CONFIGURE | AES-256-GCM | MQSMSComponent |
Templates có thể override theo từng merchant qua partial unique index
(group, code, principalId, principalType).