@wildo-ai/saas-backend-lib 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts +14 -3
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +138 -24
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +3 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +8 -3
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js +11 -2
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +48 -4
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +102 -30
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js +16 -0
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts +20 -6
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +96 -32
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts +3 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js +32 -7
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts +8 -5
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +80 -0
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +298 -23
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts +71 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +85 -5
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +21 -0
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +146 -4
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts +3 -26
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js +3 -68
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +533 -43
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
- package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +54 -13
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
- package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +263 -13
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +376 -58
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +264 -7
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +414 -5
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +16 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +140 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +65 -6
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +45 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.js +7 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +146 -46
- package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
- package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
- package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
- package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts +43 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js +52 -3
- package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts +2 -2
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js +2 -2
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js.map +1 -1
- package/dist/esm/databases/models/filter.backend.schemas.js +2 -2
- package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +20 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
- package/dist/esm/databases/services/redis.service.d.ts +27 -0
- package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/redis.service.js +29 -0
- package/dist/esm/databases/services/redis.service.js.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
- package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.js +134 -8
- package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
- package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts +41 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js +40 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts +64 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js +193 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +72 -4
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +60 -19
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.js +7 -1
- package/dist/esm/external-data/external-data-transform.backend.js.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts +2 -0
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js +13 -0
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
- package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
- package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +306 -7
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +539 -45
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
- package/dist/esm/files/controllers/file.controller.d.ts +24 -1
- package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.js +83 -11
- package/dist/esm/files/controllers/file.controller.js.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts +17 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js +1 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -0
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +5 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +76 -13
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +18 -0
- package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.js +36 -28
- package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
- package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
- package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
- package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +214 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.js +566 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -0
- package/dist/esm/files/services/files.backend.service.d.ts +87 -0
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +252 -19
- package/dist/esm/files/services/files.backend.service.js.map +1 -1
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
- package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
- package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-uploader.utils.js +12 -0
- package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +200 -44
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
- package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
- package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +107 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +519 -56
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
- package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts +151 -41
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +308 -143
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
- package/dist/esm/index.d.ts +15 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +45 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +82 -10
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +20 -3
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +21 -3
- package/dist/esm/inject/models/service-types.js.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.js +32 -4
- package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts +34 -0
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js +42 -0
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +84 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.js +235 -11
- package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts +64 -2
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +152 -6
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
- package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
- package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
- package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
- package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
- package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +108 -13
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +432 -101
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
- package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +54 -7
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts +5 -5
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js +14 -13
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts +2 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +18 -8
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +20 -18
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js +4 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
- package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.js +1 -4
- package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.js +1 -4
- package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
- package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
- package/dist/esm/queue/queue.backend.service.d.ts +3 -3
- package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue.backend.service.js +26 -4
- package/dist/esm/queue/queue.backend.service.js.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
- package/dist/esm/requests/service/websocket.service.d.ts +9 -0
- package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.js +88 -15
- package/dist/esm/requests/service/websocket.service.js.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
- package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
- package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
- package/dist/esm/resources/services/resource-id.backend.service.js +3 -3
- package/dist/esm/resources/services/resource-id.backend.service.js.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.js +91 -7
- package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
- package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
- package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/execution-context-creator.backend.service.js +13 -7
- package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
- package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts +47 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.js +343 -77
- package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts +3 -23
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.js +20 -45
- package/dist/esm/security/authentications/models/jwt.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts +9 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +77 -2
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +5 -3
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +41 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +87 -4
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js +24 -1
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts +117 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js +104 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +175 -14
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +385 -49
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +18 -1
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +110 -74
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts +22 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js +22 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js.map +1 -0
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +17 -3
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +12 -0
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +41 -3
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +83 -20
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.js +1 -18
- package/dist/esm/security/jwt/services/jwt.backend.service.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
- package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +17 -9
- package/dist/esm/.builder.pid +0 -9
package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webauthn.backend.service.js","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/auth-methods/webauthn.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { inject, injectable } from 'inversify';\nimport {\n generateRegistrationOptions,\n verifyRegistrationResponse,\n generateAuthenticationOptions,\n verifyAuthenticationResponse,\n} from '@simplewebauthn/server';\nimport type {\n PublicKeyCredentialCreationOptionsJSON,\n PublicKeyCredentialRequestOptionsJSON,\n RegistrationResponseJSON,\n AuthenticationResponseJSON,\n} from '@simplewebauthn/server';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport { UserVerification } from '~wildo-backend-lib/config/models/app-config.backend.schemas';\nimport { RedisService } from '~wildo-backend-lib/databases/services/redis.service';\nimport { AuthCredentialOpsBackendService } from '~wildo-backend-lib/security/authentications/services/utils/auth-credential-ops.backend.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport {\n UserCredentials,\n PasskeyCredentialEntry,\n ErrorType,\n ErrorCustomMessageReference,\n} from '@wildo-ai/saas-models';\n\nconst CHALLENGE_TTL_SECONDS = 300; // 5 minutes\nconst CHALLENGE_KEY_PREFIX_REG = 'webauthn_challenge:reg:';\nconst CHALLENGE_KEY_PREFIX_AUTH = 'webauthn_challenge:auth:';\n/**\n * SEPARATE from the login prefix on purpose — see {@link PasskeyAuthenticationCeremony}. Sharing one\n * key would let an assertion the user produced for LOGIN be redeemed at the step-up door.\n */\nconst CHALLENGE_KEY_PREFIX_STEP_UP = 'webauthn_challenge:stepup:';\n\n/**\n * Which ceremony a passkey assertion belongs to.\n *\n * The two differ in the QUESTION they answer, and therefore in what they must demand:\n *\n * - **LOGIN** asks \"which principal is this?\". The passkey IS the factor, so possession of the\n * authenticator is the claim, and the app's `passkeyOperational.userVerification` policy decides\n * whether a PIN/biometric is also required.\n * - **STEP_UP** asks \"is the human still here, right now, and do they intend this irreversible\n * thing?\". Possession alone cannot answer that — a resident credential on an already-unlocked\n * machine would satisfy it with no human intent — so this ceremony pins user verification to\n * REQUIRED regardless of the app policy. Under the common `preferred` setting a login assertion\n * may legitimately carry no UV, and accepting one here would make the strongest-LOOKING factor the\n * weakest door onto the operations `requiresStepUpAuthentication` guards.\n *\n * They also use SEPARATE challenge keys, which is the load-bearing half. Both challenges are\n * single-use (atomic get-and-delete), but single-use alone does not say WHICH door a signed\n * assertion may open: with a shared key, an assertion the user produced for a login could be\n * replayed to `/auth/reauth` and minted into a step-up token. Distinct keys make a login challenge\n * structurally unredeemable at the step-up door and vice versa.\n *\n * assurance-control: WILDO.IDENTITY.STEP_UP_AUTHENTICATION — a re-proof ceremony must not be\n * satisfiable by a credential presented for a different purpose.\n */\nexport enum PasskeyAuthenticationCeremony {\n LOGIN = 'login',\n STEP_UP = 'step_up',\n}\n\n/**\n * WebAuthnBackendService\n *\n * Encapsulates all WebAuthn/FIDO2 ceremony logic using @simplewebauthn/server.\n * Handles option generation, response verification, challenge management (Redis),\n * and credential CRUD on user credential documents.\n *\n * This service does NOT:\n * - Manage sessions (AuthSessionStore)\n * - Issue tokens (AuthTokenIssuer)\n * - Audit log (orchestrator/controller responsibility)\n * - Know about the authentication flow (orchestrator's job)\n */\n@injectable()\nexport class WebAuthnBackendService {\n private readonly logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly appConfigService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.RedisService) private readonly redisService: RedisService,\n @inject(SAAS_SERVICE_TYPES.AuthCredentialOpsService) private readonly credentialOps: AuthCredentialOpsBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n ) {\n this.logDebug = this.logger.debugByType('WebAuthn');\n this.logger.setDebugTypeLogging('WebAuthn', false);\n }\n\n // ─── Configuration ───────────────────────────────────────────\n\n private get rpId(): string {\n return this.appConfigService.config.auth.passkeyConfig.rpId;\n }\n\n private get rpName(): string {\n return this.appConfigService.config.auth.passkeyConfig.rpName;\n }\n\n private get passkeyOps() {\n return this.appConfigService.config.auth.passkeyOperational;\n }\n\n /**\n * Derive the expected origin(s) from the app config's runtime endpoints.\n * Returns all configured publicUrl values as valid origins.\n */\n private get expectedOrigins(): string[] {\n const endPoints = this.appConfigService.config.runtime.endPoints;\n const origins: string[] = [];\n for (const [, urls] of Object.entries(endPoints)) {\n if (urls?.publicUrl) {\n origins.push(urls.publicUrl.replace(/\\/$/, ''));\n }\n }\n if (origins.length === 0) {\n origins.push(`https://${this.rpId}`);\n }\n return origins;\n }\n\n // ─── Registration ────────────────────────────────────────────\n\n /**\n * Generate WebAuthn registration options for a user.\n * The caller is responsible for ensuring the user is authenticated.\n */\n async generateRegistrationOptions(\n ec: ExecutionContext<any>,\n userId: string,\n email: string,\n ): Promise<PublicKeyCredentialCreationOptionsJSON> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n\n const maxPasskeys = this.appConfigService.config?.auth?.passkeyConfig?.maxPasskeysPerUser ?? 10;\n if (existingCredentials.length >= maxPasskeys) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n context: { reason: `Maximum of ${maxPasskeys} passkeys reached` },\n });\n }\n\n const ops = this.passkeyOps;\n const options = await generateRegistrationOptions({\n rpName: this.rpName,\n rpID: this.rpId,\n userName: email,\n userDisplayName: email,\n userID: new TextEncoder().encode(userId),\n // Cast: @simplewebauthn narrows to 'direct'|'enterprise'|'none' but W3C\n // AttestationConveyancePreference includes 'indirect' — valid at runtime.\n attestationType: ops.attestation as 'direct' | 'enterprise' | 'none',\n timeout: ops.timeoutSeconds * 1000,\n authenticatorSelection: {\n authenticatorAttachment: ops.authenticatorAttachment === 'any' ? undefined : ops.authenticatorAttachment,\n residentKey: ops.requireResidentKey ? 'required' : 'preferred',\n userVerification: ops.userVerification,\n },\n excludeCredentials: existingCredentials.map((c) => ({\n id: c.credentialId,\n transports: c.transports as AuthenticatorTransport[],\n })),\n });\n\n await this._storeChallenge(CHALLENGE_KEY_PREFIX_REG + userId, options.challenge);\n this.logDebug('Registration options generated', { userId, excludeCount: existingCredentials.length });\n\n return options;\n }\n\n /**\n * Verify a WebAuthn registration response and store the new credential.\n * Returns the new credential entry on success.\n */\n async verifyRegistrationResponse(\n ec: ExecutionContext<any>,\n userId: string,\n response: RegistrationResponseJSON,\n credentialName?: string,\n ): Promise<PasskeyCredentialEntry> {\n const expectedChallenge = await this._getAndDeleteChallenge(CHALLENGE_KEY_PREFIX_REG + userId);\n if (!expectedChallenge) {\n throw this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.AUTHENTICATION_USER_CREDENTIALS_INVALID,\n context: { reason: 'WebAuthn registration challenge expired or not found' },\n });\n }\n\n const verification = await verifyRegistrationResponse({\n response,\n expectedChallenge,\n expectedOrigin: this.expectedOrigins,\n expectedRPID: this.rpId,\n requireUserVerification: this.passkeyOps.userVerification === 'required',\n });\n\n if (!verification.verified || !verification.registrationInfo) {\n throw this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.AUTHENTICATION_USER_CREDENTIALS_INVALID,\n context: { reason: 'WebAuthn registration verification failed' },\n });\n }\n\n const { credential, credentialDeviceType, credentialBackedUp } = verification.registrationInfo;\n\n const newCredential: PasskeyCredentialEntry = {\n credentialId: credential.id,\n publicKey: Buffer.from(credential.publicKey).toString('base64url'),\n counter: credential.counter,\n transports: (credential.transports ?? []) as string[],\n credentialDeviceType: credentialDeviceType ?? 'singleDevice',\n credentialBackedUp: credentialBackedUp ?? false,\n name: credentialName ?? 'Passkey',\n aaguid: verification.registrationInfo.aaguid,\n createdAt: new Date(),\n lastUsedAt: undefined,\n };\n\n // Append to the credential record\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const updatedCredentials = [...existingCredentials, newCredential];\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey registered', { userId, credentialId: newCredential.credentialId });\n return newCredential;\n }\n\n // ─── Authentication ──────────────────────────────────────────\n\n /**\n * Generate WebAuthn authentication options for a user.\n * Populates allowCredentials from the user's stored passkeys.\n */\n async generateAuthenticationOptions(\n ec: ExecutionContext<any>,\n userId: string,\n ceremony: PasskeyAuthenticationCeremony = PasskeyAuthenticationCeremony.LOGIN,\n ): Promise<PublicKeyCredentialRequestOptionsJSON> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n\n if (existingCredentials.length === 0) {\n throw this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.AUTHENTICATION_USER_CREDENTIALS_INVALID,\n context: { reason: 'No passkey credentials registered for this user' },\n });\n }\n\n const options = await generateAuthenticationOptions({\n rpID: this.rpId,\n userVerification: this._userVerificationFor(ceremony),\n timeout: this.passkeyOps.timeoutSeconds * 1000,\n allowCredentials: existingCredentials.map((c) => ({\n id: c.credentialId,\n transports: c.transports as AuthenticatorTransport[],\n })),\n });\n\n await this._storeChallenge(this._challengeKeyFor(ceremony, userId), options.challenge);\n this.logDebug('Authentication options generated', { userId, ceremony, credentialCount: existingCredentials.length });\n\n return options;\n }\n\n /**\n * Verify a WebAuthn authentication response.\n * Updates the credential counter and lastUsedAt on success.\n */\n async verifyAuthenticationResponse(\n ec: ExecutionContext<any>,\n userId: string,\n response: AuthenticationResponseJSON,\n ceremony: PasskeyAuthenticationCeremony = PasskeyAuthenticationCeremony.LOGIN,\n ): Promise<{ verified: boolean; credentialId: string }> {\n // Reads ONLY this ceremony's challenge, so an assertion signed for the other door finds nothing\n // to match and is refused — see `PasskeyAuthenticationCeremony`.\n const expectedChallenge = await this._getAndDeleteChallenge(this._challengeKeyFor(ceremony, userId));\n if (!expectedChallenge) {\n return { verified: false, credentialId: response.id };\n }\n\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const matchedCredential = existingCredentials.find((c) => c.credentialId === response.id);\n\n if (!matchedCredential) {\n this.logger.warn('WebAuthn authentication failed: credential not found', {\n userId,\n credentialId: response.id,\n });\n return { verified: false, credentialId: response.id };\n }\n\n const verification = await verifyAuthenticationResponse({\n response,\n expectedChallenge,\n expectedOrigin: this.expectedOrigins,\n expectedRPID: this.rpId,\n // STEP_UP pins this true even when the app policy is `preferred` — an assertion carrying no\n // user verification proves possession of the authenticator, not presence of the person.\n requireUserVerification: this._userVerificationFor(ceremony) === UserVerification.REQUIRED,\n credential: {\n id: matchedCredential.credentialId,\n publicKey: Buffer.from(matchedCredential.publicKey, 'base64url'),\n counter: matchedCredential.counter,\n transports: matchedCredential.transports as AuthenticatorTransport[],\n },\n });\n\n if (!verification.verified) {\n return { verified: false, credentialId: response.id };\n }\n\n // Counter verification (clone detection)\n const newCounter = verification.authenticationInfo.newCounter;\n if (newCounter > 0 && newCounter <= matchedCredential.counter) {\n this.logger.warn('WebAuthn counter did not increment — possible credential clone', {\n userId,\n credentialId: matchedCredential.credentialId,\n storedCounter: matchedCredential.counter,\n receivedCounter: newCounter,\n });\n }\n\n // Update counter and lastUsedAt\n const updatedCredentials = existingCredentials.map((c) =>\n c.credentialId === matchedCredential.credentialId\n ? { ...c, counter: newCounter, lastUsedAt: new Date() }\n : c,\n );\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey authentication verified', { userId, credentialId: matchedCredential.credentialId });\n return { verified: true, credentialId: matchedCredential.credentialId };\n }\n\n // ─── Credential CRUD ─────────────────────────────────────────\n\n /**\n * List all passkey credentials for a user (safe fields only — no publicKey/counter).\n */\n async getCredentials(ec: ExecutionContext<any>, userId: string): Promise<PasskeyCredentialEntry[]> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n return (cred as UserCredentials).passkeyCredentials ?? [];\n }\n\n /**\n * Remove a passkey credential by its credential ID.\n */\n async removeCredential(ec: ExecutionContext<any>, userId: string, credentialId: string): Promise<void> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const updatedCredentials = existingCredentials.filter((c) => c.credentialId !== credentialId);\n\n if (updatedCredentials.length === existingCredentials.length) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined, {\n context: { reason: 'Passkey credential not found', credentialId },\n });\n }\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey removed', { userId, credentialId });\n }\n\n /**\n * Rename a passkey credential.\n */\n async renameCredential(ec: ExecutionContext<any>, userId: string, credentialId: string, newName: string): Promise<void> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const found = existingCredentials.find((c) => c.credentialId === credentialId);\n\n if (!found) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined, {\n context: { reason: 'Passkey credential not found', credentialId },\n });\n }\n\n const updatedCredentials = existingCredentials.map((c) =>\n c.credentialId === credentialId ? { ...c, name: newName } : c,\n );\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey renamed', { userId, credentialId, newName });\n }\n\n // ─── Challenge Management (Redis) ────────────────────────────\n\n /**\n * The Redis challenge key for a ceremony. Distinct per ceremony so a challenge issued for one door\n * cannot be redeemed at the other — see {@link PasskeyAuthenticationCeremony}.\n */\n private _challengeKeyFor(ceremony: PasskeyAuthenticationCeremony, userId: string): string {\n const prefix = ceremony === PasskeyAuthenticationCeremony.STEP_UP\n ? CHALLENGE_KEY_PREFIX_STEP_UP\n : CHALLENGE_KEY_PREFIX_AUTH;\n return prefix + userId;\n }\n\n /**\n * The user-verification requirement for a ceremony.\n *\n * STEP_UP is REQUIRED unconditionally; LOGIN follows the app's `passkeyOperational` policy. The\n * override deliberately does not read the policy at all: an application that lowers it to\n * `preferred` (the common setting) is making a decision about LOGIN ergonomics, and inheriting it\n * here would silently weaken the re-proof that guards irreversible operations. Same reasoning as\n * `requiresStepUpAuthentication` refusing to inherit the per-user-type freshness policy.\n */\n private _userVerificationFor(ceremony: PasskeyAuthenticationCeremony): UserVerification {\n return ceremony === PasskeyAuthenticationCeremony.STEP_UP\n ? UserVerification.REQUIRED\n : this.passkeyOps.userVerification;\n }\n\n private async _storeChallenge(key: string, challenge: string): Promise<void> {\n await this.redisService.set(key, challenge, { ttl: CHALLENGE_TTL_SECONDS });\n }\n\n /**\n * Atomically read-and-consume a stored challenge. Delegates to\n * `RedisService.getDel`, which applies the same tenant-key scoping and\n * `JSON.parse` deserialization as the `set()` used by `_storeChallenge` —\n * keeping the store/read serialization contract symmetric. (The prior\n * hand-rolled `eval` GETDEL skipped `JSON.parse`, so the challenge came\n * back wrapped in literal quotes and every verification failed.)\n */\n private async _getAndDeleteChallenge(key: string): Promise<string | null> {\n return this.redisService.getDel<string>(key);\n }\n\n // ─── Internal Helpers ────────────────────────────────────────\n\n /**\n * Resolve the credential record for a user.\n * Returns the credential document (throws if not found).\n */\n private async _resolveCredentialRecord(\n ec: ExecutionContext<any>,\n userId: string,\n ): Promise<{\n cred: UserCredentials;\n }> {\n const cred = await this.credentialOps.readByUserId(ec, userId);\n if (!cred) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined, {\n context: { reason: 'User credentials not found', userId },\n });\n }\n return { cred };\n }\n}\n\ntype AuthenticatorTransport = 'ble' | 'cable' | 'hybrid' | 'internal' | 'nfc' | 'smart-card' | 'usb';\n"]}
|
|
1
|
+
{"version":3,"file":"webauthn.backend.service.js","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/auth-methods/webauthn.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { inject, injectable } from 'inversify';\nimport {\n generateRegistrationOptions,\n verifyRegistrationResponse,\n generateAuthenticationOptions,\n verifyAuthenticationResponse,\n} from '@simplewebauthn/server';\nimport type {\n PublicKeyCredentialCreationOptionsJSON,\n PublicKeyCredentialRequestOptionsJSON,\n RegistrationResponseJSON,\n AuthenticationResponseJSON,\n} from '@simplewebauthn/server';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport { UserVerification } from '~wildo-backend-lib/config/models/app-config.backend.schemas';\nimport { RedisService } from '~wildo-backend-lib/databases/services/redis.service';\nimport { AuthCredentialOpsBackendService } from '~wildo-backend-lib/security/authentications/services/utils/auth-credential-ops.backend.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport {\n UserCredentials,\n PasskeyCredentialEntry,\n ErrorType,\n ErrorCustomMessageReference,\n} from '@wildo-ai/saas-models';\n\nconst CHALLENGE_TTL_SECONDS = 300; // 5 minutes\nconst CHALLENGE_KEY_PREFIX_REG = 'webauthn_challenge:reg:';\nconst CHALLENGE_KEY_PREFIX_AUTH = 'webauthn_challenge:auth:';\n/**\n * SEPARATE from the login prefix on purpose — see {@link PasskeyAuthenticationCeremony}. Sharing one\n * key would let an assertion the user produced for LOGIN be redeemed at the step-up door.\n */\nconst CHALLENGE_KEY_PREFIX_STEP_UP = 'webauthn_challenge:stepup:';\n\n/**\n * Which ceremony a passkey assertion belongs to.\n *\n * The two differ in the QUESTION they answer, and therefore in what they must demand:\n *\n * - **LOGIN** asks \"which principal is this?\". The passkey IS the factor, so possession of the\n * authenticator is the claim, and the app's `passkeyOperational.userVerification` policy decides\n * whether a PIN/biometric is also required.\n * - **STEP_UP** asks \"is the human still here, right now, and do they intend this irreversible\n * thing?\". Possession alone cannot answer that — a resident credential on an already-unlocked\n * machine would satisfy it with no human intent — so this ceremony pins user verification to\n * REQUIRED regardless of the app policy. Under the common `preferred` setting a login assertion\n * may legitimately carry no UV, and accepting one here would make the strongest-LOOKING factor the\n * weakest door onto the operations `requiresStepUpAuthentication` guards.\n *\n * They also use SEPARATE challenge keys, which is the load-bearing half. Both challenges are\n * single-use (atomic get-and-delete), but single-use alone does not say WHICH door a signed\n * assertion may open: with a shared key, an assertion the user produced for a login could be\n * replayed to `/auth/reauth` and minted into a step-up token. Distinct keys make a login challenge\n * structurally unredeemable at the step-up door and vice versa.\n *\n * assurance-control: WILDO.IDENTITY.STEP_UP_AUTHENTICATION — a re-proof ceremony must not be\n * satisfiable by a credential presented for a different purpose.\n */\nexport enum PasskeyAuthenticationCeremony {\n LOGIN = 'login',\n STEP_UP = 'step_up',\n}\n\n/**\n * What a passkey assertion verification answers.\n *\n * `cloneSuspicion` is present ONLY when the assertion's signature verified and its counter did not\n * advance — the W3C cloned-authenticator signal. It is returned rather than audited here because\n * this service deliberately emits no audit rows (see the class header): the caller holds the\n * request's device information and is where the trail is written.\n */\nexport interface PasskeyAuthenticationVerificationResult {\n verified: boolean;\n credentialId: string;\n cloneSuspicion?: {\n credentialId: string;\n storedCounter: number;\n receivedCounter: number;\n credentialDeviceType: string;\n credentialBackedUp: boolean;\n aaguid?: string;\n ceremony: PasskeyAuthenticationCeremony;\n };\n}\n\n/**\n * WebAuthnBackendService\n *\n * Encapsulates all WebAuthn/FIDO2 ceremony logic using @simplewebauthn/server.\n * Handles option generation, response verification, challenge management (Redis),\n * and credential CRUD on user credential documents.\n *\n * This service does NOT:\n * - Manage sessions (AuthSessionStore)\n * - Issue tokens (AuthTokenIssuer)\n * - Audit log (orchestrator/controller responsibility)\n * - Know about the authentication flow (orchestrator's job)\n */\n@injectable()\n\nexport class WebAuthnBackendService {\n private readonly logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly appConfigService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.RedisService) private readonly redisService: RedisService,\n @inject(SAAS_SERVICE_TYPES.AuthCredentialOpsService) private readonly credentialOps: AuthCredentialOpsBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n ) {\n this.logDebug = this.logger.debugByType('WebAuthn');\n this.logger.setDebugTypeLogging('WebAuthn', false);\n }\n\n // ─── Configuration ───────────────────────────────────────────\n\n private get rpId(): string {\n return this.appConfigService.config.auth.passkeyConfig.rpId;\n }\n\n private get rpName(): string {\n return this.appConfigService.config.auth.passkeyConfig.rpName;\n }\n\n private get passkeyOps() {\n return this.appConfigService.config.auth.passkeyOperational;\n }\n\n /**\n * Derive the expected origin(s) from the app config's runtime endpoints.\n * Returns all configured publicUrl values as valid origins.\n */\n private get expectedOrigins(): string[] {\n const endPoints = this.appConfigService.config.runtime.endPoints;\n const origins: string[] = [];\n for (const [, urls] of Object.entries(endPoints)) {\n if (urls?.publicUrl) {\n origins.push(urls.publicUrl.replace(/\\/$/, ''));\n }\n }\n if (origins.length === 0) {\n origins.push(`https://${this.rpId}`);\n }\n return origins;\n }\n\n // ─── Registration ────────────────────────────────────────────\n\n /**\n * Generate WebAuthn registration options for a user.\n * The caller is responsible for ensuring the user is authenticated.\n */\n async generateRegistrationOptions(\n ec: ExecutionContext<any>,\n userId: string,\n email: string,\n ): Promise<PublicKeyCredentialCreationOptionsJSON> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n\n const maxPasskeys = this.appConfigService.config?.auth?.passkeyConfig?.maxPasskeysPerUser ?? 10;\n if (existingCredentials.length >= maxPasskeys) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n context: { reason: `Maximum of ${maxPasskeys} passkeys reached` },\n });\n }\n\n const ops = this.passkeyOps;\n const options = await generateRegistrationOptions({\n rpName: this.rpName,\n rpID: this.rpId,\n userName: email,\n userDisplayName: email,\n userID: new TextEncoder().encode(userId),\n // Cast: @simplewebauthn narrows to 'direct'|'enterprise'|'none' but W3C\n // AttestationConveyancePreference includes 'indirect' — valid at runtime.\n attestationType: ops.attestation as 'direct' | 'enterprise' | 'none',\n timeout: ops.timeoutSeconds * 1000,\n authenticatorSelection: {\n authenticatorAttachment: ops.authenticatorAttachment === 'any' ? undefined : ops.authenticatorAttachment,\n residentKey: ops.requireResidentKey ? 'required' : 'preferred',\n userVerification: ops.userVerification,\n },\n excludeCredentials: existingCredentials.map((c) => ({\n id: c.credentialId,\n transports: c.transports as AuthenticatorTransport[],\n })),\n });\n\n await this._storeChallenge(CHALLENGE_KEY_PREFIX_REG + userId, options.challenge);\n this.logDebug('Registration options generated', { userId, excludeCount: existingCredentials.length });\n\n return options;\n }\n\n /**\n * Verify a WebAuthn registration response and store the new credential.\n * Returns the new credential entry on success.\n */\n async verifyRegistrationResponse(\n ec: ExecutionContext<any>,\n userId: string,\n response: RegistrationResponseJSON,\n credentialName?: string,\n ): Promise<PasskeyCredentialEntry> {\n const expectedChallenge = await this._getAndDeleteChallenge(CHALLENGE_KEY_PREFIX_REG + userId);\n if (!expectedChallenge) {\n throw this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.AUTHENTICATION_USER_CREDENTIALS_INVALID,\n context: { reason: 'WebAuthn registration challenge expired or not found' },\n });\n }\n\n const verification = await verifyRegistrationResponse({\n response,\n expectedChallenge,\n expectedOrigin: this.expectedOrigins,\n expectedRPID: this.rpId,\n requireUserVerification: this.passkeyOps.userVerification === 'required',\n });\n\n if (!verification.verified || !verification.registrationInfo) {\n throw this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.AUTHENTICATION_USER_CREDENTIALS_INVALID,\n context: { reason: 'WebAuthn registration verification failed' },\n });\n }\n\n const { credential, credentialDeviceType, credentialBackedUp } = verification.registrationInfo;\n\n const newCredential: PasskeyCredentialEntry = {\n credentialId: credential.id,\n publicKey: Buffer.from(credential.publicKey).toString('base64url'),\n counter: credential.counter,\n transports: (credential.transports ?? []) as string[],\n credentialDeviceType: credentialDeviceType ?? 'singleDevice',\n credentialBackedUp: credentialBackedUp ?? false,\n name: credentialName ?? 'Passkey',\n aaguid: verification.registrationInfo.aaguid,\n createdAt: new Date(),\n lastUsedAt: undefined,\n };\n\n // Append to the credential record\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const updatedCredentials = [...existingCredentials, newCredential];\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey registered', { userId, credentialId: newCredential.credentialId });\n return newCredential;\n }\n\n // ─── Authentication ──────────────────────────────────────────\n\n /**\n * Generate WebAuthn authentication options for a user.\n * Populates allowCredentials from the user's stored passkeys.\n */\n async generateAuthenticationOptions(\n ec: ExecutionContext<any>,\n userId: string,\n ceremony: PasskeyAuthenticationCeremony = PasskeyAuthenticationCeremony.LOGIN,\n ): Promise<PublicKeyCredentialRequestOptionsJSON> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n\n if (existingCredentials.length === 0) {\n throw this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.AUTHENTICATION_USER_CREDENTIALS_INVALID,\n context: { reason: 'No passkey credentials registered for this user' },\n });\n }\n\n const options = await generateAuthenticationOptions({\n rpID: this.rpId,\n userVerification: this._userVerificationFor(ceremony),\n timeout: this.passkeyOps.timeoutSeconds * 1000,\n allowCredentials: existingCredentials.map((c) => ({\n id: c.credentialId,\n transports: c.transports as AuthenticatorTransport[],\n })),\n });\n\n await this._storeChallenge(this._challengeKeyFor(ceremony, userId), options.challenge);\n this.logDebug('Authentication options generated', { userId, ceremony, credentialCount: existingCredentials.length });\n\n return options;\n }\n\n /**\n * Verify a WebAuthn authentication response.\n * Updates the credential counter and lastUsedAt on success.\n */\n async verifyAuthenticationResponse(\n ec: ExecutionContext<any>,\n userId: string,\n response: AuthenticationResponseJSON,\n ceremony: PasskeyAuthenticationCeremony = PasskeyAuthenticationCeremony.LOGIN,\n ): Promise<PasskeyAuthenticationVerificationResult> {\n // Reads ONLY this ceremony's challenge, so an assertion signed for the other door finds nothing\n // to match and is refused — see `PasskeyAuthenticationCeremony`.\n const expectedChallenge = await this._getAndDeleteChallenge(this._challengeKeyFor(ceremony, userId));\n if (!expectedChallenge) {\n return { verified: false, credentialId: response.id };\n }\n\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const matchedCredential = existingCredentials.find((c) => c.credentialId === response.id);\n\n if (!matchedCredential) {\n this.logger.warn('WebAuthn authentication failed: credential not found', {\n userId,\n credentialId: response.id,\n });\n return { verified: false, credentialId: response.id };\n }\n\n const verification = await verifyAuthenticationResponse({\n response,\n expectedChallenge,\n expectedOrigin: this.expectedOrigins,\n expectedRPID: this.rpId,\n // STEP_UP pins this true even when the app policy is `preferred` — an assertion carrying no\n // user verification proves possession of the authenticator, not presence of the person.\n requireUserVerification: this._userVerificationFor(ceremony) === UserVerification.REQUIRED,\n credential: {\n id: matchedCredential.credentialId,\n publicKey: Buffer.from(matchedCredential.publicKey, 'base64url'),\n /*\n * DELIBERATELY 0, NOT the stored counter — and this line is load-bearing, so read the\n * reason before \"fixing\" it.\n *\n * `@simplewebauthn/server` evaluates its own counter guard BEFORE `verifySignature`\n * (verifyAuthenticationResponse.js:144-151 in 13.3.x, then :154). Handing it the real\n * stored value therefore refuses a counter regression on an assertion whose signature was\n * never checked — so ANY caller who knows a credential id could trigger the refusal, and\n * an alert raised there would be forgeable by an unauthenticated party.\n *\n * W3C WebAuthn L3 puts the counter comparison at §7.2 step 22, AFTER signature\n * verification at step 21, precisely because a counter regression only means something\n * when the assertion is known to come from something holding the private key. Passing 0\n * makes the library's predicate unsatisfiable — `(counter > 0 || 0 > 0) && counter <= 0`\n * is false for every input — so the library does what we want from it (verify the\n * signature) and the counter decision stays here, below, where it is ours and where it is\n * post-authentication.\n *\n * spec-cite: W3C Web Authentication Level 3 §7.2 steps 21-22\n * (https://www.w3.org/TR/webauthn-3/#sctn-verifying-assertion).\n */\n counter: 0,\n transports: matchedCredential.transports as AuthenticatorTransport[],\n },\n });\n\n if (!verification.verified) {\n return { verified: false, credentialId: response.id };\n }\n\n /*\n * CLONE DETECTION — the spec's predicate, on a signature-verified assertion.\n *\n * \"If either is non-zero, and the new signCount value is less than or equal to the stored\n * value, a cloned authenticator may exist, or the authenticator may be malfunctioning, or a\n * race condition might exist\" — W3C WebAuthn L3 §6.1.1.\n *\n * EITHER non-zero, not just the received one. The previous check here read\n * `newCounter > 0 && newCounter <= stored`, which misses the case that matters most\n * operationally: a credential that previously counted and now reports 0. It was also dead\n * code — the library threw first — and it only warned.\n *\n * A credential whose counter is permanently 0 — which every SYNCED passkey is, because a set\n * of devices cannot maintain a coherent counter — compares 0-against-0, fails the first\n * disjunct, and authenticates normally. That is the whole passkey accommodation and it is why\n * refusing here is not hostile to passkeys.\n *\n * Refusal, not step-up, and not configurable: three of the four major server implementations\n * fail closed with no switch (SimpleWebAuthn, Duo py_webauthn, ASP.NET Core Identity) and the\n * fourth (Yubico) defaults to it. Nothing authoritative recommends escalating instead.\n *\n * Returned rather than thrown so BOTH callers take their existing `!verified` branch and\n * produce the same clean AUTHENTICATION refusal — the step-up path used to wrap a library\n * throw as a generic error while login refused cleanly.\n *\n * spec-cite: W3C Web Authentication Level 3 §6.1.1\n * (https://www.w3.org/TR/webauthn-3/#sctn-sign-counter).\n */\n const newCounter = verification.authenticationInfo.newCounter;\n if ((newCounter > 0 || matchedCredential.counter > 0) && newCounter <= matchedCredential.counter) {\n this.logger.warn('WebAuthn signature counter did not advance on a verified assertion — refusing', {\n userId,\n credentialId: matchedCredential.credentialId,\n storedCounter: matchedCredential.counter,\n receivedCounter: newCounter,\n });\n // The stored counter is NOT advanced: a refused assertion must not move the baseline a later\n // legitimate assertion is compared against.\n return {\n verified: false,\n credentialId: matchedCredential.credentialId,\n cloneSuspicion: {\n credentialId: matchedCredential.credentialId,\n storedCounter: matchedCredential.counter,\n receivedCounter: newCounter,\n // Carried for TRIAGE only — nothing branches on them. A synced credential that once\n // reported a non-zero counter and then regresses is still a signal, so exempting by\n // device type would disable clone detection for the majority of credentials.\n credentialDeviceType: matchedCredential.credentialDeviceType,\n credentialBackedUp: matchedCredential.credentialBackedUp,\n ...(matchedCredential.aaguid ? { aaguid: matchedCredential.aaguid } : {}),\n ceremony,\n },\n };\n }\n\n // Update counter and lastUsedAt\n const updatedCredentials = existingCredentials.map((c) =>\n c.credentialId === matchedCredential.credentialId\n ? { ...c, counter: newCounter, lastUsedAt: new Date() }\n : c,\n );\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey authentication verified', { userId, credentialId: matchedCredential.credentialId });\n return { verified: true, credentialId: matchedCredential.credentialId };\n }\n\n // ─── Credential CRUD ─────────────────────────────────────────\n\n /**\n * List all passkey credentials for a user, as STORED.\n *\n * This returns the whole `PasskeyCredentialEntry`, `publicKey` and `counter` included. It is not a\n * safe-field projection, and must not be handed to a caller as one: the projection that reaches a\n * client is built at the controller (`handlePasskeyList`), which selects the credential id, name,\n * timestamps and device flags and nothing else. A new consumer of this method owes its own\n * projection, or it will disclose the stored credential material.\n */\n async getCredentials(ec: ExecutionContext<any>, userId: string): Promise<PasskeyCredentialEntry[]> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n return (cred as UserCredentials).passkeyCredentials ?? [];\n }\n\n /**\n * Remove a passkey credential by its credential ID.\n */\n async removeCredential(ec: ExecutionContext<any>, userId: string, credentialId: string): Promise<void> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const updatedCredentials = existingCredentials.filter((c) => c.credentialId !== credentialId);\n\n if (updatedCredentials.length === existingCredentials.length) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined, {\n context: { reason: 'Passkey credential not found', credentialId },\n });\n }\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey removed', { userId, credentialId });\n }\n\n /**\n * Rename a passkey credential.\n */\n async renameCredential(ec: ExecutionContext<any>, userId: string, credentialId: string, newName: string): Promise<void> {\n const { cred } = await this._resolveCredentialRecord(ec, userId);\n const existingCredentials = (cred as UserCredentials).passkeyCredentials ?? [];\n const found = existingCredentials.find((c) => c.credentialId === credentialId);\n\n if (!found) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined, {\n context: { reason: 'Passkey credential not found', credentialId },\n });\n }\n\n const updatedCredentials = existingCredentials.map((c) =>\n c.credentialId === credentialId ? { ...c, name: newName } : c,\n );\n\n await this.credentialOps.updateById(ec, cred._id, { passkeyCredentials: updatedCredentials } as Partial<UserCredentials>);\n\n this.logDebug('Passkey renamed', { userId, credentialId, newName });\n }\n\n // ─── Challenge Management (Redis) ────────────────────────────\n\n /**\n * The Redis challenge key for a ceremony. Distinct per ceremony so a challenge issued for one door\n * cannot be redeemed at the other — see {@link PasskeyAuthenticationCeremony}.\n */\n private _challengeKeyFor(ceremony: PasskeyAuthenticationCeremony, userId: string): string {\n const prefix = ceremony === PasskeyAuthenticationCeremony.STEP_UP\n ? CHALLENGE_KEY_PREFIX_STEP_UP\n : CHALLENGE_KEY_PREFIX_AUTH;\n return prefix + userId;\n }\n\n /**\n * The user-verification requirement for a ceremony.\n *\n * STEP_UP is REQUIRED unconditionally; LOGIN follows the app's `passkeyOperational` policy. The\n * override deliberately does not read the policy at all: an application that lowers it to\n * `preferred` (the common setting) is making a decision about LOGIN ergonomics, and inheriting it\n * here would silently weaken the re-proof that guards irreversible operations. Same reasoning as\n * `requiresStepUpAuthentication` refusing to inherit the per-user-type freshness policy.\n */\n private _userVerificationFor(ceremony: PasskeyAuthenticationCeremony): UserVerification {\n return ceremony === PasskeyAuthenticationCeremony.STEP_UP\n ? UserVerification.REQUIRED\n : this.passkeyOps.userVerification;\n }\n\n private async _storeChallenge(key: string, challenge: string): Promise<void> {\n await this.redisService.set(key, challenge, { ttl: CHALLENGE_TTL_SECONDS });\n }\n\n /**\n * Atomically read-and-consume a stored challenge. Delegates to\n * `RedisService.getDel`, which applies the same tenant-key scoping and\n * `JSON.parse` deserialization as the `set()` used by `_storeChallenge` —\n * keeping the store/read serialization contract symmetric. (The prior\n * hand-rolled `eval` GETDEL skipped `JSON.parse`, so the challenge came\n * back wrapped in literal quotes and every verification failed.)\n */\n private async _getAndDeleteChallenge(key: string): Promise<string | null> {\n return this.redisService.getDel<string>(key);\n }\n\n // ─── Internal Helpers ────────────────────────────────────────\n\n /**\n * Resolve the credential record for a user.\n * Returns the credential document (throws if not found).\n */\n private async _resolveCredentialRecord(\n ec: ExecutionContext<any>,\n userId: string,\n ): Promise<{\n cred: UserCredentials;\n }> {\n const cred = await this.credentialOps.readByUserId(ec, userId);\n if (!cred) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined, {\n context: { reason: 'User credentials not found', userId },\n });\n }\n return { cred };\n }\n}\n\ntype AuthenticatorTransport = 'ble' | 'cable' | 'hybrid' | 'internal' | 'nfc' | 'smart-card' | 'usb';\n"]}
|
|
@@ -4,9 +4,11 @@ import { AppConfigurationService } from '../../../config/services/app-configurat
|
|
|
4
4
|
import { ErrorBuilderBackendService } from '../../../errors/services/error-builder.backend.service';
|
|
5
5
|
import { RedisService } from '../../../databases/services/redis.service';
|
|
6
6
|
import { JwtBackendService } from '../../../security/jwt/services/jwt.backend.service';
|
|
7
|
+
import { AuditLogsBackendService } from '../../../compliance/audit-trails/services/audit-logs.backend.service';
|
|
7
8
|
import type { ServicesRegistryHandlerBackendService } from '../../../base-classes/services/services/services-registry-handler.backend.service';
|
|
8
9
|
import { AuthExecutionContextFactoryBackendService } from '../../../security/authentications/services/auth-execution-context-factory.backend.service';
|
|
9
10
|
import { AuthenticationSession, SessionType } from '@wildo-ai/saas-models';
|
|
11
|
+
import { type AuditObservationLossMetricsRecorder } from '../../../monitoring/observability/audit-observation-emission.backend';
|
|
10
12
|
/**
|
|
11
13
|
* Result of token issuance.
|
|
12
14
|
*/
|
|
@@ -63,8 +65,10 @@ export declare class AuthTokenIssuerBackendService {
|
|
|
63
65
|
private readonly redisService;
|
|
64
66
|
private readonly servicesRegistryHandler;
|
|
65
67
|
private readonly authEcFactory;
|
|
68
|
+
private readonly auditLogsService;
|
|
69
|
+
private readonly metricsService?;
|
|
66
70
|
private readonly logDebug;
|
|
67
|
-
constructor(logger: LoggerService, appConfigService: AppConfigurationService, jwtService: JwtBackendService, errorBuilder: ErrorBuilderBackendService, redisService: RedisService, servicesRegistryHandler: ServicesRegistryHandlerBackendService, authEcFactory: AuthExecutionContextFactoryBackendService);
|
|
71
|
+
constructor(logger: LoggerService, appConfigService: AppConfigurationService, jwtService: JwtBackendService, errorBuilder: ErrorBuilderBackendService, redisService: RedisService, servicesRegistryHandler: ServicesRegistryHandlerBackendService, authEcFactory: AuthExecutionContextFactoryBackendService, auditLogsService?: AuditLogsBackendService | null, metricsService?: AuditObservationLossMetricsRecorder);
|
|
68
72
|
/**
|
|
69
73
|
* Issue access + refresh tokens for a completed authentication session.
|
|
70
74
|
*/
|
|
@@ -154,5 +158,41 @@ export declare class AuthTokenIssuerBackendService {
|
|
|
154
158
|
* eviction arbitrary.
|
|
155
159
|
*/
|
|
156
160
|
private _trackAndEnforceSessionLimit;
|
|
161
|
+
/**
|
|
162
|
+
* Record each retired refresh chain in the audit trail.
|
|
163
|
+
*
|
|
164
|
+
* Until 2026-09-02 the only trace of an eviction was the debug line above — a security-relevant
|
|
165
|
+
* token-lifecycle act with no durable record, which is exactly what `CLAUDE.md`'s
|
|
166
|
+
* assurance-by-construction rule asks for by name. The cap exists to bound the blast radius of
|
|
167
|
+
* undetected token theft, so a burst of evictions for one principal is among the more interesting
|
|
168
|
+
* things the trail can carry, and it was not carrying it.
|
|
169
|
+
*
|
|
170
|
+
* `evictedIssuedAt` is what makes the record worth having: the cap's security property is that the
|
|
171
|
+
* OLDEST chain goes, and a record naming only the victim would prove a session ended without
|
|
172
|
+
* proving the right one did. An unreadable score yields ABSENCE rather than a synthesised instant —
|
|
173
|
+
* a fabricated timestamp would make the first-in-first-out claim unfalsifiable.
|
|
174
|
+
*
|
|
175
|
+
* Feature-DETECTED rather than null-checked, for the reason recorded at the cross-tenant emitter:
|
|
176
|
+
* adding a `log*` method breaks partially-mocked doubles, the property is absent, and the CALL
|
|
177
|
+
* throws synchronously before any `.catch()` can make it fire-and-forget.
|
|
178
|
+
*
|
|
179
|
+
* ## Why the detection decides an ARGUMENT rather than an early return
|
|
180
|
+
*
|
|
181
|
+
* Every emission goes through {@link emitAuditObservation}, which counts a lost one on
|
|
182
|
+
* `audit_observation_dropped_total`. Handing the seam `undefined` is how this site reports
|
|
183
|
+
* `SERVICE_UNAVAILABLE` — the loss shape that reaches no `_createAuditLog` and therefore used to
|
|
184
|
+
* leave nothing behind at all. Returning early on an absent method would restore that silence,
|
|
185
|
+
* which matters here more than it looks: an unbound audit service makes the eviction trail
|
|
186
|
+
* PERMANENTLY empty, and an empty eviction trail reads as "the cap never fired".
|
|
187
|
+
*
|
|
188
|
+
* The count is per RETIRED CHAIN, not per enforcement — one lost row is one lost row, and a cap
|
|
189
|
+
* that evicts four chains while the sink is down has lost four pieces of evidence. The
|
|
190
|
+
* `!evictedJti` skip stays ABOVE the emission for the opposite reason: a pair with no jti is
|
|
191
|
+
* nothing owed, and counting a deliberate skip would fire the loss signal on correct behaviour.
|
|
192
|
+
*
|
|
193
|
+
* assurance-control: WILDO.IDENTITY.SESSION_CONCURRENCY_LIMIT — the bound's enforcement is
|
|
194
|
+
* evidenced, naming WHICH chain was retired and when it was issued.
|
|
195
|
+
*/
|
|
196
|
+
private recordEvictions;
|
|
157
197
|
}
|
|
158
198
|
//# sourceMappingURL=auth-token-issuer.backend.service.d.ts.map
|
package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-token-issuer.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/security/authentications/services/auth-token-issuer.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8DAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-token-issuer.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/security/authentications/services/auth-token-issuer.backend.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,21 +12,23 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import 'reflect-metadata';
|
|
14
14
|
import crypto from 'crypto';
|
|
15
|
-
import { inject, injectable } from 'inversify';
|
|
15
|
+
import { inject, injectable, optional } from 'inversify';
|
|
16
16
|
import { SAAS_SERVICE_TYPES } from '../../../inject/models/service-types.js';
|
|
17
17
|
import { LoggerService } from '../../../monitoring/logger/services/logger.service.js';
|
|
18
18
|
import { AppConfigurationService } from '../../../config/services/app-configuration.backend.service.js';
|
|
19
19
|
import { ErrorBuilderBackendService } from '../../../errors/services/error-builder.backend.service.js';
|
|
20
20
|
import { RedisService } from '../../../databases/services/redis.service.js';
|
|
21
21
|
import { JwtBackendService } from '../../../security/jwt/services/jwt.backend.service.js';
|
|
22
|
+
import { AuditLogsBackendService } from '../../../compliance/audit-trails/services/audit-logs.backend.service.js';
|
|
22
23
|
import { projectCaughtErrorLogFields } from '../../../errors/utils/error-log-level-classification.backend.utils.js';
|
|
23
24
|
import { AuthExecutionContextFactoryBackendService } from '../../../security/authentications/services/auth-execution-context-factory.backend.service.js';
|
|
24
25
|
import { ExecutionContext_ExecutionType, SessionType, ErrorType, ErrorCustomMessageReference, CoreResourceType, UserStatus } from '@wildo-ai/saas-models';
|
|
25
26
|
import { JwtClaim_App_Auth_UserRequest_Schema, JwtClaim_App_RefreshToken_Schema, } from '../../../security/authentications/models/authentications.backend.schemas.js';
|
|
26
27
|
import { AUTH_REDIS_KEYS, RefreshTokenBlacklistReason, REFRESH_TOKEN_ROTATION_GRACE_SECONDS } from '../../../security/authentications/models/auth-constants.backend.js';
|
|
27
|
-
import { buildSessionOrderingScore, CONCURRENT_SESSION_EVICTION_LUA, resolveEvictedJtiBlacklistSeconds, } from '../../../security/authentications/services/utils/concurrent-session-eviction.backend.utils.js';
|
|
28
|
+
import { buildSessionOrderingScore, CONCURRENT_SESSION_EVICTION_LUA, readIssuedAtMilliseconds, resolveEvictedJtiBlacklistSeconds, } from '../../../security/authentications/services/utils/concurrent-session-eviction.backend.utils.js';
|
|
28
29
|
import { evaluateUserTokenInvalidationFence } from '../../../security/token-invalidation-fence.backend.utils.js';
|
|
29
30
|
import { evaluateSessionInvalidationFence } from '../../../security/session-invalidation-fence.backend.utils.js';
|
|
31
|
+
import { AuditObservationKind, emitAuditObservation, } from '../../../monitoring/observability/audit-observation-emission.backend.js';
|
|
30
32
|
import { getUserAuthorizationVersion, } from '../../../security/authentications/models/user-authorization-version.backend.utils.js';
|
|
31
33
|
/** L3: Default max concurrent refresh tokens per user. */
|
|
32
34
|
const DEFAULT_MAX_CONCURRENT_SESSIONS = 10;
|
|
@@ -81,8 +83,10 @@ let AuthTokenIssuerBackendService = class AuthTokenIssuerBackendService {
|
|
|
81
83
|
redisService;
|
|
82
84
|
servicesRegistryHandler;
|
|
83
85
|
authEcFactory;
|
|
86
|
+
auditLogsService;
|
|
87
|
+
metricsService;
|
|
84
88
|
logDebug;
|
|
85
|
-
constructor(logger, appConfigService, jwtService, errorBuilder, redisService, servicesRegistryHandler, authEcFactory) {
|
|
89
|
+
constructor(logger, appConfigService, jwtService, errorBuilder, redisService, servicesRegistryHandler, authEcFactory, auditLogsService = null, metricsService) {
|
|
86
90
|
this.logger = logger;
|
|
87
91
|
this.appConfigService = appConfigService;
|
|
88
92
|
this.jwtService = jwtService;
|
|
@@ -90,6 +94,8 @@ let AuthTokenIssuerBackendService = class AuthTokenIssuerBackendService {
|
|
|
90
94
|
this.redisService = redisService;
|
|
91
95
|
this.servicesRegistryHandler = servicesRegistryHandler;
|
|
92
96
|
this.authEcFactory = authEcFactory;
|
|
97
|
+
this.auditLogsService = auditLogsService;
|
|
98
|
+
this.metricsService = metricsService;
|
|
93
99
|
this.logDebug = this.logger.debugByType('AuthTokenIssuer');
|
|
94
100
|
this.logger.setDebugTypeLogging('AuthTokenIssuer', false);
|
|
95
101
|
}
|
|
@@ -572,6 +578,7 @@ let AuthTokenIssuerBackendService = class AuthTokenIssuerBackendService {
|
|
|
572
578
|
evictedCount: evictedPairs.length / 2,
|
|
573
579
|
maxSessions,
|
|
574
580
|
});
|
|
581
|
+
this.recordEvictions({ userId, evictedPairs, maxSessions, nowMilliseconds });
|
|
575
582
|
}
|
|
576
583
|
}
|
|
577
584
|
catch (error) {
|
|
@@ -582,6 +589,77 @@ let AuthTokenIssuerBackendService = class AuthTokenIssuerBackendService {
|
|
|
582
589
|
});
|
|
583
590
|
}
|
|
584
591
|
}
|
|
592
|
+
/**
|
|
593
|
+
* Record each retired refresh chain in the audit trail.
|
|
594
|
+
*
|
|
595
|
+
* Until 2026-09-02 the only trace of an eviction was the debug line above — a security-relevant
|
|
596
|
+
* token-lifecycle act with no durable record, which is exactly what `CLAUDE.md`'s
|
|
597
|
+
* assurance-by-construction rule asks for by name. The cap exists to bound the blast radius of
|
|
598
|
+
* undetected token theft, so a burst of evictions for one principal is among the more interesting
|
|
599
|
+
* things the trail can carry, and it was not carrying it.
|
|
600
|
+
*
|
|
601
|
+
* `evictedIssuedAt` is what makes the record worth having: the cap's security property is that the
|
|
602
|
+
* OLDEST chain goes, and a record naming only the victim would prove a session ended without
|
|
603
|
+
* proving the right one did. An unreadable score yields ABSENCE rather than a synthesised instant —
|
|
604
|
+
* a fabricated timestamp would make the first-in-first-out claim unfalsifiable.
|
|
605
|
+
*
|
|
606
|
+
* Feature-DETECTED rather than null-checked, for the reason recorded at the cross-tenant emitter:
|
|
607
|
+
* adding a `log*` method breaks partially-mocked doubles, the property is absent, and the CALL
|
|
608
|
+
* throws synchronously before any `.catch()` can make it fire-and-forget.
|
|
609
|
+
*
|
|
610
|
+
* ## Why the detection decides an ARGUMENT rather than an early return
|
|
611
|
+
*
|
|
612
|
+
* Every emission goes through {@link emitAuditObservation}, which counts a lost one on
|
|
613
|
+
* `audit_observation_dropped_total`. Handing the seam `undefined` is how this site reports
|
|
614
|
+
* `SERVICE_UNAVAILABLE` — the loss shape that reaches no `_createAuditLog` and therefore used to
|
|
615
|
+
* leave nothing behind at all. Returning early on an absent method would restore that silence,
|
|
616
|
+
* which matters here more than it looks: an unbound audit service makes the eviction trail
|
|
617
|
+
* PERMANENTLY empty, and an empty eviction trail reads as "the cap never fired".
|
|
618
|
+
*
|
|
619
|
+
* The count is per RETIRED CHAIN, not per enforcement — one lost row is one lost row, and a cap
|
|
620
|
+
* that evicts four chains while the sink is down has lost four pieces of evidence. The
|
|
621
|
+
* `!evictedJti` skip stays ABOVE the emission for the opposite reason: a pair with no jti is
|
|
622
|
+
* nothing owed, and counting a deliberate skip would fire the loss signal on correct behaviour.
|
|
623
|
+
*
|
|
624
|
+
* assurance-control: WILDO.IDENTITY.SESSION_CONCURRENCY_LIMIT — the bound's enforcement is
|
|
625
|
+
* evidenced, naming WHICH chain was retired and when it was issued.
|
|
626
|
+
*/
|
|
627
|
+
recordEvictions(input) {
|
|
628
|
+
// Narrowed to a VALUE rather than to a boolean flag: the emitting closure is created inside the
|
|
629
|
+
// loop, and a captured `const` that is already non-nullish needs no narrowing to survive into it.
|
|
630
|
+
const emitter = typeof this.auditLogsService?.logUserSessionEvicted === 'function'
|
|
631
|
+
? this.auditLogsService
|
|
632
|
+
: undefined;
|
|
633
|
+
for (let index = 0; index < input.evictedPairs.length; index += 2) {
|
|
634
|
+
const evictedJti = input.evictedPairs[index];
|
|
635
|
+
// Nothing was owed for this pair — a deliberate skip, kept above the emission so it can never
|
|
636
|
+
// be counted as a loss.
|
|
637
|
+
if (!evictedJti)
|
|
638
|
+
continue;
|
|
639
|
+
const issuedAtMilliseconds = readIssuedAtMilliseconds(input.evictedPairs[index + 1]);
|
|
640
|
+
emitAuditObservation({
|
|
641
|
+
observation: AuditObservationKind.USER_SESSION_EVICTED,
|
|
642
|
+
emit: emitter
|
|
643
|
+
? () => emitter.logUserSessionEvicted({
|
|
644
|
+
userId: input.userId,
|
|
645
|
+
evictedJti,
|
|
646
|
+
...(issuedAtMilliseconds === undefined ? {} : { evictedIssuedAt: new Date(issuedAtMilliseconds) }),
|
|
647
|
+
configuredMaximum: input.maxSessions,
|
|
648
|
+
retainedCount: input.maxSessions,
|
|
649
|
+
})
|
|
650
|
+
: undefined,
|
|
651
|
+
metricsService: this.metricsService,
|
|
652
|
+
logger: this.logger,
|
|
653
|
+
// Enough to reconstruct the lost row from the application log: WHOSE session, WHICH chain,
|
|
654
|
+
// and under what bound. The jti is the identity the audit row itself would have carried.
|
|
655
|
+
context: {
|
|
656
|
+
observedUserId: input.userId,
|
|
657
|
+
observedEvictedJti: evictedJti,
|
|
658
|
+
observedConfiguredMaximum: input.maxSessions,
|
|
659
|
+
},
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
}
|
|
585
663
|
};
|
|
586
664
|
AuthTokenIssuerBackendService = __decorate([
|
|
587
665
|
injectable(),
|
|
@@ -592,11 +670,16 @@ AuthTokenIssuerBackendService = __decorate([
|
|
|
592
670
|
__param(4, inject(SAAS_SERVICE_TYPES.RedisService)),
|
|
593
671
|
__param(5, inject(SAAS_SERVICE_TYPES.ServicesRegistryHandlerService)),
|
|
594
672
|
__param(6, inject(SAAS_SERVICE_TYPES.AuthExecutionContextFactory)),
|
|
673
|
+
__param(7, inject(SAAS_SERVICE_TYPES.AuditLogsService)),
|
|
674
|
+
__param(7, optional()),
|
|
675
|
+
__param(8, inject(SAAS_SERVICE_TYPES.MetricsService)),
|
|
676
|
+
__param(8, optional()),
|
|
595
677
|
__metadata("design:paramtypes", [LoggerService,
|
|
596
678
|
AppConfigurationService,
|
|
597
679
|
JwtBackendService,
|
|
598
680
|
ErrorBuilderBackendService,
|
|
599
|
-
RedisService, Function, AuthExecutionContextFactoryBackendService
|
|
681
|
+
RedisService, Function, AuthExecutionContextFactoryBackendService,
|
|
682
|
+
AuditLogsBackendService, Object])
|
|
600
683
|
], AuthTokenIssuerBackendService);
|
|
601
684
|
export { AuthTokenIssuerBackendService };
|
|
602
685
|
//# sourceMappingURL=auth-token-issuer.backend.service.js.map
|