@wildo-ai/saas-backend-lib 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +27 -6
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +9 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +49 -0
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +171 -18
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +20 -0
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +529 -41
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
- package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +48 -7
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
- package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -13
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +244 -7
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +386 -5
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +31 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +142 -46
- package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
- package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
- package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
- package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
- package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
- package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
- package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
- package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
- package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +292 -7
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +533 -45
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
- package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.js +21 -13
- package/dist/esm/files/controllers/file.controller.js.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +39 -15
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
- package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
- package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
- package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
- package/dist/esm/files/services/files.backend.service.d.ts +68 -0
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +175 -5
- package/dist/esm/files/services/files.backend.service.js.map +1 -1
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
- package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
- package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
- package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +28 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +204 -18
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
- package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +8 -4
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
- package/dist/esm/index.d.ts +11 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +31 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +78 -10
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +17 -3
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +19 -3
- package/dist/esm/inject/models/service-types.js.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.js +20 -0
- package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
- package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
- package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
- package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
- package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
- package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
- package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
- package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +16 -6
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +12 -12
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
- package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.js +1 -4
- package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.js +1 -4
- package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
- package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
- package/dist/esm/queue/queue.backend.service.d.ts +3 -3
- package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue.backend.service.js +26 -4
- package/dist/esm/queue/queue.backend.service.js.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
- package/dist/esm/requests/service/websocket.service.d.ts +9 -0
- package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.js +32 -8
- package/dist/esm/requests/service/websocket.service.js.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +14 -2
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
- package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
- package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.js +90 -6
- package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
- package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
- package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.js +261 -77
- package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +68 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +74 -8
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +175 -19
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -3
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
- package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +11 -9
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE composer every path-based storage provider addresses a blob with.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this module exists rather than a second implementation per provider
|
|
5
|
+
*
|
|
6
|
+
* The key shape is not decoration: `<scope>/<scopeId>` is what makes ONE TENANT's blobs a PREFIX,
|
|
7
|
+
* and therefore what makes erasure, orphan sweeps, per-tenant listing and credential confinement
|
|
8
|
+
* expressible at all. A provider that composes its own shape is a deployment where none of those
|
|
9
|
+
* exist — silently, because nothing fails when a prefix is merely absent.
|
|
10
|
+
*
|
|
11
|
+
* That is exactly what had happened: the managed provider carried the tenant-scoped shape while the
|
|
12
|
+
* local-directory provider composed `[applicationId]/[folderPath]/<leaf>` from the field's
|
|
13
|
+
* declarative binding alone, so routing a field to local storage produced a store with no tenant
|
|
14
|
+
* structure whatsoever. Two implementations that "must agree" agreed for as long as nobody edited
|
|
15
|
+
* either. So the composition lives here, once, and both providers call it.
|
|
16
|
+
*
|
|
17
|
+
* ## What is NOT here
|
|
18
|
+
*
|
|
19
|
+
* Provider-specific framing stays with the provider:
|
|
20
|
+
* - the managed provider prepends its configured `bucketPrefix` (an object-store namespacing knob
|
|
21
|
+
* with no filesystem meaning) and applies its textual stored-`storageRef` prefix guard;
|
|
22
|
+
* - the local provider resolves the returned relative key against its base directory and applies
|
|
23
|
+
* its filesystem containment check.
|
|
24
|
+
*
|
|
25
|
+
* What is shared is the ANSWER to "where does this blob live", which is the part that must not
|
|
26
|
+
* differ between two providers serving the same authored `z_file()` binding.
|
|
27
|
+
*/
|
|
28
|
+
import type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';
|
|
29
|
+
import type { StorageUploadOptions } from './file-storage-provider.types';
|
|
30
|
+
/**
|
|
31
|
+
* The key segment for a blob with no resource type.
|
|
32
|
+
*
|
|
33
|
+
* A literal rather than a resource name, and prefixed with `_` so it can never collide with a
|
|
34
|
+
* value `resolveSharedPersistenceCollectionName` produces — that function returns collection
|
|
35
|
+
* names, which never start with an underscore.
|
|
36
|
+
*/
|
|
37
|
+
export declare const UNLINKED_STORAGE_SEGMENT = "_unlinked";
|
|
38
|
+
/**
|
|
39
|
+
* The `<scope>/<scopeId>` segments of a storage key.
|
|
40
|
+
*
|
|
41
|
+
* This is what makes ONE TENANT's blobs a prefix. Without it every organization's files of a given
|
|
42
|
+
* resource share a single prefix, so erasure, orphan sweeps and "who owns this object" all become
|
|
43
|
+
* per-row database work instead of prefix operations — and no per-tenant confinement is expressible
|
|
44
|
+
* at all. (That was the state of the managed provider until 2026-08-14: the approved shape carried
|
|
45
|
+
* these segments and the first implementation dropped them. The local-directory provider never had
|
|
46
|
+
* them at all until this module existed.)
|
|
47
|
+
*
|
|
48
|
+
* Always emits BOTH segments, including for APPLICATION scope where the id repeats the one already
|
|
49
|
+
* in the prefix. The redundancy is deliberate: one key shape, no branch, nothing that can produce a
|
|
50
|
+
* second layout. A parser can always take the last three segments as scope/scopeId/fileId.
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveStorageScopeSegments(scope: FileScopeIdentifiers | undefined, applicationId: string): {
|
|
53
|
+
scope: string;
|
|
54
|
+
scopeId: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The caller-authored tail of a key: `[folderPath/]<fileName|fileId>`.
|
|
58
|
+
*
|
|
59
|
+
* Returns the empty string when nothing survives — the caller raises
|
|
60
|
+
* `FILE_STORAGE_KEY_COMPOSITION_FAILED` with its own execution context, which this module does not
|
|
61
|
+
* have.
|
|
62
|
+
*/
|
|
63
|
+
export declare function composeStorageLeafPath(fileId: string, options?: StorageUploadOptions): string;
|
|
64
|
+
/**
|
|
65
|
+
* Does `candidate` contain a whole `.` or `..` path segment?
|
|
66
|
+
*
|
|
67
|
+
* ## Why a TEXTUAL check, beside a provider's own containment guard
|
|
68
|
+
*
|
|
69
|
+
* The local provider's guard resolves the path and checks it stays under the base directory, which
|
|
70
|
+
* is strictly stronger for the question "does this escape the store". It is strictly WEAKER for the
|
|
71
|
+
* question this key shape exists to answer: once a key carries a six-segment
|
|
72
|
+
* `applications/<app>/files/<resource>/<scope>/<scopeId>/` prefix, a `..` no longer has to escape
|
|
73
|
+
* the store to do damage — it only has to climb out of the TENANT prefix and land under a
|
|
74
|
+
* different one, which the containment check happily admits because the destination is still
|
|
75
|
+
* inside the base.
|
|
76
|
+
*
|
|
77
|
+
* The managed provider states the same thing from the other side (its stored-ref prefix check is
|
|
78
|
+
* textual, so `…/x/../../../elsewhere/y` satisfies it). Both providers therefore refuse a `.`/`..`
|
|
79
|
+
* SEGMENT in the composed key, and the verdict for one authored value no longer depends on which
|
|
80
|
+
* provider a deployment binds.
|
|
81
|
+
*
|
|
82
|
+
* Only a WHOLE segment counts. `v1.2.3`, `..config` and `file..name.txt` are ordinary names, and a
|
|
83
|
+
* substring match on `..` would refuse all three — an over-refusal invisible until an application
|
|
84
|
+
* authors a versioned folder.
|
|
85
|
+
*/
|
|
86
|
+
export declare function storageKeyHasTraversalSegment(candidate: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* The application-scoped, resource-scoped, tenant-scoped key for a blob.
|
|
89
|
+
*
|
|
90
|
+
* `applications/<applicationId>/files/<storageName>/<scope>/<scopeId>/<leafPath>`
|
|
91
|
+
*
|
|
92
|
+
* The managed provider prepends its bucket prefix to this; the local provider resolves it against
|
|
93
|
+
* its base directory. Nothing else may re-derive it — the shape is the tenant boundary, and a
|
|
94
|
+
* second derivation is a second boundary.
|
|
95
|
+
*/
|
|
96
|
+
export declare function composeApplicationStorageKey(args: {
|
|
97
|
+
applicationId: string;
|
|
98
|
+
/** `[folderPath/]<fileName|fileId>` — see {@link composeStorageLeafPath}. */
|
|
99
|
+
leafPath: string;
|
|
100
|
+
/**
|
|
101
|
+
* The resource this blob belongs to. Absent ⇒ {@link UNLINKED_STORAGE_SEGMENT}, an explicit
|
|
102
|
+
* staging segment rather than a fallthrough: late LINKING is allowed (the row's
|
|
103
|
+
* `linkedResourceId` fills in later), late TYPE declaration is not, because the key is derived
|
|
104
|
+
* once at create and the blob never moves.
|
|
105
|
+
*/
|
|
106
|
+
linkedResourceType?: ResourceType;
|
|
107
|
+
scope?: FileScopeIdentifiers;
|
|
108
|
+
}): string;
|
|
109
|
+
//# sourceMappingURL=application-storage-key.backend.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-storage-key.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/application-storage-key.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,cAAc,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAAG,SAAS,EACvC,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAcpC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAO7F;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,GAAG,MAAM,CAYT"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE composer every path-based storage provider addresses a blob with.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this module exists rather than a second implementation per provider
|
|
5
|
+
*
|
|
6
|
+
* The key shape is not decoration: `<scope>/<scopeId>` is what makes ONE TENANT's blobs a PREFIX,
|
|
7
|
+
* and therefore what makes erasure, orphan sweeps, per-tenant listing and credential confinement
|
|
8
|
+
* expressible at all. A provider that composes its own shape is a deployment where none of those
|
|
9
|
+
* exist — silently, because nothing fails when a prefix is merely absent.
|
|
10
|
+
*
|
|
11
|
+
* That is exactly what had happened: the managed provider carried the tenant-scoped shape while the
|
|
12
|
+
* local-directory provider composed `[applicationId]/[folderPath]/<leaf>` from the field's
|
|
13
|
+
* declarative binding alone, so routing a field to local storage produced a store with no tenant
|
|
14
|
+
* structure whatsoever. Two implementations that "must agree" agreed for as long as nobody edited
|
|
15
|
+
* either. So the composition lives here, once, and both providers call it.
|
|
16
|
+
*
|
|
17
|
+
* ## What is NOT here
|
|
18
|
+
*
|
|
19
|
+
* Provider-specific framing stays with the provider:
|
|
20
|
+
* - the managed provider prepends its configured `bucketPrefix` (an object-store namespacing knob
|
|
21
|
+
* with no filesystem meaning) and applies its textual stored-`storageRef` prefix guard;
|
|
22
|
+
* - the local provider resolves the returned relative key against its base directory and applies
|
|
23
|
+
* its filesystem containment check.
|
|
24
|
+
*
|
|
25
|
+
* What is shared is the ANSWER to "where does this blob live", which is the part that must not
|
|
26
|
+
* differ between two providers serving the same authored `z_file()` binding.
|
|
27
|
+
*/
|
|
28
|
+
import { ResourcePrimaryScope, resolveSharedPersistenceCollectionName } from '@wildo-ai/saas-models';
|
|
29
|
+
import { API_ROUTES_BACKEND_DEFINITIONS } from '../../requests/models/api-routes.backend.defintions.js';
|
|
30
|
+
/**
|
|
31
|
+
* The key segment for a blob with no resource type.
|
|
32
|
+
*
|
|
33
|
+
* A literal rather than a resource name, and prefixed with `_` so it can never collide with a
|
|
34
|
+
* value `resolveSharedPersistenceCollectionName` produces — that function returns collection
|
|
35
|
+
* names, which never start with an underscore.
|
|
36
|
+
*/
|
|
37
|
+
export const UNLINKED_STORAGE_SEGMENT = '_unlinked';
|
|
38
|
+
/**
|
|
39
|
+
* The `<scope>/<scopeId>` segments of a storage key.
|
|
40
|
+
*
|
|
41
|
+
* This is what makes ONE TENANT's blobs a prefix. Without it every organization's files of a given
|
|
42
|
+
* resource share a single prefix, so erasure, orphan sweeps and "who owns this object" all become
|
|
43
|
+
* per-row database work instead of prefix operations — and no per-tenant confinement is expressible
|
|
44
|
+
* at all. (That was the state of the managed provider until 2026-08-14: the approved shape carried
|
|
45
|
+
* these segments and the first implementation dropped them. The local-directory provider never had
|
|
46
|
+
* them at all until this module existed.)
|
|
47
|
+
*
|
|
48
|
+
* Always emits BOTH segments, including for APPLICATION scope where the id repeats the one already
|
|
49
|
+
* in the prefix. The redundancy is deliberate: one key shape, no branch, nothing that can produce a
|
|
50
|
+
* second layout. A parser can always take the last three segments as scope/scopeId/fileId.
|
|
51
|
+
*/
|
|
52
|
+
export function resolveStorageScopeSegments(scope, applicationId) {
|
|
53
|
+
// The SEGMENT IS the enum value — `ResourcePrimaryScope.ORGANIZATIONS === 'organizations'`. Using
|
|
54
|
+
// the enum directly keeps one vocabulary: a parallel string table here would be a second source
|
|
55
|
+
// that silently drifts the day a scope is added or renamed.
|
|
56
|
+
if (scope?.primaryScope === ResourcePrimaryScope.ORGANIZATIONS && scope.organizationId) {
|
|
57
|
+
return { scope: ResourcePrimaryScope.ORGANIZATIONS, scopeId: scope.organizationId };
|
|
58
|
+
}
|
|
59
|
+
if (scope?.primaryScope === ResourcePrimaryScope.USER_SELF && scope.userId) {
|
|
60
|
+
return { scope: ResourcePrimaryScope.USER_SELF, scopeId: scope.userId };
|
|
61
|
+
}
|
|
62
|
+
// APPLICATION scope, or a scope whose id is missing — fall back to the application. Never throw:
|
|
63
|
+
// a key must always be derivable, and an application-scoped key is the correct conservative answer
|
|
64
|
+
// (it is the narrowest scope every file provably has).
|
|
65
|
+
return { scope: ResourcePrimaryScope.APPLICATION, scopeId: applicationId };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The caller-authored tail of a key: `[folderPath/]<fileName|fileId>`.
|
|
69
|
+
*
|
|
70
|
+
* Returns the empty string when nothing survives — the caller raises
|
|
71
|
+
* `FILE_STORAGE_KEY_COMPOSITION_FAILED` with its own execution context, which this module does not
|
|
72
|
+
* have.
|
|
73
|
+
*/
|
|
74
|
+
export function composeStorageLeafPath(fileId, options) {
|
|
75
|
+
const leafName = options?.fileName?.trim() || fileId;
|
|
76
|
+
const folderPath = options?.folderPath?.trim();
|
|
77
|
+
if (!leafName) {
|
|
78
|
+
return '';
|
|
79
|
+
}
|
|
80
|
+
return folderPath ? `${folderPath}/${leafName}` : leafName;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Does `candidate` contain a whole `.` or `..` path segment?
|
|
84
|
+
*
|
|
85
|
+
* ## Why a TEXTUAL check, beside a provider's own containment guard
|
|
86
|
+
*
|
|
87
|
+
* The local provider's guard resolves the path and checks it stays under the base directory, which
|
|
88
|
+
* is strictly stronger for the question "does this escape the store". It is strictly WEAKER for the
|
|
89
|
+
* question this key shape exists to answer: once a key carries a six-segment
|
|
90
|
+
* `applications/<app>/files/<resource>/<scope>/<scopeId>/` prefix, a `..` no longer has to escape
|
|
91
|
+
* the store to do damage — it only has to climb out of the TENANT prefix and land under a
|
|
92
|
+
* different one, which the containment check happily admits because the destination is still
|
|
93
|
+
* inside the base.
|
|
94
|
+
*
|
|
95
|
+
* The managed provider states the same thing from the other side (its stored-ref prefix check is
|
|
96
|
+
* textual, so `…/x/../../../elsewhere/y` satisfies it). Both providers therefore refuse a `.`/`..`
|
|
97
|
+
* SEGMENT in the composed key, and the verdict for one authored value no longer depends on which
|
|
98
|
+
* provider a deployment binds.
|
|
99
|
+
*
|
|
100
|
+
* Only a WHOLE segment counts. `v1.2.3`, `..config` and `file..name.txt` are ordinary names, and a
|
|
101
|
+
* substring match on `..` would refuse all three — an over-refusal invisible until an application
|
|
102
|
+
* authors a versioned folder.
|
|
103
|
+
*/
|
|
104
|
+
export function storageKeyHasTraversalSegment(candidate) {
|
|
105
|
+
return candidate.split('/').some((segment) => segment === '.' || segment === '..');
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The application-scoped, resource-scoped, tenant-scoped key for a blob.
|
|
109
|
+
*
|
|
110
|
+
* `applications/<applicationId>/files/<storageName>/<scope>/<scopeId>/<leafPath>`
|
|
111
|
+
*
|
|
112
|
+
* The managed provider prepends its bucket prefix to this; the local provider resolves it against
|
|
113
|
+
* its base directory. Nothing else may re-derive it — the shape is the tenant boundary, and a
|
|
114
|
+
* second derivation is a second boundary.
|
|
115
|
+
*/
|
|
116
|
+
export function composeApplicationStorageKey(args) {
|
|
117
|
+
const storageName = args.linkedResourceType
|
|
118
|
+
? resolveSharedPersistenceCollectionName(args.linkedResourceType)
|
|
119
|
+
: UNLINKED_STORAGE_SEGMENT;
|
|
120
|
+
const { scope, scopeId } = resolveStorageScopeSegments(args.scope, args.applicationId);
|
|
121
|
+
return API_ROUTES_BACKEND_DEFINITIONS.FILE_STORAGE.STORAGE_KEY_APPLICATION_FILE(args.applicationId, args.leafPath, storageName, scope, scopeId);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=application-storage-key.backend.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-storage-key.backend.utils.js","sourceRoot":"","sources":["../../../../../src/files/storage/application-storage-key.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,oBAAoB,EAAE,sCAAsC,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,EAAE,8BAA8B,EAAE,MAAM,kEAAkE,CAAC;AAGlH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAuC,EACvC,aAAqB;IAErB,kGAAkG;IAClG,gGAAgG;IAChG,4DAA4D;IAC5D,IAAI,KAAK,EAAE,YAAY,KAAK,oBAAoB,CAAC,aAAa,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,KAAK,EAAE,YAAY,KAAK,oBAAoB,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3E,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1E,CAAC;IACD,iGAAiG;IACjG,mGAAmG;IACnG,uDAAuD;IACvD,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,OAA8B;IACnF,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC7D,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAY5C;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB;QACzC,CAAC,CAAC,sCAAsC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACjE,CAAC,CAAC,wBAAwB,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvF,OAAO,8BAA8B,CAAC,YAAY,CAAC,4BAA4B,CAC7E,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,KAAK,EACL,OAAO,CACR,CAAC;AACJ,CAAC","sourcesContent":["/**\n * The ONE composer every path-based storage provider addresses a blob with.\n *\n * ## Why this module exists rather than a second implementation per provider\n *\n * The key shape is not decoration: `<scope>/<scopeId>` is what makes ONE TENANT's blobs a PREFIX,\n * and therefore what makes erasure, orphan sweeps, per-tenant listing and credential confinement\n * expressible at all. A provider that composes its own shape is a deployment where none of those\n * exist — silently, because nothing fails when a prefix is merely absent.\n *\n * That is exactly what had happened: the managed provider carried the tenant-scoped shape while the\n * local-directory provider composed `[applicationId]/[folderPath]/<leaf>` from the field's\n * declarative binding alone, so routing a field to local storage produced a store with no tenant\n * structure whatsoever. Two implementations that \"must agree\" agreed for as long as nobody edited\n * either. So the composition lives here, once, and both providers call it.\n *\n * ## What is NOT here\n *\n * Provider-specific framing stays with the provider:\n * - the managed provider prepends its configured `bucketPrefix` (an object-store namespacing knob\n * with no filesystem meaning) and applies its textual stored-`storageRef` prefix guard;\n * - the local provider resolves the returned relative key against its base directory and applies\n * its filesystem containment check.\n *\n * What is shared is the ANSWER to \"where does this blob live\", which is the part that must not\n * differ between two providers serving the same authored `z_file()` binding.\n */\n\nimport { ResourcePrimaryScope, resolveSharedPersistenceCollectionName } from '@wildo-ai/saas-models';\nimport type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';\nimport { API_ROUTES_BACKEND_DEFINITIONS } from '~wildo-backend-lib/requests/models/api-routes.backend.defintions';\nimport type { StorageUploadOptions } from './file-storage-provider.types';\n\n/**\n * The key segment for a blob with no resource type.\n *\n * A literal rather than a resource name, and prefixed with `_` so it can never collide with a\n * value `resolveSharedPersistenceCollectionName` produces — that function returns collection\n * names, which never start with an underscore.\n */\nexport const UNLINKED_STORAGE_SEGMENT = '_unlinked';\n\n/**\n * The `<scope>/<scopeId>` segments of a storage key.\n *\n * This is what makes ONE TENANT's blobs a prefix. Without it every organization's files of a given\n * resource share a single prefix, so erasure, orphan sweeps and \"who owns this object\" all become\n * per-row database work instead of prefix operations — and no per-tenant confinement is expressible\n * at all. (That was the state of the managed provider until 2026-08-14: the approved shape carried\n * these segments and the first implementation dropped them. The local-directory provider never had\n * them at all until this module existed.)\n *\n * Always emits BOTH segments, including for APPLICATION scope where the id repeats the one already\n * in the prefix. The redundancy is deliberate: one key shape, no branch, nothing that can produce a\n * second layout. A parser can always take the last three segments as scope/scopeId/fileId.\n */\nexport function resolveStorageScopeSegments(\n scope: FileScopeIdentifiers | undefined,\n applicationId: string,\n): { scope: string; scopeId: string } {\n // The SEGMENT IS the enum value — `ResourcePrimaryScope.ORGANIZATIONS === 'organizations'`. Using\n // the enum directly keeps one vocabulary: a parallel string table here would be a second source\n // that silently drifts the day a scope is added or renamed.\n if (scope?.primaryScope === ResourcePrimaryScope.ORGANIZATIONS && scope.organizationId) {\n return { scope: ResourcePrimaryScope.ORGANIZATIONS, scopeId: scope.organizationId };\n }\n if (scope?.primaryScope === ResourcePrimaryScope.USER_SELF && scope.userId) {\n return { scope: ResourcePrimaryScope.USER_SELF, scopeId: scope.userId };\n }\n // APPLICATION scope, or a scope whose id is missing — fall back to the application. Never throw:\n // a key must always be derivable, and an application-scoped key is the correct conservative answer\n // (it is the narrowest scope every file provably has).\n return { scope: ResourcePrimaryScope.APPLICATION, scopeId: applicationId };\n}\n\n/**\n * The caller-authored tail of a key: `[folderPath/]<fileName|fileId>`.\n *\n * Returns the empty string when nothing survives — the caller raises\n * `FILE_STORAGE_KEY_COMPOSITION_FAILED` with its own execution context, which this module does not\n * have.\n */\nexport function composeStorageLeafPath(fileId: string, options?: StorageUploadOptions): string {\n const leafName = options?.fileName?.trim() || fileId;\n const folderPath = options?.folderPath?.trim();\n if (!leafName) {\n return '';\n }\n return folderPath ? `${folderPath}/${leafName}` : leafName;\n}\n\n/**\n * Does `candidate` contain a whole `.` or `..` path segment?\n *\n * ## Why a TEXTUAL check, beside a provider's own containment guard\n *\n * The local provider's guard resolves the path and checks it stays under the base directory, which\n * is strictly stronger for the question \"does this escape the store\". It is strictly WEAKER for the\n * question this key shape exists to answer: once a key carries a six-segment\n * `applications/<app>/files/<resource>/<scope>/<scopeId>/` prefix, a `..` no longer has to escape\n * the store to do damage — it only has to climb out of the TENANT prefix and land under a\n * different one, which the containment check happily admits because the destination is still\n * inside the base.\n *\n * The managed provider states the same thing from the other side (its stored-ref prefix check is\n * textual, so `…/x/../../../elsewhere/y` satisfies it). Both providers therefore refuse a `.`/`..`\n * SEGMENT in the composed key, and the verdict for one authored value no longer depends on which\n * provider a deployment binds.\n *\n * Only a WHOLE segment counts. `v1.2.3`, `..config` and `file..name.txt` are ordinary names, and a\n * substring match on `..` would refuse all three — an over-refusal invisible until an application\n * authors a versioned folder.\n */\nexport function storageKeyHasTraversalSegment(candidate: string): boolean {\n return candidate.split('/').some((segment) => segment === '.' || segment === '..');\n}\n\n/**\n * The application-scoped, resource-scoped, tenant-scoped key for a blob.\n *\n * `applications/<applicationId>/files/<storageName>/<scope>/<scopeId>/<leafPath>`\n *\n * The managed provider prepends its bucket prefix to this; the local provider resolves it against\n * its base directory. Nothing else may re-derive it — the shape is the tenant boundary, and a\n * second derivation is a second boundary.\n */\nexport function composeApplicationStorageKey(args: {\n applicationId: string;\n /** `[folderPath/]<fileName|fileId>` — see {@link composeStorageLeafPath}. */\n leafPath: string;\n /**\n * The resource this blob belongs to. Absent ⇒ {@link UNLINKED_STORAGE_SEGMENT}, an explicit\n * staging segment rather than a fallthrough: late LINKING is allowed (the row's\n * `linkedResourceId` fills in later), late TYPE declaration is not, because the key is derived\n * once at create and the blob never moves.\n */\n linkedResourceType?: ResourceType;\n scope?: FileScopeIdentifiers;\n}): string {\n const storageName = args.linkedResourceType\n ? resolveSharedPersistenceCollectionName(args.linkedResourceType)\n : UNLINKED_STORAGE_SEGMENT;\n const { scope, scopeId } = resolveStorageScopeSegments(args.scope, args.applicationId);\n return API_ROUTES_BACKEND_DEFINITIONS.FILE_STORAGE.STORAGE_KEY_APPLICATION_FILE(\n args.applicationId,\n args.leafPath,\n storageName,\n scope,\n scopeId,\n );\n}\n"]}
|
|
@@ -25,10 +25,11 @@ export interface StorageUploadOptions {
|
|
|
25
25
|
* The resource type this blob belongs to, used to place it under a per-resource
|
|
26
26
|
* segment in the object key: `applications/<appId>/files/<storageName>/…`.
|
|
27
27
|
*
|
|
28
|
-
* OPTIONAL
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
28
|
+
* OPTIONAL because a blob genuinely may have no resource yet (staged before linking), which
|
|
29
|
+
* lands under `_unlinked/` rather than inventing a resource segment. It is NOT optional because
|
|
30
|
+
* some provider ignores it — every path-based provider composes its key with the same shared
|
|
31
|
+
* composer, so this segment reaches the local-directory provider exactly as it reaches the
|
|
32
|
+
* managed one.
|
|
32
33
|
*
|
|
33
34
|
* The segment is `resolveSharedPersistenceCollectionName(resourceType)`, NOT the raw
|
|
34
35
|
* resource type — the same vocabulary the database grants use, so `USER_SELF` and
|
|
@@ -49,7 +50,8 @@ export interface StorageUploadOptions {
|
|
|
49
50
|
* the provider's namespace.
|
|
50
51
|
*
|
|
51
52
|
* When set, the provider stores the blob at
|
|
52
|
-
* `<providerRoot>/[
|
|
53
|
+
* `<providerRoot>/[applications/<appId>/files/<storageName>/<scope>/<scopeId>/]<folderPath>/<fileName|fileId>`,
|
|
54
|
+
* the bracketed prefix being present unless `includeApplicationId` is explicitly `false`.
|
|
53
55
|
*
|
|
54
56
|
* Forward-slash separated, no leading or trailing slash.
|
|
55
57
|
* @example 'specs/icps/big_companies'
|
|
@@ -64,12 +66,16 @@ export interface StorageUploadOptions {
|
|
|
64
66
|
*/
|
|
65
67
|
fileName?: string;
|
|
66
68
|
/**
|
|
67
|
-
*
|
|
69
|
+
* Whether the framework-derived prefix
|
|
70
|
+
* `applications/<appId>/files/<storageName>/<scope>/<scopeId>/` is placed above the authored
|
|
71
|
+
* folder path and leaf name.
|
|
68
72
|
*
|
|
69
|
-
* - `true`
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
+
* - `true` / `undefined` → include it. This is now the default on EVERY provider; the
|
|
74
|
+
* local-directory provider defaulted to `false` until 2026-09-09, which is what left it with no
|
|
75
|
+
* tenant structure.
|
|
76
|
+
* - `false` → the key is the bare `[folderPath/]<fileName|fileId>`. This discards the WHOLE
|
|
77
|
+
* prefix, not only the application segment, so nothing about the blob is addressable by tenant
|
|
78
|
+
* any more. Both providers honour it identically, so one authored value has one meaning.
|
|
73
79
|
*/
|
|
74
80
|
includeApplicationId?: boolean;
|
|
75
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-storage-provider.types.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAE5G,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB,GAAG,YAAY,CAAC,CAAC;AAE9F;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC
|
|
1
|
+
{"version":3,"file":"file-storage-provider.types.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAE5G,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB,GAAG,YAAY,CAAC,CAAC;AAE9F;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAElC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAE7B;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,MAAM,EAAE,QAAQ,CAAC;IACjB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAEzC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC;IAExB;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAEpD;;;;;;;;;;OAUG;IACH,MAAM,CACJ,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,EACvC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,QAAQ,CACN,IAAI,EAAE,uBAAuB,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElC;;;;;OAKG;IACH,MAAM,CACJ,IAAI,EAAE,uBAAuB,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,WAAW,CACT,IAAI,EAAE,uBAAuB,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-storage-provider.types.js","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * File Storage Provider Interface\n *\n * Abstracts storage operations behind a unified interface.\n * The Wildo-managed MinIO/S3 provider is the default implementation.\n * Future providers (OneDrive, Google Drive, Dropbox, local-directory) implement the same interface.\n *\n * Services inject `IFileStorageProvider` via the `FileStorageRouterBackendService`.\n */\n\nimport { Readable } from 'stream';\nimport type { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';\nimport type { File } from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\n\nexport type StoredFileStorageTarget = Pick<File, 'fileId' | 'storageProvider' | 'storageRef'>;\n\n/**\n * Optional parameters for upload operations.\n *\n * All path segments are pre-composed by the caller\n * (typically `FileStoragePathResolverBackendService`); the provider\n * only concatenates them onto its own root.\n */\nexport interface StorageUploadOptions {\n /**\n * The resource type this blob belongs to, used to place it under a per-resource\n * segment in the object key: `applications/<appId>/files/<storageName>/…`.\n *\n * OPTIONAL
|
|
1
|
+
{"version":3,"file":"file-storage-provider.types.js","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * File Storage Provider Interface\n *\n * Abstracts storage operations behind a unified interface.\n * The Wildo-managed MinIO/S3 provider is the default implementation.\n * Future providers (OneDrive, Google Drive, Dropbox, local-directory) implement the same interface.\n *\n * Services inject `IFileStorageProvider` via the `FileStorageRouterBackendService`.\n */\n\nimport { Readable } from 'stream';\nimport type { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';\nimport type { File } from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\n\nexport type StoredFileStorageTarget = Pick<File, 'fileId' | 'storageProvider' | 'storageRef'>;\n\n/**\n * Optional parameters for upload operations.\n *\n * All path segments are pre-composed by the caller\n * (typically `FileStoragePathResolverBackendService`); the provider\n * only concatenates them onto its own root.\n */\nexport interface StorageUploadOptions {\n /**\n * The resource type this blob belongs to, used to place it under a per-resource\n * segment in the object key: `applications/<appId>/files/<storageName>/…`.\n *\n * OPTIONAL because a blob genuinely may have no resource yet (staged before linking), which\n * lands under `_unlinked/` rather than inventing a resource segment. It is NOT optional because\n * some provider ignores it — every path-based provider composes its key with the same shared\n * composer, so this segment reaches the local-directory provider exactly as it reaches the\n * managed one.\n *\n * The segment is `resolveSharedPersistenceCollectionName(resourceType)`, NOT the raw\n * resource type — the same vocabulary the database grants use, so `USER_SELF` and\n * `USERS` resolve to one prefix because they are the same rows.\n */\n linkedResourceType?: ResourceType;\n\n /**\n * The file's tenant scope, placed into the object key as `<scope>/<scopeId>`.\n *\n * This is what makes a tenant's blobs a PREFIX: erasure, orphan sweeps and \"who owns this object\"\n * become prefix operations instead of per-row database lookups. Omitted ⇒ the key falls back to\n * APPLICATION scope with the resolved application id, so there is exactly ONE key shape and never\n * a branch that produces a second layout.\n */\n scope?: FileScopeIdentifiers;\n\n /**\n * Composed relative folder path for organizing files within\n * the provider's namespace.\n *\n * When set, the provider stores the blob at\n * `<providerRoot>/[applications/<appId>/files/<storageName>/<scope>/<scopeId>/]<folderPath>/<fileName|fileId>`,\n * the bracketed prefix being present unless `includeApplicationId` is explicitly `false`.\n *\n * Forward-slash separated, no leading or trailing slash.\n * @example 'specs/icps/big_companies'\n * @example 'avatars'\n */\n folderPath?: string;\n\n /**\n * Explicit file name to use instead of the fileId.\n * When omitted, the provider falls back to the fileId (UUID).\n * @example 'personna.md'\n * @example 'avatar.png'\n */\n fileName?: string;\n\n /**\n * Whether the framework-derived prefix\n * `applications/<appId>/files/<storageName>/<scope>/<scopeId>/` is placed above the authored\n * folder path and leaf name.\n *\n * - `true` / `undefined` → include it. This is now the default on EVERY provider; the\n * local-directory provider defaulted to `false` until 2026-09-09, which is what left it with no\n * tenant structure.\n * - `false` → the key is the bare `[folderPath/]<fileName|fileId>`. This discards the WHOLE\n * prefix, not only the application segment, so nothing about the blob is addressable by tenant\n * any more. Both providers honour it identically, so one authored value has one meaning.\n */\n includeApplicationId?: boolean;\n}\n\n/**\n * Result of a successful file upload.\n */\nexport interface StorageUploadResult {\n /** Unique storage reference (provider-specific key) */\n storageRef: string;\n /** Storage provider identifier */\n provider: FileStorageAccepted;\n}\n\n/**\n * Result of a file download.\n */\nexport interface StorageDownloadResult {\n /** Readable stream of file content */\n stream: Readable;\n /** Content type (MIME type) */\n contentType: string;\n /** File size in bytes */\n size: number;\n /** ETag for caching */\n etag?: string;\n /** Last modification date */\n lastModified?: Date;\n}\n\n/**\n * Storage metadata for a file.\n */\nexport interface StorageFileMetadata {\n /** Content type (MIME type) */\n contentType: string;\n /** File size in bytes */\n size: number;\n /** ETag for caching */\n etag?: string;\n /** Last modification date */\n lastModified?: Date;\n}\n\n/**\n * Health check result for a storage provider.\n */\nexport interface StorageProviderHealthResult {\n healthy: boolean;\n latency: number;\n error?: string;\n}\n\n/**\n * Unified storage provider interface.\n *\n * All file storage providers must implement this interface.\n * Operations are scoped by executionContext for multi-tenant isolation.\n */\nexport interface IFileStorageProvider {\n /** Provider identifier — must match a FileStorageAccepted enum value */\n readonly providerId: FileStorageAccepted;\n\n /**\n * Whether this provider has the required configuration to operate.\n * Returns false when env vars / credentials are absent.\n */\n isConfigured(): boolean;\n\n /**\n * Eagerly initialize the provider (connect, verify bucket/container).\n * Called at startup for fail-fast. If not called, providers may lazy-init.\n */\n initialize(): Promise<void>;\n\n /**\n * Check provider health (connectivity, bucket reachability).\n */\n healthCheck(): Promise<StorageProviderHealthResult>;\n\n /**\n * Upload a file to storage.\n *\n * @param fileStream - Readable stream of file content\n * @param fileId - Unique file identifier\n * @param mimeType - MIME type of the file\n * @param size - File size in bytes\n * @param executionContext - Execution context (for auth/tenant scoping)\n * @param options - Optional upload options\n * @returns Storage upload result with provider-specific reference\n */\n upload(\n fileStream: Readable,\n fileId: string,\n mimeType: string,\n size: number,\n executionContext: ExecutionContext<any>,\n options?: StorageUploadOptions,\n ): Promise<StorageUploadResult>;\n\n /**\n * Download a file from storage.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n * @returns Download result with stream and metadata\n */\n download(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<StorageDownloadResult>;\n\n /**\n * Delete a file from storage.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n */\n delete(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<void>;\n\n /**\n * Get file metadata without downloading.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n * @returns File metadata\n */\n getMetadata(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<StorageFileMetadata>;\n}\n"]}
|
|
@@ -2,9 +2,23 @@
|
|
|
2
2
|
* Local Directory Storage Provider
|
|
3
3
|
*
|
|
4
4
|
* IFileStorageProvider implementation backed by the local filesystem.
|
|
5
|
-
* Files are stored under a configurable base directory,
|
|
6
|
-
*
|
|
7
|
-
* by
|
|
5
|
+
* Files are stored under a configurable base directory, at the SAME relative key the
|
|
6
|
+
* Wildo-managed provider would use — `applications/<appId>/files/<storageName>/<scope>/<scopeId>/…`,
|
|
7
|
+
* composed by `application-storage-key.backend.utils`. Path traversal attacks are guarded against
|
|
8
|
+
* by refusing a `.`/`..` segment in the composed key AND by resolving every path and verifying it
|
|
9
|
+
* stays inside the base dir.
|
|
10
|
+
*
|
|
11
|
+
* ## Why the key shape is shared rather than provider-local
|
|
12
|
+
*
|
|
13
|
+
* Until 2026-09-09 this provider composed `[applicationId]/[folderPath]/<leaf>` from the field's
|
|
14
|
+
* declarative binding alone, and included the application id only when the binding asked
|
|
15
|
+
* (`includeApplicationId`, defaulting to `false` here). It therefore emitted NONE of the
|
|
16
|
+
* `<scope>/<scopeId>` segments the managed provider's shape carries, so a deployment routing a
|
|
17
|
+
* `z_file()` field to local storage had no per-tenant prefix to sweep, list or confine against —
|
|
18
|
+
* and nothing failed, because an absent prefix produces no error, only an absent capability.
|
|
19
|
+
*
|
|
20
|
+
* Both providers now call one composer. See `application-storage-key.backend.utils.ts` for the
|
|
21
|
+
* argument and for what deliberately stays provider-local.
|
|
8
22
|
*
|
|
9
23
|
* Configured through `storage.localDirectory.baseDir` in resolved application
|
|
10
24
|
* configuration, which the configuration loader seeds from the
|
|
@@ -39,14 +53,18 @@ export declare class LocalDirectoryStorageProvider implements IFileStorageProvid
|
|
|
39
53
|
healthCheck(): Promise<StorageProviderHealthResult>;
|
|
40
54
|
private getBaseDir;
|
|
41
55
|
/**
|
|
42
|
-
* Compose the
|
|
56
|
+
* Compose the relative storage key for an upload.
|
|
43
57
|
*
|
|
44
|
-
* Layout
|
|
45
|
-
*
|
|
58
|
+
* Layout — identical to the managed provider's, minus that provider's bucket prefix:
|
|
59
|
+
* `applications/<applicationId>/files/<storageName>/<scope>/<scopeId>/[folderPath/]<fileName|fileId>`
|
|
46
60
|
*
|
|
47
|
-
* `includeApplicationId` defaults to `
|
|
61
|
+
* `includeApplicationId` defaults to `true` here, as it does on the managed provider. It used to
|
|
62
|
+
* default to `false` ("the volume is typically per-app"), which is exactly what left this provider
|
|
63
|
+
* with no tenant structure: a per-app VOLUME separates applications from each other and separates
|
|
64
|
+
* nothing inside one. Set explicitly to `false` the key collapses to the bare leaf path on BOTH
|
|
65
|
+
* providers — one authored value, one meaning, and the same loss of every prefix operation.
|
|
48
66
|
*/
|
|
49
|
-
private
|
|
67
|
+
private composeStorageKey;
|
|
50
68
|
/**
|
|
51
69
|
* Resolve a safe absolute path from a relative storage ref.
|
|
52
70
|
* Throws if the resolved path escapes the base directory (path traversal guard).
|
|
@@ -60,6 +78,47 @@ export declare class LocalDirectoryStorageProvider implements IFileStorageProvid
|
|
|
60
78
|
/**
|
|
61
79
|
* Resolve the absolute filesystem path from a persisted storageRef.
|
|
62
80
|
* The ref IS the relative path from baseDir — just validate traversal.
|
|
81
|
+
*
|
|
82
|
+
* ## Already-stored files are NOT moved by the key-shape change, and nothing has to be migrated
|
|
83
|
+
*
|
|
84
|
+
* Every read verb (`download` / `delete` / `getMetadata`) reaches a blob through this method, and
|
|
85
|
+
* with a ref present it uses that ref VERBATIM. A blob written under the old
|
|
86
|
+
* `[applicationId]/[folderPath]/<leaf>` layout therefore stays addressable at exactly the path it
|
|
87
|
+
* was written to: the shape change governs where NEW uploads land, never how an existing row is
|
|
88
|
+
* resolved. No migration, and no compatibility branch, because there is nothing to be compatible
|
|
89
|
+
* with — the persisted ref is the address.
|
|
90
|
+
*
|
|
91
|
+
* ## The no-ref branch is LIVE, and it must track `upload` rather than freeze
|
|
92
|
+
*
|
|
93
|
+
* It looks like a legacy fallback for rows whose `storageRef` never committed. Its real caller is
|
|
94
|
+
* the audit-log archive batch: `archiveArtifactExists` probes `getMetadata` with
|
|
95
|
+
* `fileId: '<folderPath>/<fileName>'` and NO ref, deliberately, so that each provider re-derives
|
|
96
|
+
* the key its own `upload` produced and the batch never re-implements provider path logic. Pin
|
|
97
|
+
* the old composition here and that probe would address a blob the upload no longer writes, so
|
|
98
|
+
* `archiveArtifactExists` would answer `false` forever and every past day would be re-archived on
|
|
99
|
+
* every tick — a silent, unbounded regression with no failing test anywhere.
|
|
100
|
+
*
|
|
101
|
+
* So it composes through the SAME composer, with no resource type and no scope, mirroring the
|
|
102
|
+
* managed provider's `resolveApplicationObjectKey(file.fileId, ctx, undefined)` argument for
|
|
103
|
+
* argument. The parity is pinned in this provider's test suite (`upload` then `getMetadata` with
|
|
104
|
+
* no ref); the batch's own suite uses a fake provider and cannot see it.
|
|
105
|
+
*
|
|
106
|
+
* ## Residual, recorded rather than fixed: a `.`/`..` segment inside a PRESENT ref
|
|
107
|
+
*
|
|
108
|
+
* `composeStorageKey` refuses one on the composition path; this branch does not, and the managed
|
|
109
|
+
* provider's `assertNoTraversalSegments(normalizedStorageRef, …)` does. Two reasons it is left
|
|
110
|
+
* asymmetric, and neither is "nobody thought about it":
|
|
111
|
+
*
|
|
112
|
+
* - the containment check below is a real `path.resolve`, not managed's textual `startsWith`, so
|
|
113
|
+
* the class of attack that motivated managed's stored-ref check (a ref that satisfies a textual
|
|
114
|
+
* prefix while pointing elsewhere) is already caught here for anything leaving the base;
|
|
115
|
+
* - a `.` ref legitimately addresses the base directory and is pinned as NOT an authorization
|
|
116
|
+
* refusal (`ADMITS the base directory itself`), which a whole-segment textual check would break.
|
|
117
|
+
*
|
|
118
|
+
* What survives is a ref whose text climbs out of one tenant prefix into another WITHIN the base.
|
|
119
|
+
* Reaching it needs write access to the `storageRef` column — the composition path can no longer
|
|
120
|
+
* produce one — so it is a smaller surface than the one closed above, not the same one. Closing it
|
|
121
|
+
* means deciding what `.` should mean first, which is a separate change.
|
|
63
122
|
*/
|
|
64
123
|
private resolvePathFromStorageRef;
|
|
65
124
|
private readLocalMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-directory-storage-provider.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/local-directory-storage-provider.backend.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"local-directory-storage-provider.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/local-directory-storage-provider.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAE9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAQ5G,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AAUvC,qBACa,6BAA8B,YAAW,oBAAoB;IAMtE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IATnC,QAAQ,CAAC,UAAU,uCAAuC;IAC1D,OAAO,CAAC,OAAO,CAAuB;gBAInB,MAAM,EAAE,aAAa,EAErB,YAAY,EAAE,0BAA0B,EAExC,gBAAgB,EAAE,uBAAuB;IAG5D;;;;;OAKG;IACH,YAAY,IAAI,OAAO;IAIvB,yFAAyF;IACzF,OAAO,KAAK,iBAAiB,GAE5B;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,WAAW,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAmBzD,OAAO,CAAC,UAAU;IAkBlB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAqDzB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,gBAAgB;IAMlB,MAAM,CACV,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,EACvC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAqCzB,QAAQ,CACZ,IAAI,EAAE,uBAAuB,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAgC3B,MAAM,CACV,IAAI,EAAE,uBAAuB,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;IAoBV,WAAW,CACf,IAAI,EAAE,uBAAuB,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC;IA8B/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,OAAO,CAAC,yBAAyB;YAWnB,iBAAiB;IAkB/B,OAAO,CAAC,mBAAmB;CAuD5B"}
|