@wildo-ai/saas-backend-lib 1.1.3 → 1.1.4
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/__tests__/fixture-deep-partial.d.ts.map +1 -1
- package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
- package/dist/esm/__tests__/setup.d.ts.map +1 -1
- package/dist/esm/__tests__/test-container.d.ts.map +1 -1
- package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
- package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
- 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.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.map +1 -1
- package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
- package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
- package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +12 -1
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -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.map +1 -1
- package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
- 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 +13 -4
- 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-query.backend.d.ts.map +1 -1
- 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 +17 -0
- 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.map +1 -1
- 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.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
- 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.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/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -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-source.backend.port.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +57 -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 +95 -2
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
- 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 +14 -3
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
- 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-custom-implementation-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
- 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-server-injected-fields.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.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.map +1 -1
- 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.map +1 -1
- 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 +44 -6
- 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.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
- package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
- package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -1
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -1
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -1
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -1
- package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +1 -1
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +5 -4
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
- package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/billing/services/billing.utils.d.ts.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.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +32 -0
- 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 +32 -1
- 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.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/credit-pool.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.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +9 -6
- 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 +9 -6
- 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.map +1 -1
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
- 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 +50 -3
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
- package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
- package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
- package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
- package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
- package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +107 -4
- 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 +176 -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.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -1
- 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 +21 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/index.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
- package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +4 -4
- package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
- package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
- package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
- package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -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 +3 -0
- 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.map +1 -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.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +12 -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 +28 -0
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
- package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
- package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
- package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
- package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
- package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.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-query.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
- package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.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.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
- package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -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.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
- package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
- 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 +102 -52
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +117 -71
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -1
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js +26 -7
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -1
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +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.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
- 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 +179 -98
- 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.map +1 -1
- package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +121 -0
- 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 +151 -0
- 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 +15 -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 +60 -4
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
- package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
- package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
- package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
- package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
- package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
- package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.js.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
- 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 +221 -21
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
- package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
- package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
- package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
- package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.js +5 -0
- 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.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.js +8 -5
- 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.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +3 -1
- package/dist/esm/files/services/files.backend.service.js.map +1 -1
- package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -1
- package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +36 -1
- 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/file-storage-router.backend.service.d.ts +21 -3
- package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
- package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
- 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.map +1 -1
- package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.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.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.map +1 -1
- package/dist/esm/files/utils/file-upload.utils.d.ts.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.map +1 -1
- package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -1
- package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.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.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
- 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.map +1 -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.map +1 -1
- 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.map +1 -1
- 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/controllers/flows-actors.controller.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -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 +107 -16
- 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 +118 -18
- 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.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +104 -5
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +263 -31
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +46 -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 +193 -6
- 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.map +1 -1
- 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.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.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js +3 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +9 -0
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
- 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.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/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
- package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -1
- package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
- package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts +10 -0
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +49 -1
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +3 -0
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +3 -0
- 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 +50 -3
- package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
- package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -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.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
- package/dist/esm/meta-workflow-runtime.exports.d.ts.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.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.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 +3 -3
- 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.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +10 -6
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +10 -6
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -1
- 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/otel-preload.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
- package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
- package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -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.map +1 -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.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.d.ts +47 -6
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +86 -36
- package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -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/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.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.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.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.map +1 -1
- package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.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-member-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
- package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
- package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
- package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -1
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -1
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -1
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -1
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -1
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
- package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -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.map +1 -1
- package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue.backend.service.js.map +1 -1
- package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
- package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
- package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
- package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
- package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
- package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
- package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
- package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.js +49 -1
- package/dist/esm/requests/service/websocket.service.js.map +1 -1
- package/dist/esm/resources/backend-resource-registry.exports.d.ts.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 +2 -0
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
- package/dist/esm/resources/models/index.d.ts.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.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.map +1 -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.map +1 -1
- package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
- package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
- package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
- package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts +23 -0
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.js +31 -0
- package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
- package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
- package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
- package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.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.map +1 -1
- package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +10 -0
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -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 +26 -12
- package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
- package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
- package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
- 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.map +1 -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.map +1 -1
- package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
- 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 +84 -0
- 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.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
- package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.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/models/saml-authentication.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
- 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.map +1 -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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +9 -2
- 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 +9 -2
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.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-password-reset.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
- 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 +218 -26
- 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 +14 -0
- 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 +36 -0
- 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/saml-assertion-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -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.map +1 -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.map +1 -1
- 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.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.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +57 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
- 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.map +1 -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.map +1 -1
- package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.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.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.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.map +1 -1
- package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -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.map +1 -1
- package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
- package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -1
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.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 +20 -181
- 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.map +1 -1
- package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +40 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js +43 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +27 -17
- 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 +27 -17
- 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 +72 -0
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +153 -10
- 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.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -1
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +139 -1
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +474 -33
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -1
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +40 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -1
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +19 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +38 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -1
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +17 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +14 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +16 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +1 -1
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -1
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +19 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +45 -2
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -1
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +37 -1
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -1
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
- 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.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
- package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
- package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
- 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.map +1 -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.map +1 -1
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
- package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
- package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
- package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
- package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -1
- package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -0
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -0
- package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -0
- package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -0
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -0
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -0
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -0
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -0
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -0
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -0
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -0
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -0
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -0
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -0
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -0
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -0
|
@@ -44,9 +44,11 @@ import 'reflect-metadata';
|
|
|
44
44
|
import { inject, injectable } from 'inversify';
|
|
45
45
|
import { z } from 'zod';
|
|
46
46
|
import { ErrorType, MANUAL_CONTROLLER_ROUTES_URLS, ManualControllerRouteKey, WildoHeaderKeys, isWildoBackendError, } from '@wildo-ai/saas-models';
|
|
47
|
-
import { ExternalProvider_Connection_OwnerScope, ExternalProvider_ConnectionTargetSchema, ExternalProvider_ExchangeProtocol_Kind,
|
|
47
|
+
import { ExternalProvider_Connection_OwnerScope, ExternalProvider_ConnectionTargetSchema, ExternalProvider_ExchangeProtocol_Kind, ExternalProvider_SecretScope, ProviderProtocolRuntimeKind, } from '@wildo-ai/external-connectors-models';
|
|
48
|
+
import { ProviderAuthMethod, ProviderConnectabilityBlocker } from '@wildo-ai/saas-models';
|
|
48
49
|
import { AbstractControllerBackendService } from '../../../base-classes/services/controllers/abstract-controller.backend.service.js';
|
|
49
50
|
import { SAAS_SERVICE_TYPES } from '../../../inject/models/service-types.js';
|
|
51
|
+
import { resolveUserDelegatedAccessTokenSlot, UserDelegatedAccessTokenRefusal } from '../../../security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js';
|
|
50
52
|
import { AuthControllerUtils } from '../../../security/authentications/services/utils/auth-controller.utils.js';
|
|
51
53
|
import { describeCaughtError } from '../../../errors/utils/error-log-level-classification.backend.utils.js';
|
|
52
54
|
import { buildProviderOAuth2AuthorizeUrl, createProviderOAuth2Pkce, createProviderOAuth2State, exchangeProviderOAuth2Code, } from '../services/provider-oauth2-exchange.backend.js';
|
|
@@ -64,16 +66,74 @@ const StartConnectionRequestSchema = z.object({
|
|
|
64
66
|
/** Answers for the endpoints' `{placeholders}` — which cloud, which directory, which region. */
|
|
65
67
|
connectionParameters: z.record(z.string(), z.string()).optional(),
|
|
66
68
|
});
|
|
69
|
+
/**
|
|
70
|
+
* A typed credential, one value per slot the provider declares.
|
|
71
|
+
*
|
|
72
|
+
* Keyed by SLUG rather than carrying a `secretSlug` field, because the shape then says what the rule
|
|
73
|
+
* is: a provider needing three values gets three keys, and there is no single slot for a caller to
|
|
74
|
+
* point somewhere unintended. The keys are validated against the contract, so the schema's job here
|
|
75
|
+
* is only to refuse an empty value.
|
|
76
|
+
*/
|
|
77
|
+
const StoreCredentialRequestSchema = z.object({
|
|
78
|
+
target: ExternalProvider_ConnectionTargetSchema,
|
|
79
|
+
values: z.record(z.string().min(1), z.string().min(1)),
|
|
80
|
+
});
|
|
81
|
+
/**
|
|
82
|
+
* The approval, handed back by the frontend that received it.
|
|
83
|
+
*
|
|
84
|
+
* Nothing here identifies an owner, and that is deliberate: the target lives in the remembered
|
|
85
|
+
* attempt, so a caller cannot choose whose account a grant is stored against by editing a body.
|
|
86
|
+
*/
|
|
87
|
+
const CompleteConnectionRequestSchema = z.object({
|
|
88
|
+
state: z.string().min(1).max(500),
|
|
89
|
+
code: z.string().min(1).max(4000),
|
|
90
|
+
});
|
|
67
91
|
/** Where the vendor sends people back. One URI for every provider — see the route's own JSDoc. */
|
|
68
92
|
const CALLBACK_PATH = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_CALLBACK];
|
|
69
93
|
/**
|
|
70
|
-
* Where the person lands afterwards, on the FRONTEND.
|
|
94
|
+
* Where the person lands afterwards, on the FRONTEND — CHOSEN BY THE OWNER SCOPE.
|
|
71
95
|
*
|
|
72
|
-
* The settings hub routes by section ref, and
|
|
73
|
-
*
|
|
74
|
-
*
|
|
96
|
+
* The settings hub routes by section ref, and connected accounts live at TWO of them: a personal
|
|
97
|
+
* one and a tenant one, each with its own Connect panel and its own credential list. So the
|
|
98
|
+
* destination is a function of whose account was connected, not a constant.
|
|
99
|
+
*
|
|
100
|
+
* It was `my-provider-credentials` unconditionally until 2026-09-10, which meant somebody who
|
|
101
|
+
* connected their ORGANIZATION's account was returned to their PERSONAL settings — a screen whose
|
|
102
|
+
* credential list shows their own rows and therefore says nothing about the tenant credential that
|
|
103
|
+
* had just been created. The connection worked and looked as though it had not, which is the
|
|
104
|
+
* report that found this. The organization destination's own definition already asserted the
|
|
105
|
+
* opposite ("Connect comes first because it is where the connection callback returns"), so the two
|
|
106
|
+
* halves disagreed and only one of them was executable.
|
|
107
|
+
*
|
|
108
|
+
* An APPLICATION-owned connection has no settings screen of its own — the deployment's credential
|
|
109
|
+
* is authored in the environment — and cannot reach the start leg's store check anyway, so it takes
|
|
110
|
+
* the personal destination as the one that exists rather than inventing a third.
|
|
111
|
+
*/
|
|
112
|
+
const PROVIDER_CONNECTION_RETURN_PATHS = {
|
|
113
|
+
[ExternalProvider_Connection_OwnerScope.USER]: '/settings/my-provider-credentials',
|
|
114
|
+
[ExternalProvider_Connection_OwnerScope.ORGANIZATION]: '/settings/provider-credentials',
|
|
115
|
+
[ExternalProvider_Connection_OwnerScope.APPLICATION]: '/settings/my-provider-credentials',
|
|
116
|
+
};
|
|
117
|
+
/** The destination for an attempt whose record is gone, so its owner cannot be known. */
|
|
118
|
+
const PROVIDER_CONNECTION_FALLBACK_RETURN_PATH = PROVIDER_CONNECTION_RETURN_PATHS[ExternalProvider_Connection_OwnerScope.USER];
|
|
119
|
+
/**
|
|
120
|
+
* This deployment has not registered an application with the vendor.
|
|
121
|
+
*
|
|
122
|
+
* Its own class because the answer it deserves is nothing like the catch-all's. A vendor's token
|
|
123
|
+
* endpoint misbehaving IS an upstream failure and 502 says so correctly; a client id that was never
|
|
124
|
+
* configured is entirely local, and answering 502 made a browser report "upstream server error" and
|
|
125
|
+
* sent an operator looking at infrastructure that is working perfectly.
|
|
75
126
|
*/
|
|
76
|
-
|
|
127
|
+
class ProviderRegistrationMissingError extends Error {
|
|
128
|
+
providerRef;
|
|
129
|
+
secretRef;
|
|
130
|
+
constructor(providerRef, secretRef) {
|
|
131
|
+
super(`Provider '${providerRef}' cannot be connected: the application's OAuth2 registration is not configured (${secretRef}).`);
|
|
132
|
+
this.providerRef = providerRef;
|
|
133
|
+
this.secretRef = secretRef;
|
|
134
|
+
this.name = 'ProviderRegistrationMissingError';
|
|
135
|
+
}
|
|
136
|
+
}
|
|
77
137
|
let ProviderConnectionControllerBackendService = class ProviderConnectionControllerBackendService extends AbstractControllerBackendService {
|
|
78
138
|
authJwtGuard;
|
|
79
139
|
authEcFactory;
|
|
@@ -83,7 +143,8 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
83
143
|
userCredentials;
|
|
84
144
|
organizationCredentials;
|
|
85
145
|
appConfig;
|
|
86
|
-
|
|
146
|
+
ecCreator;
|
|
147
|
+
constructor(logger, errorBuilder, errorHandler, authJwtGuard, authEcFactory, registry, pending, targetAuthorization, userCredentials, organizationCredentials, appConfig, ecCreator) {
|
|
87
148
|
super(logger, errorBuilder, errorHandler, 'ProviderConnectionController');
|
|
88
149
|
this.authJwtGuard = authJwtGuard;
|
|
89
150
|
this.authEcFactory = authEcFactory;
|
|
@@ -93,12 +154,19 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
93
154
|
this.userCredentials = userCredentials;
|
|
94
155
|
this.organizationCredentials = organizationCredentials;
|
|
95
156
|
this.appConfig = appConfig;
|
|
157
|
+
this.ecCreator = ecCreator;
|
|
96
158
|
}
|
|
97
159
|
setupRoutes() {
|
|
98
160
|
this.router.post(MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_START], this.asyncHandler(this.handleStart.bind(this)));
|
|
99
161
|
this.logRouteRegistration('POST', MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_START], 'Begin connecting a third-party account');
|
|
100
162
|
this.router.get(CALLBACK_PATH, this.asyncHandler(this.handleCallback.bind(this)));
|
|
101
|
-
this.logRouteRegistration('GET', CALLBACK_PATH, 'Receive the authorization code and
|
|
163
|
+
this.logRouteRegistration('GET', CALLBACK_PATH, 'Receive the authorization code and hand it to the application');
|
|
164
|
+
this.router.post(MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_COMPLETE], this.asyncHandler(this.handleComplete.bind(this)));
|
|
165
|
+
this.logRouteRegistration('POST', MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_COMPLETE], 'Finish an approved connection as the person who began it');
|
|
166
|
+
this.router.post(MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_STORE_CREDENTIAL], this.asyncHandler(this.handleStoreCredential.bind(this)));
|
|
167
|
+
this.logRouteRegistration('POST', MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_STORE_CREDENTIAL], 'Store a typed credential');
|
|
168
|
+
this.router.get(MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_ACCESS_TOKEN], this.asyncHandler(this.handleAccessToken.bind(this)));
|
|
169
|
+
this.logRouteRegistration('GET', MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_ACCESS_TOKEN], 'Hand the caller their own short-lived access token');
|
|
102
170
|
this.router.get(MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_CATALOGUE], this.asyncHandler(this.handleCatalogue.bind(this)));
|
|
103
171
|
this.logRouteRegistration('GET', MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.PROVIDER_CONNECTION_CATALOGUE], 'What can be connected');
|
|
104
172
|
}
|
|
@@ -131,6 +199,78 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
131
199
|
* marketing pages. No token, no client secret, no env-var VALUE is reported — `connectionParameters`
|
|
132
200
|
* names the placeholders a connection must ANSWER, which is an input to ask a person for.
|
|
133
201
|
*/
|
|
202
|
+
/**
|
|
203
|
+
* Hands the CALLER their own short-lived access token for one provider (#394 P4).
|
|
204
|
+
*
|
|
205
|
+
* ## Why a browser is handed a token at all
|
|
206
|
+
*
|
|
207
|
+
* A vendor's picker authorizes as the signed-in user. Drive's cannot render without that user's
|
|
208
|
+
* OAuth2 token, so the token is in the browser during picking whether the selected bytes are later
|
|
209
|
+
* fetched by the backend (`REMOTE_REFERENCE`) or not. #383 named a user-consented token a
|
|
210
|
+
* browser-safe grant for exactly this reason: it is the PERSON's grant, not the tenant's credential.
|
|
211
|
+
*
|
|
212
|
+
* ## What keeps this the one safe door
|
|
213
|
+
*
|
|
214
|
+
* - **The caller's own account, and nobody else's.** The row is resolved as `{ userId: caller }`;
|
|
215
|
+
* there is no target in the request to name another owner, so `mayActFor` has nothing to decide.
|
|
216
|
+
* - **Admissibility is the provider's recorded decision**, the same catalogue `start` consults: a
|
|
217
|
+
* provider that does not admit a user-owned, self-delegated connection has no grant to hand out.
|
|
218
|
+
* - **Never the refresh token.** The resolution carries the access token, its expiry and its
|
|
219
|
+
* scopes; the refresh token stays in the sealed row and the renewal happens here, server-side.
|
|
220
|
+
* - **Every hand-out is a USE.** `recordCredentialUse` emits `USER_PROVIDER_CREDENTIAL_USED` and
|
|
221
|
+
* stamps `lastUsedAt`, so a token that left the process is visible against the revocation and
|
|
222
|
+
* erasure that end it.
|
|
223
|
+
* - **404 when nothing is connected**, so a surface can offer the connection instead of opening a
|
|
224
|
+
* picker on nobody's files — the picker's own `onError` then names what is missing.
|
|
225
|
+
*
|
|
226
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — a person's delegated grant reaches
|
|
227
|
+
* the browser only as their own, only as an access token, and only as a recorded use.
|
|
228
|
+
*/
|
|
229
|
+
async handleAccessToken(req, res) {
|
|
230
|
+
try {
|
|
231
|
+
const { userId } = await this.extractCaller(req);
|
|
232
|
+
const providerRef = String(req.params.providerRef ?? '');
|
|
233
|
+
// The same predicate the Drive storage reads a linked file through (#394 P5): one answer to
|
|
234
|
+
// "does this provider hand a person their own token", not two.
|
|
235
|
+
const requestedSlug = typeof req.query.secretSlug === 'string' ? req.query.secretSlug : undefined;
|
|
236
|
+
const slot = resolveUserDelegatedAccessTokenSlot(this.registry, providerRef, requestedSlug);
|
|
237
|
+
if (slot.admitted === false) {
|
|
238
|
+
if (slot.refusal === UserDelegatedAccessTokenRefusal.PROVIDER_NOT_CONNECTABLE) {
|
|
239
|
+
res.status(400).json({
|
|
240
|
+
error: slot.refusal,
|
|
241
|
+
message: `Provider '${providerRef}' does not declare an OAuth2 contract, so there is no delegated token to hand out.`,
|
|
242
|
+
});
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
res.status(409).json({
|
|
246
|
+
error: slot.refusal,
|
|
247
|
+
message: `Provider '${providerRef}' does not admit a user-owned connection, so there is no personal token to hand out.`,
|
|
248
|
+
});
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const { secretSlug } = slot;
|
|
252
|
+
const resolution = await this.userCredentials.resolveUserCredential({ userId, providerRef, secretSlug });
|
|
253
|
+
if (resolution === undefined) {
|
|
254
|
+
res.status(404).json({
|
|
255
|
+
error: 'NOT_CONNECTED',
|
|
256
|
+
message: `You have not connected '${providerRef}'. Connect it first; the picker cannot open on nobody's files.`,
|
|
257
|
+
});
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
// Best-effort by design (see the store): the token is about to leave the process either way,
|
|
261
|
+
// and a bookkeeping failure must not turn a working picker into an error. Awaited so the audit
|
|
262
|
+
// row lands BEFORE the response that carries the token out.
|
|
263
|
+
await this.userCredentials.recordCredentialUse({ userId, providerRef, secretSlug, credentialId: resolution.credentialId });
|
|
264
|
+
res.status(200).json({
|
|
265
|
+
accessToken: resolution.value,
|
|
266
|
+
expiresAt: resolution.expiresAt,
|
|
267
|
+
grantedScopes: resolution.grantedScopes,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
this.handleControllerError(error, res, 'hand out an access token');
|
|
272
|
+
}
|
|
273
|
+
}
|
|
134
274
|
async handleCatalogue(req, res) {
|
|
135
275
|
try {
|
|
136
276
|
// Authenticated, though nothing here is owner-specific: an unauthenticated reader has no
|
|
@@ -141,14 +281,50 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
141
281
|
.map((providerRef) => {
|
|
142
282
|
const contract = this.registry.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.REST_API);
|
|
143
283
|
const oauth2 = contract?.kind === ProviderProtocolRuntimeKind.REST ? contract.oauth2 : undefined;
|
|
284
|
+
const blocker = this.connectabilityBlocker(providerRef, oauth2);
|
|
285
|
+
const slots = this.registry.getProviderSecretSlots(providerRef);
|
|
144
286
|
return {
|
|
145
287
|
providerRef,
|
|
146
288
|
/**
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
289
|
+
* Whether THIS DEPLOYMENT can begin a connection — not whether the vendor supports one.
|
|
290
|
+
*
|
|
291
|
+
* Those were the same field until somebody pressed Connect on Asana and got a 502. Asana
|
|
292
|
+
* supports OAuth2 perfectly well and this application has never registered with it, so
|
|
293
|
+
* the button could only ever fail. A provider that is not connectable still APPEARS, with
|
|
294
|
+
* the reason: a supported vendor rendered as absent is a worse answer than one rendered
|
|
295
|
+
* with what is missing.
|
|
150
296
|
*/
|
|
151
|
-
connectable:
|
|
297
|
+
connectable: blocker === undefined,
|
|
298
|
+
notConnectableBecause: blocker,
|
|
299
|
+
/**
|
|
300
|
+
* HOW this provider is connected, so the screen can be the right screen. A vendor with an
|
|
301
|
+
* authorization flow gets the consent round trip; one whose credential is typed gets a
|
|
302
|
+
* form over the fields BELOW, and never a free-text slug.
|
|
303
|
+
*/
|
|
304
|
+
authMethods: oauth2 === undefined
|
|
305
|
+
? [ProviderAuthMethod.DECLARED_SECRET]
|
|
306
|
+
: [ProviderAuthMethod.OAUTH2_AUTHORIZATION_CODE],
|
|
307
|
+
/**
|
|
308
|
+
* The account-identifying slots a person fills, DECLARED by the provider rather than typed.
|
|
309
|
+
*
|
|
310
|
+
* This is what removes the free-text `secretSlug`: a vendor needing three values says so,
|
|
311
|
+
* and the form asks for those three by name. Empty for a vendor whose only credential is
|
|
312
|
+
* minted by an exchange.
|
|
313
|
+
*/
|
|
314
|
+
credentialFields: slots
|
|
315
|
+
.filter((slot) => slot.scope === ExternalProvider_SecretScope.CREDENTIAL)
|
|
316
|
+
.map(({ slug, envVarName, required, description, configured }) => ({ slug, envVarName, required, description, configured })),
|
|
317
|
+
/**
|
|
318
|
+
* What an OPERATOR still has to set for this provider to be connectable at all.
|
|
319
|
+
*
|
|
320
|
+
* Reported rather than used to hide the provider: an absent vendor answers "we do not
|
|
321
|
+
* support Asana", which is false and unfixable, while a named missing variable is true and
|
|
322
|
+
* is the thing that gets it set. Only the REQUIRED ones — an optional slot that is unset
|
|
323
|
+
* is not a gap, and listing it would make the real gaps harder to see.
|
|
324
|
+
*/
|
|
325
|
+
missingRegistration: slots
|
|
326
|
+
.filter((slot) => slot.scope === ExternalProvider_SecretScope.REGISTRATION && slot.required && !slot.configured)
|
|
327
|
+
.map(({ slug, envVarName, description }) => ({ slug, envVarName, description })),
|
|
152
328
|
admissibleConnections: this.registry.getProviderAdmissibleConnections(providerRef)
|
|
153
329
|
.map(({ ownerScope, delegation }) => ({ ownerScope, delegation })),
|
|
154
330
|
// Absent, not empty, when the endpoints are plain — the same distinction the contract
|
|
@@ -177,6 +353,134 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
177
353
|
this.handleControllerError(error, res, 'list the connectable providers');
|
|
178
354
|
}
|
|
179
355
|
}
|
|
356
|
+
/**
|
|
357
|
+
* Store a credential somebody typed — the whole flow for a vendor with no authorization dance.
|
|
358
|
+
*
|
|
359
|
+
* ## The slugs are CHECKED, not trusted
|
|
360
|
+
*
|
|
361
|
+
* Every key must be a slot the provider declares as identifying an ACCOUNT. That refusal is the
|
|
362
|
+
* point of the route: a screen can offer only declared fields and still be bypassed by anything
|
|
363
|
+
* that posts JSON, so "nothing is typed by hand" has to be enforced where the write happens.
|
|
364
|
+
*
|
|
365
|
+
* Two refusals rather than one, because the causes differ. A name the provider never declared is a
|
|
366
|
+
* caller inventing a slot. A name it declares as a REGISTRATION is worse and looks reasonable: the
|
|
367
|
+
* application's own client secret has a slug like any other, and writing an account token there
|
|
368
|
+
* would store a value nothing ever reads — the connect reports success and every call afterwards
|
|
369
|
+
* resolves as absent.
|
|
370
|
+
*
|
|
371
|
+
* ## Required slots must all arrive
|
|
372
|
+
*
|
|
373
|
+
* A partial credential is not a smaller credential; it is one that cannot authenticate. Refusing
|
|
374
|
+
* here costs a round trip, where accepting costs a stored row that fails at the vendor with an
|
|
375
|
+
* error naming the vendor rather than the omission.
|
|
376
|
+
*
|
|
377
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — an account credential is recorded
|
|
378
|
+
* against the owner an authorized caller named.
|
|
379
|
+
*/
|
|
380
|
+
async handleStoreCredential(req, res) {
|
|
381
|
+
try {
|
|
382
|
+
const { userId } = await this.extractCaller(req);
|
|
383
|
+
const providerRef = String(req.params.providerRef ?? '');
|
|
384
|
+
const parsed = StoreCredentialRequestSchema.safeParse(req.body);
|
|
385
|
+
if (!parsed.success) {
|
|
386
|
+
res.status(400).json({ error: 'VALIDATION_FAILED', message: 'The credential request is not valid.' });
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
const { target, values } = parsed.data;
|
|
390
|
+
const admitted = this.registry.getProviderAdmissibleConnections(providerRef)
|
|
391
|
+
.some((shape) => shape.ownerScope === target.ownerScope && shape.delegation === target.delegation);
|
|
392
|
+
if (!admitted) {
|
|
393
|
+
res.status(409).json({
|
|
394
|
+
error: 'CONNECTION_NOT_ADMISSIBLE',
|
|
395
|
+
message: `Provider '${providerRef}' does not admit a ${target.ownerScope}-owned, ${target.delegation}-delegated connection.`,
|
|
396
|
+
});
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
if (!await this.mayActFor(target, userId, req)) {
|
|
400
|
+
res.status(403).json({ error: 'FORBIDDEN', message: 'You may not store a credential on behalf of that owner.' });
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
const slots = this.registry.getProviderSecretSlots(providerRef);
|
|
404
|
+
const credentialSlots = slots.filter((slot) => slot.scope === ExternalProvider_SecretScope.CREDENTIAL);
|
|
405
|
+
const declared = new Map(credentialSlots.map((slot) => [slot.slug, slot]));
|
|
406
|
+
for (const slug of Object.keys(values)) {
|
|
407
|
+
const slot = slots.find((candidate) => candidate.slug === slug);
|
|
408
|
+
if (slot === undefined) {
|
|
409
|
+
res.status(400).json({
|
|
410
|
+
error: 'SECRET_SLUG_NOT_DECLARED',
|
|
411
|
+
message: `Provider '${providerRef}' declares no secret named '${slug}'. It declares: `
|
|
412
|
+
+ `${credentialSlots.map((candidate) => candidate.slug).join(', ') || 'none'}.`,
|
|
413
|
+
});
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
if (!declared.has(slug)) {
|
|
417
|
+
res.status(400).json({
|
|
418
|
+
error: 'SECRET_SLUG_NOT_A_CREDENTIAL',
|
|
419
|
+
message: `'${slug}' identifies provider '${providerRef}'\u2019s own registration, not an account, `
|
|
420
|
+
+ 'so a credential cannot be stored there. It is authored in the deployment environment.',
|
|
421
|
+
});
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
const missing = credentialSlots
|
|
426
|
+
.filter((slot) => slot.required && (values[slot.slug] ?? '').length === 0)
|
|
427
|
+
.map((slot) => slot.slug);
|
|
428
|
+
if (missing.length > 0) {
|
|
429
|
+
res.status(400).json({
|
|
430
|
+
error: 'CREDENTIAL_INCOMPLETE',
|
|
431
|
+
message: `Provider '${providerRef}' requires ${missing.join(', ')}. A partial credential cannot authenticate.`,
|
|
432
|
+
});
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
// STORED UNDER THE SAME REFERENCE EVERY READER USES, which is the env-var name.
|
|
436
|
+
//
|
|
437
|
+
// A slot has two names — the authoring slug (`accessToken`) and its `envVarName`
|
|
438
|
+
// (`ASANA_API_KEY`) — and a credential row's business key is
|
|
439
|
+
// `(owner, providerRef, secretSlug)`, matched EXACTLY. Every runtime reader arrives holding
|
|
440
|
+
// `runtimeContract.apiKey.secretRef`, and a runtime contract only ever references a secret by
|
|
441
|
+
// its env-var name, so a row written under the slug is a row nothing can ever find.
|
|
442
|
+
//
|
|
443
|
+
// This door wrote the slug and the OAuth2 door wrote the env-var name, so the same account
|
|
444
|
+
// stored through the two paths produced two rows that could not see each other — and the
|
|
445
|
+
// typed one resolved as absent forever. It reported success, which is the shape this
|
|
446
|
+
// controller already refuses for registration slugs ("a value NOTHING reads").
|
|
447
|
+
//
|
|
448
|
+
// Canonicalising on the env-var name rather than on the slug follows the decision this
|
|
449
|
+
// subsystem already took for exactly this "two names for one secret" problem — see
|
|
450
|
+
// `getProviderSecretScope`, which compares on the env-var name for the same reason.
|
|
451
|
+
const stored = {};
|
|
452
|
+
for (const [slug, value] of Object.entries(values)) {
|
|
453
|
+
const secretRef = this.canonicalSecretRef(providerRef, slug);
|
|
454
|
+
stored[slug] = await this.storeDeclaredSecretForTarget(providerRef, secretRef, value, target);
|
|
455
|
+
}
|
|
456
|
+
// Never the values, and never how many characters they were.
|
|
457
|
+
this.logger.info?.('[oauth2-connect] typed credential stored', {
|
|
458
|
+
providerRef,
|
|
459
|
+
ownerScope: target.ownerScope,
|
|
460
|
+
slugs: Object.keys(stored),
|
|
461
|
+
});
|
|
462
|
+
res.status(200).json({ stored });
|
|
463
|
+
}
|
|
464
|
+
catch (error) {
|
|
465
|
+
this.handleControllerError(error, res, 'store a provider credential');
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Route a typed credential to the store that owns the owner's table.
|
|
470
|
+
*
|
|
471
|
+
* An APPLICATION target has no store — the deployment's own credential lives in the environment —
|
|
472
|
+
* so a value arriving for one would be written where nothing reads it.
|
|
473
|
+
*/
|
|
474
|
+
async storeDeclaredSecretForTarget(providerRef, secretSlug, value, target) {
|
|
475
|
+
if (target.ownerScope === ExternalProvider_Connection_OwnerScope.USER) {
|
|
476
|
+
return this.userCredentials.storeDeclaredSecret({ userId: target.ownerId, providerRef, secretSlug }, value);
|
|
477
|
+
}
|
|
478
|
+
if (target.ownerScope === ExternalProvider_Connection_OwnerScope.ORGANIZATION) {
|
|
479
|
+
return this.organizationCredentials.storeDeclaredSecret({ organizationId: target.ownerId, providerRef, secretSlug }, value);
|
|
480
|
+
}
|
|
481
|
+
throw new Error(`A typed credential for provider '${providerRef}' named an APPLICATION-owned target, which has no `
|
|
482
|
+
+ "credential store: the deployment's own credential is authored in the environment.");
|
|
483
|
+
}
|
|
180
484
|
/**
|
|
181
485
|
* Leg one: decide whether this caller may connect this target, and hand back the URL.
|
|
182
486
|
*
|
|
@@ -213,7 +517,7 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
213
517
|
});
|
|
214
518
|
return;
|
|
215
519
|
}
|
|
216
|
-
if (!await this.mayActFor(target, userId)) {
|
|
520
|
+
if (!await this.mayActFor(target, userId, req)) {
|
|
217
521
|
// 403 rather than 404: the caller is authenticated and the provider exists; what they may not
|
|
218
522
|
// do is act for THIS owner. Answering 404 would make an authorization decision look like a
|
|
219
523
|
// missing provider and send an operator looking for a registration problem.
|
|
@@ -223,7 +527,9 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
223
527
|
});
|
|
224
528
|
return;
|
|
225
529
|
}
|
|
226
|
-
|
|
530
|
+
// Canonical, because `secretSlug` is caller-supplied and optional: a caller naming the
|
|
531
|
+
// authoring slug would otherwise have the minted grant written where no reader looks.
|
|
532
|
+
const secretSlug = this.canonicalSecretRef(providerRef, parsed.data.secretSlug ?? contract.apiKey.secretRef);
|
|
227
533
|
// WHERE the grant will be stored, and it must be a slug that holds an ACCOUNT.
|
|
228
534
|
//
|
|
229
535
|
// `secretSlug` is caller-supplied and optional, so without this a request could name the
|
|
@@ -288,6 +594,9 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
288
594
|
try {
|
|
289
595
|
const state = typeof req.query.state === 'string' ? req.query.state : '';
|
|
290
596
|
const code = typeof req.query.code === 'string' ? req.query.code : '';
|
|
597
|
+
// PEEKED, never consumed. This leg only needs the frontend to send the person back to; taking
|
|
598
|
+
// the attempt here would destroy it before the authenticated half could redeem it.
|
|
599
|
+
const pending = state === '' ? null : await this.pending.peek(state);
|
|
291
600
|
// A vendor that reports a refusal reports it HERE, in the redirect, not at the token endpoint.
|
|
292
601
|
// Treating a missing code as a forged state would tell somebody who simply pressed "Deny" that
|
|
293
602
|
// their request was invalid.
|
|
@@ -295,10 +604,9 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
295
604
|
// The vendor reports a refusal HERE, in the redirect. Somebody who pressed "Deny" is not an
|
|
296
605
|
// error case to explain — they are a person who changed their mind, and they go back to the
|
|
297
606
|
// screen they started from.
|
|
298
|
-
this.finishInBrowser(res,
|
|
607
|
+
this.finishInBrowser(res, pending?.frontendServiceName, { connectionError: 'declined' }, pending?.target.ownerScope);
|
|
299
608
|
return;
|
|
300
609
|
}
|
|
301
|
-
const pending = state === '' ? null : await this.pending.consume(state);
|
|
302
610
|
if (pending === null || code === '') {
|
|
303
611
|
// ONE answer for expired, already-used, never-existed and missing-code. Distinguishing them
|
|
304
612
|
// would confirm to somebody probing that a state they hold is real.
|
|
@@ -308,19 +616,66 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
308
616
|
this.finishInBrowser(res, undefined, { connectionError: 'invalid' });
|
|
309
617
|
return;
|
|
310
618
|
}
|
|
311
|
-
//
|
|
312
|
-
//
|
|
313
|
-
//
|
|
619
|
+
// Handed to the application to finish, because THIS request cannot.
|
|
620
|
+
//
|
|
621
|
+
// A vendor redirect is a top-level navigation: no script ran to set an `Authorization` header,
|
|
622
|
+
// and the application's only auth cookie is `SameSite=Strict` on `Path=/api/v1/auth`, so it is
|
|
623
|
+
// not sent here either. There is therefore no credential on this request and no way to obtain
|
|
624
|
+
// one — which is why the initiator check moved to the completion route rather than being
|
|
625
|
+
// dropped. It used to be attempted here, and every consent answered 401 with the attempt
|
|
626
|
+
// already consumed, so the person could not even retry.
|
|
627
|
+
//
|
|
628
|
+
// The code crosses the browser a second time. That is not a new exposure — the vendor already
|
|
629
|
+
// put it in this URL — and the frontend strips it from history once it has been redeemed.
|
|
630
|
+
this.finishInBrowser(res, pending.frontendServiceName, { state, code }, pending.target.ownerScope);
|
|
631
|
+
}
|
|
632
|
+
catch (error) {
|
|
633
|
+
this.handleControllerError(error, res, 'receive a provider connection callback');
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* Finish an approval, as the person who began it.
|
|
638
|
+
*
|
|
639
|
+
* The authenticated half of the callback, and a POST because it is a FETCH — which is the whole
|
|
640
|
+
* point: a fetch carries the bearer token that a redirect cannot. Everything the callback used to
|
|
641
|
+
* guarantee is guaranteed here instead, in the same order.
|
|
642
|
+
*
|
|
643
|
+
* - **The attempt is consumed once, atomically**, so two concurrent completions cannot both
|
|
644
|
+
* proceed and a replay finds nothing.
|
|
645
|
+
* - **The finisher must be the initiator.** Without it, somebody who obtained a valid `state`
|
|
646
|
+
* could redeem their own approval against the original initiator's target — connecting THEIR
|
|
647
|
+
* vendor account into somebody else's organization.
|
|
648
|
+
* - **The owner comes from the RECORD**, never from this request. A caller naming their own target
|
|
649
|
+
* here would be choosing whose account a grant is stored against.
|
|
650
|
+
*
|
|
651
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — the grant is recorded against the
|
|
652
|
+
* owner the ATTEMPT named, by the person who began it, and by nobody else.
|
|
653
|
+
*/
|
|
654
|
+
async handleComplete(req, res) {
|
|
655
|
+
try {
|
|
314
656
|
const { userId } = await this.extractCaller(req);
|
|
657
|
+
const parsed = CompleteConnectionRequestSchema.safeParse(req.body);
|
|
658
|
+
if (!parsed.success) {
|
|
659
|
+
res.status(400).json({ error: 'VALIDATION_FAILED', message: 'The completion request is not valid.' });
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
const { state, code } = parsed.data;
|
|
663
|
+
const pending = await this.pending.consume(state);
|
|
664
|
+
if (pending === null) {
|
|
665
|
+
// The same single answer the callback gives, for the same reason: expired, already used and
|
|
666
|
+
// never existed must not be distinguishable to somebody holding a state they are probing.
|
|
667
|
+
res.status(400).json({ error: 'CONNECTION_ATTEMPT_INVALID', message: 'This connection attempt is no longer valid. Start it again.' });
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
315
670
|
if (pending.initiatedByUserId !== undefined && pending.initiatedByUserId !== userId) {
|
|
316
|
-
|
|
671
|
+
res.status(403).json({ error: 'NOT_YOURS', message: 'This connection attempt was started by somebody else.' });
|
|
317
672
|
return;
|
|
318
673
|
}
|
|
319
674
|
const contract = this.registry.getProviderRuntimeContract(pending.providerRef, ExternalProvider_ExchangeProtocol_Kind.REST_API);
|
|
320
675
|
if (contract?.kind !== ProviderProtocolRuntimeKind.REST || contract.oauth2 === undefined) {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
676
|
+
res.status(400).json({
|
|
677
|
+
error: 'PROVIDER_NOT_CONNECTABLE',
|
|
678
|
+
message: `Provider '${pending.providerRef}' does not declare an OAuth2 contract.`,
|
|
324
679
|
});
|
|
325
680
|
return;
|
|
326
681
|
}
|
|
@@ -336,8 +691,6 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
336
691
|
redirectUri: pending.redirectUri,
|
|
337
692
|
pkceVerifier: pending.pkceVerifier,
|
|
338
693
|
});
|
|
339
|
-
// assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — the grant is recorded against
|
|
340
|
-
// the owner the ATTEMPT named, never one the callback's own URL could carry.
|
|
341
694
|
const credentialId = await this.storeGrantForTarget(pending, grant);
|
|
342
695
|
// Logged AFTER the write, so the line means the connection EXISTS rather than that an exchange
|
|
343
696
|
// succeeded. `grantedScopes` is the fact worth having: a vendor may issue a token for fewer
|
|
@@ -350,7 +703,7 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
350
703
|
grantedScopes: grant.grantedScopes,
|
|
351
704
|
// Never the token, and never the grant.
|
|
352
705
|
});
|
|
353
|
-
|
|
706
|
+
res.status(200).json({ connected: pending.providerRef });
|
|
354
707
|
}
|
|
355
708
|
catch (error) {
|
|
356
709
|
this.handleControllerError(error, res, 'complete a provider connection');
|
|
@@ -375,7 +728,7 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
375
728
|
* resource to fetch with GET, which is what 303 means.
|
|
376
729
|
* spec-cite: RFC 9110 §15.4.4 (303 See Other).
|
|
377
730
|
*/
|
|
378
|
-
finishInBrowser(res, frontendServiceName, outcome) {
|
|
731
|
+
finishInBrowser(res, frontendServiceName, outcome, ownerScope) {
|
|
379
732
|
const base = frontendServiceName === undefined
|
|
380
733
|
? null
|
|
381
734
|
: AuthControllerUtils.lookupFrontendPublicUrl(this.appConfig.config, frontendServiceName);
|
|
@@ -390,7 +743,9 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
390
743
|
.send(`<!doctype html><meta charset="utf-8"><title>Connection</title><p>${detail}</p>`);
|
|
391
744
|
return;
|
|
392
745
|
}
|
|
393
|
-
const destination = new URL(
|
|
746
|
+
const destination = new URL(ownerScope === undefined
|
|
747
|
+
? PROVIDER_CONNECTION_FALLBACK_RETURN_PATH
|
|
748
|
+
: PROVIDER_CONNECTION_RETURN_PATHS[ownerScope], base);
|
|
394
749
|
for (const [key, value] of Object.entries(outcome))
|
|
395
750
|
destination.searchParams.set(key, value);
|
|
396
751
|
res.redirect(303, destination.toString());
|
|
@@ -417,6 +772,28 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
417
772
|
+ 'no credential store: the deployment\'s own credential is authored in the environment. The '
|
|
418
773
|
+ 'attempt should have been refused at the start leg.');
|
|
419
774
|
}
|
|
775
|
+
/**
|
|
776
|
+
* Why this deployment cannot begin a connection to a provider, or `undefined` when it can.
|
|
777
|
+
*
|
|
778
|
+
* Two different gaps that a boolean could not tell apart, and they are repaired by different people:
|
|
779
|
+
* a vendor with no authorization flow is authored on the credential screen by an APPLICATION
|
|
780
|
+
* AUTHOR, while a vendor this deployment has not registered with needs an OPERATOR to create an
|
|
781
|
+
* application at the vendor and set two environment variables.
|
|
782
|
+
*
|
|
783
|
+
* The client SECRET is checked as well as the id. Checking only the id would let a half-configured
|
|
784
|
+
* deployment advertise a provider as connectable and then fail at the token exchange — after the
|
|
785
|
+
* person had already granted consent at the vendor, which is the worst moment to discover it.
|
|
786
|
+
*/
|
|
787
|
+
connectabilityBlocker(providerRef, oauth2) {
|
|
788
|
+
if (oauth2 === undefined)
|
|
789
|
+
return ProviderConnectabilityBlocker.NO_AUTHORIZATION_FLOW;
|
|
790
|
+
const secret = (ref) => (ref === undefined
|
|
791
|
+
? undefined
|
|
792
|
+
: this.registry.getProviderSecret(providerRef, ExternalProvider_ExchangeProtocol_Kind.REST_API, ref));
|
|
793
|
+
return secret(oauth2.clientIdSecretRef) && secret(oauth2.clientSecretSecretRef)
|
|
794
|
+
? undefined
|
|
795
|
+
: ProviderConnectabilityBlocker.APPLICATION_NOT_REGISTERED;
|
|
796
|
+
}
|
|
420
797
|
/**
|
|
421
798
|
* May this caller act for that owner?
|
|
422
799
|
*
|
|
@@ -424,8 +801,32 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
424
801
|
* second party whose account might be spent. Every other target goes through the same membership
|
|
425
802
|
* port the resolution path uses — one answer to "may this execution act for that owner", not two
|
|
426
803
|
* that can disagree.
|
|
804
|
+
*
|
|
805
|
+
* ## The context is built from the REQUEST, and that is the whole correctness of this method
|
|
806
|
+
*
|
|
807
|
+
* The port decides an ORGANIZATION target by asking `initiatorRoles` which tenants the caller
|
|
808
|
+
* belongs to organization-wide. So it can only answer from a context whose roles were built from
|
|
809
|
+
* real memberships — which is what `createExecutionContextForManualController` does, and what the
|
|
810
|
+
* auth-flow factory deliberately does not.
|
|
811
|
+
*
|
|
812
|
+
* This asked `authEcFactory.createForAuthenticatedAuthOperation` until 2026-09-10, and that
|
|
813
|
+
* factory hardcodes `initiatorRoles` to a single APPLICATION-scoped `APP_USER` entry — correct for
|
|
814
|
+
* its own audience (token issuance, password change, TOTP), which asks no membership question, and
|
|
815
|
+
* taken verbatim by the creator rather than enriched. `organizationWideMembershipsOf` filters that
|
|
816
|
+
* array on `relatedPrimaryScope === ORGANIZATIONS`, so it was ALWAYS empty and every organization
|
|
817
|
+
* target was refused — for every caller, every tenant, both routes. Measured on the running stack:
|
|
818
|
+
* `application × service` and `user × service` minted an authorize URL while an `ORG_OWNER`'s
|
|
819
|
+
* `organization × user` answered 403, which is the one combination 75 vendors declare and the one
|
|
820
|
+
* this lane exists for.
|
|
821
|
+
*
|
|
822
|
+
* The fix is here rather than in the factory on purpose: giving that factory a membership read
|
|
823
|
+
* would put a repository round trip on every token refresh to answer a question its callers never
|
|
824
|
+
* ask. This path is a settings-screen click.
|
|
825
|
+
*
|
|
826
|
+
* Built only on the ORGANIZATION branch, for the same reason: APPLICATION admits without a caller
|
|
827
|
+
* and USER compares two ids, so neither reads a role and neither should pay for one.
|
|
427
828
|
*/
|
|
428
|
-
async mayActFor(target, userId) {
|
|
829
|
+
async mayActFor(target, userId, req) {
|
|
429
830
|
if (target.ownerScope === ExternalProvider_Connection_OwnerScope.APPLICATION)
|
|
430
831
|
return true;
|
|
431
832
|
if (target.ownerScope === ExternalProvider_Connection_OwnerScope.USER) {
|
|
@@ -433,16 +834,39 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
433
834
|
// this resource at any tier, so the only admissible user target is the caller themselves.
|
|
434
835
|
return target.ownerId === userId;
|
|
435
836
|
}
|
|
436
|
-
const ec = await this.
|
|
837
|
+
const ec = await this.ecCreator.createExecutionContextForManualController(req);
|
|
437
838
|
return this.targetAuthorization.mayActFor(target, ec);
|
|
438
839
|
}
|
|
840
|
+
/**
|
|
841
|
+
* The ONE name a credential row is keyed by, whichever of a slot's two names arrived.
|
|
842
|
+
*
|
|
843
|
+
* A declared slot has an authoring slug (`accessToken`) and an `envVarName` (`ASANA_API_KEY`), and
|
|
844
|
+
* both circulate: an authoring surface names the slug, while a runtime contract only ever
|
|
845
|
+
* references the env-var name. A credential row's business key is
|
|
846
|
+
* `(owner, providerRef, secretSlug)` and it is matched EXACTLY, so the two spellings are two
|
|
847
|
+
* different rows — and since every reader arrives holding `runtimeContract.apiKey.secretRef`, a
|
|
848
|
+
* row written under the slug is one nothing can ever find.
|
|
849
|
+
*
|
|
850
|
+
* The env-var name is the canonical form because it is the one a runtime contract carries, which
|
|
851
|
+
* is the same decision {@link ExternalProvidersRegistryBackendService.getProviderSecretScope} took
|
|
852
|
+
* for this subsystem's other "two names for one secret" defect. Choosing the slug instead would
|
|
853
|
+
* mean translating at every reader, and readers are the population that grows.
|
|
854
|
+
*
|
|
855
|
+
* An UNDECLARED ref is returned unchanged rather than rewritten: this normalises names the
|
|
856
|
+
* provider declares and is not a place to invent one. The callers refuse an undeclared ref on
|
|
857
|
+
* their own terms, and doing it here as well would answer the wrong error.
|
|
858
|
+
*/
|
|
859
|
+
canonicalSecretRef(providerRef, ref) {
|
|
860
|
+
const slot = this.registry.getProviderSecretSlots(providerRef)
|
|
861
|
+
.find((candidate) => candidate.slug === ref || candidate.envVarName === ref);
|
|
862
|
+
return slot?.envVarName ?? ref;
|
|
863
|
+
}
|
|
439
864
|
requireClientId(providerRef, secretRef) {
|
|
440
865
|
const value = secretRef === undefined
|
|
441
866
|
? undefined
|
|
442
867
|
: this.registry.getProviderSecret(providerRef, ExternalProvider_ExchangeProtocol_Kind.REST_API, secretRef);
|
|
443
868
|
if (!value) {
|
|
444
|
-
throw new
|
|
445
|
-
+ `(${secretRef ?? 'no client id declared'}). This is a deployment configuration gap.`);
|
|
869
|
+
throw new ProviderRegistrationMissingError(providerRef, secretRef ?? 'the provider\'s client-id secret ref');
|
|
446
870
|
}
|
|
447
871
|
return value;
|
|
448
872
|
}
|
|
@@ -487,6 +911,22 @@ let ProviderConnectionControllerBackendService = class ProviderConnectionControl
|
|
|
487
911
|
res.status(401).json({ error: 'UNAUTHENTICATED', message: 'Sign in and try again.' });
|
|
488
912
|
return;
|
|
489
913
|
}
|
|
914
|
+
if (error instanceof ProviderRegistrationMissingError) {
|
|
915
|
+
// 503, not 502. The deployment cannot service this request and an operator can fix it by
|
|
916
|
+
// registering an application with the vendor — where 502 asserts an upstream failure and sends
|
|
917
|
+
// that same operator to look at infrastructure that is working.
|
|
918
|
+
//
|
|
919
|
+
// The secret ref is NAMED because it is not a secret: it is the environment variable's NAME,
|
|
920
|
+
// which is exactly what somebody needs in order to act, and withholding it would leave the
|
|
921
|
+
// message true and useless.
|
|
922
|
+
res.status(503).json({
|
|
923
|
+
error: 'PROVIDER_REGISTRATION_MISSING',
|
|
924
|
+
providerRef: error.providerRef,
|
|
925
|
+
secretRef: error.secretRef,
|
|
926
|
+
message: `This application has not registered with '${error.providerRef}'. Create an application at the vendor and set ${error.secretRef} (and its client-secret pair) in this deployment's environment.`,
|
|
927
|
+
});
|
|
928
|
+
return;
|
|
929
|
+
}
|
|
490
930
|
res.status(502).json({
|
|
491
931
|
error: 'CONNECTION_FAILED',
|
|
492
932
|
message: `Could not ${action}. The detail is in the application log.`,
|
|
@@ -506,7 +946,8 @@ ProviderConnectionControllerBackendService = __decorate([
|
|
|
506
946
|
__param(8, inject(SAAS_SERVICE_TYPES.UserProviderCredentialResolver)),
|
|
507
947
|
__param(9, inject(SAAS_SERVICE_TYPES.OrganizationProviderCredentialResolver)),
|
|
508
948
|
__param(10, inject(SAAS_SERVICE_TYPES.AppConfigService)),
|
|
509
|
-
|
|
949
|
+
__param(11, inject(SAAS_SERVICE_TYPES.ExecutionContextCreatorBackendService)),
|
|
950
|
+
__metadata("design:paramtypes", [Function, Function, Function, Function, Function, Function, Function, Object, Function, Function, Function, Function])
|
|
510
951
|
], ProviderConnectionControllerBackendService);
|
|
511
952
|
export { ProviderConnectionControllerBackendService };
|
|
512
953
|
//# sourceMappingURL=provider-connection.controller.backend.service.js.map
|