Configuration
Asset đọc cấu hình từ môi trường của host. Host phải cung cấp các biến S3 dưới đây trước khi mount
ApplicationAssetComponent. Các key được khai báo trongpackages/core/src/common/environments.ts(EnvironmentKeys).
1. Biến môi trường
Riêng cho service (S3 / Minio)
| Tên | Kiểu | Mặc định | Bắt buộc | Phạm vi | Mô tả |
|---|---|---|---|---|---|
APP_ENV_S3_ENDPOINT | string | — | ✓ | runtime | URL endpoint S3/Minio — truyền cho BunS3Helper |
APP_ENV_S3_ACCESS_KEY | string | — | ✓ | runtime | Access key S3/Minio |
APP_ENV_S3_SECRET_KEY | string | — | ✓ | runtime | Secret key S3/Minio |
APP_ENV_S3_BUCKET | string | unknown (fallback) | ✓ | runtime | Bucket mặc định cho route object/i18n |
APP_ENV_APPLICATION_EXPLORER_URL | string | — | runtime | Base dùng để tuyệt-đối-hóa bankLogoUrl trong registry ngân hàng VN |
APP_ENV_S3_HOST/APP_ENV_S3_API_PORTcũng tồn tại trongEnvironmentKeysnhưng không được@nx/assetđọc (nó chỉ dùngAPP_ENV_S3_ENDPOINT).
Core / DB / Redis / Kafka
N/A — được cung cấp và tiêu thụ bởi ứng dụng host, không phải asset. Asset chỉ yêu cầu các biến S3 ở trên cộng với bất cứ thứ gì host cần để bind PostgresCoreDataSource cho MetaLink.
2. Feature Flags
| Flag | Mặc định | Owner | Mô tả |
|---|---|---|---|
| — | — | — | Không có. Đường dẫn StaticAssetComponent presigned-URL bị gate bằng comment ở source-level, không phải runtime flag |
3. Dữ liệu Seed
Không có DB migration hay seed — asset không có schema riêng. Dữ liệu tham chiếu tĩnh ship trong bundle:
| File | Seeds | Idempotent | Ghi chú |
|---|---|---|---|
src/resources/banks-vn.json | Registry ngân hàng/nhà cung cấp thanh toán VN | ✓ (read-only) | Re-export thành FinanceBanksVN qua banks-vn.ts |
src/resources/banks-vn/*.png | ~60 logo ngân hàng | ✓ (read-only) | Phục vụ bởi GET /assets/banks-vn/{filename} từ resources/banks-vn cạnh file thực thi |
4. Lưu trữ Configuration (bảng Configuration)
| Configuration kind | Encryption | Read by |
|---|---|---|
| — | — | — |
N/A — asset không lưu cấu hình runtime theo từng merchant.
5. DI Bindings
| Binding key | Bound value | Bound by |
|---|---|---|
BindingKeys.APPLICATION_S3_STORAGE_HELPER (@nx/commerce/storage/s3-helper) | instance BunS3Helper | ApplicationAssetComponent.binding() |
Namespace của binding key là
@nx/commerce(BindingKeys.BASE), được kế thừa bất kể host nào mount component.