@wildo-ai/saas-backend-lib 1.1.1 → 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 +14 -3
- 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 +138 -24
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +3 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +8 -3
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js +11 -2
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.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 +48 -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 +102 -30
- 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/http-api/odata-query-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js +16 -0
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts +20 -6
- 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 +96 -32
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts +3 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js +32 -7
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts +8 -5
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +80 -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 +298 -23
- 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 +71 -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 +85 -5
- 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 +21 -0
- 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 +146 -4
- 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-operation-implementation-coverage.backend.utils.d.ts +3 -26
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js +3 -68
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.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 +533 -43
- 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 +54 -13
- 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 +263 -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 +376 -58
- 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 +264 -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 +414 -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 +16 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +140 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -0
- 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 +65 -6
- 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 +45 -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/custom/application-config-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.js +7 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +146 -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 +43 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js +52 -3
- 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/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts +2 -2
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js +2 -2
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js.map +1 -1
- package/dist/esm/databases/models/filter.backend.schemas.js +2 -2
- package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +20 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.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/databases/services/redis.service.d.ts +27 -0
- package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/redis.service.js +29 -0
- package/dist/esm/databases/services/redis.service.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 +134 -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/controllers/external-data-admin.backend.contracts.d.ts +41 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js +40 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts +64 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js +193 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +72 -4
- 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 +60 -19
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.js +7 -1
- package/dist/esm/external-data/external-data-transform.backend.js.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts +2 -0
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js +13 -0
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.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 +306 -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 +539 -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 +24 -1
- package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.js +83 -11
- package/dist/esm/files/controllers/file.controller.js.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts +17 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js +1 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -0
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +5 -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 +76 -13
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +18 -0
- package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.js +36 -28
- package/dist/esm/files/services/file-operation-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 +214 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.js +566 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -0
- package/dist/esm/files/services/files.backend.service.d.ts +87 -0
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +252 -19
- 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/file-uploader.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-uploader.utils.js +12 -0
- package/dist/esm/files/utils/file-uploader.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 +200 -44
- 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 +107 -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 +519 -56
- 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 +151 -41
- 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 +308 -143
- 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 +15 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +45 -5
- 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 +82 -10
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +20 -3
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +21 -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 +32 -4
- package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts +34 -0
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js +42 -0
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +84 -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 +235 -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 +64 -2
- 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 +152 -6
- 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 +108 -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 +432 -101
- 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 +54 -7
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts +5 -5
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js +14 -13
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts +2 -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 +18 -8
- 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 +20 -18
- 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/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js +4 -1
- package/dist/esm/organizations/services/organization-unit-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 +88 -15
- 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 +16 -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/resource-id.backend.service.js +3 -3
- package/dist/esm/resources/services/resource-id.backend.service.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 +91 -7
- 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/execution-context-creator.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/execution-context-creator.backend.service.js +13 -7
- package/dist/esm/runtime/services/execution-context-creator.backend.service.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 +47 -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 +343 -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/jwt.backend.schemas.d.ts +3 -23
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.js +20 -45
- package/dist/esm/security/authentications/models/jwt.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 +9 -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 +77 -2
- 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-mfa.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +5 -3
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.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 +41 -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 +87 -4
- 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/initiator-organization-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js +24 -1
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js.map +1 -1
- 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/privileged-access-review.backend.utils.d.ts +117 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js +104 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js.map +1 -0
- 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 +175 -14
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +385 -49
- 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/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +18 -1
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +110 -74
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts +22 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js +22 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js.map +1 -0
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +17 -3
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +12 -0
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +41 -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 +83 -20
- 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/jwt/services/jwt.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.js +1 -18
- package/dist/esm/security/jwt/services/jwt.backend.service.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 +17 -9
- package/dist/esm/.builder.pid +0 -9
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WRITE path for an organization's provider credential: seal on the way in, audit on the way
|
|
3
|
+
* out.
|
|
4
|
+
*
|
|
5
|
+
* ## Without this file the resource stores plaintext
|
|
6
|
+
*
|
|
7
|
+
* The schema declares `secretValue` as `.isWriteOnlySecret()`, which governs how the value is
|
|
8
|
+
* PRESENTED (redacted at the client boundary, and a round-tripped mask means "keep the stored
|
|
9
|
+
* secret"). It says nothing about how the value is STORED — a write-only-secret field lands in the
|
|
10
|
+
* database exactly as the client typed it. Sealing it is this hook's job, and it is the only place
|
|
11
|
+
* that job is done, so a credential reaching persistence unsealed means this registration did not
|
|
12
|
+
* resolve.
|
|
13
|
+
*
|
|
14
|
+
* ⚠️ A custom implementation resolves by an EXACT operation-path key embedding the resource, the
|
|
15
|
+
* operation, the variant TYPE and the default/variant-key slot. A registration naming a combination
|
|
16
|
+
* the resource configuration does not declare resolves nothing and silently never runs, while the
|
|
17
|
+
* route still answers 200 — here that would mean every credential persisted in plaintext behind a
|
|
18
|
+
* green suite. The pins in `__tests__/organization-provider-credentials-write-path.backend.test.ts`
|
|
19
|
+
* assert these registrations against the REAL resource configuration for that reason.
|
|
20
|
+
*
|
|
21
|
+
* ## The DELETE doors — enumerated, because only one of them reaches this file
|
|
22
|
+
*
|
|
23
|
+
* | Door | Path | This hook |
|
|
24
|
+
* |---|---|---|
|
|
25
|
+
* | A tenant administrator revoking a credential | service tier, `DELETE` default variant | RUNS |
|
|
26
|
+
* | The ORGANIZATIONS purge cascade (both the batch's route-less default door and the super-admin's `admin` door reach the same cascade) | `deleteChildrenImmediate` → the RAW repository | does NOT run |
|
|
27
|
+
*
|
|
28
|
+
* Door 2 is not an oversight and not a hole in the ERASURE: the cascade removes the rows, which is
|
|
29
|
+
* what matters, and `services-registry-handler.backend.service.ts` documents the raw-repository
|
|
30
|
+
* route explicitly ("VARIANT-AGNOSTIC CASCADE: the onParentDelete teardown deletes children directly
|
|
31
|
+
* through the RAW repository"). What door 2 has no way to produce is a per-credential AUDIT event,
|
|
32
|
+
* because the service tier — where custom implementations live — is bypassed entirely. Emitting one
|
|
33
|
+
* would need a cascade-tier audit hook in the framework, which is outside this resource. The tenant
|
|
34
|
+
* purge is itself audited as `ORGANIZATION_DELETED`, so the destruction is on the record; what is
|
|
35
|
+
* missing is the enumeration of WHICH third parties the tenant held credentials for at that moment.
|
|
36
|
+
* Recorded as its own issue rather than left for a reader to discover from an absence.
|
|
37
|
+
*/
|
|
38
|
+
import { CoreAuditableEventType, CoreResourceOperation, CoreResourceType, ErrorType, ErrorCustomMessageReference, ProviderCredentialDeletionReason, ResourceOperationVariantType, WRITE_ONLY_SECRET_MASK, coreResourceShared_FieldIdentifier, } from '@wildo-ai/saas-models';
|
|
39
|
+
import { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';
|
|
40
|
+
import { createResourceCustomServiceImplementation, } from '../../../base-classes/services/services/resource-operation-custom-implementation.factory.backend.js';
|
|
41
|
+
import { SAAS_SERVICE_TYPES } from '../../../inject/models/service-types.js';
|
|
42
|
+
import { resolveAuditActorId } from '../../../compliance/audit-trails/utils/audit-actor.backend.utils.js';
|
|
43
|
+
import { projectCaughtErrorLogFields } from '../../../errors/utils/error-log-level-classification.backend.utils.js';
|
|
44
|
+
import { sealProviderCredential } from '../utils/provider-credential-envelope.backend.utils.js';
|
|
45
|
+
/**
|
|
46
|
+
* Resolve the row identity for a write.
|
|
47
|
+
*
|
|
48
|
+
* The three parts come from three DIFFERENT places, and that is the reason this is a function rather
|
|
49
|
+
* than three property reads:
|
|
50
|
+
*
|
|
51
|
+
* - `organizationId` is injected by the context machinery from the request SCOPE, so on CREATE it is
|
|
52
|
+
* not in the input payload at all. The execution context's context-resource map is the
|
|
53
|
+
* authoritative channel — the same one `buildContextualFilter` and `enrichDataWithContext` read —
|
|
54
|
+
* which is what makes the seal bind to the tenant the framework will actually store the row under,
|
|
55
|
+
* rather than to one a caller could name in a body field.
|
|
56
|
+
* - `providerRef` / `secretSlug` are client-supplied on CREATE and `.excludeFromUpdate()` afterwards,
|
|
57
|
+
* so on UPDATE they must come from the pre-fetched current row.
|
|
58
|
+
*/
|
|
59
|
+
function resolveWriteIdentity(input, executionContext, utils) {
|
|
60
|
+
const current = utils.currentObject;
|
|
61
|
+
// Two sources, and the request BODY is deliberately not one of them.
|
|
62
|
+
//
|
|
63
|
+
// On UPDATE the stored row is authoritative — it is what the framework already persisted. On
|
|
64
|
+
// CREATE the execution context's context-resource map is, because that is the same channel
|
|
65
|
+
// `enrichDataWithContext` reads when it injects the scope FK, so the seal binds to the tenant the
|
|
66
|
+
// row will actually be stored under.
|
|
67
|
+
//
|
|
68
|
+
// A `payload.organizationId` fallback was here and was REMOVED: it fails safe (a seal bound to a
|
|
69
|
+
// body-supplied tenant is simply unopenable later, so the outcome is a denial rather than a
|
|
70
|
+
// disclosure) but it is still the request choosing what the seal binds to, which is exactly the
|
|
71
|
+
// authorship this hook exists to keep out of a caller's hands. With no fallback, a context that
|
|
72
|
+
// cannot name the tenant is a REFUSAL — see below.
|
|
73
|
+
const organizationId = (typeof current?.organizationId === 'string' && current.organizationId)
|
|
74
|
+
|| executionContext.getContextResourceId?.(coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATIONS]);
|
|
75
|
+
const providerRef = (typeof input?.providerRef === 'string' && input.providerRef)
|
|
76
|
+
|| (typeof current?.providerRef === 'string' ? current.providerRef : undefined);
|
|
77
|
+
const secretSlug = (typeof input?.secretSlug === 'string' && input.secretSlug)
|
|
78
|
+
|| (typeof current?.secretSlug === 'string' ? current.secretSlug : undefined);
|
|
79
|
+
if (typeof organizationId !== 'string' || !organizationId || !providerRef || !secretSlug) {
|
|
80
|
+
// Fail CLOSED. Sealing under a partial identity would produce a credential bound to the wrong
|
|
81
|
+
// row — unopenable at resolution time, and indistinguishable then from a tampered one.
|
|
82
|
+
throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {
|
|
83
|
+
customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
|
|
84
|
+
context: {
|
|
85
|
+
message: 'Cannot seal an organization provider credential: the row identity is incomplete. All three of '
|
|
86
|
+
+ 'organizationId, providerRef and secretSlug must be resolvable, because the seal is bound to them. '
|
|
87
|
+
+ 'The organization is read from the execution scope or the stored row, never from the request body.',
|
|
88
|
+
hasOrganizationId: Boolean(organizationId),
|
|
89
|
+
hasProviderRef: Boolean(providerRef),
|
|
90
|
+
hasSecretSlug: Boolean(secretSlug),
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return { organizationId, providerRef, secretSlug };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Seal `secretValue` if the write carries one.
|
|
98
|
+
*
|
|
99
|
+
* An ABSENT `secretValue` is normal on UPDATE and must pass through untouched: the framework strips
|
|
100
|
+
* the field when a client echoes back the redaction mask, which is how "edit the description without
|
|
101
|
+
* retyping the secret" works. Re-sealing nothing would be harmless; treating absence as an error
|
|
102
|
+
* would break the ordinary edit.
|
|
103
|
+
*/
|
|
104
|
+
function sealIncomingSecret(input, executionContext, utils, container) {
|
|
105
|
+
const payload = input ?? undefined;
|
|
106
|
+
const incoming = payload?.secretValue;
|
|
107
|
+
// ABSENT means "no change", and only absent. `null` is deliberately NOT treated as absent and
|
|
108
|
+
// falls through to the refusal below.
|
|
109
|
+
//
|
|
110
|
+
// That distinction became load-bearing the moment `secretValue` was declared authoritative: an
|
|
111
|
+
// authoritative field's post-prefix value is always carried past the repository's strict re-parse,
|
|
112
|
+
// so passing a `null` through here would push it INTO persistence rather than letting the schema
|
|
113
|
+
// reject it. The row would then hold a null where `z.string().min(1)` is required, and every
|
|
114
|
+
// later read would throw in `transformOutput` — a write that answers success and leaves the row
|
|
115
|
+
// permanently unreadable.
|
|
116
|
+
if (incoming === undefined) {
|
|
117
|
+
return payload;
|
|
118
|
+
}
|
|
119
|
+
// Defence in depth. The framework strips the mask sentinel before this hook runs, so reaching here
|
|
120
|
+
// with the mask means that strip did not happen — and sealing the mask would store the literal
|
|
121
|
+
// bullet characters as the tenant's credential, then hand them to a vendor.
|
|
122
|
+
if (incoming === WRITE_ONLY_SECRET_MASK) {
|
|
123
|
+
const { secretValue: _discarded, ...rest } = payload;
|
|
124
|
+
return rest;
|
|
125
|
+
}
|
|
126
|
+
if (typeof incoming !== 'string' || incoming.length === 0) {
|
|
127
|
+
throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {
|
|
128
|
+
customMessageReference: ErrorCustomMessageReference.VALIDATION,
|
|
129
|
+
context: { message: 'An organization provider credential value must be a non-empty string.' },
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
const identity = resolveWriteIdentity(payload, executionContext, utils);
|
|
133
|
+
const appConfig = container.get(SAAS_SERVICE_TYPES.AppConfigService);
|
|
134
|
+
const actingUserId = executionContext?.initiatorIds?.userId;
|
|
135
|
+
return {
|
|
136
|
+
...payload,
|
|
137
|
+
secretValue: sealProviderCredential(incoming, appConfig.secrets.security.session.encryptionKey, {
|
|
138
|
+
ownerScope: ExternalProvider_Connection_OwnerScope.ORGANIZATION,
|
|
139
|
+
ownerId: identity.organizationId,
|
|
140
|
+
providerRef: identity.providerRef,
|
|
141
|
+
secretSlug: identity.secretSlug,
|
|
142
|
+
}),
|
|
143
|
+
// Server-owned provenance. Both are `.excludeFromCreate().excludeFromUpdate()`, so returning them
|
|
144
|
+
// here is what carries them past the strict re-parse — the same mechanism api-key minting uses
|
|
145
|
+
// for its hashed material, and declared explicitly in `authoritativeFields` below.
|
|
146
|
+
secretSetAt: new Date(),
|
|
147
|
+
// Only when there IS an acting user. Writing the key with an `undefined` value would preserve an
|
|
148
|
+
// explicit `undefined` past the re-parse rather than leaving the field absent, and "absent"
|
|
149
|
+
// is the honest representation of a write with no human behind it.
|
|
150
|
+
...(actingUserId ? { setByUserId: actingUserId } : {}),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Emit the lifecycle event for a completed write.
|
|
155
|
+
*
|
|
156
|
+
* Best-effort in the same posture as every other audit emission in the engine: the credential has
|
|
157
|
+
* already been written, and turning a logging failure into a 500 would tell the tenant their write
|
|
158
|
+
* failed when it did not.
|
|
159
|
+
*/
|
|
160
|
+
async function emitCredentialWriteAudit(container,
|
|
161
|
+
/**
|
|
162
|
+
* WHICH grant event this write is. Typed as the audit vocabulary's own two members rather than a
|
|
163
|
+
* bespoke `'set' | 'rotated'` pair: the distinction already has a named runtime source, and a
|
|
164
|
+
* second spelling of it would be a closed vocabulary with no home and one more thing to keep in
|
|
165
|
+
* step with the event names.
|
|
166
|
+
*/
|
|
167
|
+
eventType, row, previousSecretSetAt, executionContext, utils) {
|
|
168
|
+
if (!row || typeof row._id !== 'string' || typeof row.organizationId !== 'string') {
|
|
169
|
+
utils.logger.error?.('An organization provider credential was written but the row could not be identified — audit event not emitted', { eventType });
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
try {
|
|
173
|
+
const auditLogs = container.get(SAAS_SERVICE_TYPES.AuditLogsService);
|
|
174
|
+
const common = {
|
|
175
|
+
organizationId: row.organizationId,
|
|
176
|
+
providerRef: row.providerRef,
|
|
177
|
+
secretSlug: row.secretSlug,
|
|
178
|
+
credentialId: row._id,
|
|
179
|
+
};
|
|
180
|
+
if (eventType === CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET) {
|
|
181
|
+
await auditLogs.logOrganizationProviderCredentialSet({ ...common, setBy: resolveAuditActorId(executionContext) }, executionContext);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
await auditLogs.logOrganizationProviderCredentialRotated({
|
|
185
|
+
...common,
|
|
186
|
+
rotatedBy: resolveAuditActorId(executionContext),
|
|
187
|
+
previousSecretSetAt: previousSecretSetAt?.toISOString(),
|
|
188
|
+
}, executionContext);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
utils.logger.error?.('Failed to emit the organization provider credential audit event', {
|
|
193
|
+
eventType,
|
|
194
|
+
credentialId: row._id,
|
|
195
|
+
...projectCaughtErrorLogFields(error),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* CREATE — the tenant grants this application authority toward a third party for the first time.
|
|
201
|
+
*/
|
|
202
|
+
function createCredentialCreateFactory() {
|
|
203
|
+
const factory = (_registry, container) => createResourceCustomServiceImplementation({
|
|
204
|
+
operationPath: {
|
|
205
|
+
resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,
|
|
206
|
+
operationIdentifier: CoreResourceOperation.CREATE,
|
|
207
|
+
variantType: ResourceOperationVariantType.API_CALL,
|
|
208
|
+
isOperationDefault: true,
|
|
209
|
+
},
|
|
210
|
+
debugLabel: 'organizationProviderCredentials.create.seal-and-audit',
|
|
211
|
+
/**
|
|
212
|
+
* The three fields this hook OWNS, declared rather than inferred.
|
|
213
|
+
*
|
|
214
|
+
* `preserveServerInjectedFields` is normally derived by diffing the prefix output against a
|
|
215
|
+
* snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED
|
|
216
|
+
* survive the repository's strict re-parse. That inference has a documented hole: a caller
|
|
217
|
+
* reaching the service tier with the key already present — MCP `callTool` forwards its
|
|
218
|
+
* arguments with no strict parse — puts it into the snapshot, the hook's value is then not
|
|
219
|
+
* classified as introduced, and the repository strips it while the operation answers success.
|
|
220
|
+
*
|
|
221
|
+
* For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,
|
|
222
|
+
* which is the first thing an incident asks for. For `secretValue` the declaration says the
|
|
223
|
+
* thing that matters most in this file: whatever a caller sent, what reaches persistence is
|
|
224
|
+
* the POST-prefix value — the sealed envelope — and never the plaintext they supplied.
|
|
225
|
+
*/
|
|
226
|
+
authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],
|
|
227
|
+
handlers: {
|
|
228
|
+
prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => sealIncomingSecret(input, executionContext, utils, container),
|
|
229
|
+
postfixCoreOperations: async (_id, created, executionContext, _operationPath, utils) => {
|
|
230
|
+
await emitCredentialWriteAudit(container, CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET, created, undefined, executionContext, utils);
|
|
231
|
+
return created;
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
return factory;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* UPDATE — a rotation, or an ordinary metadata edit.
|
|
239
|
+
*
|
|
240
|
+
* The two are distinguished by whether the write actually carried a NEW secret. An edit that only
|
|
241
|
+
* changes the description emits nothing: a rotation event on a description change would make the
|
|
242
|
+
* one signal a compromise investigation depends on unusable.
|
|
243
|
+
*/
|
|
244
|
+
function createCredentialUpdateFactory() {
|
|
245
|
+
const factory = (_registry, container) => createResourceCustomServiceImplementation({
|
|
246
|
+
operationPath: {
|
|
247
|
+
resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,
|
|
248
|
+
operationIdentifier: CoreResourceOperation.UPDATE,
|
|
249
|
+
variantType: ResourceOperationVariantType.API_CALL,
|
|
250
|
+
isOperationDefault: true,
|
|
251
|
+
},
|
|
252
|
+
debugLabel: 'organizationProviderCredentials.update.seal-and-audit',
|
|
253
|
+
/**
|
|
254
|
+
* The three fields this hook OWNS, declared rather than inferred.
|
|
255
|
+
*
|
|
256
|
+
* `preserveServerInjectedFields` is normally derived by diffing the prefix output against a
|
|
257
|
+
* snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED
|
|
258
|
+
* survive the repository's strict re-parse. That inference has a documented hole: a caller
|
|
259
|
+
* reaching the service tier with the key already present — MCP `callTool` forwards its
|
|
260
|
+
* arguments with no strict parse — puts it into the snapshot, the hook's value is then not
|
|
261
|
+
* classified as introduced, and the repository strips it while the operation answers success.
|
|
262
|
+
*
|
|
263
|
+
* For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,
|
|
264
|
+
* which is the first thing an incident asks for. For `secretValue` the declaration says the
|
|
265
|
+
* thing that matters most in this file: whatever a caller sent, what reaches persistence is
|
|
266
|
+
* the POST-prefix value — the sealed envelope — and never the plaintext they supplied.
|
|
267
|
+
*/
|
|
268
|
+
authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],
|
|
269
|
+
handlers: {
|
|
270
|
+
prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {
|
|
271
|
+
const sealed = sealIncomingSecret(input, executionContext, utils, container);
|
|
272
|
+
// Bridge to the postfix, keyed by this operation's execution context. Carries only WHETHER
|
|
273
|
+
// the value moved and WHEN the previous one was set — never a secret, in either direction.
|
|
274
|
+
ROTATION_BRIDGE_BY_EC.set(executionContext, {
|
|
275
|
+
rotated: sealed?.secretValue !== undefined,
|
|
276
|
+
previousSecretSetAt: utils.currentObject?.secretSetAt,
|
|
277
|
+
});
|
|
278
|
+
return sealed;
|
|
279
|
+
},
|
|
280
|
+
postfixCoreOperations: async (_id, updated, executionContext, _operationPath, utils) => {
|
|
281
|
+
const bridge = ROTATION_BRIDGE_BY_EC.get(executionContext);
|
|
282
|
+
ROTATION_BRIDGE_BY_EC.delete(executionContext);
|
|
283
|
+
if (bridge?.rotated) {
|
|
284
|
+
await emitCredentialWriteAudit(container, CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED, updated, bridge.previousSecretSetAt, executionContext, utils);
|
|
285
|
+
}
|
|
286
|
+
return updated;
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
});
|
|
290
|
+
return factory;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* DELETE — a tenant administrator revoking the grant.
|
|
294
|
+
*
|
|
295
|
+
* `ADMINISTRATOR_REVOKED` unconditionally, and that is CORRECT rather than an assumption: the
|
|
296
|
+
* cascade door never reaches this hook (see the module header), so every delete that arrives here is
|
|
297
|
+
* a deliberate service-tier revocation. If a future change routed a cascade through the service
|
|
298
|
+
* tier, this constant would become a lie — which is why the door table above is pinned by a test
|
|
299
|
+
* rather than left as prose.
|
|
300
|
+
*/
|
|
301
|
+
function createCredentialDeleteFactory() {
|
|
302
|
+
const factory = (_registry, container) => createResourceCustomServiceImplementation({
|
|
303
|
+
operationPath: {
|
|
304
|
+
resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,
|
|
305
|
+
operationIdentifier: CoreResourceOperation.DELETE,
|
|
306
|
+
variantType: ResourceOperationVariantType.API_CALL,
|
|
307
|
+
isOperationDefault: true,
|
|
308
|
+
},
|
|
309
|
+
debugLabel: 'organizationProviderCredentials.delete.audit',
|
|
310
|
+
handlers: {
|
|
311
|
+
postfixCoreOperations: async (id, result, executionContext, _operationPath, utils) => {
|
|
312
|
+
// The pre-deletion snapshot: after the row is gone, the provider and slug are unrecoverable,
|
|
313
|
+
// so an event naming only the id would identify nothing.
|
|
314
|
+
const snapshot = utils.currentObject;
|
|
315
|
+
const credentialId = snapshot?._id ?? (typeof id === 'string' ? id : undefined);
|
|
316
|
+
if (!snapshot?.organizationId || !credentialId) {
|
|
317
|
+
utils.logger.error?.('An organization provider credential was deleted but the subject could not be resolved — audit event not emitted', { addressedIdType: Array.isArray(id) ? 'array' : typeof id });
|
|
318
|
+
return result;
|
|
319
|
+
}
|
|
320
|
+
try {
|
|
321
|
+
const auditLogs = container.get(SAAS_SERVICE_TYPES.AuditLogsService);
|
|
322
|
+
await auditLogs.logOrganizationProviderCredentialDeleted({
|
|
323
|
+
organizationId: snapshot.organizationId,
|
|
324
|
+
providerRef: snapshot.providerRef,
|
|
325
|
+
secretSlug: snapshot.secretSlug,
|
|
326
|
+
credentialId,
|
|
327
|
+
reason: ProviderCredentialDeletionReason.ADMINISTRATOR_REVOKED,
|
|
328
|
+
deletedBy: resolveAuditActorId(executionContext),
|
|
329
|
+
}, executionContext);
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
utils.logger.error?.('Failed to emit the organization provider credential deletion audit event', {
|
|
333
|
+
credentialId,
|
|
334
|
+
...projectCaughtErrorLogFields(error),
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
return result;
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
});
|
|
341
|
+
return factory;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Prefix→postfix bridge for the UPDATE hook, keyed by the per-operation execution-context instance.
|
|
345
|
+
*
|
|
346
|
+
* A `WeakMap` so an abandoned operation cannot retain the entry, mirroring the api-key mint bridge.
|
|
347
|
+
* It deliberately carries no secret: only a boolean and a timestamp cross it.
|
|
348
|
+
*/
|
|
349
|
+
const ROTATION_BRIDGE_BY_EC = new WeakMap();
|
|
350
|
+
/** Every write door of the organization-provider-credential resource. */
|
|
351
|
+
export function createOrganizationProviderCredentialFactories() {
|
|
352
|
+
return [
|
|
353
|
+
createCredentialCreateFactory(),
|
|
354
|
+
createCredentialUpdateFactory(),
|
|
355
|
+
createCredentialDeleteFactory(),
|
|
356
|
+
];
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=organization-provider-credentials.custom-impl.backend.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-provider-credentials.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../../src/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The WRITE path for an organization's provider credential: seal on the way in, audit on the way\n * out.\n *\n * ## Without this file the resource stores plaintext\n *\n * The schema declares `secretValue` as `.isWriteOnlySecret()`, which governs how the value is\n * PRESENTED (redacted at the client boundary, and a round-tripped mask means \"keep the stored\n * secret\"). It says nothing about how the value is STORED — a write-only-secret field lands in the\n * database exactly as the client typed it. Sealing it is this hook's job, and it is the only place\n * that job is done, so a credential reaching persistence unsealed means this registration did not\n * resolve.\n *\n * ⚠️ A custom implementation resolves by an EXACT operation-path key embedding the resource, the\n * operation, the variant TYPE and the default/variant-key slot. A registration naming a combination\n * the resource configuration does not declare resolves nothing and silently never runs, while the\n * route still answers 200 — here that would mean every credential persisted in plaintext behind a\n * green suite. The pins in `__tests__/organization-provider-credentials-write-path.backend.test.ts`\n * assert these registrations against the REAL resource configuration for that reason.\n *\n * ## The DELETE doors — enumerated, because only one of them reaches this file\n *\n * | Door | Path | This hook |\n * |---|---|---|\n * | A tenant administrator revoking a credential | service tier, `DELETE` default variant | RUNS |\n * | The ORGANIZATIONS purge cascade (both the batch's route-less default door and the super-admin's `admin` door reach the same cascade) | `deleteChildrenImmediate` → the RAW repository | does NOT run |\n *\n * Door 2 is not an oversight and not a hole in the ERASURE: the cascade removes the rows, which is\n * what matters, and `services-registry-handler.backend.service.ts` documents the raw-repository\n * route explicitly (\"VARIANT-AGNOSTIC CASCADE: the onParentDelete teardown deletes children directly\n * through the RAW repository\"). What door 2 has no way to produce is a per-credential AUDIT event,\n * because the service tier — where custom implementations live — is bypassed entirely. Emitting one\n * would need a cascade-tier audit hook in the framework, which is outside this resource. The tenant\n * purge is itself audited as `ORGANIZATION_DELETED`, so the destruction is on the record; what is\n * missing is the enumeration of WHICH third parties the tenant held credentials for at that moment.\n * Recorded as its own issue rather than left for a reader to discover from an absence.\n */\n\nimport type { Container } from 'inversify';\nimport {\n CoreAuditableEventType,\n CoreResourceOperation,\n CoreResourceType,\n ErrorType,\n ErrorCustomMessageReference,\n ProviderCredentialDeletionReason,\n ResourceOperationVariantType,\n WRITE_ONLY_SECRET_MASK,\n coreResourceShared_FieldIdentifier,\n type OrganizationProviderCredential,\n} from '@wildo-ai/saas-models';\n\nimport { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';\n\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourceOperation_CustomImplementation_Utils } from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation-base.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport type { AuditLogsBackendService } from '~wildo-backend-lib/compliance/audit-trails/services/audit-logs.backend.service';\nimport { resolveAuditActorId } from '~wildo-backend-lib/compliance/audit-trails/utils/audit-actor.backend.utils';\nimport { projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\n\nimport { sealProviderCredential } from '../utils/provider-credential-envelope.backend.utils';\n\n/** The row identity the seal binds to, resolved from whichever channel actually carries each part. */\ninterface CredentialWriteIdentity {\n organizationId: string;\n providerRef: string;\n secretSlug: string;\n}\n\n/**\n * Resolve the row identity for a write.\n *\n * The three parts come from three DIFFERENT places, and that is the reason this is a function rather\n * than three property reads:\n *\n * - `organizationId` is injected by the context machinery from the request SCOPE, so on CREATE it is\n * not in the input payload at all. The execution context's context-resource map is the\n * authoritative channel — the same one `buildContextualFilter` and `enrichDataWithContext` read —\n * which is what makes the seal bind to the tenant the framework will actually store the row under,\n * rather than to one a caller could name in a body field.\n * - `providerRef` / `secretSlug` are client-supplied on CREATE and `.excludeFromUpdate()` afterwards,\n * so on UPDATE they must come from the pre-fetched current row.\n */\nfunction resolveWriteIdentity(\n input: Record<string, unknown> | undefined,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils,\n): CredentialWriteIdentity {\n const current = utils.currentObject as OrganizationProviderCredential | undefined;\n\n // Two sources, and the request BODY is deliberately not one of them.\n //\n // On UPDATE the stored row is authoritative — it is what the framework already persisted. On\n // CREATE the execution context's context-resource map is, because that is the same channel\n // `enrichDataWithContext` reads when it injects the scope FK, so the seal binds to the tenant the\n // row will actually be stored under.\n //\n // A `payload.organizationId` fallback was here and was REMOVED: it fails safe (a seal bound to a\n // body-supplied tenant is simply unopenable later, so the outcome is a denial rather than a\n // disclosure) but it is still the request choosing what the seal binds to, which is exactly the\n // authorship this hook exists to keep out of a caller's hands. With no fallback, a context that\n // cannot name the tenant is a REFUSAL — see below.\n const organizationId =\n (typeof current?.organizationId === 'string' && current.organizationId)\n || executionContext.getContextResourceId?.(coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATIONS] as never);\n\n const providerRef =\n (typeof input?.providerRef === 'string' && input.providerRef)\n || (typeof current?.providerRef === 'string' ? current.providerRef : undefined);\n\n const secretSlug =\n (typeof input?.secretSlug === 'string' && input.secretSlug)\n || (typeof current?.secretSlug === 'string' ? current.secretSlug : undefined);\n\n if (typeof organizationId !== 'string' || !organizationId || !providerRef || !secretSlug) {\n // Fail CLOSED. Sealing under a partial identity would produce a credential bound to the wrong\n // row — unopenable at resolution time, and indistinguishable then from a tampered one.\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message:\n 'Cannot seal an organization provider credential: the row identity is incomplete. All three of '\n + 'organizationId, providerRef and secretSlug must be resolvable, because the seal is bound to them. '\n + 'The organization is read from the execution scope or the stored row, never from the request body.',\n hasOrganizationId: Boolean(organizationId),\n hasProviderRef: Boolean(providerRef),\n hasSecretSlug: Boolean(secretSlug),\n },\n });\n }\n\n return { organizationId, providerRef, secretSlug };\n}\n\n/**\n * Seal `secretValue` if the write carries one.\n *\n * An ABSENT `secretValue` is normal on UPDATE and must pass through untouched: the framework strips\n * the field when a client echoes back the redaction mask, which is how \"edit the description without\n * retyping the secret\" works. Re-sealing nothing would be harmless; treating absence as an error\n * would break the ordinary edit.\n */\nfunction sealIncomingSecret(\n input: Record<string, unknown> | undefined,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils,\n container: Container,\n): Record<string, unknown> | undefined {\n const payload = input ?? undefined;\n const incoming = payload?.secretValue;\n\n // ABSENT means \"no change\", and only absent. `null` is deliberately NOT treated as absent and\n // falls through to the refusal below.\n //\n // That distinction became load-bearing the moment `secretValue` was declared authoritative: an\n // authoritative field's post-prefix value is always carried past the repository's strict re-parse,\n // so passing a `null` through here would push it INTO persistence rather than letting the schema\n // reject it. The row would then hold a null where `z.string().min(1)` is required, and every\n // later read would throw in `transformOutput` — a write that answers success and leaves the row\n // permanently unreadable.\n if (incoming === undefined) {\n return payload;\n }\n\n // Defence in depth. The framework strips the mask sentinel before this hook runs, so reaching here\n // with the mask means that strip did not happen — and sealing the mask would store the literal\n // bullet characters as the tenant's credential, then hand them to a vendor.\n if (incoming === WRITE_ONLY_SECRET_MASK) {\n const { secretValue: _discarded, ...rest } = payload as Record<string, unknown>;\n return rest;\n }\n\n if (typeof incoming !== 'string' || incoming.length === 0) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: { message: 'An organization provider credential value must be a non-empty string.' },\n });\n }\n\n const identity = resolveWriteIdentity(payload, executionContext, utils);\n const appConfig = container.get<AppConfigurationService>(SAAS_SERVICE_TYPES.AppConfigService);\n\n const actingUserId = executionContext?.initiatorIds?.userId;\n\n return {\n ...payload,\n secretValue: sealProviderCredential(\n incoming,\n appConfig.secrets.security.session.encryptionKey,\n {\n ownerScope: ExternalProvider_Connection_OwnerScope.ORGANIZATION,\n ownerId: identity.organizationId,\n providerRef: identity.providerRef,\n secretSlug: identity.secretSlug,\n },\n ),\n // Server-owned provenance. Both are `.excludeFromCreate().excludeFromUpdate()`, so returning them\n // here is what carries them past the strict re-parse — the same mechanism api-key minting uses\n // for its hashed material, and declared explicitly in `authoritativeFields` below.\n secretSetAt: new Date(),\n // Only when there IS an acting user. Writing the key with an `undefined` value would preserve an\n // explicit `undefined` past the re-parse rather than leaving the field absent, and \"absent\"\n // is the honest representation of a write with no human behind it.\n ...(actingUserId ? { setByUserId: actingUserId } : {}),\n };\n}\n\n/**\n * Emit the lifecycle event for a completed write.\n *\n * Best-effort in the same posture as every other audit emission in the engine: the credential has\n * already been written, and turning a logging failure into a 500 would tell the tenant their write\n * failed when it did not.\n */\nasync function emitCredentialWriteAudit(\n container: Container,\n /**\n * WHICH grant event this write is. Typed as the audit vocabulary's own two members rather than a\n * bespoke `'set' | 'rotated'` pair: the distinction already has a named runtime source, and a\n * second spelling of it would be a closed vocabulary with no home and one more thing to keep in\n * step with the event names.\n */\n eventType:\n | typeof CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET\n | typeof CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED,\n row: OrganizationProviderCredential | undefined,\n previousSecretSetAt: Date | undefined,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils,\n): Promise<void> {\n if (!row || typeof row._id !== 'string' || typeof row.organizationId !== 'string') {\n utils.logger.error?.(\n 'An organization provider credential was written but the row could not be identified — audit event not emitted',\n { eventType },\n );\n return;\n }\n\n try {\n const auditLogs = container.get<AuditLogsBackendService>(SAAS_SERVICE_TYPES.AuditLogsService);\n const common = {\n organizationId: row.organizationId,\n providerRef: row.providerRef,\n secretSlug: row.secretSlug,\n credentialId: row._id,\n };\n if (eventType === CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET) {\n await auditLogs.logOrganizationProviderCredentialSet(\n { ...common, setBy: resolveAuditActorId(executionContext) },\n executionContext,\n );\n } else {\n await auditLogs.logOrganizationProviderCredentialRotated(\n {\n ...common,\n rotatedBy: resolveAuditActorId(executionContext),\n previousSecretSetAt: previousSecretSetAt?.toISOString(),\n },\n executionContext,\n );\n }\n } catch (error) {\n utils.logger.error?.('Failed to emit the organization provider credential audit event', {\n eventType,\n credentialId: row._id,\n ...projectCaughtErrorLogFields(error),\n });\n }\n}\n\n/**\n * CREATE — the tenant grants this application authority toward a third party for the first time.\n */\nfunction createCredentialCreateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_registry: ResourcesRegistryBackendService, container: Container) =>\n createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n operationIdentifier: CoreResourceOperation.CREATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n debugLabel: 'organizationProviderCredentials.create.seal-and-audit',\n /**\n * The three fields this hook OWNS, declared rather than inferred.\n *\n * `preserveServerInjectedFields` is normally derived by diffing the prefix output against a\n * snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED\n * survive the repository's strict re-parse. That inference has a documented hole: a caller\n * reaching the service tier with the key already present — MCP `callTool` forwards its\n * arguments with no strict parse — puts it into the snapshot, the hook's value is then not\n * classified as introduced, and the repository strips it while the operation answers success.\n *\n * For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,\n * which is the first thing an incident asks for. For `secretValue` the declaration says the\n * thing that matters most in this file: whatever a caller sent, what reaches persistence is\n * the POST-prefix value — the sealed envelope — and never the plaintext they supplied.\n */\n authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) =>\n sealIncomingSecret(input as Record<string, unknown> | undefined, executionContext, utils, container),\n postfixCoreOperations: async (_id, created, executionContext, _operationPath, utils) => {\n await emitCredentialWriteAudit(\n container,\n CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET,\n created as OrganizationProviderCredential | undefined,\n undefined,\n executionContext,\n utils,\n );\n return created;\n },\n },\n });\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * UPDATE — a rotation, or an ordinary metadata edit.\n *\n * The two are distinguished by whether the write actually carried a NEW secret. An edit that only\n * changes the description emits nothing: a rotation event on a description change would make the\n * one signal a compromise investigation depends on unusable.\n */\nfunction createCredentialUpdateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_registry: ResourcesRegistryBackendService, container: Container) =>\n createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n operationIdentifier: CoreResourceOperation.UPDATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n debugLabel: 'organizationProviderCredentials.update.seal-and-audit',\n /**\n * The three fields this hook OWNS, declared rather than inferred.\n *\n * `preserveServerInjectedFields` is normally derived by diffing the prefix output against a\n * snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED\n * survive the repository's strict re-parse. That inference has a documented hole: a caller\n * reaching the service tier with the key already present — MCP `callTool` forwards its\n * arguments with no strict parse — puts it into the snapshot, the hook's value is then not\n * classified as introduced, and the repository strips it while the operation answers success.\n *\n * For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,\n * which is the first thing an incident asks for. For `secretValue` the declaration says the\n * thing that matters most in this file: whatever a caller sent, what reaches persistence is\n * the POST-prefix value — the sealed envelope — and never the plaintext they supplied.\n */\n authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const sealed = sealIncomingSecret(\n input as Record<string, unknown> | undefined,\n executionContext,\n utils,\n container,\n );\n // Bridge to the postfix, keyed by this operation's execution context. Carries only WHETHER\n // the value moved and WHEN the previous one was set — never a secret, in either direction.\n ROTATION_BRIDGE_BY_EC.set(executionContext, {\n rotated: sealed?.secretValue !== undefined,\n previousSecretSetAt: (utils.currentObject as OrganizationProviderCredential | undefined)?.secretSetAt,\n });\n return sealed;\n },\n postfixCoreOperations: async (_id, updated, executionContext, _operationPath, utils) => {\n const bridge = ROTATION_BRIDGE_BY_EC.get(executionContext);\n ROTATION_BRIDGE_BY_EC.delete(executionContext);\n if (bridge?.rotated) {\n await emitCredentialWriteAudit(\n container,\n CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED,\n updated as OrganizationProviderCredential | undefined,\n bridge.previousSecretSetAt,\n executionContext,\n utils,\n );\n }\n return updated;\n },\n },\n });\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * DELETE — a tenant administrator revoking the grant.\n *\n * `ADMINISTRATOR_REVOKED` unconditionally, and that is CORRECT rather than an assumption: the\n * cascade door never reaches this hook (see the module header), so every delete that arrives here is\n * a deliberate service-tier revocation. If a future change routed a cascade through the service\n * tier, this constant would become a lie — which is why the door table above is pinned by a test\n * rather than left as prose.\n */\nfunction createCredentialDeleteFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_registry: ResourcesRegistryBackendService, container: Container) =>\n createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n operationIdentifier: CoreResourceOperation.DELETE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n debugLabel: 'organizationProviderCredentials.delete.audit',\n handlers: {\n postfixCoreOperations: async (id, result, executionContext, _operationPath, utils) => {\n // The pre-deletion snapshot: after the row is gone, the provider and slug are unrecoverable,\n // so an event naming only the id would identify nothing.\n const snapshot = utils.currentObject as OrganizationProviderCredential | undefined;\n const credentialId = snapshot?._id ?? (typeof id === 'string' ? id : undefined);\n\n if (!snapshot?.organizationId || !credentialId) {\n utils.logger.error?.(\n 'An organization provider credential was deleted but the subject could not be resolved — audit event not emitted',\n { addressedIdType: Array.isArray(id) ? 'array' : typeof id },\n );\n return result;\n }\n\n try {\n const auditLogs = container.get<AuditLogsBackendService>(SAAS_SERVICE_TYPES.AuditLogsService);\n await auditLogs.logOrganizationProviderCredentialDeleted(\n {\n organizationId: snapshot.organizationId,\n providerRef: snapshot.providerRef,\n secretSlug: snapshot.secretSlug,\n credentialId,\n reason: ProviderCredentialDeletionReason.ADMINISTRATOR_REVOKED,\n deletedBy: resolveAuditActorId(executionContext),\n },\n executionContext,\n );\n } catch (error) {\n utils.logger.error?.('Failed to emit the organization provider credential deletion audit event', {\n credentialId,\n ...projectCaughtErrorLogFields(error),\n });\n }\n return result;\n },\n },\n });\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * Prefix→postfix bridge for the UPDATE hook, keyed by the per-operation execution-context instance.\n *\n * A `WeakMap` so an abandoned operation cannot retain the entry, mirroring the api-key mint bridge.\n * It deliberately carries no secret: only a boolean and a timestamp cross it.\n */\nconst ROTATION_BRIDGE_BY_EC = new WeakMap<object, { rotated: boolean; previousSecretSetAt?: Date }>();\n\n/** Every write door of the organization-provider-credential resource. */\nexport function createOrganizationProviderCredentialFactories(): ResourceCustomServiceImplementationFactory[] {\n return [\n createCredentialCreateFactory(),\n createCredentialUpdateFactory(),\n createCredentialDeleteFactory(),\n ];\n}\n"]}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The OAuth2 authorization-code exchange, as three pure-ish functions.
|
|
3
|
+
*
|
|
4
|
+
* This is the half of the connect flow that has no HTTP route, no session and no database: build the
|
|
5
|
+
* URL a person is sent to, turn the code they come back with into a grant, and renew a grant that is
|
|
6
|
+
* about to expire. The route, the state record and the store are a thin shell around it.
|
|
7
|
+
*
|
|
8
|
+
* Written as functions over an explicit contract rather than as a service with injected collaborators
|
|
9
|
+
* for one reason: every interesting failure here is a WRONG STRING — a placeholder that was never
|
|
10
|
+
* resolved, a scope set that silently shrank, a redirect URI that does not match the one registered.
|
|
11
|
+
* Those are answerable by a unit test only if the inputs are arguments, and they are the failures
|
|
12
|
+
* that reach a person as "the vendor says no" with nothing local to look at.
|
|
13
|
+
*
|
|
14
|
+
* ## What this deliberately does NOT do
|
|
15
|
+
*
|
|
16
|
+
* It does not store anything, does not read a credential, and does not decide WHO may connect. The
|
|
17
|
+
* connection target (whose account is being connected) and its admissibility are decided before this
|
|
18
|
+
* is reached, by the same two gates every other credential path goes through.
|
|
19
|
+
*
|
|
20
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — the authorization exchange by which a
|
|
21
|
+
* principal grants this application access to a third party on their behalf.
|
|
22
|
+
*/
|
|
23
|
+
import type { ProviderRestOAuth2 } from '@wildo-ai/external-connectors-models';
|
|
24
|
+
import { type ProviderOAuth2Grant } from '@wildo-ai/saas-models';
|
|
25
|
+
/** Raised when an exchange cannot be built or completed. Never carries a token or a client secret. */
|
|
26
|
+
export declare class ProviderOAuth2ExchangeError extends Error {
|
|
27
|
+
/**
|
|
28
|
+
* The vendor's own OAuth2 error code, when the failure was one the vendor NAMED.
|
|
29
|
+
*
|
|
30
|
+
* Carried structurally rather than only inside the message, because one caller has to act on it
|
|
31
|
+
* differently from every other failure: a grant the vendor has permanently rejected must stop
|
|
32
|
+
* presenting itself as a working connection, while a token endpoint that was merely unreachable
|
|
33
|
+
* must not. Both arrive here as the same class, and a message substring is not something to branch
|
|
34
|
+
* a person's account state on.
|
|
35
|
+
*
|
|
36
|
+
* Absent for transport failures, unparseable bodies and bare HTTP statuses — cases where the
|
|
37
|
+
* vendor said nothing about the grant, and where assuming anything about it would be a guess.
|
|
38
|
+
*/
|
|
39
|
+
readonly oauth2ErrorCode?: string;
|
|
40
|
+
constructor(message: string, oauth2ErrorCode?: string);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Is this failure the vendor saying the grant itself is finished?
|
|
44
|
+
*
|
|
45
|
+
* TRUE for exactly one code. `invalid_grant` is defined as an authorization grant or refresh token
|
|
46
|
+
* that is invalid, expired, revoked, or was issued to another client — every one of which is
|
|
47
|
+
* permanent for THIS connection and none of which a retry improves.
|
|
48
|
+
* spec-cite: RFC 6749 §5.2 (invalid_grant).
|
|
49
|
+
*
|
|
50
|
+
* Deliberately NOT `invalid_client`, and that exclusion is the substantive half. `invalid_client`
|
|
51
|
+
* means the APPLICATION's own registration was rejected — a wrong client secret, a deleted vendor
|
|
52
|
+
* app — which is an operator's problem affecting every connection at once. Treating it as a dead
|
|
53
|
+
* grant would mark every person's account invalid and invite them all to reconnect, which cannot
|
|
54
|
+
* work and would blame them for a misconfiguration they cannot see.
|
|
55
|
+
*
|
|
56
|
+
* Also FALSE for every failure the vendor did not name: a transport error, a non-JSON body, a bare
|
|
57
|
+
* 500. A vendor that was unreachable has said nothing about the grant, and a connection must not be
|
|
58
|
+
* retired on our inability to ask.
|
|
59
|
+
*/
|
|
60
|
+
export declare function providerOAuth2GrantWasPermanentlyRejected(error: unknown): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The PKCE pair for one authorization attempt.
|
|
63
|
+
*
|
|
64
|
+
* PKCE is applied to EVERY exchange, including confidential-client ones that hold a secret, and that
|
|
65
|
+
* is a deliberate default rather than a requirement of the grant type. It costs one hash and it
|
|
66
|
+
* closes authorization-code interception, which is reachable here because the code arrives on a
|
|
67
|
+
* redirect through the person's own browser — a channel this application does not control.
|
|
68
|
+
* spec-cite: RFC 7636 §4.1–4.2 (code_verifier, code_challenge, S256).
|
|
69
|
+
*/
|
|
70
|
+
export interface ProviderOAuth2Pkce {
|
|
71
|
+
readonly verifier: string;
|
|
72
|
+
readonly challenge: string;
|
|
73
|
+
readonly method: 'S256';
|
|
74
|
+
}
|
|
75
|
+
export declare function createProviderOAuth2Pkce(): ProviderOAuth2Pkce;
|
|
76
|
+
/**
|
|
77
|
+
* Compare two opaque values in constant time.
|
|
78
|
+
*
|
|
79
|
+
* Used for the `state` echo. A plain `===` leaks the position of the first differing byte through
|
|
80
|
+
* timing, and `state` is the CSRF defence for the whole flow: an attacker who can guess it can graft
|
|
81
|
+
* their own authorization code onto somebody else's connect attempt.
|
|
82
|
+
*/
|
|
83
|
+
export declare function providerOAuth2ValuesMatch(left: string, right: string): boolean;
|
|
84
|
+
/** A fresh, unguessable `state` for one authorization attempt. */
|
|
85
|
+
export declare function createProviderOAuth2State(): string;
|
|
86
|
+
/**
|
|
87
|
+
* Resolve the `{placeholder}` holes an endpoint carries from the connection's own parameters.
|
|
88
|
+
*
|
|
89
|
+
* REFUSES on a missing value rather than leaving the brace in place. A URL still carrying
|
|
90
|
+
* `{tenantId}` is not a URL: it would be sent to the person's browser, fail to resolve as a
|
|
91
|
+
* hostname, and present as "the vendor is down" — a very long way from "nobody asked which
|
|
92
|
+
* directory". 21 of the 96 vendors that recovered both endpoints are in this population.
|
|
93
|
+
*/
|
|
94
|
+
export declare function resolveEndpointPlaceholders(url: string, connectionParameters: Readonly<Record<string, string>>, providerRef: string): string;
|
|
95
|
+
export interface BuildAuthorizeUrlInput {
|
|
96
|
+
readonly oauth2: ProviderRestOAuth2;
|
|
97
|
+
readonly providerRef: string;
|
|
98
|
+
readonly clientId: string;
|
|
99
|
+
/** Where the vendor sends the person back. Must be byte-identical to what is registered there. */
|
|
100
|
+
readonly redirectUri: string;
|
|
101
|
+
readonly state: string;
|
|
102
|
+
readonly pkce: ProviderOAuth2Pkce;
|
|
103
|
+
/** Values for the endpoints' `{placeholders}`, supplied by whoever is connecting. */
|
|
104
|
+
readonly connectionParameters?: Readonly<Record<string, string>>;
|
|
105
|
+
/**
|
|
106
|
+
* Scopes to request. Falls back to the vendor's own catalogue-declared set.
|
|
107
|
+
*
|
|
108
|
+
* Overridable because the catalogue's set is what the SOURCE asked for across every action it
|
|
109
|
+
* described, which is routinely broader than one application needs — and an over-broad consent
|
|
110
|
+
* screen is a thing a person refuses.
|
|
111
|
+
*/
|
|
112
|
+
readonly scopes?: readonly string[];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The URL a person is sent to in order to grant access.
|
|
116
|
+
*
|
|
117
|
+
* Query parameters are MERGED into whatever the vendor's own authorize URL already carries rather
|
|
118
|
+
* than appended blindly. That is not tidiness: Slack's catalogue-declared authorize URL arrives with
|
|
119
|
+
* a `?user_scope=…` query string baked in, so appending `?client_id=…` would produce a URL with two
|
|
120
|
+
* `?` and a vendor that rejects it. One vendor of 129 does this today, which is exactly the kind of
|
|
121
|
+
* single-instance shape that a naive concatenation gets wrong forever.
|
|
122
|
+
*/
|
|
123
|
+
export declare function buildProviderOAuth2AuthorizeUrl(input: BuildAuthorizeUrlInput): string;
|
|
124
|
+
export interface TokenExchangeInput {
|
|
125
|
+
readonly oauth2: ProviderRestOAuth2;
|
|
126
|
+
readonly providerRef: string;
|
|
127
|
+
readonly clientId: string;
|
|
128
|
+
readonly clientSecret: string;
|
|
129
|
+
readonly connectionParameters?: Readonly<Record<string, string>>;
|
|
130
|
+
readonly fetchImpl?: typeof fetch;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Turn the authorization code into a grant.
|
|
134
|
+
*
|
|
135
|
+
* The client credentials go in the BODY (`client_secret_post`) rather than a Basic header. Both are
|
|
136
|
+
* specified and a server must support Basic, but the body form is what every major vendor's own
|
|
137
|
+
* documentation shows and what their sandboxes accept; a vendor that requires Basic is a per-vendor
|
|
138
|
+
* deviation for an authored supplement.
|
|
139
|
+
* spec-cite: RFC 6749 §2.3.1 (client_secret_basic is required of servers; the body form is permitted).
|
|
140
|
+
*/
|
|
141
|
+
export declare function exchangeProviderOAuth2Code(input: TokenExchangeInput & {
|
|
142
|
+
readonly code: string;
|
|
143
|
+
readonly redirectUri: string;
|
|
144
|
+
readonly pkceVerifier: string;
|
|
145
|
+
}): Promise<ProviderOAuth2Grant>;
|
|
146
|
+
/**
|
|
147
|
+
* Renew a grant that is expiring.
|
|
148
|
+
*
|
|
149
|
+
* Carries the PREVIOUS grant's refresh token forward when the vendor does not return a new one.
|
|
150
|
+
* That is the difference between a connection that survives and one that dies on its second
|
|
151
|
+
* refresh: some vendors rotate the refresh token on every use and return the replacement, and
|
|
152
|
+
* others return only an access token and expect the original refresh token to be reused. Dropping
|
|
153
|
+
* it in the second case leaves a grant that cannot be refreshed again, and the failure arrives an
|
|
154
|
+
* hour later with nothing pointing at this function.
|
|
155
|
+
* spec-cite: RFC 6749 §6 (the authorization server MAY issue a new refresh token).
|
|
156
|
+
*/
|
|
157
|
+
export declare function refreshProviderOAuth2Grant(input: TokenExchangeInput & {
|
|
158
|
+
readonly grant: ProviderOAuth2Grant;
|
|
159
|
+
}): Promise<ProviderOAuth2Grant>;
|
|
160
|
+
//# sourceMappingURL=provider-oauth2-exchange.backend.d.ts.map
|
package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-oauth2-exchange.backend.d.ts","sourceRoot":"","sources":["../../../../../../src/security/connected-accounts/services/provider-oauth2-exchange.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE/F,sGAAsG;AACtG,qBAAa,2BAA4B,SAAQ,KAAK;IACpD;;;;;;;;;;;OAWG;IACH,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAE7B,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM;CAKtD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjF;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAU7D;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAK9E;AAED,kEAAkE;AAClE,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtD,WAAW,EAAE,MAAM,GAClB,MAAM,CAaR;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,qFAAqF;IACrF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAgCrF;AAaD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACjH,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,GAClE,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}
|