@wildo-ai/saas-backend-lib 1.1.2 → 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 +19 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
- package/dist/esm/base-classes/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 +35 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +210 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
- package/dist/esm/base-classes/services/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 +27 -6
- 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 +124 -13
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +220 -25
- 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 +60 -8
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +191 -26
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-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 +89 -14
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/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 +9 -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 +106 -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 +266 -20
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-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 +34 -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 +22 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-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 +4 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +571 -45
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
- package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
- package/dist/esm/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 +28 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
- package/dist/esm/billing/services/back-office/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 +186 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +475 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
- 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 +100 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
- package/dist/esm/billing/services/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 +48 -7
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +70 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +98 -2
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/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 +11 -3
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +21 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +109 -2
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
- package/dist/esm/billing/services/webhooks/billing-webhook-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 +104 -11
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +310 -29
- 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 +30 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
- package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
- package/dist/esm/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 +11 -4
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/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 +225 -13
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +350 -10
- 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 +562 -10
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +52 -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 +5 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
- package/dist/esm/config/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 +145 -49
- package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
- package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/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 +38 -15
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
- package/dist/esm/config/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 +0 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.js +71 -76
- package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
- package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +37 -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 +69 -1
- 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 +48 -0
- 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 +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
- package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
- package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
- package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
- package/dist/esm/external-data/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 +59 -2
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
- package/dist/esm/external-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 +4 -2
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +306 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +379 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js +235 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +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 +181 -100
- package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
- package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +413 -7
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +684 -45
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +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 +84 -5
- 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 +21 -13
- 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 +260 -36
- 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 +94 -9
- package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.js +202 -17
- package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.js +175 -13
- package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
- package/dist/esm/files/services/files.backend.service.d.ts +68 -0
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +177 -5
- 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 +109 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
- package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +52 -11
- 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 +67 -8
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/storage/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 +8 -55
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
- package/dist/esm/files/utils/file-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 +86 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
- package/dist/esm/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 +15 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/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 +6 -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 +60 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-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 +74 -0
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/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 +8 -3
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +179 -8
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +436 -34
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
- package/dist/esm/flows-actors/services/__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 +0 -2
- 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 +132 -6
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +467 -49
- 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 +50 -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 +270 -20
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
- package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js +371 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
- 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 +9 -5
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +17 -4
- 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 +0 -207
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
- package/dist/esm/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 +9 -14
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
- package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
- package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
- package/dist/esm/index.d.ts +11 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +31 -5
- 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 +126 -10
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +20 -3
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +22 -3
- package/dist/esm/inject/models/service-types.js.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.js +70 -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 +56 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
- package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
- package/dist/esm/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 +49 -4
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.d.ts +24 -0
- package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
- package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +313 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +389 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/observability/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 +21 -0
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/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 +66 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.d.ts +102 -5
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +222 -70
- package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
- package/dist/esm/notifications/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 +142 -21
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
- package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/notifications/sms/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 +117 -5
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/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 +16 -6
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/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 +12 -12
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/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 +16 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
- package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/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 +63 -2
- 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 +66 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/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 +2 -2
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
- package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.js +1 -4
- package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.js +1 -4
- package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
- package/dist/esm/queue/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 +8 -4
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
- package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
- package/dist/esm/queue/queue.backend.service.d.ts +3 -3
- package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue.backend.service.js +26 -4
- package/dist/esm/queue/queue.backend.service.js.map +1 -1
- package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
- package/dist/esm/rag/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 +50 -25
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
- package/dist/esm/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 +9 -0
- package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.js +81 -9
- 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 +16 -2
- 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 +2 -0
- package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
- package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
- package/dist/esm/resources/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 +83 -5
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.js +121 -6
- 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 +36 -3
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
- package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
- package/dist/esm/runtime/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 +51 -0
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
- package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +191 -1
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.js +287 -89
- 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 +15 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/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 +113 -4
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/models/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 +1 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/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 +30 -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 +0 -2
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/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 +197 -0
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +384 -53
- 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 +68 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-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 +41 -0
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +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 +260 -27
- 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 +70 -4
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/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 +29 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/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 +28 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +339 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/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 +35 -0
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/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 +4 -0
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-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 +6 -0
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/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 +37 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/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 +41 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
- package/dist/esm/security/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 +116 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/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 +37 -124
- 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 +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +133 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js +137 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +134 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +152 -5
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +146 -8
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +328 -29
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +299 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +953 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +99 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +210 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +423 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +282 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +125 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +123 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +214 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +430 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +98 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
- package/dist/esm/security/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 +21 -3
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
- package/dist/esm/security/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 +26 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/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 +17 -5
- package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
- package/dist/esm/security/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 +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
- package/dist/esm/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 +39 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
- package/dist/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 +11 -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 -80
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
- package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
|
@@ -80,4 +80,37 @@ export declare function resolveRateLimitEnvironmentMultiplier(applicationEnv: Ru
|
|
|
80
80
|
* @returns `authoredMax` in `STAGING` / `PRODUCTION`; the relaxed ceiling otherwise.
|
|
81
81
|
*/
|
|
82
82
|
export declare function relaxAbuseThrottleMaxForEnvironment(authoredMax: number, applicationEnv: RuntimeEnvironment): number;
|
|
83
|
+
/**
|
|
84
|
+
* Every abuse throttle this relaxation reaches, named so the boot announcement can list them (#499).
|
|
85
|
+
*
|
|
86
|
+
* A line saying "abuse limits relaxed" would be accurate and still misleading: an operator would
|
|
87
|
+
* reasonably read it as ALL of them, and it is not — a counter whose maximum is a product or tenant
|
|
88
|
+
* policy is deliberately untouched, as is any counter used as an audit de-duplication window (see the
|
|
89
|
+
* module header). Naming the reached set is what makes the announcement actionable rather than
|
|
90
|
+
* atmospheric.
|
|
91
|
+
*
|
|
92
|
+
* Maintained by hand against the import sites, which is a list re-stating another file's population —
|
|
93
|
+
* exactly the shape `invariant-call-site-enumeration.md` warns about. It is tolerable ONLY because it
|
|
94
|
+
* feeds a log line rather than a decision: a stale entry here misinforms an operator, it does not
|
|
95
|
+
* change a ceiling. Keep it in step when a site is added, and prefer deleting it over letting it rot.
|
|
96
|
+
*/
|
|
97
|
+
export declare const RELAXED_ABUSE_THROTTLE_SITES: readonly string[];
|
|
98
|
+
/** What a boot announcement should say, or `null` when the environment relaxes nothing. */
|
|
99
|
+
export interface AbuseThrottleRelaxationAnnouncement {
|
|
100
|
+
readonly applicationEnv: RuntimeEnvironment;
|
|
101
|
+
readonly multiplier: number;
|
|
102
|
+
readonly relaxedSites: readonly string[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Describe the relaxation in force, for an unmissable line at startup (#499).
|
|
106
|
+
*
|
|
107
|
+
* The relaxation is keyed on the resolved environment and nothing else — a deliberate decision, so
|
|
108
|
+
* there is one source of truth for "what kind of host is this" rather than a second flag that can
|
|
109
|
+
* disagree with it. The residual risk is that a host which merely REPORTS development (a demonstration
|
|
110
|
+
* box, a staging-like environment mis-declared) runs with maxima multiplied by a thousand. That risk is
|
|
111
|
+
* accepted, and this function is the whole of what makes it visible instead of silent.
|
|
112
|
+
*
|
|
113
|
+
* Returns `null` in `STAGING` / `PRODUCTION`, so a caller logs nothing where nothing is relaxed.
|
|
114
|
+
*/
|
|
115
|
+
export declare function describeAbuseThrottleRelaxation(applicationEnv: RuntimeEnvironment): AbuseThrottleRelaxationAnnouncement | null;
|
|
83
116
|
//# sourceMappingURL=rate-limit-environment-relaxation.backend.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-environment-relaxation.backend.utils.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"rate-limit-environment-relaxation.backend.utils.d.ts","sourceRoot":"","sources":["../../../../src/errors/utils/rate-limit-environment-relaxation.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,OAAO,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,CAIhG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mCAAmC,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,GAAG,MAAM,CAEnH;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAQzD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,kBAAkB,GACjC,mCAAmC,GAAG,IAAI,CAK5C"}
|
|
@@ -86,4 +86,44 @@ export function resolveRateLimitEnvironmentMultiplier(applicationEnv) {
|
|
|
86
86
|
export function relaxAbuseThrottleMaxForEnvironment(authoredMax, applicationEnv) {
|
|
87
87
|
return authoredMax * resolveRateLimitEnvironmentMultiplier(applicationEnv);
|
|
88
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Every abuse throttle this relaxation reaches, named so the boot announcement can list them (#499).
|
|
91
|
+
*
|
|
92
|
+
* A line saying "abuse limits relaxed" would be accurate and still misleading: an operator would
|
|
93
|
+
* reasonably read it as ALL of them, and it is not — a counter whose maximum is a product or tenant
|
|
94
|
+
* policy is deliberately untouched, as is any counter used as an audit de-duplication window (see the
|
|
95
|
+
* module header). Naming the reached set is what makes the announcement actionable rather than
|
|
96
|
+
* atmospheric.
|
|
97
|
+
*
|
|
98
|
+
* Maintained by hand against the import sites, which is a list re-stating another file's population —
|
|
99
|
+
* exactly the shape `invariant-call-site-enumeration.md` warns about. It is tolerable ONLY because it
|
|
100
|
+
* feeds a log line rather than a decision: a stale entry here misinforms an operator, it does not
|
|
101
|
+
* change a ceiling. Keep it in step when a site is added, and prefer deleting it over letting it rot.
|
|
102
|
+
*/
|
|
103
|
+
export const RELAXED_ABUSE_THROTTLE_SITES = [
|
|
104
|
+
'HTTP perimeter limiter',
|
|
105
|
+
'WebSocket per-event limiter',
|
|
106
|
+
'machine-credential failure guard',
|
|
107
|
+
'external-turn throttle (A2A / MCP)',
|
|
108
|
+
'authorization-denial audit sampler',
|
|
109
|
+
'webhook endpoint-test cap',
|
|
110
|
+
'rate-limit policy service',
|
|
111
|
+
];
|
|
112
|
+
/**
|
|
113
|
+
* Describe the relaxation in force, for an unmissable line at startup (#499).
|
|
114
|
+
*
|
|
115
|
+
* The relaxation is keyed on the resolved environment and nothing else — a deliberate decision, so
|
|
116
|
+
* there is one source of truth for "what kind of host is this" rather than a second flag that can
|
|
117
|
+
* disagree with it. The residual risk is that a host which merely REPORTS development (a demonstration
|
|
118
|
+
* box, a staging-like environment mis-declared) runs with maxima multiplied by a thousand. That risk is
|
|
119
|
+
* accepted, and this function is the whole of what makes it visible instead of silent.
|
|
120
|
+
*
|
|
121
|
+
* Returns `null` in `STAGING` / `PRODUCTION`, so a caller logs nothing where nothing is relaxed.
|
|
122
|
+
*/
|
|
123
|
+
export function describeAbuseThrottleRelaxation(applicationEnv) {
|
|
124
|
+
const multiplier = resolveRateLimitEnvironmentMultiplier(applicationEnv);
|
|
125
|
+
return multiplier === 1
|
|
126
|
+
? null
|
|
127
|
+
: { applicationEnv, multiplier, relaxedSites: RELAXED_ABUSE_THROTTLE_SITES };
|
|
128
|
+
}
|
|
89
129
|
//# sourceMappingURL=rate-limit-environment-relaxation.backend.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-environment-relaxation.backend.utils.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"rate-limit-environment-relaxation.backend.utils.js","sourceRoot":"","sources":["../../../../src/errors/utils/rate-limit-environment-relaxation.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,qCAAqC,CAAC,cAAkC;IACtF,OAAO,cAAc,KAAK,kBAAkB,CAAC,WAAW,IAAI,cAAc,KAAK,kBAAkB,CAAC,IAAI;QACpG,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mCAAmC,CAAC,WAAmB,EAAE,cAAkC;IACzG,OAAO,WAAW,GAAG,qCAAqC,CAAC,cAAc,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAsB;IAC7D,wBAAwB;IACxB,6BAA6B;IAC7B,kCAAkC;IAClC,oCAAoC;IACpC,oCAAoC;IACpC,2BAA2B;IAC3B,2BAA2B;CAC5B,CAAC;AASF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAC7C,cAAkC;IAElC,MAAM,UAAU,GAAG,qCAAqC,CAAC,cAAc,CAAC,CAAC;IACzE,OAAO,UAAU,KAAK,CAAC;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,4BAA4B,EAAE,CAAC;AACjF,CAAC","sourcesContent":["/**\n * Non-production relaxation of ABUSE-THROTTLE maxima — the single seam.\n *\n * ## Why this module exists\n *\n * Every rate-limit maximum in the engine is authored for a PRODUCTION threat model\n * (credential stuffing, registration spam, enumeration, LLM-spend abuse, unmetered\n * egress). Applied unchanged, those same numbers turn ordinary local development and\n * automated e2e/integration runs — which legitimately fire the same endpoint from the\n * same IP, the same email and the same principal dozens of times in seconds — into a\n * 429 flood.\n *\n * The relaxation used to live as a private constant inside\n * `RateLimitBackendService`, so it reached only that service's three surfaces\n * (`checkRateLimit`, `checkPolicy`, `checkPolicyForVariant`). Five other enforcement\n * sites carry their own hard-coded maxima and never saw it. The one that hurt most in\n * practice was the machine-credential failure guard\n * (`assertMachineAuthAttemptWithinRate`, 50 failures / 600 s / source IP): on a dev\n * machine every process shares `127.0.0.1`, so fifty failed `sk_*` / `oc_*`\n * presentations from ANY source lock out every machine-credential path for ten\n * minutes — including the ones a developer is actively debugging.\n *\n * This module is that single seam. Import it at every abuse-throttle site rather than\n * re-deriving an environment branch locally; a second copy of the branch is how the\n * first one drifted (see `.claude/rules/invariant-call-site-enumeration.md`).\n *\n * ## What it deliberately does NOT do\n *\n * - **It does not bypass enforcement.** The counters still increment through the real\n * Redis `INCR` + `EXPIRE` path, so a genuine regression (windows not incrementing,\n * keys colliding, TTL never set) still reproduces locally. Only the ceiling moves.\n * - **It does not touch `STAGING` / `PRODUCTION`.** {@link resolveRateLimitEnvironmentMultiplier}\n * returns `1` for every environment other than `DEVELOPMENT` and `TEST`, so the\n * authored number IS the enforced number wherever the threat model is real.\n * - **It must not be applied to business-semantic counters.** A counter whose maximum\n * is a product or tenant policy — SSO grace logins (`enforcement.graceLoginAttempts`),\n * trial quotas, plan entitlements — is not an abuse throttle. Multiplying it would\n * change observable product behavior in dev/test and make local runs disagree with\n * production semantics, which is the opposite of what this exists for. The same goes\n * for counters used as audit/log DE-DUPLICATION windows (the authorization-denial\n * audit sampler, the SAML assertion warning de-dup): relaxing those produces an\n * audit/log flood, not headroom.\n *\n * @see `.claude/rules/invariant-call-site-enumeration.md` — the per-site enumeration\n * discipline that produced this module.\n */\n\nimport { RuntimeEnvironment } from '@wildo-ai/saas-models';\n\n/**\n * Factor applied to an abuse-throttle maximum in `DEVELOPMENT` / `TEST`.\n *\n * Large on purpose. The goal is that no honest local or automated run can reach a\n * ceiling, while the counter itself still exercises the real enforcement path. A\n * smaller factor (10×, 100×) merely moves the flood later into a long e2e suite,\n * which is the worst of both worlds: still flaky, still hard to attribute.\n */\nexport const NON_PRODUCTION_RATE_LIMIT_MULTIPLIER = 1000;\n\n/**\n * `NON_PRODUCTION_RATE_LIMIT_MULTIPLIER` in `DEVELOPMENT` / `TEST`, `1` everywhere\n * else. The single branch point for the relaxation.\n *\n * @param applicationEnv - the resolved runtime environment, normally\n * `AppConfigurationService.applicationEnv`.\n */\nexport function resolveRateLimitEnvironmentMultiplier(applicationEnv: RuntimeEnvironment): number {\n return applicationEnv === RuntimeEnvironment.DEVELOPMENT || applicationEnv === RuntimeEnvironment.TEST\n ? NON_PRODUCTION_RATE_LIMIT_MULTIPLIER\n : 1;\n}\n\n/**\n * Scale one abuse-throttle maximum for the current environment. The canonical call\n * shape at an enforcement site:\n *\n * ```ts\n * const effectiveMax = relaxAbuseThrottleMaxForEnvironment(MACHINE_AUTH_FAILURE_MAX, applicationEnv);\n * if (failureCount >= effectiveMax) { … }\n * ```\n *\n * Compare the LIVE count against the returned value — never scale the count itself,\n * and never scale the window length. Shortening the window in dev would make a local\n * run stop reproducing the production timing behavior; raising the ceiling does not.\n *\n * @param authoredMax - the production-authored maximum for the window.\n * @param applicationEnv - the resolved runtime environment.\n * @returns `authoredMax` in `STAGING` / `PRODUCTION`; the relaxed ceiling otherwise.\n */\nexport function relaxAbuseThrottleMaxForEnvironment(authoredMax: number, applicationEnv: RuntimeEnvironment): number {\n return authoredMax * resolveRateLimitEnvironmentMultiplier(applicationEnv);\n}\n\n/**\n * Every abuse throttle this relaxation reaches, named so the boot announcement can list them (#499).\n *\n * A line saying \"abuse limits relaxed\" would be accurate and still misleading: an operator would\n * reasonably read it as ALL of them, and it is not — a counter whose maximum is a product or tenant\n * policy is deliberately untouched, as is any counter used as an audit de-duplication window (see the\n * module header). Naming the reached set is what makes the announcement actionable rather than\n * atmospheric.\n *\n * Maintained by hand against the import sites, which is a list re-stating another file's population —\n * exactly the shape `invariant-call-site-enumeration.md` warns about. It is tolerable ONLY because it\n * feeds a log line rather than a decision: a stale entry here misinforms an operator, it does not\n * change a ceiling. Keep it in step when a site is added, and prefer deleting it over letting it rot.\n */\nexport const RELAXED_ABUSE_THROTTLE_SITES: readonly string[] = [\n 'HTTP perimeter limiter',\n 'WebSocket per-event limiter',\n 'machine-credential failure guard',\n 'external-turn throttle (A2A / MCP)',\n 'authorization-denial audit sampler',\n 'webhook endpoint-test cap',\n 'rate-limit policy service',\n];\n\n/** What a boot announcement should say, or `null` when the environment relaxes nothing. */\nexport interface AbuseThrottleRelaxationAnnouncement {\n readonly applicationEnv: RuntimeEnvironment;\n readonly multiplier: number;\n readonly relaxedSites: readonly string[];\n}\n\n/**\n * Describe the relaxation in force, for an unmissable line at startup (#499).\n *\n * The relaxation is keyed on the resolved environment and nothing else — a deliberate decision, so\n * there is one source of truth for \"what kind of host is this\" rather than a second flag that can\n * disagree with it. The residual risk is that a host which merely REPORTS development (a demonstration\n * box, a staging-like environment mis-declared) runs with maxima multiplied by a thousand. That risk is\n * accepted, and this function is the whole of what makes it visible instead of silent.\n *\n * Returns `null` in `STAGING` / `PRODUCTION`, so a caller logs nothing where nothing is relaxed.\n */\nexport function describeAbuseThrottleRelaxation(\n applicationEnv: RuntimeEnvironment,\n): AbuseThrottleRelaxationAnnouncement | null {\n const multiplier = resolveRateLimitEnvironmentMultiplier(applicationEnv);\n return multiplier === 1\n ? null\n : { applicationEnv, multiplier, relaxedSites: RELAXED_ABUSE_THROTTLE_SITES };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-pipeline-scheduled-run.batch.backend.service.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-pipeline-scheduled-run.batch.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,iCAAiC,EAAE,MAAM,4FAA4F,CAAC;AAa/I,QAAA,MAAM,4CAA4C;;;;;;;;;iBAWhD,CAAC;AAEH,MAAM,MAAM,sCAAsC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4CAA4C,CAAC,CAAC;AAElH,wBAAgB,2CAA2C,IAAI,UAAU,CAAC,OAAO,iCAAiC,CAAC,CAyDlH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-admin.backend.contracts.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-admin.backend.contracts.d.ts","sourceRoot":"","sources":["../../../../src/external-data/controllers/external-data-admin.backend.contracts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mHAAmH;AACnH;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAG,0BAAmC,CAAC;AAEnF,2FAA2F;AAC3F,eAAO,MAAM,kCAAkC,EAAG,gBAAyB,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,sCAAsC,EAAG,+BAAwC,CAAC;AAE/F,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B;IACxC,oFAAoF;;IAEpF;;;;;;;OAOG;;CAEK,CAAC;AAEX,MAAM,MAAM,kCAAkC,GAC5C,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAC;AACrF,gEAAgE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-admin.backend.controller.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-admin.backend.controller.d.ts","sourceRoot":"","sources":["../../../../src/external-data/controllers/external-data-admin.backend.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,kBAAkB,CAAC;AAO1B,OAAO,EAAE,gCAAgC,EAAE,MAAM,0FAA0F,CAAC;AAC5I,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AACvG,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAE7F,OAAO,EAAE,qCAAqC,EAAE,MAAM,+EAA+E,CAAC;AACtI,OAAO,EAAE,yCAAyC,EAAE,MAAM,qGAAqG,CAAC;AAKhK,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,6EAA6E,CAAC;AAczI,qBACa,kCAAmC,SAAQ,gCAAgC;IAMpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAErC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBARL,MAAM,EAAE,aAAa,EACR,YAAY,EAAE,0BAA0B,EACxC,YAAY,EAAE,mBAAmB,EAEhE,kBAAkB,EAAE,qCAAqC,EAEzD,oBAAoB,EAAE,yCAAyC,EAE/D,uBAAuB,EAAE,qCAAqC;IAKjF,gFAAgF;IACzE,sBAAsB,IAAI,MAAM;IAIvC,SAAS,CAAC,WAAW,IAAI,IAAI;IAgB7B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;;;;;OAMG;YACW,mBAAmB;IAmCjC,wEAAwE;YAC1D,iBAAiB;CA6BhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-extraction-source.backend.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-extraction-source.backend.d.ts","sourceRoot":"","sources":["../../../src/external-data/external-data-extraction-source.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAGL,KAAK,+BAA+B,EACrC,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAC5G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6FAA6F,CAAC;AAKrI,kGAAkG;AAClG,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC9F;;;;;;;;OAQG;IACH,qBAAqB,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7C;AAED,uFAAuF;AACvF,qBAAa,mCAAoC,YAAW,4BAA4B;IAKpF,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IANnC,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAGpC,WAAW,EAAE,+BAA+B,EAC5C,UAAU,EAAE,iBAAiB,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC;IAS7C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAe1G;;;;;;;OAOG;IACU,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YASzC,gBAAgB;YAwBhB,eAAe;CA+B9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-models.exports.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-models.exports.d.ts","sourceRoot":"","sources":["../../../src/external-data/external-data-models.exports.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,uDAAuD,CAAC;AACtE,cAAc,mCAAmC,CAAC"}
|
|
@@ -55,6 +55,7 @@ import type { ResourcesRegistryBackendService } from '../resources/services/reso
|
|
|
55
55
|
import type { ErrorBuilderBackendService } from '../errors/services/error-builder.backend.service';
|
|
56
56
|
import type { LoggerService } from '../monitoring/logger/services/logger.service';
|
|
57
57
|
import type { HttpApiAuditLogsResolver } from '../base-classes/services/repositories/http-api/http-api-resource-repository.backend.service';
|
|
58
|
+
import { type AuditObservationLossMetricsRecorder } from '../monitoring/observability/audit-observation-emission.backend';
|
|
58
59
|
import { type ExternalDataExtractionSource } from './external-data-extraction-source.backend';
|
|
59
60
|
export interface ExternalDataPipelineRunInput {
|
|
60
61
|
/** The DESTINATION resource type declaring the `externalDataPipeline`. */
|
|
@@ -109,6 +110,30 @@ export declare class ExternalDataPipelineRunBackendService {
|
|
|
109
110
|
private readonly auditLogsResolver?;
|
|
110
111
|
/** Test seam — production leaves it unset and gets the HTTP source over the shared client. */
|
|
111
112
|
private readonly extractionSourceFactory?;
|
|
113
|
+
/**
|
|
114
|
+
* The PRODUCTION door to the read-through audit sink — and it had to be added, because the
|
|
115
|
+
* `@unmanaged()` thunk above cannot be one.
|
|
116
|
+
*
|
|
117
|
+
* `@unmanaged()` tells Inversify not to resolve a parameter, and this class is bound with
|
|
118
|
+
* `.to(...)`, so the container constructs it and passes `undefined` there. That made the seam a
|
|
119
|
+
* TEST-ONLY door: every scheduled ETL run in production reached `recordRunReadThroughAccess`,
|
|
120
|
+
* found no resolver, and emitted nothing. The sink itself exists
|
|
121
|
+
* (`AuditLogsBackendService.logHttpApiReadThroughAccess`), so nothing was refusing — the row was
|
|
122
|
+
* simply never written, silently, which is exactly the shape the loss counter now makes visible.
|
|
123
|
+
*
|
|
124
|
+
* Two suppliers, and they cannot collide: `@unmanaged()` is structurally unfillable by the
|
|
125
|
+
* container, so the thunk is only ever set by a test constructing this class with `new`, and it
|
|
126
|
+
* takes precedence there so a suite can substitute a double. `@optional()` here for the usual
|
|
127
|
+
* reason — a minimal container binds no audit service and an ETL run must still run.
|
|
128
|
+
*
|
|
129
|
+
* assurance-control: WILDO.AUDIT.ATTRIBUTION — an ETL run's external read is recorded.
|
|
130
|
+
*/
|
|
131
|
+
private readonly auditLogsService?;
|
|
132
|
+
/**
|
|
133
|
+
* The loss counter behind that emission. Appended LAST and `@optional()`, so a container with no
|
|
134
|
+
* metrics binding degrades a dropped attribution row to the log channel rather than to nothing.
|
|
135
|
+
*/
|
|
136
|
+
private readonly metricsService?;
|
|
112
137
|
private readonly inFlight;
|
|
113
138
|
private readonly logDebug;
|
|
114
139
|
constructor(logger: LoggerService, errorBuilder: ErrorBuilderBackendService, repositoriesRegistry: RepositoriesRegistryHandlerBackendService, resourcesRegistry: ResourcesRegistryBackendService, syncEngine: SyncSeedEngineBackendService, upgradeEngine: UpgradeSeedEngineBackendService, executionContextCreator: ExecutionContextCreatorBackendService,
|
|
@@ -125,7 +150,31 @@ export declare class ExternalDataPipelineRunBackendService {
|
|
|
125
150
|
*/
|
|
126
151
|
auditLogsResolver?: HttpApiAuditLogsResolver,
|
|
127
152
|
/** Test seam — production leaves it unset and gets the HTTP source over the shared client. */
|
|
128
|
-
extractionSourceFactory?: ExternalDataExtractionSourceFactory
|
|
153
|
+
extractionSourceFactory?: ExternalDataExtractionSourceFactory,
|
|
154
|
+
/**
|
|
155
|
+
* The PRODUCTION door to the read-through audit sink — and it had to be added, because the
|
|
156
|
+
* `@unmanaged()` thunk above cannot be one.
|
|
157
|
+
*
|
|
158
|
+
* `@unmanaged()` tells Inversify not to resolve a parameter, and this class is bound with
|
|
159
|
+
* `.to(...)`, so the container constructs it and passes `undefined` there. That made the seam a
|
|
160
|
+
* TEST-ONLY door: every scheduled ETL run in production reached `recordRunReadThroughAccess`,
|
|
161
|
+
* found no resolver, and emitted nothing. The sink itself exists
|
|
162
|
+
* (`AuditLogsBackendService.logHttpApiReadThroughAccess`), so nothing was refusing — the row was
|
|
163
|
+
* simply never written, silently, which is exactly the shape the loss counter now makes visible.
|
|
164
|
+
*
|
|
165
|
+
* Two suppliers, and they cannot collide: `@unmanaged()` is structurally unfillable by the
|
|
166
|
+
* container, so the thunk is only ever set by a test constructing this class with `new`, and it
|
|
167
|
+
* takes precedence there so a suite can substitute a double. `@optional()` here for the usual
|
|
168
|
+
* reason — a minimal container binds no audit service and an ETL run must still run.
|
|
169
|
+
*
|
|
170
|
+
* assurance-control: WILDO.AUDIT.ATTRIBUTION — an ETL run's external read is recorded.
|
|
171
|
+
*/
|
|
172
|
+
auditLogsService?: NonNullable<ReturnType<HttpApiAuditLogsResolver>>,
|
|
173
|
+
/**
|
|
174
|
+
* The loss counter behind that emission. Appended LAST and `@optional()`, so a container with no
|
|
175
|
+
* metrics binding degrades a dropped attribution row to the log channel rather than to nothing.
|
|
176
|
+
*/
|
|
177
|
+
metricsService?: AuditObservationLossMetricsRecorder);
|
|
129
178
|
/** The on-demand door (PR-12). The scheduled batch calls this per due pipeline. */
|
|
130
179
|
runPipeline(input: ExternalDataPipelineRunInput): Promise<ExternalDataPipelineRunReport>;
|
|
131
180
|
/** Every registered resource that declares an `externalDataPipeline` — the scheduled batch's population. */
|
|
@@ -156,7 +205,15 @@ export declare class ExternalDataPipelineRunBackendService {
|
|
|
156
205
|
private buildHttpExtractionSource;
|
|
157
206
|
private resolveApplicationScopeAnchor;
|
|
158
207
|
private logRejections;
|
|
159
|
-
/**
|
|
208
|
+
/**
|
|
209
|
+
* PR-10 — one audit row per run, fire-and-forget through the shared seam.
|
|
210
|
+
*
|
|
211
|
+
* The emission goes through {@link emitAuditObservation}, so a run whose attribution row never
|
|
212
|
+
* reached the pipeline lands on `audit_observation_dropped_total` instead of nowhere. The feature
|
|
213
|
+
* detection decides an ARGUMENT rather than an early return: handing the seam `undefined` is how
|
|
214
|
+
* this site reports `SERVICE_UNAVAILABLE`, and returning early would restore the silence that let
|
|
215
|
+
* this seam sit unwired in production without anything saying so.
|
|
216
|
+
*/
|
|
160
217
|
private recordRunReadThroughAccess;
|
|
161
218
|
}
|
|
162
219
|
//# sourceMappingURL=external-data-pipeline-run.backend.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-pipeline-run.backend.service.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-pipeline-run.backend.service.d.ts","sourceRoot":"","sources":["../../../src/external-data/external-data-pipeline-run.backend.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,7 @@ import { SAAS_SERVICE_TYPES } from '../inject/models/service-types.js';
|
|
|
63
63
|
import { BackendResourceType } from '../resources/models/resources-types.backend.schemas.js';
|
|
64
64
|
import { HttpApiReadClient } from '../base-classes/services/repositories/http-api/http-api-read-client.backend.js';
|
|
65
65
|
import { ExternalProvidersHttpApiAccessResolver } from '../base-classes/services/repositories/http-api/http-api-provider-access.backend.js';
|
|
66
|
+
import { AuditObservationKind, emitAuditObservation, } from '../monitoring/observability/audit-observation-emission.backend.js';
|
|
66
67
|
import { HttpApiExternalDataExtractionSource } from './external-data-extraction-source.backend.js';
|
|
67
68
|
/*
|
|
68
69
|
* entrypoint-closure-waiver: `etl-transform.backend` is published only by `./external-data-models` (one
|
|
@@ -85,9 +86,11 @@ let ExternalDataPipelineRunBackendService = class ExternalDataPipelineRunBackend
|
|
|
85
86
|
externalProvidersRegistry;
|
|
86
87
|
auditLogsResolver;
|
|
87
88
|
extractionSourceFactory;
|
|
89
|
+
auditLogsService;
|
|
90
|
+
metricsService;
|
|
88
91
|
inFlight = new Set();
|
|
89
92
|
logDebug;
|
|
90
|
-
constructor(logger, errorBuilder, repositoriesRegistry, resourcesRegistry, syncEngine, upgradeEngine, executionContextCreator, externalProvidersRegistry, auditLogsResolver, extractionSourceFactory) {
|
|
93
|
+
constructor(logger, errorBuilder, repositoriesRegistry, resourcesRegistry, syncEngine, upgradeEngine, executionContextCreator, externalProvidersRegistry, auditLogsResolver, extractionSourceFactory, auditLogsService, metricsService) {
|
|
91
94
|
this.logger = logger;
|
|
92
95
|
this.errorBuilder = errorBuilder;
|
|
93
96
|
this.repositoriesRegistry = repositoriesRegistry;
|
|
@@ -98,6 +101,8 @@ let ExternalDataPipelineRunBackendService = class ExternalDataPipelineRunBackend
|
|
|
98
101
|
this.externalProvidersRegistry = externalProvidersRegistry;
|
|
99
102
|
this.auditLogsResolver = auditLogsResolver;
|
|
100
103
|
this.extractionSourceFactory = extractionSourceFactory;
|
|
104
|
+
this.auditLogsService = auditLogsService;
|
|
105
|
+
this.metricsService = metricsService;
|
|
101
106
|
this.logDebug = this.logger.debugByType('ExternalDataPipelineRun');
|
|
102
107
|
this.logger.setDebugTypeLogging('ExternalDataPipelineRun', false);
|
|
103
108
|
}
|
|
@@ -306,26 +311,52 @@ let ExternalDataPipelineRunBackendService = class ExternalDataPipelineRunBackend
|
|
|
306
311
|
truncated: rejections.length > MAX_LOGGED_REJECTIONS,
|
|
307
312
|
});
|
|
308
313
|
}
|
|
309
|
-
/**
|
|
314
|
+
/**
|
|
315
|
+
* PR-10 — one audit row per run, fire-and-forget through the shared seam.
|
|
316
|
+
*
|
|
317
|
+
* The emission goes through {@link emitAuditObservation}, so a run whose attribution row never
|
|
318
|
+
* reached the pipeline lands on `audit_observation_dropped_total` instead of nowhere. The feature
|
|
319
|
+
* detection decides an ARGUMENT rather than an early return: handing the seam `undefined` is how
|
|
320
|
+
* this site reports `SERVICE_UNAVAILABLE`, and returning early would restore the silence that let
|
|
321
|
+
* this seam sit unwired in production without anything saying so.
|
|
322
|
+
*/
|
|
310
323
|
recordRunReadThroughAccess(executionContext, resourceType, declaration, counts) {
|
|
324
|
+
let emit;
|
|
311
325
|
try {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
326
|
+
// The test thunk first, the injected production service second — see the constructor.
|
|
327
|
+
const auditLogsService = this.auditLogsResolver?.() ?? this.auditLogsService;
|
|
328
|
+
const sink = auditLogsService?.logHttpApiReadThroughAccess;
|
|
329
|
+
if (typeof sink === 'function') {
|
|
330
|
+
emit = () => sink.call(auditLogsService, {
|
|
331
|
+
resourceType,
|
|
332
|
+
operationIdentifier: 'externalDataPipelineRun',
|
|
333
|
+
providerRef: declaration.binding.providerRef,
|
|
334
|
+
remoteEntityRef: declaration.binding.entityRef,
|
|
335
|
+
dialect: declaration.binding.dialect,
|
|
336
|
+
rowCount: counts.extractedRows,
|
|
337
|
+
rejectedRows: counts.rejectedRows,
|
|
338
|
+
completedPass: counts.completedPass,
|
|
339
|
+
}, executionContext);
|
|
340
|
+
}
|
|
325
341
|
}
|
|
326
342
|
catch {
|
|
327
|
-
//
|
|
343
|
+
// A thunk that throws leaves `emit` undefined, so the observation is reported as UNAVAILABLE
|
|
344
|
+
// rather than swallowed. Observation only — never the reason a run fails.
|
|
328
345
|
}
|
|
346
|
+
emitAuditObservation({
|
|
347
|
+
observation: AuditObservationKind.HTTP_API_READ_THROUGH_ACCESS,
|
|
348
|
+
emit,
|
|
349
|
+
metricsService: this.metricsService,
|
|
350
|
+
logger: this.logger,
|
|
351
|
+
// Enough to name WHICH run went unrecorded, and how much it moved — the counts are what
|
|
352
|
+
// separate a run that read nothing from one that read a tenant's whole remote table.
|
|
353
|
+
context: {
|
|
354
|
+
observedResourceType: resourceType,
|
|
355
|
+
observedProviderRef: declaration.binding.providerRef,
|
|
356
|
+
observedRemoteEntityRef: declaration.binding.entityRef,
|
|
357
|
+
observedRowCount: counts.extractedRows,
|
|
358
|
+
},
|
|
359
|
+
});
|
|
329
360
|
}
|
|
330
361
|
};
|
|
331
362
|
ExternalDataPipelineRunBackendService = __decorate([
|
|
@@ -341,7 +372,11 @@ ExternalDataPipelineRunBackendService = __decorate([
|
|
|
341
372
|
__param(7, optional()),
|
|
342
373
|
__param(8, unmanaged()),
|
|
343
374
|
__param(9, unmanaged()),
|
|
344
|
-
|
|
375
|
+
__param(10, inject(SAAS_SERVICE_TYPES.AuditLogsService)),
|
|
376
|
+
__param(10, optional()),
|
|
377
|
+
__param(11, inject(SAAS_SERVICE_TYPES.MetricsService)),
|
|
378
|
+
__param(11, optional()),
|
|
379
|
+
__metadata("design:paramtypes", [Function, Function, Function, Function, Function, Function, Function, Object, Function, Function, Object, Object])
|
|
345
380
|
], ExternalDataPipelineRunBackendService);
|
|
346
381
|
export { ExternalDataPipelineRunBackendService };
|
|
347
382
|
//# sourceMappingURL=external-data-pipeline-run.backend.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-pipeline-run.backend.service.js","sourceRoot":"","sources":["../../../../src/external-data/external-data-pipeline-run.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The ETL pipeline RUN service (partial-resource paper v3.1, PR-5/PR-6/PR-9/PR-10/PR-12) — the\n * orchestrator that turns a declared `externalDataPipeline` into destination rows: E (extraction source over\n * the shared read client) → T (pure transform) → L (the data-seeding engines' imperative doors).\n *\n * ## The one decision that carries the paper's ⚠ traps: MODE SELECTION (PR-6)\n *\n * A run that COMPLETES a pass over the remote population loads through `runSyncSeed` — the full\n * reconcile INCLUDING the Stage-4 orphan walk (a destination row whose remote sibling vanished is\n * handled per the declared `orphanPolicy`). A run that stops mid-pass (`maxRowsPerRun` reached)\n * loads through `runUpgradeSeed` — the SAME reconcile loop with NO orphan stage, because \"absent\n * from a partial extraction\" is not evidence of remote deletion. A partial run orphans NOTHING;\n * the persisted cursor lets the next run continue the pass where this one stopped.\n *\n * ## Change detection (PR-30)\n *\n * The assembled seed pins `version: 1` forever and declares\n * `reconcileStrategy: CONTENT` — a pipeline's change signal is the REMOTE VALUE, not a version\n * bump. Managed-field content comparison decides write-vs-skip per row, so an unchanged remote\n * population costs zero destination writes (and zero RAG re-ingestions) per pass.\n *\n * ## Ledger split (PR-9)\n *\n * Per-entry load outcome lives on the `DataSeedRun` ledger row every run writes through the\n * engines (one row per pipeline — `seedKey` + constant version, recovered and reset each run).\n * The `ExternalDataPipelineState` row carries what data-seeding cannot know: the extraction CURSOR\n * (surviving restarts, so populations larger than one run's budget eventually sync end to end)\n * and the ETL-side last-run summary (extracted/rejected happen BEFORE the seed engine sees\n * anything). Transform rejections are logged per row (bounded) and counted on the summary; the\n * rejected rows' previous destination versions simply survive.\n *\n * ## Attribution (PR-10)\n *\n * ONE read-through audit row per run through the same lazily-resolved seam as the virtual\n * repository (`logHttpApiReadThroughAccess`), carrying the run outcome counts — a pipeline run\n * is bulk read-through access to an external system and lands in the same audit lane.\n *\n * ## Concurrency\n *\n * Single-flight per pipeline is IN-PROCESS (a second `runPipeline` for the same resource while\n * one is in flight answers `already-running`). A cross-instance double run is deliberately not\n * locked out: every load is an idempotent business-key MERGE and extraction pages are\n * drift-safe, so the second run wastes work but corrupts nothing — the same posture as\n * concurrent seed passes.\n */\n\nimport { inject, injectable, optional, unmanaged } from 'inversify';\nimport {\n CoreResourceOperation,\n ErrorCustomMessageReference,\n ErrorType,\n type ResourceType,\n} from '@wildo-ai/saas-models';\nimport {\n ExternalDataDestinationPopulation,\n ExternalDataOrphanPolicy,\n type ExternalDataPipelineDeclaration,\n} from '@wildo-ai/saas-models/external-data';\n\nimport {\n DataSeedMode,\n DataSeedReconcileStrategy,\n DataSeedScopeKind,\n DataSeedSyncOrphanPolicy,\n DataSeedTriggerKind,\n DataSeedTriggerOrigin,\n type DataSeedDefinition,\n type DataSeedStaticEntry,\n} from '~wildo-backend-lib/data-seeding/models/data-seed.shared.schemas';\nimport { DataSeedRunStatus } from '~wildo-backend-lib/data-seeding/models/data-seed-run.shared.schemas';\nimport type { DataSeedScopeAnchor } from '~wildo-backend-lib/data-seeding/services/shared/data-seed-scope-anchor.shared.types';\nimport type { SyncSeedEngineBackendService } from '~wildo-backend-lib/data-seeding/services/engines/sync-seed-engine.backend.service';\nimport type { UpgradeSeedEngineBackendService } from '~wildo-backend-lib/data-seeding/services/engines/upgrade-seed-engine.backend.service';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { BackendResourceType } from '~wildo-backend-lib/resources/models/resources-types.backend.schemas';\nimport type { ExternalDataPipelineState } from '~wildo-backend-lib/external-data/models/external-data-pipeline-state.backend.schemas';\nimport { HttpApiReadClient } from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-read-client.backend';\nimport { ExternalProvidersHttpApiAccessResolver } from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-provider-access.backend';\nimport type { HttpApiAuditLogsResolver } from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service';\nimport { HttpApiExternalDataExtractionSource, type ExternalDataExtractionSource } from './external-data-extraction-source.backend';\n/*\n * entrypoint-closure-waiver: `etl-transform.backend` is published only by `./external-data-models` (one\n * door per room), and nothing nominal crosses into this root-exported module's public surface —\n * `ExternalDataTransformedRow`/`ExternalDataRowRejection` are structural interfaces and `ExternalDataPipelineRunReport`\n * names none of them nominally. Probed 2026-08-28 after the barrel split:\n * `tsc -p tsconfig.build.json --noEmit` with declaration emit — zero TS2742/TS2883/TS7056.\n */\nimport { transformExternalDataPage, type ExternalDataRowRejection } from './external-data-transform.backend';\n\n/** How many per-row rejection reasons are LOGGED per run — the count is always exact. */\nconst MAX_LOGGED_REJECTIONS = 25;\n\nexport interface ExternalDataPipelineRunInput {\n /** The DESTINATION resource type declaring the `externalDataPipeline`. */\n resourceType: string;\n /** `ADMIN_MANUAL` for the on-demand door, `SCHEDULED_RERUN` for the cron batch (PR-12). */\n triggerOrigin: DataSeedTriggerOrigin.ADMIN_MANUAL | DataSeedTriggerOrigin.SCHEDULED_RERUN;\n triggeredByUserId: string | null;\n}\n\nexport interface ExternalDataPipelineRunReport {\n outcome: 'completed-pass' | 'partial-pass' | 'already-running';\n extractedRows: number;\n rejectedRows: number;\n /**\n * Declared entries HANDED TO the seed engine (extracted − rejected) — what was submitted, never\n * what was written. Named `submittedEntries` rather than `loadedEntries` because the old name\n * read as a write count and was believed as one: a run reporting `loadedEntries: 2` had in fact\n * written one row and failed the other. `loadStatus` is the field that answers what landed.\n */\n submittedEntries: number;\n /**\n * The seed engine's verdict on the LOAD — `PARTIAL`/`FAILED` means go read `seedRunId`. Distinct\n * from `outcome`, which reports only whether the EXTRACTION pass completed.\n */\n loadStatus: DataSeedRunStatus | null;\n /** `_id` of the `DataSeedRun` ledger row (per-entry outcome detail); null when none ran. */\n seedRunId: string | null;\n /** The persisted continuation — non-null exactly for `partial-pass`. */\n cursor: string | null;\n durationMs: number;\n}\n\n/** Test seam: build the extraction source for one run (production default: the HTTP source). */\nexport type ExternalDataExtractionSourceFactory = (\n declaration: ExternalDataPipelineDeclaration,\n internalContext: ExecutionContext<any>,\n) => ExternalDataExtractionSource;\n\n@injectable()\nexport class ExternalDataPipelineRunBackendService {\n private readonly inFlight = new Set<string>();\n private readonly logDebug: (message: string, data?: unknown) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService) private readonly repositoriesRegistry: RepositoriesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.ResourceRegistryService) private readonly resourcesRegistry: ResourcesRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.SyncSeedEngine) private readonly syncEngine: SyncSeedEngineBackendService,\n @inject(SAAS_SERVICE_TYPES.UpgradeSeedEngine) private readonly upgradeEngine: UpgradeSeedEngineBackendService,\n @inject(SAAS_SERVICE_TYPES.ExecutionContextCreatorBackendService) private readonly executionContextCreator: ExecutionContextCreatorBackendService,\n /**\n * Resolves provider credentials for the extraction client. `@optional()` so a container\n * without external-connector bindings still constructs the service — a run then fails with\n * the resolver's own actionable error, never at boot.\n */\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService) @optional() private readonly externalProvidersRegistry?: unknown,\n /**\n * The read-through audit seam (PR-10) — same structural, lazily-resolved contract as the\n * virtual repository's: absent binding means no emission, and emission failure never fails\n * the run it observes.\n */\n /*\n * `@unmanaged()`, because this class IS container-constructed and the two seams below are not the\n * container's to resolve. The contract was copied from `HttpApiResourceRepositoryBackendService`,\n * where an undecorated optional parameter is fine — that class carries no `@injectable()` and is\n * built with `new`. Under `@injectable()` the same shape is a boot failure: Inversify validates\n * EVERY constructor parameter, so an undecorated one aborts container setup with\n * \"unexpected missing metadata\" long before any ETL code runs.\n */\n @unmanaged() private readonly auditLogsResolver?: HttpApiAuditLogsResolver,\n /** Test seam — production leaves it unset and gets the HTTP source over the shared client. */\n @unmanaged() private readonly extractionSourceFactory?: ExternalDataExtractionSourceFactory,\n ) {\n this.logDebug = this.logger.debugByType('ExternalDataPipelineRun');\n this.logger.setDebugTypeLogging('ExternalDataPipelineRun', false);\n }\n\n /** The on-demand door (PR-12). The scheduled batch calls this per due pipeline. */\n public async runPipeline(input: ExternalDataPipelineRunInput): Promise<ExternalDataPipelineRunReport> {\n if (this.inFlight.has(input.resourceType)) {\n return {\n outcome: 'already-running', extractedRows: 0, rejectedRows: 0,\n submittedEntries: 0, loadStatus: null, seedRunId: null, cursor: null, durationMs: 0,\n };\n }\n this.inFlight.add(input.resourceType);\n try {\n return await this.executeRun(input);\n } finally {\n this.inFlight.delete(input.resourceType);\n }\n }\n\n /** Every registered resource that declares an `externalDataPipeline` — the scheduled batch's population. */\n public listDeclaredPipelines(): Array<{ resourceType: string; declaration: ExternalDataPipelineDeclaration }> {\n return (this.resourcesRegistry.getResourceTypes() as string[])\n .flatMap((resourceType) => {\n const configuration = this.resourcesRegistry.getResourceConfiguration(resourceType as ResourceType) as\n | { externalDataPipeline?: ExternalDataPipelineDeclaration }\n | undefined;\n return configuration?.externalDataPipeline ? [{ resourceType, declaration: configuration.externalDataPipeline }] : [];\n });\n }\n\n private async executeRun(input: ExternalDataPipelineRunInput): Promise<ExternalDataPipelineRunReport> {\n const startedAtMs = Date.now();\n const { resourceType, triggerOrigin, triggeredByUserId } = input;\n\n const configuration = this.resourcesRegistry.getResourceConfiguration(resourceType as ResourceType) as {\n externalDataPipeline?: ExternalDataPipelineDeclaration;\n };\n const declaration = configuration?.externalDataPipeline;\n if (!declaration) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.RESOURCES_REGISTRY_INITIALIZATION_FAILED,\n context: { reason: 'etl_pipeline_without_declaration', resourceType },\n });\n }\n\n const internalContext = await this.executionContextCreator.createForInternalSystemOperation();\n const stateContext = await this.executionContextCreator.createForInternalRepositoryOperation({\n resourceType: BackendResourceType.EXTERNAL_DATA_PIPELINE_STATE,\n operationIdentifier: CoreResourceOperation.CREATE,\n });\n const stateRepo = this.repositoriesRegistry.getRepositoryOrThrow(\n BackendResourceType.EXTERNAL_DATA_PIPELINE_STATE as unknown as ResourceType,\n stateContext,\n );\n\n let state = await stateRepo.read<ExternalDataPipelineState>(stateContext, { pipelineResourceType: resourceType });\n if (!state) {\n state = (await stateRepo.create(stateContext, {\n pipelineResourceType: resourceType,\n cursor: null,\n passStartedAt: null,\n lastRunAt: null,\n lastRunSummary: null,\n } as never)) as unknown as ExternalDataPipelineState;\n }\n const resumingCursor = state.cursor ?? undefined;\n const passStartedAt = resumingCursor === undefined ? new Date() : (state.passStartedAt ?? new Date());\n\n // ── E: bounded page walk from the persisted cursor ──────────────────────────\n const source = (this.extractionSourceFactory ?? this.buildHttpExtractionSource.bind(this))(declaration, internalContext);\n // PR-21 — WARN-only drift probe, once per run, before extraction. A probe failure is\n // swallowed: drift detection must never be the reason a run fails.\n try {\n for (const warning of (await source.describeContractDrift?.()) ?? []) {\n this.logger.warn(`ExternalDataPipelineRun[${resourceType}]: schema drift — ${warning}`);\n }\n } catch {\n // Diagnostic only.\n }\n const extractedRows: Array<Record<string, unknown>> = [];\n let cursor = resumingCursor;\n let passComplete = false;\n while (extractedRows.length < declaration.maxRowsPerRun) {\n const page = await source.extractPage(cursor, Math.min(declaration.maxRowsPerRun - extractedRows.length, 1_000));\n extractedRows.push(...page.rows);\n cursor = page.nextCursor;\n if (page.complete) {\n passComplete = true;\n break;\n }\n }\n\n // ── T: pure transform; per-row rejections reported, never fatal ─────────────\n const { rows, rejections } = transformExternalDataPage(declaration, extractedRows);\n this.logRejections(resourceType, rejections);\n const entries: DataSeedStaticEntry[] = rows.map((row) => ({\n businessKey: { [declaration.remoteKeyLocalField]: row.businessKeyValue },\n data: row.data,\n }));\n\n // ── L: mode selection is THE PR-6 guard — a partial run orphans NOTHING ─────\n const seed = this.assembleSeedDefinition(resourceType, declaration, passComplete);\n const scope = await this.resolveApplicationScopeAnchor(internalContext);\n const engineInput = {\n seed,\n trigger: { triggerKind: DataSeedTriggerKind.ON_SCHEDULED_REFRESH as const },\n triggerOrigin,\n scope,\n entries,\n triggeredByUserId,\n rowMetadataSource: `external-data:${resourceType}`,\n internalContext,\n };\n const seedReport = passComplete\n ? await this.syncEngine.runSyncSeed(engineInput)\n : await this.upgradeEngine.runUpgradeSeed(engineInput);\n\n // ── Persist the state row: the cursor IS the pass continuation ──────────────\n const durationMs = Date.now() - startedAtMs;\n const seedRunId = seedReport.runId ?? null;\n // The LOAD verdict, carried separately from `outcome` (which is about the EXTRACTION pass).\n // Both are reported: a full pass that failed to write part of what it read is neither a clean\n // success nor a partial pass, and collapsing them would hide exactly that case.\n const loadStatus = seedReport.status ?? null;\n await stateRepo.update(stateContext, state._id, {\n cursor: passComplete ? null : (cursor ?? null),\n passStartedAt: passComplete ? null : passStartedAt,\n lastRunAt: new Date(startedAtMs),\n lastRunSummary: {\n completedPass: passComplete,\n extractedRows: extractedRows.length,\n rejectedRows: rejections.length,\n loadStatus,\n seedRunId,\n durationMs,\n },\n } as never);\n\n this.recordRunReadThroughAccess(internalContext, resourceType, declaration, {\n extractedRows: extractedRows.length,\n rejectedRows: rejections.length,\n completedPass: passComplete,\n });\n\n return {\n outcome: passComplete ? 'completed-pass' : 'partial-pass',\n extractedRows: extractedRows.length,\n rejectedRows: rejections.length,\n submittedEntries: entries.length,\n loadStatus,\n seedRunId,\n cursor: passComplete ? null : (cursor ?? null),\n durationMs,\n };\n }\n\n /**\n * The assembled seed is EPHEMERAL (never registered): `version` is pinned at 1 forever and\n * `reconcileStrategy: CONTENT` carries change detection (PR-30) — bumping the version per run\n * would route every row through the migrator path and rewrite the whole corpus each pass.\n */\n private assembleSeedDefinition(\n resourceType: string,\n declaration: ExternalDataPipelineDeclaration,\n passComplete: boolean,\n ): DataSeedDefinition {\n const managedFields = [\n declaration.remoteKeyLocalField,\n ...declaration.mapping.map((entry) => entry.localField),\n ];\n return {\n seedKey: `external-data:${resourceType}`,\n scope: { kind: DataSeedScopeKind.APPLICATION },\n resourceType,\n triggers: [{ triggerKind: DataSeedTriggerKind.ON_SCHEDULED_REFRESH }],\n mode: passComplete ? DataSeedMode.SYNC : DataSeedMode.UPGRADE,\n version: 1,\n managedFields,\n reconcileStrategy: DataSeedReconcileStrategy.CONTENT,\n ...(passComplete ? { onOrphan: this.mapOrphanPolicy(this.effectiveOrphanPolicy(declaration)) } : {}),\n } as DataSeedDefinition;\n }\n\n /**\n * The seam between the two closed vocabularies (never merged by value overlap — the ETL\n * declaration must not depend on data-seeding's enum, and each member's semantics are owned\n * where it is declared).\n */\n private mapOrphanPolicy(orphanPolicy: ExternalDataOrphanPolicy): DataSeedSyncOrphanPolicy {\n switch (orphanPolicy) {\n case ExternalDataOrphanPolicy.DELETE:\n return DataSeedSyncOrphanPolicy.DELETE;\n case ExternalDataOrphanPolicy.DEPRECATE:\n return DataSeedSyncOrphanPolicy.DEPRECATE;\n case ExternalDataOrphanPolicy.REPORT:\n return DataSeedSyncOrphanPolicy.REPORT;\n }\n }\n\n /**\n * ⚠ OPEN-population caveat, named where it is decided: the SYNC orphan walk considers every\n * row of the destination, including caller-minted rows on an OPEN population. Those rows have\n * no `__seed` metadata and a business key outside the declared set, so DELETE/DEPRECATE would\n * hit them. Slice 1 therefore downgrades OPEN populations' orphan handling to REPORT.\n */\n private effectiveOrphanPolicy(declaration: ExternalDataPipelineDeclaration): ExternalDataOrphanPolicy {\n return declaration.population === ExternalDataDestinationPopulation.OPEN ? ExternalDataOrphanPolicy.REPORT : declaration.orphanPolicy;\n }\n\n private buildHttpExtractionSource(\n declaration: ExternalDataPipelineDeclaration,\n internalContext: ExecutionContext<any>,\n ): ExternalDataExtractionSource {\n const readClient = new HttpApiReadClient(\n declaration.binding,\n new ExternalProvidersHttpApiAccessResolver(this.externalProvidersRegistry as never),\n );\n return new HttpApiExternalDataExtractionSource(declaration, readClient, internalContext);\n }\n\n private async resolveApplicationScopeAnchor(internalContext: ExecutionContext<any>): Promise<DataSeedScopeAnchor> {\n const appRepo = this.repositoriesRegistry.getRepositoryOrThrow('applications' as ResourceType, internalContext);\n const application = (await appRepo.read<{ _id: string }>(internalContext, {})) ?? null;\n if (!application) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, internalContext, {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: { message: 'ExternalDataPipelineRun: no APPLICATION row exists — bootstrap order violation.' },\n });\n }\n return { scopeKind: DataSeedScopeKind.APPLICATION, relatedId: application._id, relatedResourceType: null };\n }\n\n private logRejections(resourceType: string, rejections: ExternalDataRowRejection[]): void {\n if (rejections.length === 0) return;\n this.logger.warn(`ExternalDataPipelineRun[${resourceType}]: ${rejections.length} row(s) rejected by transform (previous versions survive).`, {\n rejections: rejections.slice(0, MAX_LOGGED_REJECTIONS),\n truncated: rejections.length > MAX_LOGGED_REJECTIONS,\n });\n }\n\n /** PR-10 — one audit row per run, fire-and-forget through the shared seam. */\n private recordRunReadThroughAccess(\n executionContext: ExecutionContext<any>,\n resourceType: string,\n declaration: ExternalDataPipelineDeclaration,\n counts: { extractedRows: number; rejectedRows: number; completedPass: boolean },\n ): void {\n try {\n const auditLogsService = this.auditLogsResolver?.();\n if (typeof auditLogsService?.logHttpApiReadThroughAccess !== 'function') return;\n void auditLogsService.logHttpApiReadThroughAccess({\n resourceType,\n operationIdentifier: 'externalDataPipelineRun',\n providerRef: declaration.binding.providerRef,\n remoteEntityRef: declaration.binding.entityRef,\n dialect: declaration.binding.dialect,\n rowCount: counts.extractedRows,\n rejectedRows: counts.rejectedRows,\n completedPass: counts.completedPass,\n }, executionContext)?.catch?.(() => undefined);\n } catch {\n // Observation only — never the reason a run fails.\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"external-data-pipeline-run.backend.service.js","sourceRoot":"","sources":["../../../src/external-data/external-data-pipeline-run.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The ETL pipeline RUN service (partial-resource paper v3.1, PR-5/PR-6/PR-9/PR-10/PR-12) — the\n * orchestrator that turns a declared `externalDataPipeline` into destination rows: E (extraction source over\n * the shared read client) → T (pure transform) → L (the data-seeding engines' imperative doors).\n *\n * ## The one decision that carries the paper's ⚠ traps: MODE SELECTION (PR-6)\n *\n * A run that COMPLETES a pass over the remote population loads through `runSyncSeed` — the full\n * reconcile INCLUDING the Stage-4 orphan walk (a destination row whose remote sibling vanished is\n * handled per the declared `orphanPolicy`). A run that stops mid-pass (`maxRowsPerRun` reached)\n * loads through `runUpgradeSeed` — the SAME reconcile loop with NO orphan stage, because \"absent\n * from a partial extraction\" is not evidence of remote deletion. A partial run orphans NOTHING;\n * the persisted cursor lets the next run continue the pass where this one stopped.\n *\n * ## Change detection (PR-30)\n *\n * The assembled seed pins `version: 1` forever and declares\n * `reconcileStrategy: CONTENT` — a pipeline's change signal is the REMOTE VALUE, not a version\n * bump. Managed-field content comparison decides write-vs-skip per row, so an unchanged remote\n * population costs zero destination writes (and zero RAG re-ingestions) per pass.\n *\n * ## Ledger split (PR-9)\n *\n * Per-entry load outcome lives on the `DataSeedRun` ledger row every run writes through the\n * engines (one row per pipeline — `seedKey` + constant version, recovered and reset each run).\n * The `ExternalDataPipelineState` row carries what data-seeding cannot know: the extraction CURSOR\n * (surviving restarts, so populations larger than one run's budget eventually sync end to end)\n * and the ETL-side last-run summary (extracted/rejected happen BEFORE the seed engine sees\n * anything). Transform rejections are logged per row (bounded) and counted on the summary; the\n * rejected rows' previous destination versions simply survive.\n *\n * ## Attribution (PR-10)\n *\n * ONE read-through audit row per run through the same lazily-resolved seam as the virtual\n * repository (`logHttpApiReadThroughAccess`), carrying the run outcome counts — a pipeline run\n * is bulk read-through access to an external system and lands in the same audit lane.\n *\n * ## Concurrency\n *\n * Single-flight per pipeline is IN-PROCESS (a second `runPipeline` for the same resource while\n * one is in flight answers `already-running`). A cross-instance double run is deliberately not\n * locked out: every load is an idempotent business-key MERGE and extraction pages are\n * drift-safe, so the second run wastes work but corrupts nothing — the same posture as\n * concurrent seed passes.\n */\n\nimport { inject, injectable, optional, unmanaged } from 'inversify';\nimport {\n CoreResourceOperation,\n ErrorCustomMessageReference,\n ErrorType,\n type ResourceType,\n} from '@wildo-ai/saas-models';\nimport {\n ExternalDataDestinationPopulation,\n ExternalDataOrphanPolicy,\n type ExternalDataPipelineDeclaration,\n} from '@wildo-ai/saas-models/external-data';\n\nimport {\n DataSeedMode,\n DataSeedReconcileStrategy,\n DataSeedScopeKind,\n DataSeedSyncOrphanPolicy,\n DataSeedTriggerKind,\n DataSeedTriggerOrigin,\n type DataSeedDefinition,\n type DataSeedStaticEntry,\n} from '~wildo-backend-lib/data-seeding/models/data-seed.shared.schemas';\nimport { DataSeedRunStatus } from '~wildo-backend-lib/data-seeding/models/data-seed-run.shared.schemas';\nimport type { DataSeedScopeAnchor } from '~wildo-backend-lib/data-seeding/services/shared/data-seed-scope-anchor.shared.types';\nimport type { SyncSeedEngineBackendService } from '~wildo-backend-lib/data-seeding/services/engines/sync-seed-engine.backend.service';\nimport type { UpgradeSeedEngineBackendService } from '~wildo-backend-lib/data-seeding/services/engines/upgrade-seed-engine.backend.service';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { BackendResourceType } from '~wildo-backend-lib/resources/models/resources-types.backend.schemas';\nimport type { ExternalDataPipelineState } from '~wildo-backend-lib/external-data/models/external-data-pipeline-state.backend.schemas';\nimport { HttpApiReadClient } from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-read-client.backend';\nimport { ExternalProvidersHttpApiAccessResolver } from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-provider-access.backend';\nimport type { HttpApiAuditLogsResolver } from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service';\nimport {\n AuditObservationKind,\n type AuditObservationLossMetricsRecorder,\n emitAuditObservation,\n} from '~wildo-backend-lib/monitoring/observability/audit-observation-emission.backend';\nimport { HttpApiExternalDataExtractionSource, type ExternalDataExtractionSource } from './external-data-extraction-source.backend';\n/*\n * entrypoint-closure-waiver: `etl-transform.backend` is published only by `./external-data-models` (one\n * door per room), and nothing nominal crosses into this root-exported module's public surface —\n * `ExternalDataTransformedRow`/`ExternalDataRowRejection` are structural interfaces and `ExternalDataPipelineRunReport`\n * names none of them nominally. Probed 2026-08-28 after the barrel split:\n * `tsc -p tsconfig.build.json --noEmit` with declaration emit — zero TS2742/TS2883/TS7056.\n */\nimport { transformExternalDataPage, type ExternalDataRowRejection } from './external-data-transform.backend';\n\n/** How many per-row rejection reasons are LOGGED per run — the count is always exact. */\nconst MAX_LOGGED_REJECTIONS = 25;\n\nexport interface ExternalDataPipelineRunInput {\n /** The DESTINATION resource type declaring the `externalDataPipeline`. */\n resourceType: string;\n /** `ADMIN_MANUAL` for the on-demand door, `SCHEDULED_RERUN` for the cron batch (PR-12). */\n triggerOrigin: DataSeedTriggerOrigin.ADMIN_MANUAL | DataSeedTriggerOrigin.SCHEDULED_RERUN;\n triggeredByUserId: string | null;\n}\n\nexport interface ExternalDataPipelineRunReport {\n outcome: 'completed-pass' | 'partial-pass' | 'already-running';\n extractedRows: number;\n rejectedRows: number;\n /**\n * Declared entries HANDED TO the seed engine (extracted − rejected) — what was submitted, never\n * what was written. Named `submittedEntries` rather than `loadedEntries` because the old name\n * read as a write count and was believed as one: a run reporting `loadedEntries: 2` had in fact\n * written one row and failed the other. `loadStatus` is the field that answers what landed.\n */\n submittedEntries: number;\n /**\n * The seed engine's verdict on the LOAD — `PARTIAL`/`FAILED` means go read `seedRunId`. Distinct\n * from `outcome`, which reports only whether the EXTRACTION pass completed.\n */\n loadStatus: DataSeedRunStatus | null;\n /** `_id` of the `DataSeedRun` ledger row (per-entry outcome detail); null when none ran. */\n seedRunId: string | null;\n /** The persisted continuation — non-null exactly for `partial-pass`. */\n cursor: string | null;\n durationMs: number;\n}\n\n/** Test seam: build the extraction source for one run (production default: the HTTP source). */\nexport type ExternalDataExtractionSourceFactory = (\n declaration: ExternalDataPipelineDeclaration,\n internalContext: ExecutionContext<any>,\n) => ExternalDataExtractionSource;\n\n@injectable()\nexport class ExternalDataPipelineRunBackendService {\n private readonly inFlight = new Set<string>();\n private readonly logDebug: (message: string, data?: unknown) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService) private readonly repositoriesRegistry: RepositoriesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.ResourceRegistryService) private readonly resourcesRegistry: ResourcesRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.SyncSeedEngine) private readonly syncEngine: SyncSeedEngineBackendService,\n @inject(SAAS_SERVICE_TYPES.UpgradeSeedEngine) private readonly upgradeEngine: UpgradeSeedEngineBackendService,\n @inject(SAAS_SERVICE_TYPES.ExecutionContextCreatorBackendService) private readonly executionContextCreator: ExecutionContextCreatorBackendService,\n /**\n * Resolves provider credentials for the extraction client. `@optional()` so a container\n * without external-connector bindings still constructs the service — a run then fails with\n * the resolver's own actionable error, never at boot.\n */\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService) @optional() private readonly externalProvidersRegistry?: unknown,\n /**\n * The read-through audit seam (PR-10) — same structural, lazily-resolved contract as the\n * virtual repository's: absent binding means no emission, and emission failure never fails\n * the run it observes.\n */\n /*\n * `@unmanaged()`, because this class IS container-constructed and the two seams below are not the\n * container's to resolve. The contract was copied from `HttpApiResourceRepositoryBackendService`,\n * where an undecorated optional parameter is fine — that class carries no `@injectable()` and is\n * built with `new`. Under `@injectable()` the same shape is a boot failure: Inversify validates\n * EVERY constructor parameter, so an undecorated one aborts container setup with\n * \"unexpected missing metadata\" long before any ETL code runs.\n */\n @unmanaged() private readonly auditLogsResolver?: HttpApiAuditLogsResolver,\n /** Test seam — production leaves it unset and gets the HTTP source over the shared client. */\n @unmanaged() private readonly extractionSourceFactory?: ExternalDataExtractionSourceFactory,\n /**\n * The PRODUCTION door to the read-through audit sink — and it had to be added, because the\n * `@unmanaged()` thunk above cannot be one.\n *\n * `@unmanaged()` tells Inversify not to resolve a parameter, and this class is bound with\n * `.to(...)`, so the container constructs it and passes `undefined` there. That made the seam a\n * TEST-ONLY door: every scheduled ETL run in production reached `recordRunReadThroughAccess`,\n * found no resolver, and emitted nothing. The sink itself exists\n * (`AuditLogsBackendService.logHttpApiReadThroughAccess`), so nothing was refusing — the row was\n * simply never written, silently, which is exactly the shape the loss counter now makes visible.\n *\n * Two suppliers, and they cannot collide: `@unmanaged()` is structurally unfillable by the\n * container, so the thunk is only ever set by a test constructing this class with `new`, and it\n * takes precedence there so a suite can substitute a double. `@optional()` here for the usual\n * reason — a minimal container binds no audit service and an ETL run must still run.\n *\n * assurance-control: WILDO.AUDIT.ATTRIBUTION — an ETL run's external read is recorded.\n */\n @inject(SAAS_SERVICE_TYPES.AuditLogsService) @optional()\n private readonly auditLogsService?: NonNullable<ReturnType<HttpApiAuditLogsResolver>>,\n /**\n * The loss counter behind that emission. Appended LAST and `@optional()`, so a container with no\n * metrics binding degrades a dropped attribution row to the log channel rather than to nothing.\n */\n @inject(SAAS_SERVICE_TYPES.MetricsService) @optional()\n private readonly metricsService?: AuditObservationLossMetricsRecorder,\n ) {\n this.logDebug = this.logger.debugByType('ExternalDataPipelineRun');\n this.logger.setDebugTypeLogging('ExternalDataPipelineRun', false);\n }\n\n /** The on-demand door (PR-12). The scheduled batch calls this per due pipeline. */\n public async runPipeline(input: ExternalDataPipelineRunInput): Promise<ExternalDataPipelineRunReport> {\n if (this.inFlight.has(input.resourceType)) {\n return {\n outcome: 'already-running', extractedRows: 0, rejectedRows: 0,\n submittedEntries: 0, loadStatus: null, seedRunId: null, cursor: null, durationMs: 0,\n };\n }\n this.inFlight.add(input.resourceType);\n try {\n return await this.executeRun(input);\n } finally {\n this.inFlight.delete(input.resourceType);\n }\n }\n\n /** Every registered resource that declares an `externalDataPipeline` — the scheduled batch's population. */\n public listDeclaredPipelines(): Array<{ resourceType: string; declaration: ExternalDataPipelineDeclaration }> {\n return (this.resourcesRegistry.getResourceTypes() as string[])\n .flatMap((resourceType) => {\n const configuration = this.resourcesRegistry.getResourceConfiguration(resourceType as ResourceType) as\n | { externalDataPipeline?: ExternalDataPipelineDeclaration }\n | undefined;\n return configuration?.externalDataPipeline ? [{ resourceType, declaration: configuration.externalDataPipeline }] : [];\n });\n }\n\n private async executeRun(input: ExternalDataPipelineRunInput): Promise<ExternalDataPipelineRunReport> {\n const startedAtMs = Date.now();\n const { resourceType, triggerOrigin, triggeredByUserId } = input;\n\n const configuration = this.resourcesRegistry.getResourceConfiguration(resourceType as ResourceType) as {\n externalDataPipeline?: ExternalDataPipelineDeclaration;\n };\n const declaration = configuration?.externalDataPipeline;\n if (!declaration) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.RESOURCES_REGISTRY_INITIALIZATION_FAILED,\n context: { reason: 'etl_pipeline_without_declaration', resourceType },\n });\n }\n\n const internalContext = await this.executionContextCreator.createForInternalSystemOperation();\n const stateContext = await this.executionContextCreator.createForInternalRepositoryOperation({\n resourceType: BackendResourceType.EXTERNAL_DATA_PIPELINE_STATE,\n operationIdentifier: CoreResourceOperation.CREATE,\n });\n const stateRepo = this.repositoriesRegistry.getRepositoryOrThrow(\n BackendResourceType.EXTERNAL_DATA_PIPELINE_STATE as unknown as ResourceType,\n stateContext,\n );\n\n let state = await stateRepo.read<ExternalDataPipelineState>(stateContext, { pipelineResourceType: resourceType });\n if (!state) {\n state = (await stateRepo.create(stateContext, {\n pipelineResourceType: resourceType,\n cursor: null,\n passStartedAt: null,\n lastRunAt: null,\n lastRunSummary: null,\n } as never)) as unknown as ExternalDataPipelineState;\n }\n const resumingCursor = state.cursor ?? undefined;\n const passStartedAt = resumingCursor === undefined ? new Date() : (state.passStartedAt ?? new Date());\n\n // ── E: bounded page walk from the persisted cursor ──────────────────────────\n const source = (this.extractionSourceFactory ?? this.buildHttpExtractionSource.bind(this))(declaration, internalContext);\n // PR-21 — WARN-only drift probe, once per run, before extraction. A probe failure is\n // swallowed: drift detection must never be the reason a run fails.\n try {\n for (const warning of (await source.describeContractDrift?.()) ?? []) {\n this.logger.warn(`ExternalDataPipelineRun[${resourceType}]: schema drift — ${warning}`);\n }\n } catch {\n // Diagnostic only.\n }\n const extractedRows: Array<Record<string, unknown>> = [];\n let cursor = resumingCursor;\n let passComplete = false;\n while (extractedRows.length < declaration.maxRowsPerRun) {\n const page = await source.extractPage(cursor, Math.min(declaration.maxRowsPerRun - extractedRows.length, 1_000));\n extractedRows.push(...page.rows);\n cursor = page.nextCursor;\n if (page.complete) {\n passComplete = true;\n break;\n }\n }\n\n // ── T: pure transform; per-row rejections reported, never fatal ─────────────\n const { rows, rejections } = transformExternalDataPage(declaration, extractedRows);\n this.logRejections(resourceType, rejections);\n const entries: DataSeedStaticEntry[] = rows.map((row) => ({\n businessKey: { [declaration.remoteKeyLocalField]: row.businessKeyValue },\n data: row.data,\n }));\n\n // ── L: mode selection is THE PR-6 guard — a partial run orphans NOTHING ─────\n const seed = this.assembleSeedDefinition(resourceType, declaration, passComplete);\n const scope = await this.resolveApplicationScopeAnchor(internalContext);\n const engineInput = {\n seed,\n trigger: { triggerKind: DataSeedTriggerKind.ON_SCHEDULED_REFRESH as const },\n triggerOrigin,\n scope,\n entries,\n triggeredByUserId,\n rowMetadataSource: `external-data:${resourceType}`,\n internalContext,\n };\n const seedReport = passComplete\n ? await this.syncEngine.runSyncSeed(engineInput)\n : await this.upgradeEngine.runUpgradeSeed(engineInput);\n\n // ── Persist the state row: the cursor IS the pass continuation ──────────────\n const durationMs = Date.now() - startedAtMs;\n const seedRunId = seedReport.runId ?? null;\n // The LOAD verdict, carried separately from `outcome` (which is about the EXTRACTION pass).\n // Both are reported: a full pass that failed to write part of what it read is neither a clean\n // success nor a partial pass, and collapsing them would hide exactly that case.\n const loadStatus = seedReport.status ?? null;\n await stateRepo.update(stateContext, state._id, {\n cursor: passComplete ? null : (cursor ?? null),\n passStartedAt: passComplete ? null : passStartedAt,\n lastRunAt: new Date(startedAtMs),\n lastRunSummary: {\n completedPass: passComplete,\n extractedRows: extractedRows.length,\n rejectedRows: rejections.length,\n loadStatus,\n seedRunId,\n durationMs,\n },\n } as never);\n\n this.recordRunReadThroughAccess(internalContext, resourceType, declaration, {\n extractedRows: extractedRows.length,\n rejectedRows: rejections.length,\n completedPass: passComplete,\n });\n\n return {\n outcome: passComplete ? 'completed-pass' : 'partial-pass',\n extractedRows: extractedRows.length,\n rejectedRows: rejections.length,\n submittedEntries: entries.length,\n loadStatus,\n seedRunId,\n cursor: passComplete ? null : (cursor ?? null),\n durationMs,\n };\n }\n\n /**\n * The assembled seed is EPHEMERAL (never registered): `version` is pinned at 1 forever and\n * `reconcileStrategy: CONTENT` carries change detection (PR-30) — bumping the version per run\n * would route every row through the migrator path and rewrite the whole corpus each pass.\n */\n private assembleSeedDefinition(\n resourceType: string,\n declaration: ExternalDataPipelineDeclaration,\n passComplete: boolean,\n ): DataSeedDefinition {\n const managedFields = [\n declaration.remoteKeyLocalField,\n ...declaration.mapping.map((entry) => entry.localField),\n ];\n return {\n seedKey: `external-data:${resourceType}`,\n scope: { kind: DataSeedScopeKind.APPLICATION },\n resourceType,\n triggers: [{ triggerKind: DataSeedTriggerKind.ON_SCHEDULED_REFRESH }],\n mode: passComplete ? DataSeedMode.SYNC : DataSeedMode.UPGRADE,\n version: 1,\n managedFields,\n reconcileStrategy: DataSeedReconcileStrategy.CONTENT,\n ...(passComplete ? { onOrphan: this.mapOrphanPolicy(this.effectiveOrphanPolicy(declaration)) } : {}),\n } as DataSeedDefinition;\n }\n\n /**\n * The seam between the two closed vocabularies (never merged by value overlap — the ETL\n * declaration must not depend on data-seeding's enum, and each member's semantics are owned\n * where it is declared).\n */\n private mapOrphanPolicy(orphanPolicy: ExternalDataOrphanPolicy): DataSeedSyncOrphanPolicy {\n switch (orphanPolicy) {\n case ExternalDataOrphanPolicy.DELETE:\n return DataSeedSyncOrphanPolicy.DELETE;\n case ExternalDataOrphanPolicy.DEPRECATE:\n return DataSeedSyncOrphanPolicy.DEPRECATE;\n case ExternalDataOrphanPolicy.REPORT:\n return DataSeedSyncOrphanPolicy.REPORT;\n }\n }\n\n /**\n * ⚠ OPEN-population caveat, named where it is decided: the SYNC orphan walk considers every\n * row of the destination, including caller-minted rows on an OPEN population. Those rows have\n * no `__seed` metadata and a business key outside the declared set, so DELETE/DEPRECATE would\n * hit them. Slice 1 therefore downgrades OPEN populations' orphan handling to REPORT.\n */\n private effectiveOrphanPolicy(declaration: ExternalDataPipelineDeclaration): ExternalDataOrphanPolicy {\n return declaration.population === ExternalDataDestinationPopulation.OPEN ? ExternalDataOrphanPolicy.REPORT : declaration.orphanPolicy;\n }\n\n private buildHttpExtractionSource(\n declaration: ExternalDataPipelineDeclaration,\n internalContext: ExecutionContext<any>,\n ): ExternalDataExtractionSource {\n const readClient = new HttpApiReadClient(\n declaration.binding,\n new ExternalProvidersHttpApiAccessResolver(this.externalProvidersRegistry as never),\n );\n return new HttpApiExternalDataExtractionSource(declaration, readClient, internalContext);\n }\n\n private async resolveApplicationScopeAnchor(internalContext: ExecutionContext<any>): Promise<DataSeedScopeAnchor> {\n const appRepo = this.repositoriesRegistry.getRepositoryOrThrow('applications' as ResourceType, internalContext);\n const application = (await appRepo.read<{ _id: string }>(internalContext, {})) ?? null;\n if (!application) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, internalContext, {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: { message: 'ExternalDataPipelineRun: no APPLICATION row exists — bootstrap order violation.' },\n });\n }\n return { scopeKind: DataSeedScopeKind.APPLICATION, relatedId: application._id, relatedResourceType: null };\n }\n\n private logRejections(resourceType: string, rejections: ExternalDataRowRejection[]): void {\n if (rejections.length === 0) return;\n this.logger.warn(`ExternalDataPipelineRun[${resourceType}]: ${rejections.length} row(s) rejected by transform (previous versions survive).`, {\n rejections: rejections.slice(0, MAX_LOGGED_REJECTIONS),\n truncated: rejections.length > MAX_LOGGED_REJECTIONS,\n });\n }\n\n /**\n * PR-10 — one audit row per run, fire-and-forget through the shared seam.\n *\n * The emission goes through {@link emitAuditObservation}, so a run whose attribution row never\n * reached the pipeline lands on `audit_observation_dropped_total` instead of nowhere. The feature\n * detection decides an ARGUMENT rather than an early return: handing the seam `undefined` is how\n * this site reports `SERVICE_UNAVAILABLE`, and returning early would restore the silence that let\n * this seam sit unwired in production without anything saying so.\n */\n private recordRunReadThroughAccess(\n executionContext: ExecutionContext<any>,\n resourceType: string,\n declaration: ExternalDataPipelineDeclaration,\n counts: { extractedRows: number; rejectedRows: number; completedPass: boolean },\n ): void {\n let emit: (() => unknown) | undefined;\n try {\n // The test thunk first, the injected production service second — see the constructor.\n const auditLogsService = this.auditLogsResolver?.() ?? this.auditLogsService;\n const sink = auditLogsService?.logHttpApiReadThroughAccess;\n if (typeof sink === 'function') {\n emit = (): unknown => sink.call(auditLogsService, {\n resourceType,\n operationIdentifier: 'externalDataPipelineRun',\n providerRef: declaration.binding.providerRef,\n remoteEntityRef: declaration.binding.entityRef,\n dialect: declaration.binding.dialect,\n rowCount: counts.extractedRows,\n rejectedRows: counts.rejectedRows,\n completedPass: counts.completedPass,\n }, executionContext);\n }\n } catch {\n // A thunk that throws leaves `emit` undefined, so the observation is reported as UNAVAILABLE\n // rather than swallowed. Observation only — never the reason a run fails.\n }\n\n emitAuditObservation({\n observation: AuditObservationKind.HTTP_API_READ_THROUGH_ACCESS,\n emit,\n metricsService: this.metricsService,\n logger: this.logger,\n // Enough to name WHICH run went unrecorded, and how much it moved — the counts are what\n // separate a run that read nothing from one that read a tenant's whole remote table.\n context: {\n observedResourceType: resourceType,\n observedProviderRef: declaration.binding.providerRef,\n observedRemoteEntityRef: declaration.binding.entityRef,\n observedRowCount: counts.extractedRows,\n },\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-transform.backend.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-transform.backend.d.ts","sourceRoot":"","sources":["../../../src/external-data/external-data-transform.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,EAGL,KAAK,+BAA+B,EACrC,MAAM,qCAAqC,CAAC;AAE7C,2FAA2F;AAC3F,MAAM,WAAW,0BAA0B;IACzC,wFAAwF;IACxF,gBAAgB,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,wEAAwE;AACxE,MAAM,WAAW,wBAAwB;IACvC,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,0BAA0B,EAAE,CAAC;IACnC,UAAU,EAAE,wBAAwB,EAAE,CAAC;CACxC;AAED,wEAAwE;AACxE,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,+BAA+B,EAC5C,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACjD,2BAA2B,CA2C7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-data-pipeline-state.backend.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-data-pipeline-state.backend.schemas.d.ts","sourceRoot":"","sources":["../../../../src/external-data/models/external-data-pipeline-state.backend.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,qBAAqB,EAIrB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAM3F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;iBAgD1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,oBAAY,mCAAmC;IAC7C,QAAQ,aAAa;CACtB;AAED,KAAK,wCAAwC,GACzC,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,CAAC;AAWjC,eAAO,MAAM,oEAAoE,GAC/E,wBAAwB,oBAAoB,EAAE,KAC7C,qBAAqB,CAAC,SAAS,EAAE,wCAAwC,EAAE,OAAO,+BAA+B,CA0BnH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-providers.backend.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"external-providers.backend.schemas.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/models/external-providers.backend.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgC,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAEL,4BAA4B,EAM5B,2BAA2B,EAC3B,gBAAgB,EAChB,+BAA+B,EAC/B,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAM9C;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;iBAkB1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAMxF;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;iBAMxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAMpF;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;iBAgBzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAMtF;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;iBAS1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAMxF;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;iBAMlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,4CAA6C,SAAQ,4BAA4B;IAEhG,WAAW,EAAE,yBAAyB,CAAC;IAGvC,gBAAgB,EAAE,uBAAuB,CAAC;IAG1C,YAAY,EAAE,wBAAwB,CAAC;IAGvC,eAAe,EAAE,yBAAyB,CAAC;IAG3C,IAAI,EAAE,iBAAiB,CAAC;IAoBxB,UAAU,EAAE,sBAAsB,CAAC;IAGnC,YAAY,CAAC,EAAE,2BAA2B,CAAC;CAC5C;AAED;;;;GAIG;AACH,eAAO,MAAM,kDAAkD,EAAE,CAAC,CAAC,OAAO,CAAC,4CAA4C,CA+BrH,CAAC;AAMH;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,OAAO,gBAAgB,CAAC,kBAAkB,CAAC;IACtD,WAAW,EAAE,yBAAyB,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uBAAuB,EAAE,+BAA+B,CAAC;CAC1D;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,gBAAgB,CAAC,UAAU,CAAC;IAC9C,WAAW,EAAE,IAAI,CAAC,yBAAyB,EAAE,qBAAqB,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -13,9 +13,11 @@ export interface ExternalProviderSelectionResolutionEvidence {
|
|
|
13
13
|
readonly authorityKind: ExternalProviderSelectionAuthorityKind;
|
|
14
14
|
readonly overrideStatus: ExternalProviderSelectionOverrideStatus;
|
|
15
15
|
readonly applicationPrimaryProviderRef: string | null;
|
|
16
|
-
|
|
16
|
+
/** The selection's `whenUnavailable` refs — substitutes for an unavailable primary, never a failover chain. */
|
|
17
|
+
readonly applicationSubstituteProviderRefs: readonly string[];
|
|
17
18
|
readonly environmentPrimaryProviderRef: string | null;
|
|
18
|
-
|
|
19
|
+
/** The environment override's `whenUnavailable` refs. Same semantics as the application's. */
|
|
20
|
+
readonly environmentSubstituteProviderRefs: readonly string[];
|
|
19
21
|
readonly providerRuntimeArtifact: ProviderRuntimeArtifactEvidenceMetadata | null;
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=provider-selection-resolution-evidence.backend.definitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-selection-resolution-evidence.backend.definitions.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"provider-selection-resolution-evidence.backend.definitions.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/models/provider-selection-resolution-evidence.backend.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,+DAA+D,CAAC;AAE7H,oBAAY,sCAAsC;IAChD,4BAA4B,iCAAiC;IAC7D,kBAAkB,uBAAuB;IACzC,oBAAoB,yBAAyB;CAC9C;AAED,oBAAY,uCAAuC;IACjD,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,aAAa,EAAE,sCAAsC,CAAC;IAC/D,QAAQ,CAAC,cAAc,EAAE,uCAAuC,CAAC;IACjE,QAAQ,CAAC,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,+GAA+G;IAC/G,QAAQ,CAAC,iCAAiC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9D,QAAQ,CAAC,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,8FAA8F;IAC9F,QAAQ,CAAC,iCAAiC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9D,QAAQ,CAAC,uBAAuB,EAAE,uCAAuC,GAAG,IAAI,CAAC;CAClF"}
|