Skip to content

Integration

@nx/asset integrates by being mounted as IGNIS components inside host applications — not by network calls between services. Its only external dependency is S3/Minio.

1. Sister Services

Direction: mounted by (host consumes asset).

SisterDirectionSurfaceContractAuthFailure ModeIdempotency
@nx/commercehost.component(ApplicationAssetComponent)in-process componenthost JWT/Basiccomponent init throws → host boot failsn/a
@nx/financehost.component(ApplicationAssetBanksVNComponent)in-process componentpublic routesn/a
@nx/ledgerApplicationAssetComponent + MetaLinkRepository for generated PDF/XLSX uploadin-processhost JWT/Basicupload error logged per filenon-idempotent upload
@nx/coreimports MetaLink, PostgresCoreDataSource, EnvironmentKeys, crudPermissionsTypeScript dependencycompile-timen/a

2. External Systems

SystemDirectionSurfaceAuthFailure Mode
S3 / MinioBunS3Helper (@venizia/ignis-helpers/bun-s3)APP_ENV_S3_ACCESS_KEY / APP_ENV_S3_SECRET_KEYhelper throws → 4xx/5xx to client; upload also captures MetaLink errors

3. Critical Cross-Service Flows

3.1 Commerce mounts asset for product media

StepDetail
2S3 connection params read at construction via applicationEnvironment.get()
4Controllers mount under the host's base path (e.g. /v1/api/commerce/assets)

3.2 Ledger uploads a generated document

4. Contract Stability

SurfaceStabilityVersioning
host.component(ApplicationAssetComponent)stableTypeScript export
REST /assets, /meta-links, /assets/banks-vnstablehost URL /v1/ prefix
BindingKeys.APPLICATION_S3_STORAGE_HELPERstablestring key (note: namespaced @nx/commerce)
Presigned-URL StaticAssetComponent pathnot livecommented out in source — do not depend on it

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