@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
|
@@ -16,10 +16,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
16
16
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
17
17
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
18
18
|
};
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
19
|
+
import { createRequire } from 'node:module';
|
|
20
|
+
import { join } from 'node:path';
|
|
21
|
+
import { injectable, inject, optional } from 'inversify';
|
|
22
|
+
import { EngineCapability, EngineCapabilityResolutionMode, ENGINE_CAPABILITIES_REQUIRING_A_PROVIDER_WHEN_ENABLED, getEngineCapabilityResolutionMode, PROVIDER_CAPABILITY_TO_ENGINE_CAPABILITY, } from '@wildo-ai/saas-models';
|
|
23
|
+
import { ExternalProvider_ExchangeProtocol_Kind, LLMProvider_OperationKey, DocumentExtractionProvider_OperationKey, EmbeddingsProvider_OperationKey, APPLICATION_ENVIRONMENT, ProviderProtocolRuntimeKind, ExternalProvider_SecretScope, } from '@wildo-ai/external-connectors-models';
|
|
22
24
|
import { SAAS_SERVICE_TYPES } from '../../inject/models/service-types.js';
|
|
25
|
+
import { ProviderCredentialResolutionSource } from '@wildo-ai/saas-models';
|
|
26
|
+
import { ExternalProvider_Connection_DelegationMode, ExternalProvider_Connection_OwnerScope, } from '@wildo-ai/external-connectors-models';
|
|
23
27
|
import { ErrorBuilderBackendService } from '../../errors/services/error-builder.backend.service.js';
|
|
24
28
|
import { describeCaughtError } from '../../errors/utils/error-log-level-classification.backend.utils.js';
|
|
25
29
|
import { ErrorType, ErrorCustomMessageReference, isWildoBackendError } from '@wildo-ai/saas-models';
|
|
@@ -72,19 +76,46 @@ const RUNTIME_EMBEDDINGS_OPERATION_TO_SEMANTIC_OPERATION = {
|
|
|
72
76
|
const RUNTIME_DOCUMENT_EXTRACTION_OPERATION_TO_SEMANTIC_OPERATION = {
|
|
73
77
|
extractDocumentText: DocumentExtractionProvider_OperationKey.EXTRACT_DOCUMENT_TEXT,
|
|
74
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* What a provider admits when NOBODY HAS JUDGED IT — the SAFETY NET, not the answer.
|
|
81
|
+
*
|
|
82
|
+
* Named and stated once because it was previously an anonymous literal inlined at two call sites,
|
|
83
|
+
* and a value that applies to most of the catalogue should be readable as the decision it is.
|
|
84
|
+
*
|
|
85
|
+
* ONE row, and it is the conservative end deliberately. APPLICATION x SERVICE is the deployment's
|
|
86
|
+
* own credential, authored in the environment by the operator — the only claim that needs no
|
|
87
|
+
* knowledge of the vendor whatsoever.
|
|
88
|
+
*
|
|
89
|
+
* It was briefly widened to include ORGANIZATION x SERVICE, with a careful argument that a tenant
|
|
90
|
+
* bringing its own key is a fact about Wildo's tenancy model rather than about any vendor. The
|
|
91
|
+
* argument holds and the change was still wrong: it made a blanket rule decide for 688 vendors at
|
|
92
|
+
* once, which is precisely the per-vendor judgement this framework refuses to shortcut. A default
|
|
93
|
+
* that carries the whole catalogue is not a fallback — it is mass management with a justification
|
|
94
|
+
* attached, and the justification is what makes it hard to notice.
|
|
95
|
+
*
|
|
96
|
+
* So a provider earns every row beyond this one by somebody ANALYSING it and recording why, as
|
|
97
|
+
* `providers/catalogue-record/decisions/slack.json` does. The population that needs that judgement
|
|
98
|
+
* is far smaller than the catalogue: 99 of the 689 transposed vendors declare an OAuth2 contract,
|
|
99
|
+
* and only those have a connection flow to admit anybody to.
|
|
100
|
+
*/
|
|
101
|
+
const UNJUDGED_PROVIDER_ADMISSIBLE_CONNECTIONS = [
|
|
102
|
+
{ ownerScope: ExternalProvider_Connection_OwnerScope.APPLICATION, delegation: ExternalProvider_Connection_DelegationMode.SERVICE },
|
|
103
|
+
];
|
|
75
104
|
let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBackendService {
|
|
76
105
|
logger;
|
|
77
106
|
configService;
|
|
78
107
|
errorBuilder;
|
|
79
108
|
backendProviderRegistry;
|
|
109
|
+
container;
|
|
80
110
|
logDebug;
|
|
81
111
|
registry = null;
|
|
82
112
|
isInitialized = false;
|
|
83
|
-
constructor(logger, configService, errorBuilder, backendProviderRegistry) {
|
|
113
|
+
constructor(logger, configService, errorBuilder, backendProviderRegistry, container) {
|
|
84
114
|
this.logger = logger;
|
|
85
115
|
this.configService = configService;
|
|
86
116
|
this.errorBuilder = errorBuilder;
|
|
87
117
|
this.backendProviderRegistry = backendProviderRegistry;
|
|
118
|
+
this.container = container;
|
|
88
119
|
this.logDebug = this.logger.debugByType('ExternalProvidersRegistryBackendService');
|
|
89
120
|
this.logger.setDebugTypeLogging('ExternalProvidersRegistryBackendService', false);
|
|
90
121
|
this.logDebug('External providers registry service created (not yet initialized)');
|
|
@@ -105,12 +136,72 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
105
136
|
await this.configService.initialize();
|
|
106
137
|
}
|
|
107
138
|
const registry = this.buildRuntimeRegistryFromProviderModules();
|
|
139
|
+
this.reportMissingProviderRuntimePeers();
|
|
108
140
|
this.registry = registry;
|
|
109
141
|
this.isInitialized = true;
|
|
110
142
|
this.logDebug('External providers registry initialized from backend provider modules', {
|
|
111
143
|
totalProviders: Object.keys(registry).length,
|
|
112
144
|
});
|
|
113
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Report a registered provider whose optional runtime peer is not installed (#438).
|
|
148
|
+
*
|
|
149
|
+
* `requiredPackages` declares the npm packages a provider LAZY-LOADS — a vendor SDK that is
|
|
150
|
+
* never an engine or application dependency, installed only in a runtime that enables the
|
|
151
|
+
* provider. Two providers declare it (immudb -> `immudb-node`, posthog -> `posthog-node`), and
|
|
152
|
+
* until 2026-09-08 the field had NO READER anywhere: no start-up check, no installation step,
|
|
153
|
+
* no diagnostic. A provider could be registered with its SDK absent and the first sign was the
|
|
154
|
+
* feature quietly not working.
|
|
155
|
+
*
|
|
156
|
+
* A REPORT, never a refusal, and the asymmetry is deliberate: a declared provider may
|
|
157
|
+
* legitimately never be reached (a fan-out audit sink in an environment that emits nothing),
|
|
158
|
+
* so an absent optional peer is information rather than a misconfiguration. The capability
|
|
159
|
+
* DISAGREEMENT check in `define-saas-config` refuses, because a wrong declaration is wrong
|
|
160
|
+
* whatever happens next.
|
|
161
|
+
*
|
|
162
|
+
* Resolution is attempted from the RUNNING APPLICATION first and from this module second. The
|
|
163
|
+
* peer is installed in the application's own `backend-api`, not in the engine package, so
|
|
164
|
+
* resolving only from here would report a false absence — and a diagnostic that cries wolf is
|
|
165
|
+
* worse than the silence it replaces.
|
|
166
|
+
*/
|
|
167
|
+
reportMissingProviderRuntimePeers() {
|
|
168
|
+
const resolvers = [
|
|
169
|
+
(() => { try {
|
|
170
|
+
return createRequire(join(process.cwd(), 'package.json'));
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return undefined;
|
|
174
|
+
} })(),
|
|
175
|
+
(() => { try {
|
|
176
|
+
return createRequire(import.meta.url);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return undefined;
|
|
180
|
+
} })(),
|
|
181
|
+
].filter((resolver) => Boolean(resolver));
|
|
182
|
+
const isResolvable = (packageName) => resolvers.some((resolver) => {
|
|
183
|
+
try {
|
|
184
|
+
resolver.resolve(packageName);
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
for (const provider of this.backendProviderRegistry.getRegistry().modules.values()) {
|
|
192
|
+
const declaredPackages = provider.requiredPackages ?? [];
|
|
193
|
+
const missing = declaredPackages.filter((packageName) => !isResolvable(packageName));
|
|
194
|
+
if (missing.length === 0) {
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
this.logger.warn('Provider is registered without its declared optional runtime peer(s)', {
|
|
198
|
+
providerRef: provider.metadata.ref,
|
|
199
|
+
missingPackages: missing,
|
|
200
|
+
detail: 'The provider lazy-loads these and degrades without them, so the capability it serves will not work. '
|
|
201
|
+
+ 'Install them in the runtime that enables this provider, or stop declaring the provider in that scope.',
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
114
205
|
buildRuntimeRegistryFromProviderModules() {
|
|
115
206
|
const registry = {};
|
|
116
207
|
for (const provider of this.backendProviderRegistry.getRegistry().modules.values()) {
|
|
@@ -187,7 +278,7 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
187
278
|
&& (selection?.engineCapabilities ?? []).includes(capability);
|
|
188
279
|
});
|
|
189
280
|
// A FAN_OUT capability ignores any `selection` policy: every declared
|
|
190
|
-
// provider is active, so primary/
|
|
281
|
+
// provider is active, so primary/substitute ordering is meaningless (and the
|
|
191
282
|
// config validator rejects authoring one). Guarding here is defense-in-
|
|
192
283
|
// depth — a stray selection on a fan-out cap from a legacy/hand-authored
|
|
193
284
|
// artifact never reorders or truncates the fan-out set.
|
|
@@ -204,7 +295,7 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
204
295
|
? undefined
|
|
205
296
|
: selectionForCapability;
|
|
206
297
|
if (policy) {
|
|
207
|
-
const orderedPolicyRefs = [policy.primary, ...(policy.
|
|
298
|
+
const orderedPolicyRefs = [policy.primary, ...(policy.whenUnavailable ?? [])]
|
|
208
299
|
.filter((providerRef) => availableProviders.includes(providerRef));
|
|
209
300
|
const remainingRefs = availableProviders.filter((providerRef) => !orderedPolicyRefs.includes(providerRef));
|
|
210
301
|
return [...orderedPolicyRefs, ...remainingRefs];
|
|
@@ -222,7 +313,10 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
222
313
|
* Resolve the provider ref(s) that should be ACTIVE for a capability,
|
|
223
314
|
* honouring its declared `EngineCapabilityResolutionMode`:
|
|
224
315
|
* - `SELECT_ONE` (the default — billing, email, observability, …): the
|
|
225
|
-
* single primary
|
|
316
|
+
* single primary, as a 0- or 1-element list. A declared `whenUnavailable` entry
|
|
317
|
+
* only orders the candidate list ahead of this call — it substitutes for a
|
|
318
|
+
* primary that is not AVAILABLE, and nothing tries a second provider when a
|
|
319
|
+
* call to the first one FAILS.
|
|
226
320
|
* - `FAN_OUT` (e.g. `COMPLIANCE_AUDIT_TRAIL`): EVERY declared + available
|
|
227
321
|
* provider — all active simultaneously (no primary, no failover).
|
|
228
322
|
*
|
|
@@ -270,25 +364,63 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
270
364
|
* Audit (`COMPLIANCE_AUDIT_TRAIL`, when marked required) is the FIRST user, not
|
|
271
365
|
* a special case: this generalizes the coherence to EVERY capability.
|
|
272
366
|
*/
|
|
273
|
-
getRequiredCapabilitiesWithoutProvider() {
|
|
367
|
+
getRequiredCapabilitiesWithoutProvider(options = { includeEngineFloor: true }) {
|
|
274
368
|
this.ensureInitialized();
|
|
275
369
|
if (!this.configService.isInitialized()) {
|
|
276
|
-
|
|
370
|
+
// Used to answer `[]` here, which read as "nothing missing" on a host whose config
|
|
371
|
+
// had never loaded — a floor that cannot see its inputs must refuse, not reassure.
|
|
372
|
+
throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
|
|
373
|
+
customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
|
|
374
|
+
context: {
|
|
375
|
+
message: 'The required-capability floor was evaluated before the application configuration '
|
|
376
|
+
+ 'was initialized; it cannot decide what is required.',
|
|
377
|
+
},
|
|
378
|
+
});
|
|
277
379
|
}
|
|
278
380
|
const activations = this.configService.config.engineCapabilities ?? {};
|
|
279
381
|
const missing = [];
|
|
280
|
-
|
|
281
|
-
|
|
382
|
+
// Swept over the ENUM, not over the authored keys (#328), so the population and its order
|
|
383
|
+
// are the engine's. Requiredness itself always needs an activation entry — an absent key is
|
|
384
|
+
// neither `enabled` nor `required` — so this is about which list is authoritative, not about
|
|
385
|
+
// catching an omitted key.
|
|
386
|
+
for (const capability of Object.values(EngineCapability)) {
|
|
387
|
+
const activation = activations[capability];
|
|
388
|
+
const requiredByApplication = activation?.required === true;
|
|
389
|
+
const requiredByEngine = options.includeEngineFloor
|
|
390
|
+
&& activation?.enabled === true
|
|
391
|
+
&& ENGINE_CAPABILITIES_REQUIRING_A_PROVIDER_WHEN_ENABLED.has(capability);
|
|
392
|
+
if ((requiredByApplication || requiredByEngine)
|
|
282
393
|
&& this.getResolvedProviderRefsForCapability(capability).length === 0) {
|
|
283
394
|
missing.push(capability);
|
|
284
395
|
}
|
|
285
396
|
}
|
|
286
397
|
return missing;
|
|
287
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* The floor as a single fail-closed door (#328): every host that serves the application
|
|
401
|
+
* calls this after its registry is ready — the application backend, and the platform
|
|
402
|
+
* services after `refreshFromConfig()` — so "required with nothing serving it" cannot pass
|
|
403
|
+
* one host's boot because the check happened to live on another's branch.
|
|
404
|
+
*/
|
|
405
|
+
assertRequiredCapabilityFloor(options) {
|
|
406
|
+
const missingRequiredCapabilities = this.getRequiredCapabilitiesWithoutProvider(options);
|
|
407
|
+
if (missingRequiredCapabilities.length === 0)
|
|
408
|
+
return;
|
|
409
|
+
throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
|
|
410
|
+
customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
|
|
411
|
+
context: {
|
|
412
|
+
message: `Required engine capabilities resolve no active provider: [${missingRequiredCapabilities.join(', ')}]. `
|
|
413
|
+
+ 'Each is either marked `required` in engineCapabilities or is an engine flow that needs a provider '
|
|
414
|
+
+ 'the moment it is enabled (EMAIL_TRANSACTIONAL, BILLING, SMS) — declare a provider for it '
|
|
415
|
+
+ '(SELECT_ONE needs a primary; FAN_OUT needs ≥1 declared), or disable the capability.',
|
|
416
|
+
missingRequiredCapabilities,
|
|
417
|
+
},
|
|
418
|
+
});
|
|
419
|
+
}
|
|
288
420
|
/**
|
|
289
421
|
* Per-environment external-provider selection override, read once from
|
|
290
422
|
* `process.env.WILDO_PROVIDER_SELECTION_OVERRIDES` (a JSON map of
|
|
291
|
-
* `EngineCapability -> { primary,
|
|
423
|
+
* `EngineCapability -> { primary, whenUnavailable? }`). Projected by the Wildo
|
|
292
424
|
* CLI's `env-vars-builder` from `wildo.infra.<env>.config.ts > providerSelection`.
|
|
293
425
|
* Read as a string literal (not via a `platform-config-lib` import) to
|
|
294
426
|
* preserve the engine → platform dependency direction — mirrors how
|
|
@@ -335,8 +467,8 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
335
467
|
return undefined;
|
|
336
468
|
if (typeof override.primary !== 'string'
|
|
337
469
|
|| override.primary.length === 0
|
|
338
|
-
|| (override.
|
|
339
|
-
|| !override.
|
|
470
|
+
|| (override.whenUnavailable !== undefined && (!Array.isArray(override.whenUnavailable)
|
|
471
|
+
|| !override.whenUnavailable.every((substitute) => typeof substitute === 'string' && substitute.length > 0)))) {
|
|
340
472
|
this.malformedProviderSelectionOverrides.add(capability);
|
|
341
473
|
return undefined;
|
|
342
474
|
}
|
|
@@ -364,9 +496,9 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
364
496
|
? ExternalProviderSelectionOverrideStatus.APPLIED
|
|
365
497
|
: ExternalProviderSelectionOverrideStatus.ABSENT,
|
|
366
498
|
applicationPrimaryProviderRef: runtimeSelection?.primary ?? null,
|
|
367
|
-
|
|
499
|
+
applicationSubstituteProviderRefs: Object.freeze([...(runtimeSelection?.whenUnavailable ?? [])]),
|
|
368
500
|
environmentPrimaryProviderRef: environmentSelection?.primary ?? null,
|
|
369
|
-
|
|
501
|
+
environmentSubstituteProviderRefs: Object.freeze([...(environmentSelection?.whenUnavailable ?? [])]),
|
|
370
502
|
providerRuntimeArtifact: this.configService.getProviderRuntimeArtifactEvidenceMetadata(),
|
|
371
503
|
});
|
|
372
504
|
}
|
|
@@ -519,12 +651,66 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
519
651
|
}
|
|
520
652
|
return merged;
|
|
521
653
|
}
|
|
654
|
+
/**
|
|
655
|
+
* WHAT a declared secret identifies — the integration, or an account.
|
|
656
|
+
*
|
|
657
|
+
* DECLARED wins; otherwise DERIVED, and the derivation is deliberately narrow. A ref the REST
|
|
658
|
+
* runtime contract names as the OAuth2 client id or client secret is a REGISTRATION. Everything
|
|
659
|
+
* else answers CREDENTIAL.
|
|
660
|
+
*
|
|
661
|
+
* The fallback exists because the field arrived after 689 provider packages had been emitted,
|
|
662
|
+
* from catalogues that live outside this repository — a mark that only worked once every package
|
|
663
|
+
* had been re-emitted would enforce nothing until then, which for a guard is the same as not
|
|
664
|
+
* existing.
|
|
665
|
+
*
|
|
666
|
+
* It is a FLOOR, not a complete answer, and the direction of its error matters. Deriving
|
|
667
|
+
* CREDENTIAL for a registration secret the contract does not name in those two slots is the
|
|
668
|
+
* permissive mistake: such a secret would still be storable as a tenant's own. That is exactly
|
|
669
|
+
* the case a provider must declare explicitly, and it is why `scope` is authorable at all rather
|
|
670
|
+
* than purely computed.
|
|
671
|
+
*/
|
|
672
|
+
getProviderSecretScope(providerRef, secretRef) {
|
|
673
|
+
const entry = this.findSecretsContractEntry(providerRef, secretRef);
|
|
674
|
+
if (entry?.scope !== undefined) {
|
|
675
|
+
return entry.scope;
|
|
676
|
+
}
|
|
677
|
+
// Compare on the ENV-VAR NAME, not on the ref as supplied. A ref may arrive as either the
|
|
678
|
+
// authoring slug (`accessToken`) or the env-var name (`SLACK_API_KEY`), while a runtime
|
|
679
|
+
// contract only ever references the latter — so deriving from the raw ref answered CREDENTIAL
|
|
680
|
+
// for `clientSecret` and REGISTRATION for `SLACK_CLIENT_SECRET`, two names for one secret.
|
|
681
|
+
const comparableRef = entry?.envVarName ?? secretRef;
|
|
682
|
+
const contract = this.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.REST_API);
|
|
683
|
+
const oauth2 = contract?.kind === ProviderProtocolRuntimeKind.REST ? contract.oauth2 : undefined;
|
|
684
|
+
const namesRegistration = oauth2 !== undefined
|
|
685
|
+
&& (oauth2.clientIdSecretRef === comparableRef || oauth2.clientSecretSecretRef === comparableRef);
|
|
686
|
+
return namesRegistration
|
|
687
|
+
? ExternalProvider_SecretScope.REGISTRATION
|
|
688
|
+
: ExternalProvider_SecretScope.CREDENTIAL;
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* The contract entry for a ref, found by ENV-VAR NAME or by SLUG.
|
|
692
|
+
*
|
|
693
|
+
* Both are real addresses for the same thing and callers use both: the map key is the authoring
|
|
694
|
+
* slug (`accessToken`), while runtime contracts reference the env-var name (`SLACK_API_KEY`).
|
|
695
|
+
* Matching only one would leave half the callers unable to find an entry that is plainly there.
|
|
696
|
+
*/
|
|
697
|
+
findSecretsContractEntry(providerRef, secretRef) {
|
|
698
|
+
const contract = this.backendProviderRegistry.getProvider(providerRef)?.secretsContract;
|
|
699
|
+
if (contract === undefined) {
|
|
700
|
+
return undefined;
|
|
701
|
+
}
|
|
702
|
+
const bySlug = contract[secretRef];
|
|
703
|
+
if (bySlug !== undefined) {
|
|
704
|
+
return bySlug;
|
|
705
|
+
}
|
|
706
|
+
return Object.values(contract).find((entry) => entry.envVarName === secretRef);
|
|
707
|
+
}
|
|
522
708
|
getProviderRuntimeContract(providerRef, protocolKind) {
|
|
523
709
|
return this.getProviderConfiguration(providerRef, protocolKind)?.runtimeContract;
|
|
524
710
|
}
|
|
525
711
|
getLLMSemanticOperationKeys(providerRef) {
|
|
526
712
|
const runtimeContract = this.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.LLM_PROVIDER);
|
|
527
|
-
if (runtimeContract?.kind !==
|
|
713
|
+
if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.LLM) {
|
|
528
714
|
return [];
|
|
529
715
|
}
|
|
530
716
|
return this.toSemanticOperationKeys(runtimeContract.operations);
|
|
@@ -537,7 +723,7 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
537
723
|
*/
|
|
538
724
|
getEmbeddingsSemanticOperationKeys(providerRef) {
|
|
539
725
|
const runtimeContract = this.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER);
|
|
540
|
-
if (runtimeContract?.kind !==
|
|
726
|
+
if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {
|
|
541
727
|
return [];
|
|
542
728
|
}
|
|
543
729
|
return runtimeContract.operations
|
|
@@ -553,7 +739,7 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
553
739
|
*/
|
|
554
740
|
getDocumentExtractionSemanticOperationKeys(providerRef) {
|
|
555
741
|
const runtimeContract = this.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER);
|
|
556
|
-
if (runtimeContract?.kind !==
|
|
742
|
+
if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.DOCUMENT_EXTRACTION) {
|
|
557
743
|
return [];
|
|
558
744
|
}
|
|
559
745
|
return runtimeContract.operations
|
|
@@ -566,7 +752,7 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
566
752
|
}
|
|
567
753
|
getAgentClientProtocolProfile(providerRef) {
|
|
568
754
|
const runtimeContract = this.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.AGENT_CLIENT_PROTOCOL);
|
|
569
|
-
if (runtimeContract?.kind !==
|
|
755
|
+
if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.AGENT_CLIENT_PROTOCOL) {
|
|
570
756
|
return undefined;
|
|
571
757
|
}
|
|
572
758
|
const supportedModels = [
|
|
@@ -586,6 +772,16 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
586
772
|
? { sessionMetaExtensionsByHostConfigurationInheritance: runtimeContract.sessionMetaExtensionsByHostConfigurationInheritance }
|
|
587
773
|
: {}),
|
|
588
774
|
...(runtimeContract.modelDelivery ? { modelDelivery: runtimeContract.modelDelivery } : {}),
|
|
775
|
+
...(runtimeContract.modelTransportIds
|
|
776
|
+
? { modelTransportIds: { ...runtimeContract.modelTransportIds } }
|
|
777
|
+
: {}),
|
|
778
|
+
...(runtimeContract.inheritedEnvironmentVariables
|
|
779
|
+
? { inheritedEnvironmentVariables: [...runtimeContract.inheritedEnvironmentVariables] }
|
|
780
|
+
: {}),
|
|
781
|
+
// Normalised to the AUTHORED vocabulary: the contract spells these
|
|
782
|
+
// with hyphens and the profile enum with underscores, and comparing
|
|
783
|
+
// the two spellings directly is a guard that never fires.
|
|
784
|
+
supportedAuthModes: runtimeContract.authModes.map((mode) => mode.replace(/-/g, '_')),
|
|
589
785
|
...(runtimeContract.sessionModeIdsByPermissionCeiling
|
|
590
786
|
? {
|
|
591
787
|
sessionModeIdsByPermissionCeiling: Object.fromEntries(Object.entries(runtimeContract.sessionModeIdsByPermissionCeiling).map(([ceiling, modeIds]) => [ceiling, [...(modeIds ?? [])]])),
|
|
@@ -655,7 +851,7 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
655
851
|
this.logDebug(`Runtime contract not found: ${providerRef}:${protocolKind}`);
|
|
656
852
|
return undefined;
|
|
657
853
|
}
|
|
658
|
-
if (runtimeContract.kind ===
|
|
854
|
+
if (runtimeContract.kind === ProviderProtocolRuntimeKind.AGENT_CLIENT_PROTOCOL) {
|
|
659
855
|
const defaultExecutionProfileRef = 'default';
|
|
660
856
|
const hasExplicitSecretBinding = Boolean(runtimeContract.secretRef
|
|
661
857
|
&& runtimeContract.secretEnvVarName
|
|
@@ -709,7 +905,7 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
709
905
|
},
|
|
710
906
|
}
|
|
711
907
|
: {}),
|
|
712
|
-
...(runtimeContract.kind ===
|
|
908
|
+
...(runtimeContract.kind === ProviderProtocolRuntimeKind.WEBHOOK_ORIGINATOR
|
|
713
909
|
? { endpoints: this.buildWebhookEndpoints(runtimeContract) }
|
|
714
910
|
: {}),
|
|
715
911
|
runtimeContract,
|
|
@@ -732,31 +928,31 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
732
928
|
}
|
|
733
929
|
secretRefForRuntimeContract(runtimeContract) {
|
|
734
930
|
switch (runtimeContract.kind) {
|
|
735
|
-
case
|
|
931
|
+
case ProviderProtocolRuntimeKind.EMAIL:
|
|
736
932
|
// A `delivery: 'log'` email contract (the dev `preview`
|
|
737
933
|
// provider) has NO endpoint and NO apiKey — it renders +
|
|
738
934
|
// logs instead of sending. No secretRef to resolve; the
|
|
739
935
|
// caller emits no `authConfig` and the email service skips
|
|
740
936
|
// the API-key requirement. Contract-driven, not ref-keyed.
|
|
741
937
|
return runtimeContract.delivery === 'log' ? undefined : runtimeContract.apiKey.secretRef;
|
|
742
|
-
case
|
|
938
|
+
case ProviderProtocolRuntimeKind.LLM:
|
|
743
939
|
return runtimeContract.apiKey.secretRef;
|
|
744
|
-
case
|
|
940
|
+
case ProviderProtocolRuntimeKind.IMAGE:
|
|
745
941
|
return runtimeContract.apiKey.secretRef;
|
|
746
|
-
case
|
|
942
|
+
case ProviderProtocolRuntimeKind.EMBEDDINGS:
|
|
747
943
|
return runtimeContract.apiKey.secretRef;
|
|
748
|
-
case
|
|
944
|
+
case ProviderProtocolRuntimeKind.DOCUMENT_EXTRACTION:
|
|
749
945
|
return runtimeContract.apiKey.secretRef;
|
|
750
|
-
case
|
|
946
|
+
case ProviderProtocolRuntimeKind.OAUTH2_SSO:
|
|
751
947
|
return runtimeContract.clientSecretRef;
|
|
752
|
-
case
|
|
753
|
-
case
|
|
948
|
+
case ProviderProtocolRuntimeKind.BILLING:
|
|
949
|
+
case ProviderProtocolRuntimeKind.WEBHOOK_ORIGINATOR:
|
|
754
950
|
return runtimeContract.secretRef;
|
|
755
|
-
case
|
|
951
|
+
case ProviderProtocolRuntimeKind.SMS:
|
|
756
952
|
return runtimeContract.auth.secretRef;
|
|
757
|
-
case
|
|
953
|
+
case ProviderProtocolRuntimeKind.REST:
|
|
758
954
|
return runtimeContract.apiKey.secretRef;
|
|
759
|
-
case
|
|
955
|
+
case ProviderProtocolRuntimeKind.AGENT_CLIENT_PROTOCOL:
|
|
760
956
|
// An ACP agent that needs a credential carries it on the
|
|
761
957
|
// contract; a host-managed one (the default for a coding agent
|
|
762
958
|
// running under an operator's own login) carries none.
|
|
@@ -793,25 +989,25 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
793
989
|
*/
|
|
794
990
|
authKindForRuntimeContract(runtimeContract) {
|
|
795
991
|
switch (runtimeContract.kind) {
|
|
796
|
-
case
|
|
797
|
-
case
|
|
798
|
-
case
|
|
992
|
+
case ProviderProtocolRuntimeKind.LLM:
|
|
993
|
+
case ProviderProtocolRuntimeKind.IMAGE:
|
|
994
|
+
case ProviderProtocolRuntimeKind.EMBEDDINGS:
|
|
799
995
|
// Document extraction authenticates with an opaque API key in a request header, like
|
|
800
996
|
// its siblings above; the header SHAPE (name/prefix) stays on the contract because
|
|
801
997
|
// this family builds its own HTTPS request rather than handing a key to an SDK.
|
|
802
|
-
case
|
|
803
|
-
case
|
|
804
|
-
case
|
|
805
|
-
case
|
|
998
|
+
case ProviderProtocolRuntimeKind.DOCUMENT_EXTRACTION:
|
|
999
|
+
case ProviderProtocolRuntimeKind.EMAIL:
|
|
1000
|
+
case ProviderProtocolRuntimeKind.SMS:
|
|
1001
|
+
case ProviderProtocolRuntimeKind.BILLING:
|
|
806
1002
|
// `rest` authenticates with an opaque API key supplied via env var, like its siblings
|
|
807
1003
|
// above; the header SHAPE (name/prefix) stays on the contract for its consumer.
|
|
808
|
-
case
|
|
1004
|
+
case ProviderProtocolRuntimeKind.REST:
|
|
809
1005
|
return ExternalProvider_Auth_Kind.API_KEY;
|
|
810
|
-
case
|
|
1006
|
+
case ProviderProtocolRuntimeKind.WEBHOOK_ORIGINATOR:
|
|
811
1007
|
return ExternalProvider_Auth_Kind.HMAC_SIGNATURE;
|
|
812
|
-
case
|
|
1008
|
+
case ProviderProtocolRuntimeKind.OAUTH2_SSO:
|
|
813
1009
|
return ExternalProvider_Auth_Kind.OAUTH2;
|
|
814
|
-
case
|
|
1010
|
+
case ProviderProtocolRuntimeKind.AGENT_CLIENT_PROTOCOL:
|
|
815
1011
|
throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {
|
|
816
1012
|
customMessageReference: ErrorCustomMessageReference.EXTERNAL_PROVIDER_REGISTRY_INITIALIZATION_FAILED,
|
|
817
1013
|
context: {
|
|
@@ -929,6 +1125,296 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
929
1125
|
return undefined;
|
|
930
1126
|
}
|
|
931
1127
|
}
|
|
1128
|
+
/**
|
|
1129
|
+
* WHICH connections this provider admits — the recorded decision, or the FLOOR.
|
|
1130
|
+
*
|
|
1131
|
+
* The floor is an APPLICATION-owned, undelegated connection and nothing else, and it is what a
|
|
1132
|
+
* provider that has recorded no decision gets. It is not a permissive default: it is the one
|
|
1133
|
+
* answer always available (an operator can author an environment variable) and the one that
|
|
1134
|
+
* cannot produce a cross-tenant mistake (it has exactly one instance).
|
|
1135
|
+
*
|
|
1136
|
+
* Never derived here from a provider's auth shape. Whether a vendor can be connected per tenant
|
|
1137
|
+
* is a fact about that vendor's product and about what somebody verified — see the catalogue
|
|
1138
|
+
* record for a generated provider, or the module itself for a hand-authored one.
|
|
1139
|
+
*/
|
|
1140
|
+
getProviderAdmissibleConnections(providerRef) {
|
|
1141
|
+
const declared = this.backendProviderRegistry.getProvider(providerRef)?.admissibleConnections;
|
|
1142
|
+
const catalogue = declared === undefined || declared.length === 0
|
|
1143
|
+
? UNJUDGED_PROVIDER_ADMISSIBLE_CONNECTIONS
|
|
1144
|
+
: declared;
|
|
1145
|
+
return this.narrowToApplicationConnectionPolicy(providerRef, catalogue);
|
|
1146
|
+
}
|
|
1147
|
+
/**
|
|
1148
|
+
* What the VENDOR admits, before this application's policy narrows it.
|
|
1149
|
+
*
|
|
1150
|
+
* Exists so a refusal can name the right cause. Once a policy can subtract, "this provider does
|
|
1151
|
+
* not admit that connection" has two meanings — nobody recorded the vendor's capability, or this
|
|
1152
|
+
* application switched it off — and they are repaired in different files by different people.
|
|
1153
|
+
* A diagnostic that always blamed the catalogue would send an operator to edit a decision record
|
|
1154
|
+
* that is already correct.
|
|
1155
|
+
*/
|
|
1156
|
+
getProviderCatalogueAdmissibleConnections(providerRef) {
|
|
1157
|
+
const declared = this.backendProviderRegistry.getProvider(providerRef)?.admissibleConnections;
|
|
1158
|
+
return declared === undefined || declared.length === 0
|
|
1159
|
+
? UNJUDGED_PROVIDER_ADMISSIBLE_CONNECTIONS
|
|
1160
|
+
: declared;
|
|
1161
|
+
}
|
|
1162
|
+
/**
|
|
1163
|
+
* Intersect what the VENDOR admits with what THIS application permits.
|
|
1164
|
+
*
|
|
1165
|
+
* Two layers answering different questions, and the intersection is what makes them composable:
|
|
1166
|
+
* the catalogue record says an organization-owned Slack connection is possible because Slack is
|
|
1167
|
+
* installed per workspace, while `providers.connections.slack` says whether this product offers
|
|
1168
|
+
* one. A vendor opening a capability and a product deciding to use it are different events, and
|
|
1169
|
+
* a single list would make them look identical.
|
|
1170
|
+
*
|
|
1171
|
+
* NARROWING ONLY, and that direction is the guarantee rather than a convention. An application
|
|
1172
|
+
* cannot declare a connection the vendor does not support into existence — the connect leg would
|
|
1173
|
+
* build an authorize URL the vendor rejects, or store a grant nothing can spend — so a policy
|
|
1174
|
+
* entry naming an unadmitted shape contributes nothing instead of granting it.
|
|
1175
|
+
*
|
|
1176
|
+
* An ABSENT policy means "everything the catalogue admits", never "nothing". Most applications
|
|
1177
|
+
* will never author one, and reading their silence as a refusal would switch off the whole
|
|
1178
|
+
* connect surface for every product that has not yet thought about it.
|
|
1179
|
+
*
|
|
1180
|
+
* An intersection that empties is a legitimate outcome, not a misconfiguration: it is how an
|
|
1181
|
+
* application switches a provider's connect surface off without removing the provider, which it
|
|
1182
|
+
* may still need for its own application-scope credential.
|
|
1183
|
+
*/
|
|
1184
|
+
narrowToApplicationConnectionPolicy(providerRef, catalogue) {
|
|
1185
|
+
const permitted = this.configService.config.providers?.connections?.[providerRef]?.admissible;
|
|
1186
|
+
if (permitted === undefined) {
|
|
1187
|
+
return catalogue;
|
|
1188
|
+
}
|
|
1189
|
+
return catalogue.filter((shape) => permitted.some((allowed) => allowed.ownerScope === shape.ownerScope && allowed.delegation === shape.delegation));
|
|
1190
|
+
}
|
|
1191
|
+
/**
|
|
1192
|
+
* One provider secret for ONE connection target — strictly, with no substitution.
|
|
1193
|
+
*
|
|
1194
|
+
* ## Why this exists beside `resolveProviderSecretForOrganization` rather than extending it
|
|
1195
|
+
*
|
|
1196
|
+
* That method FALLS BACK: an organization with no credential of its own silently spends the
|
|
1197
|
+
* deployment's. This one does not, and the difference is not a tightening of the same idea —
|
|
1198
|
+
* it is the opposite policy. A fallback means the vendor sees the application's identity while
|
|
1199
|
+
* the application believes it acted as the tenant, so every artifact the call leaves behind —
|
|
1200
|
+
* a message, a record, a line in the vendor's own audit log — is attributed to the wrong party,
|
|
1201
|
+
* and nothing downstream can detect it.
|
|
1202
|
+
*
|
|
1203
|
+
* An application that wants "the tenant's key when they have connected one, otherwise ours"
|
|
1204
|
+
* still has it: it names an APPLICATION target for that usage, in its own code, where the
|
|
1205
|
+
* choice is visible. What is removed is the engine performing the swap underneath a call that
|
|
1206
|
+
* asked for a tenant.
|
|
1207
|
+
*
|
|
1208
|
+
* `resolveProviderSecretForOrganization` is superseded and is removed once its remaining
|
|
1209
|
+
* consumers move; it is left standing only because its test currently carries another session's
|
|
1210
|
+
* uncommitted work.
|
|
1211
|
+
*/
|
|
1212
|
+
async resolveProviderSecretForTarget(target, providerRef, protocolKind, secretRef) {
|
|
1213
|
+
this.ensureInitialized();
|
|
1214
|
+
if (target.delegation === ExternalProvider_Connection_DelegationMode.USER) {
|
|
1215
|
+
throw this.buildConnectionRefusal(providerRef, `a call delegated to user '${target.actingForUserId}' cannot be resolved: no outbound per-principal token store exists yet. `
|
|
1216
|
+
+ 'Declare an undelegated target, or build the delegated-token subsystem (#333).');
|
|
1217
|
+
}
|
|
1218
|
+
if (target.ownerScope === ExternalProvider_Connection_OwnerScope.USER) {
|
|
1219
|
+
// An envelope failure is NOT caught here, deliberately, for the organization branch's
|
|
1220
|
+
// reason: a person who HAS a credential which cannot be opened must refuse loudly rather
|
|
1221
|
+
// than be treated as a person who has none. The two are indistinguishable to a caller
|
|
1222
|
+
// and only one of them is a safe thing to continue from.
|
|
1223
|
+
const userResolver = this.resolveUserCredentialResolver();
|
|
1224
|
+
if (!userResolver) {
|
|
1225
|
+
throw this.buildConnectionRefusal(providerRef, 'no user credential store is bound, so a person-owned connection cannot be read at all. '
|
|
1226
|
+
+ 'This is a wiring fault rather than a missing credential.');
|
|
1227
|
+
}
|
|
1228
|
+
const ownedByUser = await userResolver.resolveUserCredential({
|
|
1229
|
+
userId: target.ownerId,
|
|
1230
|
+
providerRef,
|
|
1231
|
+
secretSlug: secretRef,
|
|
1232
|
+
});
|
|
1233
|
+
if (!ownedByUser) {
|
|
1234
|
+
throw this.buildConnectionRefusal(providerRef, `user '${target.ownerId}' has not connected '${secretRef}'. It is not substituted with the `
|
|
1235
|
+
+ "deployment's or their organization's: the call asked to act as this person, and acting as "
|
|
1236
|
+
+ 'anyone else would put the wrong name on the record the provider keeps.');
|
|
1237
|
+
}
|
|
1238
|
+
return {
|
|
1239
|
+
value: ownedByUser.value,
|
|
1240
|
+
source: ProviderCredentialResolutionSource.USER_CREDENTIAL,
|
|
1241
|
+
credentialId: ownedByUser.credentialId,
|
|
1242
|
+
};
|
|
1243
|
+
}
|
|
1244
|
+
if (target.ownerScope === ExternalProvider_Connection_OwnerScope.APPLICATION) {
|
|
1245
|
+
const fromEnvironment = this.getProviderSecret(providerRef, protocolKind, secretRef);
|
|
1246
|
+
if (fromEnvironment) {
|
|
1247
|
+
return { value: fromEnvironment, source: ProviderCredentialResolutionSource.DEPLOYMENT_ENVIRONMENT };
|
|
1248
|
+
}
|
|
1249
|
+
const environmentVariableName = this.getProviderSecretEnvVarName(providerRef, protocolKind, secretRef) ?? secretRef;
|
|
1250
|
+
throw this.buildConnectionRefusal(providerRef, `the application's own credential for '${secretRef}' is not set. Author '${environmentVariableName}' in the deployment environment.`);
|
|
1251
|
+
}
|
|
1252
|
+
// ORGANIZATION. An envelope failure is NOT caught, deliberately: a tenant that HAS a
|
|
1253
|
+
// credential which cannot be opened must refuse loudly rather than be treated as a tenant
|
|
1254
|
+
// that has none — the two are indistinguishable to a caller and only one is safe.
|
|
1255
|
+
const resolver = this.resolveOrganizationCredentialResolver();
|
|
1256
|
+
if (!resolver) {
|
|
1257
|
+
throw this.buildConnectionRefusal(providerRef, 'no organization credential store is bound, so a tenant-owned connection cannot be read at all. '
|
|
1258
|
+
+ 'This is a wiring fault rather than a missing credential.');
|
|
1259
|
+
}
|
|
1260
|
+
const owned = await resolver.resolveOrganizationCredential({
|
|
1261
|
+
organizationId: target.ownerId,
|
|
1262
|
+
providerRef,
|
|
1263
|
+
secretSlug: secretRef,
|
|
1264
|
+
});
|
|
1265
|
+
if (!owned) {
|
|
1266
|
+
throw this.buildConnectionRefusal(providerRef, `organization '${target.ownerId}' has no credential for '${secretRef}'. It is not substituted with the deployment's: `
|
|
1267
|
+
+ 'the call asked to act as this tenant, and acting as someone else instead would be attributed to the wrong party.');
|
|
1268
|
+
}
|
|
1269
|
+
return {
|
|
1270
|
+
value: owned.value,
|
|
1271
|
+
source: ProviderCredentialResolutionSource.ORGANIZATION_CREDENTIAL,
|
|
1272
|
+
credentialId: owned.credentialId,
|
|
1273
|
+
};
|
|
1274
|
+
}
|
|
1275
|
+
/** One shape for every connection refusal, so an operator reads the same sentence everywhere. */
|
|
1276
|
+
buildConnectionRefusal(providerRef, detail) {
|
|
1277
|
+
return new Error(`Provider '${providerRef}': ${detail}`);
|
|
1278
|
+
}
|
|
1279
|
+
// ══════════════════════════════════════════════════════════════════════════════════════════
|
|
1280
|
+
// PER-ORGANIZATION SECRET RESOLUTION (#357)
|
|
1281
|
+
//
|
|
1282
|
+
// ## Why these are separate methods and not a change to `getProviderSecret`
|
|
1283
|
+
//
|
|
1284
|
+
// `getProviderSecret` is synchronous, and six consumers across four other workstreams' files
|
|
1285
|
+
// call it that way. A per-organization credential lives in the database, so resolving one is
|
|
1286
|
+
// necessarily asynchronous — making the existing method async would reshape every one of those
|
|
1287
|
+
// call sites at once, in files this slice may not touch. So the environment path stays exactly
|
|
1288
|
+
// as it was, and the tenant-aware path is added beside it.
|
|
1289
|
+
//
|
|
1290
|
+
// This is a seam, not a duplication: the async path CALLS `getProviderSecret` for its second
|
|
1291
|
+
// step, so there remains exactly one implementation of "what does the environment say".
|
|
1292
|
+
//
|
|
1293
|
+
// ## The ORDER, and why the third step is a throw
|
|
1294
|
+
//
|
|
1295
|
+
// 1. the organization's OWN credential
|
|
1296
|
+
// 2. the deployment's env-projected `SecretsContract`
|
|
1297
|
+
// 3. refuse, BY NAME
|
|
1298
|
+
//
|
|
1299
|
+
// Step 3 is the one that matters. Before this existed, an unresolvable secret returned
|
|
1300
|
+
// `undefined`, and every caller then decided for itself what that meant — several of them by
|
|
1301
|
+
// passing it onward, so a vendor received an empty Authorization header and answered 401. A 401
|
|
1302
|
+
// from a vendor is indistinguishable from a revoked credential, so the real fault (nobody ever
|
|
1303
|
+
// configured one) was invisible. Naming both places that were checked turns that into a
|
|
1304
|
+
// sentence an operator can act on.
|
|
1305
|
+
//
|
|
1306
|
+
// assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — resolving which principal this
|
|
1307
|
+
// application acts as toward a third party, per tenant.
|
|
1308
|
+
// ══════════════════════════════════════════════════════════════════════════════════════════
|
|
1309
|
+
/**
|
|
1310
|
+
* Lazy getter for the per-organization credential store — see the `container` constructor
|
|
1311
|
+
* param's JSDoc for why this cannot be a constructor injection.
|
|
1312
|
+
*
|
|
1313
|
+
* `isBound` is what preserves the old `@optional()` semantics: a host that binds no store
|
|
1314
|
+
* (a minion, a unit harness) resolves nothing here and falls through to the deployment
|
|
1315
|
+
* environment, exactly as it did before the store existed.
|
|
1316
|
+
*/
|
|
1317
|
+
resolveOrganizationCredentialResolver() {
|
|
1318
|
+
if (!this.container?.isBound(SAAS_SERVICE_TYPES.OrganizationProviderCredentialResolver))
|
|
1319
|
+
return undefined;
|
|
1320
|
+
return this.container.get(SAAS_SERVICE_TYPES.OrganizationProviderCredentialResolver);
|
|
1321
|
+
}
|
|
1322
|
+
/**
|
|
1323
|
+
* Lazy getter for the per-user credential store — same mechanics as the organization one above,
|
|
1324
|
+
* and the OPPOSITE meaning when it resolves nothing.
|
|
1325
|
+
*
|
|
1326
|
+
* An unbound organization store falls through to the deployment environment, because a tenant
|
|
1327
|
+
* legitimately may not have its own credential. An unbound USER store REFUSES, because there is
|
|
1328
|
+
* nothing a person's credential could fall through to: spending the deployment's shared
|
|
1329
|
+
* principal on someone's behalf would attribute the act to the wrong party at the vendor. So a
|
|
1330
|
+
* host that forgot to bind this gets a refusal naming the wiring fault, never a silent
|
|
1331
|
+
* substitution.
|
|
1332
|
+
*/
|
|
1333
|
+
resolveUserCredentialResolver() {
|
|
1334
|
+
if (!this.container?.isBound(SAAS_SERVICE_TYPES.UserProviderCredentialResolver))
|
|
1335
|
+
return undefined;
|
|
1336
|
+
return this.container.get(SAAS_SERVICE_TYPES.UserProviderCredentialResolver);
|
|
1337
|
+
}
|
|
1338
|
+
/**
|
|
1339
|
+
* Resolve one provider secret FOR A TENANT, or refuse naming what is missing.
|
|
1340
|
+
*
|
|
1341
|
+
* @param organizationId the tenant on whose behalf the call will be made. Must come from a
|
|
1342
|
+
* trusted execution scope — this method cannot verify it, and the envelope binding is what
|
|
1343
|
+
* keeps a mistake here from becoming a cross-tenant disclosure.
|
|
1344
|
+
*/
|
|
1345
|
+
async resolveProviderSecretForOrganization(organizationId, providerRef, protocolKind, secretRef) {
|
|
1346
|
+
this.ensureInitialized();
|
|
1347
|
+
// ── 1. the organization's own credential ────────────────────────────────────────────────
|
|
1348
|
+
//
|
|
1349
|
+
// An envelope failure is deliberately NOT caught. A tenant that HAS a credential which
|
|
1350
|
+
// cannot be opened must not quietly fall through to the deployment's shared one: that
|
|
1351
|
+
// substitution is exactly the silent cross-principal action this resource exists to remove,
|
|
1352
|
+
// and it would present to the operator as "the integration works" while the wrong identity
|
|
1353
|
+
// is on the wire.
|
|
1354
|
+
const organizationCredentialResolver = this.resolveOrganizationCredentialResolver();
|
|
1355
|
+
if (organizationCredentialResolver) {
|
|
1356
|
+
const owned = await organizationCredentialResolver.resolveOrganizationCredential({
|
|
1357
|
+
organizationId,
|
|
1358
|
+
providerRef,
|
|
1359
|
+
secretSlug: secretRef,
|
|
1360
|
+
});
|
|
1361
|
+
if (owned) {
|
|
1362
|
+
return {
|
|
1363
|
+
value: owned.value,
|
|
1364
|
+
source: ProviderCredentialResolutionSource.ORGANIZATION_CREDENTIAL,
|
|
1365
|
+
credentialId: owned.credentialId,
|
|
1366
|
+
};
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
// ── 2. the deployment environment ───────────────────────────────────────────────────────
|
|
1370
|
+
const fromEnvironment = this.getProviderSecret(providerRef, protocolKind, secretRef);
|
|
1371
|
+
if (fromEnvironment) {
|
|
1372
|
+
return { value: fromEnvironment, source: ProviderCredentialResolutionSource.DEPLOYMENT_ENVIRONMENT };
|
|
1373
|
+
}
|
|
1374
|
+
// ── 3. refuse, by name ──────────────────────────────────────────────────────────────────
|
|
1375
|
+
const environmentVariableName = this.getProviderSecretEnvVarName(providerRef, protocolKind, secretRef) ?? secretRef;
|
|
1376
|
+
throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
|
|
1377
|
+
customMessageReference: ErrorCustomMessageReference.EXTERNAL_PROVIDER_REGISTRY_INITIALIZATION_FAILED,
|
|
1378
|
+
context: {
|
|
1379
|
+
message: `No credential resolves for provider '${providerRef}' (protocol '${protocolKind}', secret '${secretRef}') `
|
|
1380
|
+
+ `on behalf of organization '${organizationId}'. Two places were checked and both are empty: the `
|
|
1381
|
+
+ `organization has no provider credential for this slug, and the deployment environment variable `
|
|
1382
|
+
+ `'${environmentVariableName}' is not set. Either the organization's administrator sets its own `
|
|
1383
|
+
+ `credential, or the operator sets that environment variable for every tenant to share.`,
|
|
1384
|
+
providerRef,
|
|
1385
|
+
protocolKind,
|
|
1386
|
+
secretRef,
|
|
1387
|
+
organizationId,
|
|
1388
|
+
environmentVariableName,
|
|
1389
|
+
},
|
|
1390
|
+
});
|
|
1391
|
+
}
|
|
1392
|
+
/**
|
|
1393
|
+
* The tenant-aware sibling of `getProviderApiKey` — the provider's configured `authConfig`
|
|
1394
|
+
* secret, resolved for one organization.
|
|
1395
|
+
*
|
|
1396
|
+
* Refuses rather than returning `undefined` when the provider declares NO `authConfig.secretRef`
|
|
1397
|
+
* at all, because that is a different fault from an unset value and an operator fixing it edits
|
|
1398
|
+
* a different file: the provider module, not the environment.
|
|
1399
|
+
*/
|
|
1400
|
+
async resolveProviderApiKeyForOrganization(organizationId, providerRef, protocolKind) {
|
|
1401
|
+
this.ensureInitialized();
|
|
1402
|
+
const secretRef = this.getConfiguredProviderSecretRef(providerRef, protocolKind);
|
|
1403
|
+
if (!secretRef) {
|
|
1404
|
+
throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
|
|
1405
|
+
customMessageReference: ErrorCustomMessageReference.EXTERNAL_PROVIDER_REGISTRY_INITIALIZATION_FAILED,
|
|
1406
|
+
context: {
|
|
1407
|
+
message: `Provider '${providerRef}' declares no authConfig.secretRef for protocol '${protocolKind}', so there `
|
|
1408
|
+
+ `is no secret to resolve for organization '${organizationId}'. This is a provider-module defect, not `
|
|
1409
|
+
+ 'a deployment one — the module must declare which secret its protocol authenticates with.',
|
|
1410
|
+
providerRef,
|
|
1411
|
+
protocolKind,
|
|
1412
|
+
organizationId,
|
|
1413
|
+
},
|
|
1414
|
+
});
|
|
1415
|
+
}
|
|
1416
|
+
return this.resolveProviderSecretForOrganization(organizationId, providerRef, protocolKind, secretRef);
|
|
1417
|
+
}
|
|
932
1418
|
isProviderEnabled(providerRef, protocolKind) {
|
|
933
1419
|
this.ensureInitialized();
|
|
934
1420
|
try {
|
|
@@ -1032,7 +1518,9 @@ ExternalProvidersRegistryBackendService = __decorate([
|
|
|
1032
1518
|
__param(1, inject(SAAS_SERVICE_TYPES.AppConfigService)),
|
|
1033
1519
|
__param(2, inject(SAAS_SERVICE_TYPES.ErrorBuilderService)),
|
|
1034
1520
|
__param(3, inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)),
|
|
1035
|
-
|
|
1521
|
+
__param(4, inject('Container')),
|
|
1522
|
+
__param(4, optional()),
|
|
1523
|
+
__metadata("design:paramtypes", [Function, Function, ErrorBuilderBackendService, Function, Function])
|
|
1036
1524
|
], ExternalProvidersRegistryBackendService);
|
|
1037
1525
|
export { ExternalProvidersRegistryBackendService };
|
|
1038
1526
|
//# sourceMappingURL=external-providers-registry.backend.service.js.map
|