@marinoscar/platform-api 0.1.0-next.3 → 0.1.0-next.5
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/CHANGELOG.md +272 -0
- package/README.md +51 -9
- package/dist/ai/ai.constants.d.ts +8 -0
- package/dist/ai/ai.constants.d.ts.map +1 -0
- package/dist/ai/ai.constants.js +16 -0
- package/dist/ai/ai.constants.js.map +1 -0
- package/dist/ai/ai.module.d.ts +89 -0
- package/dist/ai/ai.module.d.ts.map +1 -0
- package/dist/ai/ai.module.js +117 -0
- package/dist/ai/ai.module.js.map +1 -0
- package/dist/ai/ai.options.d.ts +28 -0
- package/dist/ai/ai.options.d.ts.map +1 -0
- package/dist/ai/ai.options.js +19 -0
- package/dist/ai/ai.options.js.map +1 -0
- package/dist/ai/ai.permissions.d.ts +42 -0
- package/dist/ai/ai.permissions.d.ts.map +1 -0
- package/dist/ai/ai.permissions.js +132 -0
- package/dist/ai/ai.permissions.js.map +1 -0
- package/dist/ai/ai.system-settings.d.ts +514 -0
- package/dist/ai/ai.system-settings.d.ts.map +1 -0
- package/dist/ai/ai.system-settings.js +309 -0
- package/dist/ai/ai.system-settings.js.map +1 -0
- package/dist/ai/ai.user-settings.d.ts +67 -0
- package/dist/ai/ai.user-settings.d.ts.map +1 -0
- package/dist/ai/ai.user-settings.js +64 -0
- package/dist/ai/ai.user-settings.js.map +1 -0
- package/dist/ai/catalog/ai-catalog-refresh.handler.d.ts +34 -0
- package/dist/ai/catalog/ai-catalog-refresh.handler.d.ts.map +1 -0
- package/dist/ai/catalog/ai-catalog-refresh.handler.js +121 -0
- package/dist/ai/catalog/ai-catalog-refresh.handler.js.map +1 -0
- package/dist/ai/catalog/ai-catalog-refresh.task.d.ts +15 -0
- package/dist/ai/catalog/ai-catalog-refresh.task.d.ts.map +1 -0
- package/dist/ai/catalog/ai-catalog-refresh.task.js +101 -0
- package/dist/ai/catalog/ai-catalog-refresh.task.js.map +1 -0
- package/dist/ai/catalog/ai-catalog.events.d.ts +11 -0
- package/dist/ai/catalog/ai-catalog.events.d.ts.map +1 -0
- package/dist/ai/catalog/ai-catalog.events.js +21 -0
- package/dist/ai/catalog/ai-catalog.events.js.map +1 -0
- package/dist/ai/catalog/ai-catalog.module.d.ts +9 -0
- package/dist/ai/catalog/ai-catalog.module.d.ts.map +1 -0
- package/dist/ai/catalog/ai-catalog.module.js +39 -0
- package/dist/ai/catalog/ai-catalog.module.js.map +1 -0
- package/dist/ai/catalog/ai-catalog.service.d.ts +113 -0
- package/dist/ai/catalog/ai-catalog.service.d.ts.map +1 -0
- package/dist/ai/catalog/ai-catalog.service.js +371 -0
- package/dist/ai/catalog/ai-catalog.service.js.map +1 -0
- package/dist/ai/catalog/doctor/egress/ai-catalog-refresh.egress.contributor.d.ts +24 -0
- package/dist/ai/catalog/doctor/egress/ai-catalog-refresh.egress.contributor.d.ts.map +1 -0
- package/dist/ai/catalog/doctor/egress/ai-catalog-refresh.egress.contributor.js +70 -0
- package/dist/ai/catalog/doctor/egress/ai-catalog-refresh.egress.contributor.js.map +1 -0
- package/dist/ai/config/ai-admin.controller.d.ts +524 -0
- package/dist/ai/config/ai-admin.controller.d.ts.map +1 -0
- package/dist/ai/config/ai-admin.controller.js +352 -0
- package/dist/ai/config/ai-admin.controller.js.map +1 -0
- package/dist/ai/config/ai-config-admin.service.d.ts +199 -0
- package/dist/ai/config/ai-config-admin.service.d.ts.map +1 -0
- package/dist/ai/config/ai-config-admin.service.js +579 -0
- package/dist/ai/config/ai-config-admin.service.js.map +1 -0
- package/dist/ai/config/ai-config.module.d.ts +10 -0
- package/dist/ai/config/ai-config.module.d.ts.map +1 -0
- package/dist/ai/config/ai-config.module.js +69 -0
- package/dist/ai/config/ai-config.module.js.map +1 -0
- package/dist/ai/config/ai-config.service.d.ts +189 -0
- package/dist/ai/config/ai-config.service.d.ts.map +1 -0
- package/dist/ai/config/ai-config.service.js +334 -0
- package/dist/ai/config/ai-config.service.js.map +1 -0
- package/dist/ai/config/ai-credential.constants.d.ts +32 -0
- package/dist/ai/config/ai-credential.constants.d.ts.map +1 -0
- package/dist/ai/config/ai-credential.constants.js +66 -0
- package/dist/ai/config/ai-credential.constants.js.map +1 -0
- package/dist/ai/config/ai-enabled.guard.d.ts +17 -0
- package/dist/ai/config/ai-enabled.guard.d.ts.map +1 -0
- package/dist/ai/config/ai-enabled.guard.js +61 -0
- package/dist/ai/config/ai-enabled.guard.js.map +1 -0
- package/dist/ai/config/ai-models-admin.service.d.ts +44 -0
- package/dist/ai/config/ai-models-admin.service.d.ts.map +1 -0
- package/dist/ai/config/ai-models-admin.service.js +238 -0
- package/dist/ai/config/ai-models-admin.service.js.map +1 -0
- package/dist/ai/config/ai-org-enabled.interceptor.d.ts +21 -0
- package/dist/ai/config/ai-org-enabled.interceptor.d.ts.map +1 -0
- package/dist/ai/config/ai-org-enabled.interceptor.js +59 -0
- package/dist/ai/config/ai-org-enabled.interceptor.js.map +1 -0
- package/dist/ai/config/ai-provider-test.service.d.ts +39 -0
- package/dist/ai/config/ai-provider-test.service.d.ts.map +1 -0
- package/dist/ai/config/ai-provider-test.service.js +281 -0
- package/dist/ai/config/ai-provider-test.service.js.map +1 -0
- package/dist/ai/config/ai-public.controller.d.ts +29 -0
- package/dist/ai/config/ai-public.controller.d.ts.map +1 -0
- package/dist/ai/config/ai-public.controller.js +69 -0
- package/dist/ai/config/ai-public.controller.js.map +1 -0
- package/dist/ai/config/doctor/ai-enabled.doctor-check.d.ts +25 -0
- package/dist/ai/config/doctor/ai-enabled.doctor-check.d.ts.map +1 -0
- package/dist/ai/config/doctor/ai-enabled.doctor-check.js +53 -0
- package/dist/ai/config/doctor/ai-enabled.doctor-check.js.map +1 -0
- package/dist/ai/config/doctor/ai-providers.doctor-check.d.ts +31 -0
- package/dist/ai/config/doctor/ai-providers.doctor-check.d.ts.map +1 -0
- package/dist/ai/config/doctor/ai-providers.doctor-check.js +92 -0
- package/dist/ai/config/doctor/ai-providers.doctor-check.js.map +1 -0
- package/dist/ai/config/doctor/egress/ai-provider-endpoint.d.ts +20 -0
- package/dist/ai/config/doctor/egress/ai-provider-endpoint.d.ts.map +1 -0
- package/dist/ai/config/doctor/egress/ai-provider-endpoint.js +30 -0
- package/dist/ai/config/doctor/egress/ai-provider-endpoint.js.map +1 -0
- package/dist/ai/config/doctor/egress/ai-providers.egress.contributor.d.ts +23 -0
- package/dist/ai/config/doctor/egress/ai-providers.egress.contributor.d.ts.map +1 -0
- package/dist/ai/config/doctor/egress/ai-providers.egress.contributor.js +67 -0
- package/dist/ai/config/doctor/egress/ai-providers.egress.contributor.js.map +1 -0
- package/dist/ai/config/doctor/egress/ai-realtime.egress.contributor.d.ts +22 -0
- package/dist/ai/config/doctor/egress/ai-realtime.egress.contributor.d.ts.map +1 -0
- package/dist/ai/config/doctor/egress/ai-realtime.egress.contributor.js +67 -0
- package/dist/ai/config/doctor/egress/ai-realtime.egress.contributor.js.map +1 -0
- package/dist/ai/config/dto/ai-capabilities.dto.d.ts +24 -0
- package/dist/ai/config/dto/ai-capabilities.dto.d.ts.map +1 -0
- package/dist/ai/config/dto/ai-capabilities.dto.js +43 -0
- package/dist/ai/config/dto/ai-capabilities.dto.js.map +1 -0
- package/dist/ai/config/dto/ai-config-response.dto.d.ts +548 -0
- package/dist/ai/config/dto/ai-config-response.dto.d.ts.map +1 -0
- package/dist/ai/config/dto/ai-config-response.dto.js +181 -0
- package/dist/ai/config/dto/ai-config-response.dto.js.map +1 -0
- package/dist/ai/config/dto/ai-model.dto.d.ts +161 -0
- package/dist/ai/config/dto/ai-model.dto.d.ts.map +1 -0
- package/dist/ai/config/dto/ai-model.dto.js +127 -0
- package/dist/ai/config/dto/ai-model.dto.js.map +1 -0
- package/dist/ai/config/dto/ai-provider-key.dto.d.ts +26 -0
- package/dist/ai/config/dto/ai-provider-key.dto.d.ts.map +1 -0
- package/dist/ai/config/dto/ai-provider-key.dto.js +27 -0
- package/dist/ai/config/dto/ai-provider-key.dto.js.map +1 -0
- package/dist/ai/config/dto/ai-provider-test.dto.d.ts +169 -0
- package/dist/ai/config/dto/ai-provider-test.dto.d.ts.map +1 -0
- package/dist/ai/config/dto/ai-provider-test.dto.js +95 -0
- package/dist/ai/config/dto/ai-provider-test.dto.js.map +1 -0
- package/dist/ai/config/dto/ai-public-config.dto.d.ts +70 -0
- package/dist/ai/config/dto/ai-public-config.dto.d.ts.map +1 -0
- package/dist/ai/config/dto/ai-public-config.dto.js +106 -0
- package/dist/ai/config/dto/ai-public-config.dto.js.map +1 -0
- package/dist/ai/config/dto/update-ai-config.dto.d.ts +154 -0
- package/dist/ai/config/dto/update-ai-config.dto.d.ts.map +1 -0
- package/dist/ai/config/dto/update-ai-config.dto.js +184 -0
- package/dist/ai/config/dto/update-ai-config.dto.js.map +1 -0
- package/dist/ai/config/index.d.ts +5 -0
- package/dist/ai/config/index.d.ts.map +1 -0
- package/dist/ai/config/index.js +22 -0
- package/dist/ai/config/index.js.map +1 -0
- package/dist/ai/core/ai-core.module.d.ts +13 -0
- package/dist/ai/core/ai-core.module.d.ts.map +1 -0
- package/dist/ai/core/ai-core.module.js +31 -0
- package/dist/ai/core/ai-core.module.js.map +1 -0
- package/dist/ai/core/ai-error.d.ts +161 -0
- package/dist/ai/core/ai-error.d.ts.map +1 -0
- package/dist/ai/core/ai-error.js +233 -0
- package/dist/ai/core/ai-error.js.map +1 -0
- package/dist/ai/core/capabilities.d.ts +127 -0
- package/dist/ai/core/capabilities.d.ts.map +1 -0
- package/dist/ai/core/capabilities.js +112 -0
- package/dist/ai/core/capabilities.js.map +1 -0
- package/dist/ai/core/capability-registry.d.ts +83 -0
- package/dist/ai/core/capability-registry.d.ts.map +1 -0
- package/dist/ai/core/capability-registry.js +145 -0
- package/dist/ai/core/capability-registry.js.map +1 -0
- package/dist/ai/core/conversation.d.ts +16 -0
- package/dist/ai/core/conversation.d.ts.map +1 -0
- package/dist/ai/core/conversation.js +57 -0
- package/dist/ai/core/conversation.js.map +1 -0
- package/dist/ai/core/hosted-tools.d.ts +173 -0
- package/dist/ai/core/hosted-tools.d.ts.map +1 -0
- package/dist/ai/core/hosted-tools.js +289 -0
- package/dist/ai/core/hosted-tools.js.map +1 -0
- package/dist/ai/core/index.d.ts +14 -0
- package/dist/ai/core/index.d.ts.map +1 -0
- package/dist/ai/core/index.js +32 -0
- package/dist/ai/core/index.js.map +1 -0
- package/dist/ai/core/operation-registry.d.ts +104 -0
- package/dist/ai/core/operation-registry.d.ts.map +1 -0
- package/dist/ai/core/operation-registry.js +140 -0
- package/dist/ai/core/operation-registry.js.map +1 -0
- package/dist/ai/core/provider-adapter.interface.d.ts +261 -0
- package/dist/ai/core/provider-adapter.interface.d.ts.map +1 -0
- package/dist/ai/core/provider-adapter.interface.js +33 -0
- package/dist/ai/core/provider-adapter.interface.js.map +1 -0
- package/dist/ai/core/provider-registry.d.ts +52 -0
- package/dist/ai/core/provider-registry.d.ts.map +1 -0
- package/dist/ai/core/provider-registry.js +163 -0
- package/dist/ai/core/provider-registry.js.map +1 -0
- package/dist/ai/core/structured-output.d.ts +50 -0
- package/dist/ai/core/structured-output.d.ts.map +1 -0
- package/dist/ai/core/structured-output.js +83 -0
- package/dist/ai/core/structured-output.js.map +1 -0
- package/dist/ai/core/tools.d.ts +94 -0
- package/dist/ai/core/tools.d.ts.map +1 -0
- package/dist/ai/core/tools.js +76 -0
- package/dist/ai/core/tools.js.map +1 -0
- package/dist/ai/core/types/file-inputs.types.d.ts +103 -0
- package/dist/ai/core/types/file-inputs.types.d.ts.map +1 -0
- package/dist/ai/core/types/file-inputs.types.js +81 -0
- package/dist/ai/core/types/file-inputs.types.js.map +1 -0
- package/dist/ai/core/types/media.types.d.ts +617 -0
- package/dist/ai/core/types/media.types.d.ts.map +1 -0
- package/dist/ai/core/types/media.types.js +206 -0
- package/dist/ai/core/types/media.types.js.map +1 -0
- package/dist/ai/core/types/responses.types.d.ts +620 -0
- package/dist/ai/core/types/responses.types.d.ts.map +1 -0
- package/dist/ai/core/types/responses.types.js +60 -0
- package/dist/ai/core/types/responses.types.js.map +1 -0
- package/dist/ai/data/ai-db.d.ts +435 -0
- package/dist/ai/data/ai-db.d.ts.map +1 -0
- package/dist/ai/data/ai-db.js +22 -0
- package/dist/ai/data/ai-db.js.map +1 -0
- package/dist/ai/data/prisma.d.ts +54 -0
- package/dist/ai/data/prisma.d.ts.map +1 -0
- package/dist/ai/data/prisma.js +20 -0
- package/dist/ai/data/prisma.js.map +1 -0
- package/dist/ai/features/ai-feature.registry.d.ts +63 -0
- package/dist/ai/features/ai-feature.registry.d.ts.map +1 -0
- package/dist/ai/features/ai-feature.registry.js +99 -0
- package/dist/ai/features/ai-feature.registry.js.map +1 -0
- package/dist/ai/features/ai-features.controller.d.ts +23 -0
- package/dist/ai/features/ai-features.controller.d.ts.map +1 -0
- package/dist/ai/features/ai-features.controller.js +74 -0
- package/dist/ai/features/ai-features.controller.js.map +1 -0
- package/dist/ai/features/ai-features.module.d.ts +10 -0
- package/dist/ai/features/ai-features.module.d.ts.map +1 -0
- package/dist/ai/features/ai-features.module.js +33 -0
- package/dist/ai/features/ai-features.module.js.map +1 -0
- package/dist/ai/features/ai-features.service.d.ts +35 -0
- package/dist/ai/features/ai-features.service.d.ts.map +1 -0
- package/dist/ai/features/ai-features.service.js +68 -0
- package/dist/ai/features/ai-features.service.js.map +1 -0
- package/dist/ai/features/dto/ai-feature.dto.d.ts +16 -0
- package/dist/ai/features/dto/ai-feature.dto.d.ts.map +1 -0
- package/dist/ai/features/dto/ai-feature.dto.js +10 -0
- package/dist/ai/features/dto/ai-feature.dto.js.map +1 -0
- package/dist/ai/http/ai-audio.controller.d.ts +10 -0
- package/dist/ai/http/ai-audio.controller.d.ts.map +1 -0
- package/dist/ai/http/ai-audio.controller.js +194 -0
- package/dist/ai/http/ai-audio.controller.js.map +1 -0
- package/dist/ai/http/ai-embeddings.controller.d.ts +9 -0
- package/dist/ai/http/ai-embeddings.controller.d.ts.map +1 -0
- package/dist/ai/http/ai-embeddings.controller.js +132 -0
- package/dist/ai/http/ai-embeddings.controller.js.map +1 -0
- package/dist/ai/http/ai-http-request.d.ts +5 -0
- package/dist/ai/http/ai-http-request.d.ts.map +1 -0
- package/dist/ai/http/ai-http-request.js +41 -0
- package/dist/ai/http/ai-http-request.js.map +1 -0
- package/dist/ai/http/ai-http.module.d.ts +3 -0
- package/dist/ai/http/ai-http.module.d.ts.map +1 -0
- package/dist/ai/http/ai-http.module.js +44 -0
- package/dist/ai/http/ai-http.module.js.map +1 -0
- package/dist/ai/http/ai-images.controller.d.ts +10 -0
- package/dist/ai/http/ai-images.controller.d.ts.map +1 -0
- package/dist/ai/http/ai-images.controller.js +171 -0
- package/dist/ai/http/ai-images.controller.js.map +1 -0
- package/dist/ai/http/ai-realtime.controller.d.ts +8 -0
- package/dist/ai/http/ai-realtime.controller.d.ts.map +1 -0
- package/dist/ai/http/ai-realtime.controller.js +138 -0
- package/dist/ai/http/ai-realtime.controller.js.map +1 -0
- package/dist/ai/http/ai-responses.controller.d.ts +22 -0
- package/dist/ai/http/ai-responses.controller.d.ts.map +1 -0
- package/dist/ai/http/ai-responses.controller.js +235 -0
- package/dist/ai/http/ai-responses.controller.js.map +1 -0
- package/dist/ai/http/ai-runs.controller.d.ts +20 -0
- package/dist/ai/http/ai-runs.controller.d.ts.map +1 -0
- package/dist/ai/http/ai-runs.controller.js +186 -0
- package/dist/ai/http/ai-runs.controller.js.map +1 -0
- package/dist/ai/http/ai-sse.d.ts +55 -0
- package/dist/ai/http/ai-sse.d.ts.map +1 -0
- package/dist/ai/http/ai-sse.js +143 -0
- package/dist/ai/http/ai-sse.js.map +1 -0
- package/dist/ai/http/dto/ai-audio.dto.d.ts +67 -0
- package/dist/ai/http/dto/ai-audio.dto.d.ts.map +1 -0
- package/dist/ai/http/dto/ai-audio.dto.js +88 -0
- package/dist/ai/http/dto/ai-audio.dto.js.map +1 -0
- package/dist/ai/http/dto/ai-embeddings.dto.d.ts +53 -0
- package/dist/ai/http/dto/ai-embeddings.dto.d.ts.map +1 -0
- package/dist/ai/http/dto/ai-embeddings.dto.js +63 -0
- package/dist/ai/http/dto/ai-embeddings.dto.js.map +1 -0
- package/dist/ai/http/dto/ai-images.dto.d.ts +109 -0
- package/dist/ai/http/dto/ai-images.dto.d.ts.map +1 -0
- package/dist/ai/http/dto/ai-images.dto.js +57 -0
- package/dist/ai/http/dto/ai-images.dto.js.map +1 -0
- package/dist/ai/http/dto/ai-realtime.dto.d.ts +43 -0
- package/dist/ai/http/dto/ai-realtime.dto.d.ts.map +1 -0
- package/dist/ai/http/dto/ai-realtime.dto.js +70 -0
- package/dist/ai/http/dto/ai-realtime.dto.js.map +1 -0
- package/dist/ai/http/dto/ai-response-request.dto.d.ts +196 -0
- package/dist/ai/http/dto/ai-response-request.dto.d.ts.map +1 -0
- package/dist/ai/http/dto/ai-response-request.dto.js +126 -0
- package/dist/ai/http/dto/ai-response-request.dto.js.map +1 -0
- package/dist/ai/http/dto/ai-response.dto.d.ts +838 -0
- package/dist/ai/http/dto/ai-response.dto.d.ts.map +1 -0
- package/dist/ai/http/dto/ai-response.dto.js +258 -0
- package/dist/ai/http/dto/ai-response.dto.js.map +1 -0
- package/dist/ai/http/json-schema-structured-output.d.ts +21 -0
- package/dist/ai/http/json-schema-structured-output.d.ts.map +1 -0
- package/dist/ai/http/json-schema-structured-output.js +69 -0
- package/dist/ai/http/json-schema-structured-output.js.map +1 -0
- package/dist/ai/index.d.ts +67 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +178 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/keys/ai-config-writer.lookup.d.ts +21 -0
- package/dist/ai/keys/ai-config-writer.lookup.d.ts.map +1 -0
- package/dist/ai/keys/ai-config-writer.lookup.js +87 -0
- package/dist/ai/keys/ai-config-writer.lookup.js.map +1 -0
- package/dist/ai/keys/ai-key-resolver.service.d.ts +107 -0
- package/dist/ai/keys/ai-key-resolver.service.d.ts.map +1 -0
- package/dist/ai/keys/ai-key-resolver.service.js +161 -0
- package/dist/ai/keys/ai-key-resolver.service.js.map +1 -0
- package/dist/ai/keys/ai-keys-catalog.listener.d.ts +9 -0
- package/dist/ai/keys/ai-keys-catalog.listener.d.ts.map +1 -0
- package/dist/ai/keys/ai-keys-catalog.listener.js +83 -0
- package/dist/ai/keys/ai-keys-catalog.listener.js.map +1 -0
- package/dist/ai/keys/ai-keys-recheck.handler.d.ts +27 -0
- package/dist/ai/keys/ai-keys-recheck.handler.d.ts.map +1 -0
- package/dist/ai/keys/ai-keys-recheck.handler.js +96 -0
- package/dist/ai/keys/ai-keys-recheck.handler.js.map +1 -0
- package/dist/ai/keys/ai-keys-recheck.task.d.ts +20 -0
- package/dist/ai/keys/ai-keys-recheck.task.d.ts.map +1 -0
- package/dist/ai/keys/ai-keys-recheck.task.js +113 -0
- package/dist/ai/keys/ai-keys-recheck.task.js.map +1 -0
- package/dist/ai/keys/ai-keys.module.d.ts +3 -0
- package/dist/ai/keys/ai-keys.module.d.ts.map +1 -0
- package/dist/ai/keys/ai-keys.module.js +57 -0
- package/dist/ai/keys/ai-keys.module.js.map +1 -0
- package/dist/ai/keys/ai-user-key.constants.d.ts +15 -0
- package/dist/ai/keys/ai-user-key.constants.d.ts.map +1 -0
- package/dist/ai/keys/ai-user-key.constants.js +29 -0
- package/dist/ai/keys/ai-user-key.constants.js.map +1 -0
- package/dist/ai/keys/dto/org-ai-key.dto.d.ts +18 -0
- package/dist/ai/keys/dto/org-ai-key.dto.d.ts.map +1 -0
- package/dist/ai/keys/dto/org-ai-key.dto.js +14 -0
- package/dist/ai/keys/dto/org-ai-key.dto.js.map +1 -0
- package/dist/ai/keys/dto/usable-ai-model.dto.d.ts +51 -0
- package/dist/ai/keys/dto/usable-ai-model.dto.d.ts.map +1 -0
- package/dist/ai/keys/dto/usable-ai-model.dto.js +45 -0
- package/dist/ai/keys/dto/usable-ai-model.dto.js.map +1 -0
- package/dist/ai/keys/dto/user-ai-key.dto.d.ts +155 -0
- package/dist/ai/keys/dto/user-ai-key.dto.d.ts.map +1 -0
- package/dist/ai/keys/dto/user-ai-key.dto.js +93 -0
- package/dist/ai/keys/dto/user-ai-key.dto.js.map +1 -0
- package/dist/ai/keys/org-key.service.d.ts +82 -0
- package/dist/ai/keys/org-key.service.d.ts.map +1 -0
- package/dist/ai/keys/org-key.service.js +183 -0
- package/dist/ai/keys/org-key.service.js.map +1 -0
- package/dist/ai/keys/org-keys.controller.d.ts +28 -0
- package/dist/ai/keys/org-keys.controller.d.ts.map +1 -0
- package/dist/ai/keys/org-keys.controller.js +129 -0
- package/dist/ai/keys/org-keys.controller.js.map +1 -0
- package/dist/ai/keys/usable-models.service.d.ts +48 -0
- package/dist/ai/keys/usable-models.service.d.ts.map +1 -0
- package/dist/ai/keys/usable-models.service.js +186 -0
- package/dist/ai/keys/usable-models.service.js.map +1 -0
- package/dist/ai/keys/user-ai-keys.controller.d.ts +64 -0
- package/dist/ai/keys/user-ai-keys.controller.d.ts.map +1 -0
- package/dist/ai/keys/user-ai-keys.controller.js +204 -0
- package/dist/ai/keys/user-ai-keys.controller.js.map +1 -0
- package/dist/ai/keys/user-ai-keys.service.d.ts +143 -0
- package/dist/ai/keys/user-ai-keys.service.d.ts.map +1 -0
- package/dist/ai/keys/user-ai-keys.service.js +491 -0
- package/dist/ai/keys/user-ai-keys.service.js.map +1 -0
- package/dist/ai/ports.d.ts +236 -0
- package/dist/ai/ports.d.ts.map +1 -0
- package/dist/ai/ports.js +85 -0
- package/dist/ai/ports.js.map +1 -0
- package/dist/ai/providers/ai-provider-definition.d.ts +199 -0
- package/dist/ai/providers/ai-provider-definition.d.ts.map +1 -0
- package/dist/ai/providers/ai-provider-definition.js +219 -0
- package/dist/ai/providers/ai-provider-definition.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-client.factory.d.ts +20 -0
- package/dist/ai/providers/anthropic/anthropic-client.factory.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-client.factory.js +84 -0
- package/dist/ai/providers/anthropic/anthropic-client.factory.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-errors.d.ts +16 -0
- package/dist/ai/providers/anthropic/anthropic-errors.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-errors.js +156 -0
- package/dist/ai/providers/anthropic/anthropic-errors.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.d.ts +80 -0
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.js +536 -0
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-model-catalog.d.ts +49 -0
- package/dist/ai/providers/anthropic/anthropic-model-catalog.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-model-catalog.js +198 -0
- package/dist/ai/providers/anthropic/anthropic-model-catalog.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.d.ts +35 -0
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.js +203 -0
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic.adapter.d.ts +59 -0
- package/dist/ai/providers/anthropic/anthropic.adapter.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic.adapter.js +327 -0
- package/dist/ai/providers/anthropic/anthropic.adapter.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic.module.d.ts +11 -0
- package/dist/ai/providers/anthropic/anthropic.module.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic.module.js +32 -0
- package/dist/ai/providers/anthropic/anthropic.module.js.map +1 -0
- package/dist/ai/providers/anthropic/anthropic.provider-definition.d.ts +12 -0
- package/dist/ai/providers/anthropic/anthropic.provider-definition.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic.provider-definition.js +24 -0
- package/dist/ai/providers/anthropic/anthropic.provider-definition.js.map +1 -0
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.d.ts +18 -0
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.js +120 -0
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.js.map +1 -0
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.d.ts +59 -0
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.js +206 -0
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.js.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.d.ts +21 -0
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.d.ts.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.js +87 -0
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.js.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai-settings.d.ts +23 -0
- package/dist/ai/providers/azure-openai/azure-openai-settings.d.ts.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai-settings.js +54 -0
- package/dist/ai/providers/azure-openai/azure-openai-settings.js.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai.adapter.d.ts +39 -0
- package/dist/ai/providers/azure-openai/azure-openai.adapter.d.ts.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai.adapter.js +205 -0
- package/dist/ai/providers/azure-openai/azure-openai.adapter.js.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai.module.d.ts +12 -0
- package/dist/ai/providers/azure-openai/azure-openai.module.d.ts.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai.module.js +33 -0
- package/dist/ai/providers/azure-openai/azure-openai.module.js.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai.provider-definition.d.ts +12 -0
- package/dist/ai/providers/azure-openai/azure-openai.provider-definition.d.ts.map +1 -0
- package/dist/ai/providers/azure-openai/azure-openai.provider-definition.js +28 -0
- package/dist/ai/providers/azure-openai/azure-openai.provider-definition.js.map +1 -0
- package/dist/ai/providers/builtin-ai-providers.d.ts +8 -0
- package/dist/ai/providers/builtin-ai-providers.d.ts.map +1 -0
- package/dist/ai/providers/builtin-ai-providers.js +41 -0
- package/dist/ai/providers/builtin-ai-providers.js.map +1 -0
- package/dist/ai/providers/gemini/gemini-client.factory.d.ts +23 -0
- package/dist/ai/providers/gemini/gemini-client.factory.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini-client.factory.js +100 -0
- package/dist/ai/providers/gemini/gemini-client.factory.js.map +1 -0
- package/dist/ai/providers/gemini/gemini-content.mapper.d.ts +98 -0
- package/dist/ai/providers/gemini/gemini-content.mapper.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini-content.mapper.js +665 -0
- package/dist/ai/providers/gemini/gemini-content.mapper.js.map +1 -0
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.d.ts +13 -0
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.js +78 -0
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.js.map +1 -0
- package/dist/ai/providers/gemini/gemini-errors.d.ts +32 -0
- package/dist/ai/providers/gemini/gemini-errors.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini-errors.js +191 -0
- package/dist/ai/providers/gemini/gemini-errors.js.map +1 -0
- package/dist/ai/providers/gemini/gemini-model-catalog.d.ts +45 -0
- package/dist/ai/providers/gemini/gemini-model-catalog.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini-model-catalog.js +264 -0
- package/dist/ai/providers/gemini/gemini-model-catalog.js.map +1 -0
- package/dist/ai/providers/gemini/gemini-stream.mapper.d.ts +31 -0
- package/dist/ai/providers/gemini/gemini-stream.mapper.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini-stream.mapper.js +118 -0
- package/dist/ai/providers/gemini/gemini-stream.mapper.js.map +1 -0
- package/dist/ai/providers/gemini/gemini.adapter.d.ts +66 -0
- package/dist/ai/providers/gemini/gemini.adapter.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini.adapter.js +382 -0
- package/dist/ai/providers/gemini/gemini.adapter.js.map +1 -0
- package/dist/ai/providers/gemini/gemini.module.d.ts +11 -0
- package/dist/ai/providers/gemini/gemini.module.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini.module.js +32 -0
- package/dist/ai/providers/gemini/gemini.module.js.map +1 -0
- package/dist/ai/providers/gemini/gemini.provider-definition.d.ts +12 -0
- package/dist/ai/providers/gemini/gemini.provider-definition.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini.provider-definition.js +24 -0
- package/dist/ai/providers/gemini/gemini.provider-definition.js.map +1 -0
- package/dist/ai/providers/gemini/testing/gemini-fixtures.d.ts +80 -0
- package/dist/ai/providers/gemini/testing/gemini-fixtures.d.ts.map +1 -0
- package/dist/ai/providers/gemini/testing/gemini-fixtures.js +118 -0
- package/dist/ai/providers/gemini/testing/gemini-fixtures.js.map +1 -0
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.d.ts +82 -0
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.d.ts.map +1 -0
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.js +342 -0
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.js.map +1 -0
- package/dist/ai/providers/openai/openai-audio.mapper.d.ts +42 -0
- package/dist/ai/providers/openai/openai-audio.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-audio.mapper.js +266 -0
- package/dist/ai/providers/openai/openai-audio.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai-call-telemetry.d.ts +25 -0
- package/dist/ai/providers/openai/openai-call-telemetry.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-call-telemetry.js +93 -0
- package/dist/ai/providers/openai/openai-call-telemetry.js.map +1 -0
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.d.ts +41 -0
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.js +173 -0
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai-chat-completions.engine.d.ts +33 -0
- package/dist/ai/providers/openai/openai-chat-completions.engine.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-chat-completions.engine.js +165 -0
- package/dist/ai/providers/openai/openai-chat-completions.engine.js.map +1 -0
- package/dist/ai/providers/openai/openai-chat-completions.mapper.d.ts +42 -0
- package/dist/ai/providers/openai/openai-chat-completions.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-chat-completions.mapper.js +304 -0
- package/dist/ai/providers/openai/openai-chat-completions.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai-client.factory.d.ts +40 -0
- package/dist/ai/providers/openai/openai-client.factory.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-client.factory.js +96 -0
- package/dist/ai/providers/openai/openai-client.factory.js.map +1 -0
- package/dist/ai/providers/openai/openai-embeddings.mapper.d.ts +25 -0
- package/dist/ai/providers/openai/openai-embeddings.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-embeddings.mapper.js +81 -0
- package/dist/ai/providers/openai/openai-embeddings.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai-errors.d.ts +45 -0
- package/dist/ai/providers/openai/openai-errors.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-errors.js +247 -0
- package/dist/ai/providers/openai/openai-errors.js.map +1 -0
- package/dist/ai/providers/openai/openai-family-guards.d.ts +4 -0
- package/dist/ai/providers/openai/openai-family-guards.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-family-guards.js +19 -0
- package/dist/ai/providers/openai/openai-family-guards.js.map +1 -0
- package/dist/ai/providers/openai/openai-images.mapper.d.ts +23 -0
- package/dist/ai/providers/openai/openai-images.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-images.mapper.js +164 -0
- package/dist/ai/providers/openai/openai-images.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai-model-catalog.d.ts +36 -0
- package/dist/ai/providers/openai/openai-model-catalog.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-model-catalog.js +209 -0
- package/dist/ai/providers/openai/openai-model-catalog.js.map +1 -0
- package/dist/ai/providers/openai/openai-realtime.mapper.d.ts +18 -0
- package/dist/ai/providers/openai/openai-realtime.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-realtime.mapper.js +159 -0
- package/dist/ai/providers/openai/openai-realtime.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai-redirect-guard.d.ts +9 -0
- package/dist/ai/providers/openai/openai-redirect-guard.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-redirect-guard.js +61 -0
- package/dist/ai/providers/openai/openai-redirect-guard.js.map +1 -0
- package/dist/ai/providers/openai/openai-responses.engine.d.ts +50 -0
- package/dist/ai/providers/openai/openai-responses.engine.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-responses.engine.js +206 -0
- package/dist/ai/providers/openai/openai-responses.engine.js.map +1 -0
- package/dist/ai/providers/openai/openai-responses.mapper.d.ts +64 -0
- package/dist/ai/providers/openai/openai-responses.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-responses.mapper.js +580 -0
- package/dist/ai/providers/openai/openai-responses.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai-stream.mapper.d.ts +28 -0
- package/dist/ai/providers/openai/openai-stream.mapper.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai-stream.mapper.js +139 -0
- package/dist/ai/providers/openai/openai-stream.mapper.js.map +1 -0
- package/dist/ai/providers/openai/openai.adapter.d.ts +56 -0
- package/dist/ai/providers/openai/openai.adapter.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai.adapter.js +241 -0
- package/dist/ai/providers/openai/openai.adapter.js.map +1 -0
- package/dist/ai/providers/openai/openai.module.d.ts +11 -0
- package/dist/ai/providers/openai/openai.module.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai.module.js +32 -0
- package/dist/ai/providers/openai/openai.module.js.map +1 -0
- package/dist/ai/providers/openai/openai.provider-definition.d.ts +12 -0
- package/dist/ai/providers/openai/openai.provider-definition.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai.provider-definition.js +24 -0
- package/dist/ai/providers/openai/openai.provider-definition.js.map +1 -0
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.d.ts +24 -0
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.d.ts.map +1 -0
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.js +72 -0
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.js.map +1 -0
- package/dist/ai/providers/openai/testing/conformance-responders.d.ts +7 -0
- package/dist/ai/providers/openai/testing/conformance-responders.d.ts.map +1 -0
- package/dist/ai/providers/openai/testing/conformance-responders.js +64 -0
- package/dist/ai/providers/openai/testing/conformance-responders.js.map +1 -0
- package/dist/ai/providers/openai/testing/openai-fixtures.d.ts +52 -0
- package/dist/ai/providers/openai/testing/openai-fixtures.d.ts.map +1 -0
- package/dist/ai/providers/openai/testing/openai-fixtures.js +208 -0
- package/dist/ai/providers/openai/testing/openai-fixtures.js.map +1 -0
- package/dist/ai/providers/openai/testing/openai-mock-transport.d.ts +242 -0
- package/dist/ai/providers/openai/testing/openai-mock-transport.d.ts.map +1 -0
- package/dist/ai/providers/openai/testing/openai-mock-transport.js +523 -0
- package/dist/ai/providers/openai/testing/openai-mock-transport.js.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.d.ts +16 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.d.ts.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.js +74 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.js.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.d.ts +13 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.d.ts.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.js +29 -0
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.js.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.d.ts +40 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.d.ts.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.js +184 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.js.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.module.d.ts +13 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.module.d.ts.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.module.js +34 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.module.js.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.provider-definition.d.ts +12 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.provider-definition.d.ts.map +1 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.provider-definition.js +28 -0
- package/dist/ai/providers/openai-compatible/openai-compatible.provider-definition.js.map +1 -0
- package/dist/ai/runtime/ai-audio-run-request.d.ts +45 -0
- package/dist/ai/runtime/ai-audio-run-request.d.ts.map +1 -0
- package/dist/ai/runtime/ai-audio-run-request.js +76 -0
- package/dist/ai/runtime/ai-audio-run-request.js.map +1 -0
- package/dist/ai/runtime/ai-audio-speech.handler.d.ts +22 -0
- package/dist/ai/runtime/ai-audio-speech.handler.d.ts.map +1 -0
- package/dist/ai/runtime/ai-audio-speech.handler.js +142 -0
- package/dist/ai/runtime/ai-audio-speech.handler.js.map +1 -0
- package/dist/ai/runtime/ai-audio-transcribe.handler.d.ts +18 -0
- package/dist/ai/runtime/ai-audio-transcribe.handler.d.ts.map +1 -0
- package/dist/ai/runtime/ai-audio-transcribe.handler.js +102 -0
- package/dist/ai/runtime/ai-audio-transcribe.handler.js.map +1 -0
- package/dist/ai/runtime/ai-hosted-outputs.d.ts +36 -0
- package/dist/ai/runtime/ai-hosted-outputs.d.ts.map +1 -0
- package/dist/ai/runtime/ai-hosted-outputs.js +94 -0
- package/dist/ai/runtime/ai-hosted-outputs.js.map +1 -0
- package/dist/ai/runtime/ai-image-generate.handler.d.ts +22 -0
- package/dist/ai/runtime/ai-image-generate.handler.d.ts.map +1 -0
- package/dist/ai/runtime/ai-image-generate.handler.js +133 -0
- package/dist/ai/runtime/ai-image-generate.handler.js.map +1 -0
- package/dist/ai/runtime/ai-image-run-request.d.ts +41 -0
- package/dist/ai/runtime/ai-image-run-request.d.ts.map +1 -0
- package/dist/ai/runtime/ai-image-run-request.js +78 -0
- package/dist/ai/runtime/ai-image-run-request.js.map +1 -0
- package/dist/ai/runtime/ai-limits.service.d.ts +83 -0
- package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -0
- package/dist/ai/runtime/ai-limits.service.js +366 -0
- package/dist/ai/runtime/ai-limits.service.js.map +1 -0
- package/dist/ai/runtime/ai-media-run.handler.d.ts +67 -0
- package/dist/ai/runtime/ai-media-run.handler.d.ts.map +1 -0
- package/dist/ai/runtime/ai-media-run.handler.js +219 -0
- package/dist/ai/runtime/ai-media-run.handler.js.map +1 -0
- package/dist/ai/runtime/ai-provider-filename.d.ts +3 -0
- package/dist/ai/runtime/ai-provider-filename.d.ts.map +1 -0
- package/dist/ai/runtime/ai-provider-filename.js +66 -0
- package/dist/ai/runtime/ai-provider-filename.js.map +1 -0
- package/dist/ai/runtime/ai-response-run.handler.d.ts +47 -0
- package/dist/ai/runtime/ai-response-run.handler.d.ts.map +1 -0
- package/dist/ai/runtime/ai-response-run.handler.js +255 -0
- package/dist/ai/runtime/ai-response-run.handler.js.map +1 -0
- package/dist/ai/runtime/ai-run-operation.d.ts +7 -0
- package/dist/ai/runtime/ai-run-operation.d.ts.map +1 -0
- package/dist/ai/runtime/ai-run-operation.js +32 -0
- package/dist/ai/runtime/ai-run-operation.js.map +1 -0
- package/dist/ai/runtime/ai-run-request.d.ts +124 -0
- package/dist/ai/runtime/ai-run-request.d.ts.map +1 -0
- package/dist/ai/runtime/ai-run-request.js +182 -0
- package/dist/ai/runtime/ai-run-request.js.map +1 -0
- package/dist/ai/runtime/ai-runs-purge.handler.d.ts +39 -0
- package/dist/ai/runtime/ai-runs-purge.handler.d.ts.map +1 -0
- package/dist/ai/runtime/ai-runs-purge.handler.js +117 -0
- package/dist/ai/runtime/ai-runs-purge.handler.js.map +1 -0
- package/dist/ai/runtime/ai-runs.service.d.ts +137 -0
- package/dist/ai/runtime/ai-runs.service.d.ts.map +1 -0
- package/dist/ai/runtime/ai-runs.service.js +306 -0
- package/dist/ai/runtime/ai-runs.service.js.map +1 -0
- package/dist/ai/runtime/ai-runtime.module.d.ts +10 -0
- package/dist/ai/runtime/ai-runtime.module.d.ts.map +1 -0
- package/dist/ai/runtime/ai-runtime.module.js +76 -0
- package/dist/ai/runtime/ai-runtime.module.js.map +1 -0
- package/dist/ai/runtime/ai-runtime.types.d.ts +460 -0
- package/dist/ai/runtime/ai-runtime.types.d.ts.map +1 -0
- package/dist/ai/runtime/ai-runtime.types.js +37 -0
- package/dist/ai/runtime/ai-runtime.types.js.map +1 -0
- package/dist/ai/runtime/ai-tool-loop.d.ts +18 -0
- package/dist/ai/runtime/ai-tool-loop.d.ts.map +1 -0
- package/dist/ai/runtime/ai-tool-loop.js +207 -0
- package/dist/ai/runtime/ai-tool-loop.js.map +1 -0
- package/dist/ai/runtime/ai-transcription-extras.d.ts +25 -0
- package/dist/ai/runtime/ai-transcription-extras.d.ts.map +1 -0
- package/dist/ai/runtime/ai-transcription-extras.js +66 -0
- package/dist/ai/runtime/ai-transcription-extras.js.map +1 -0
- package/dist/ai/runtime/ai-usage.recorder.d.ts +69 -0
- package/dist/ai/runtime/ai-usage.recorder.d.ts.map +1 -0
- package/dist/ai/runtime/ai-usage.recorder.js +143 -0
- package/dist/ai/runtime/ai-usage.recorder.js.map +1 -0
- package/dist/ai/runtime/ai.service.d.ts +624 -0
- package/dist/ai/runtime/ai.service.d.ts.map +1 -0
- package/dist/ai/runtime/ai.service.js +1848 -0
- package/dist/ai/runtime/ai.service.js.map +1 -0
- package/dist/ai/runtime/index.d.ts +6 -0
- package/dist/ai/runtime/index.d.ts.map +1 -0
- package/dist/ai/runtime/index.js +32 -0
- package/dist/ai/runtime/index.js.map +1 -0
- package/dist/ai/runtime/target-resolver.d.ts +91 -0
- package/dist/ai/runtime/target-resolver.d.ts.map +1 -0
- package/dist/ai/runtime/target-resolver.js +121 -0
- package/dist/ai/runtime/target-resolver.js.map +1 -0
- package/dist/ai/storage/ai-output-writer.d.ts +76 -0
- package/dist/ai/storage/ai-output-writer.d.ts.map +1 -0
- package/dist/ai/storage/ai-output-writer.js +208 -0
- package/dist/ai/storage/ai-output-writer.js.map +1 -0
- package/dist/ai/storage/ai-storage-errors.d.ts +13 -0
- package/dist/ai/storage/ai-storage-errors.d.ts.map +1 -0
- package/dist/ai/storage/ai-storage-errors.js +67 -0
- package/dist/ai/storage/ai-storage-errors.js.map +1 -0
- package/dist/ai/storage/ai-storage-input.resolver.d.ts +101 -0
- package/dist/ai/storage/ai-storage-input.resolver.d.ts.map +1 -0
- package/dist/ai/storage/ai-storage-input.resolver.js +215 -0
- package/dist/ai/storage/ai-storage-input.resolver.js.map +1 -0
- package/dist/ai/storage/ai-storage-key-prefixes.d.ts +16 -0
- package/dist/ai/storage/ai-storage-key-prefixes.d.ts.map +1 -0
- package/dist/ai/storage/ai-storage-key-prefixes.js +46 -0
- package/dist/ai/storage/ai-storage-key-prefixes.js.map +1 -0
- package/dist/ai/storage/ai-storage.module.d.ts +18 -0
- package/dist/ai/storage/ai-storage.module.d.ts.map +1 -0
- package/dist/ai/storage/ai-storage.module.js +67 -0
- package/dist/ai/storage/ai-storage.module.js.map +1 -0
- package/dist/ai/storage/index.d.ts +5 -0
- package/dist/ai/storage/index.d.ts.map +1 -0
- package/dist/ai/storage/index.js +16 -0
- package/dist/ai/storage/index.js.map +1 -0
- package/dist/ai/storage/mime-type-match.d.ts +20 -0
- package/dist/ai/storage/mime-type-match.d.ts.map +1 -0
- package/dist/ai/storage/mime-type-match.js +30 -0
- package/dist/ai/storage/mime-type-match.js.map +1 -0
- package/dist/ai/testing/ai-runtime-harness.d.ts +387 -0
- package/dist/ai/testing/ai-runtime-harness.d.ts.map +1 -0
- package/dist/ai/testing/ai-runtime-harness.js +511 -0
- package/dist/ai/testing/ai-runtime-harness.js.map +1 -0
- package/dist/ai/testing/conformance/ai-conformance-fixture.d.ts +187 -0
- package/dist/ai/testing/conformance/ai-conformance-fixture.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-conformance-fixture.js +117 -0
- package/dist/ai/testing/conformance/ai-conformance-fixture.js.map +1 -0
- package/dist/ai/testing/conformance/ai-egress-checks.d.ts +50 -0
- package/dist/ai/testing/conformance/ai-egress-checks.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-egress-checks.js +122 -0
- package/dist/ai/testing/conformance/ai-egress-checks.js.map +1 -0
- package/dist/ai/testing/conformance/ai-http-client.d.ts +14 -0
- package/dist/ai/testing/conformance/ai-http-client.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-http-client.js +30 -0
- package/dist/ai/testing/conformance/ai-http-client.js.map +1 -0
- package/dist/ai/testing/conformance/ai-jobs-server-only.suite.d.ts +74 -0
- package/dist/ai/testing/conformance/ai-jobs-server-only.suite.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-jobs-server-only.suite.js +129 -0
- package/dist/ai/testing/conformance/ai-jobs-server-only.suite.js.map +1 -0
- package/dist/ai/testing/conformance/ai-key-policy.suite.d.ts +39 -0
- package/dist/ai/testing/conformance/ai-key-policy.suite.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-key-policy.suite.js +642 -0
- package/dist/ai/testing/conformance/ai-key-policy.suite.js.map +1 -0
- package/dist/ai/testing/conformance/ai-kill-switch.suite.d.ts +31 -0
- package/dist/ai/testing/conformance/ai-kill-switch.suite.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-kill-switch.suite.js +389 -0
- package/dist/ai/testing/conformance/ai-kill-switch.suite.js.map +1 -0
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.d.ts +150 -0
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js +359 -0
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js.map +1 -0
- package/dist/ai/testing/conformance/ai-orchestration-boundary.registered.d.ts +11 -0
- package/dist/ai/testing/conformance/ai-orchestration-boundary.registered.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-orchestration-boundary.registered.js +24 -0
- package/dist/ai/testing/conformance/ai-orchestration-boundary.registered.js.map +1 -0
- package/dist/ai/testing/conformance/ai-rbac-matrix.suite.d.ts +29 -0
- package/dist/ai/testing/conformance/ai-rbac-matrix.suite.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-rbac-matrix.suite.js +173 -0
- package/dist/ai/testing/conformance/ai-rbac-matrix.suite.js.map +1 -0
- package/dist/ai/testing/conformance/ai-route-checks.d.ts +134 -0
- package/dist/ai/testing/conformance/ai-route-checks.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-route-checks.js +228 -0
- package/dist/ai/testing/conformance/ai-route-checks.js.map +1 -0
- package/dist/ai/testing/conformance/ai-secret-egress.suite.d.ts +25 -0
- package/dist/ai/testing/conformance/ai-secret-egress.suite.d.ts.map +1 -0
- package/dist/ai/testing/conformance/ai-secret-egress.suite.js +1043 -0
- package/dist/ai/testing/conformance/ai-secret-egress.suite.js.map +1 -0
- package/dist/ai/testing/conformance/orchestration-boundary.suite.d.ts +108 -0
- package/dist/ai/testing/conformance/orchestration-boundary.suite.d.ts.map +1 -0
- package/dist/ai/testing/conformance/orchestration-boundary.suite.js +196 -0
- package/dist/ai/testing/conformance/orchestration-boundary.suite.js.map +1 -0
- package/dist/ai/testing/conformance/register.d.ts +26 -0
- package/dist/ai/testing/conformance/register.d.ts.map +1 -0
- package/dist/ai/testing/conformance/register.js +27 -0
- package/dist/ai/testing/conformance/register.js.map +1 -0
- package/dist/ai/testing/conformance.d.ts +229 -0
- package/dist/ai/testing/conformance.d.ts.map +1 -0
- package/dist/ai/testing/conformance.js +666 -0
- package/dist/ai/testing/conformance.js.map +1 -0
- package/dist/ai/testing/fake-ai-provider.d.ts +379 -0
- package/dist/ai/testing/fake-ai-provider.d.ts.map +1 -0
- package/dist/ai/testing/fake-ai-provider.js +833 -0
- package/dist/ai/testing/fake-ai-provider.js.map +1 -0
- package/dist/ai/testing/in-memory-ai-keys-prisma.d.ts +137 -0
- package/dist/ai/testing/in-memory-ai-keys-prisma.d.ts.map +1 -0
- package/dist/ai/testing/in-memory-ai-keys-prisma.js +192 -0
- package/dist/ai/testing/in-memory-ai-keys-prisma.js.map +1 -0
- package/dist/ai/testing/in-memory-ai-storage.d.ts +132 -0
- package/dist/ai/testing/in-memory-ai-storage.d.ts.map +1 -0
- package/dist/ai/testing/in-memory-ai-storage.js +196 -0
- package/dist/ai/testing/in-memory-ai-storage.js.map +1 -0
- package/dist/ai/testing/index.d.ts +32 -0
- package/dist/ai/testing/index.d.ts.map +1 -0
- package/dist/ai/testing/index.js +116 -0
- package/dist/ai/testing/index.js.map +1 -0
- package/dist/ai/usage/ai-usage-admin.controller.d.ts +15 -0
- package/dist/ai/usage/ai-usage-admin.controller.d.ts.map +1 -0
- package/dist/ai/usage/ai-usage-admin.controller.js +122 -0
- package/dist/ai/usage/ai-usage-admin.controller.js.map +1 -0
- package/dist/ai/usage/ai-usage-purge.handler.d.ts +42 -0
- package/dist/ai/usage/ai-usage-purge.handler.d.ts.map +1 -0
- package/dist/ai/usage/ai-usage-purge.handler.js +119 -0
- package/dist/ai/usage/ai-usage-purge.handler.js.map +1 -0
- package/dist/ai/usage/ai-usage-purge.task.d.ts +10 -0
- package/dist/ai/usage/ai-usage-purge.task.d.ts.map +1 -0
- package/dist/ai/usage/ai-usage-purge.task.js +65 -0
- package/dist/ai/usage/ai-usage-purge.task.js.map +1 -0
- package/dist/ai/usage/ai-usage.controller.d.ts +14 -0
- package/dist/ai/usage/ai-usage.controller.d.ts.map +1 -0
- package/dist/ai/usage/ai-usage.controller.js +86 -0
- package/dist/ai/usage/ai-usage.controller.js.map +1 -0
- package/dist/ai/usage/ai-usage.module.d.ts +3 -0
- package/dist/ai/usage/ai-usage.module.d.ts.map +1 -0
- package/dist/ai/usage/ai-usage.module.js +40 -0
- package/dist/ai/usage/ai-usage.module.js.map +1 -0
- package/dist/ai/usage/ai-usage.service.d.ts +91 -0
- package/dist/ai/usage/ai-usage.service.d.ts.map +1 -0
- package/dist/ai/usage/ai-usage.service.js +461 -0
- package/dist/ai/usage/ai-usage.service.js.map +1 -0
- package/dist/ai/usage/dto/ai-usage.dto.d.ts +266 -0
- package/dist/ai/usage/dto/ai-usage.dto.d.ts.map +1 -0
- package/dist/ai/usage/dto/ai-usage.dto.js +160 -0
- package/dist/ai/usage/dto/ai-usage.dto.js.map +1 -0
- package/dist/android-app/android-app-push.service.d.ts +53 -0
- package/dist/android-app/android-app-push.service.d.ts.map +1 -0
- package/dist/android-app/android-app-push.service.js +162 -0
- package/dist/android-app/android-app-push.service.js.map +1 -0
- package/dist/android-app/android-app.controller.d.ts +37 -0
- package/dist/android-app/android-app.controller.d.ts.map +1 -0
- package/dist/android-app/android-app.controller.js +143 -0
- package/dist/android-app/android-app.controller.js.map +1 -0
- package/dist/android-app/android-app.key-prefixes.d.ts +27 -0
- package/dist/android-app/android-app.key-prefixes.d.ts.map +1 -0
- package/dist/android-app/android-app.key-prefixes.js +47 -0
- package/dist/android-app/android-app.key-prefixes.js.map +1 -0
- package/dist/android-app/android-app.module.d.ts +33 -0
- package/dist/android-app/android-app.module.d.ts.map +1 -0
- package/dist/android-app/android-app.module.js +75 -0
- package/dist/android-app/android-app.module.js.map +1 -0
- package/dist/android-app/android-app.options.d.ts +58 -0
- package/dist/android-app/android-app.options.d.ts.map +1 -0
- package/dist/android-app/android-app.options.js +39 -0
- package/dist/android-app/android-app.options.js.map +1 -0
- package/dist/android-app/android-app.service.d.ts +100 -0
- package/dist/android-app/android-app.service.d.ts.map +1 -0
- package/dist/android-app/android-app.service.js +227 -0
- package/dist/android-app/android-app.service.js.map +1 -0
- package/dist/android-app/asset-links.controller.d.ts +19 -0
- package/dist/android-app/asset-links.controller.d.ts.map +1 -0
- package/dist/android-app/asset-links.controller.js +87 -0
- package/dist/android-app/asset-links.controller.js.map +1 -0
- package/dist/android-app/data/android-app-db.d.ts +117 -0
- package/dist/android-app/data/android-app-db.d.ts.map +1 -0
- package/dist/android-app/data/android-app-db.js +48 -0
- package/dist/android-app/data/android-app-db.js.map +1 -0
- package/dist/android-app/device-sources.d.ts +72 -0
- package/dist/android-app/device-sources.d.ts.map +1 -0
- package/dist/android-app/device-sources.js +96 -0
- package/dist/android-app/device-sources.js.map +1 -0
- package/dist/android-app/doctor/android-assetlinks.doctor-check.d.ts +44 -0
- package/dist/android-app/doctor/android-assetlinks.doctor-check.d.ts.map +1 -0
- package/dist/android-app/doctor/android-assetlinks.doctor-check.js +101 -0
- package/dist/android-app/doctor/android-assetlinks.doctor-check.js.map +1 -0
- package/dist/android-app/doctor/android-releases.doctor-check.d.ts +64 -0
- package/dist/android-app/doctor/android-releases.doctor-check.d.ts.map +1 -0
- package/dist/android-app/doctor/android-releases.doctor-check.js +120 -0
- package/dist/android-app/doctor/android-releases.doctor-check.js.map +1 -0
- package/dist/android-app/dto/android-app.dto.d.ts +135 -0
- package/dist/android-app/dto/android-app.dto.d.ts.map +1 -0
- package/dist/android-app/dto/android-app.dto.js +62 -0
- package/dist/android-app/dto/android-app.dto.js.map +1 -0
- package/dist/android-app/index.d.ts +26 -0
- package/dist/android-app/index.d.ts.map +1 -0
- package/dist/android-app/index.js +80 -0
- package/dist/android-app/index.js.map +1 -0
- package/dist/android-app/releases/android-release-admin.controller.d.ts +41 -0
- package/dist/android-app/releases/android-release-admin.controller.d.ts.map +1 -0
- package/dist/android-app/releases/android-release-admin.controller.js +208 -0
- package/dist/android-app/releases/android-release-admin.controller.js.map +1 -0
- package/dist/android-app/releases/android-release.controller.d.ts +35 -0
- package/dist/android-app/releases/android-release.controller.d.ts.map +1 -0
- package/dist/android-app/releases/android-release.controller.js +142 -0
- package/dist/android-app/releases/android-release.controller.js.map +1 -0
- package/dist/android-app/releases/android-release.service.d.ts +245 -0
- package/dist/android-app/releases/android-release.service.d.ts.map +1 -0
- package/dist/android-app/releases/android-release.service.js +575 -0
- package/dist/android-app/releases/android-release.service.js.map +1 -0
- package/dist/android-app/releases/apk-inspector.d.ts +52 -0
- package/dist/android-app/releases/apk-inspector.d.ts.map +1 -0
- package/dist/android-app/releases/apk-inspector.js +119 -0
- package/dist/android-app/releases/apk-inspector.js.map +1 -0
- package/dist/android-app/releases/download-token.d.ts +67 -0
- package/dist/android-app/releases/download-token.d.ts.map +1 -0
- package/dist/android-app/releases/download-token.js +108 -0
- package/dist/android-app/releases/download-token.js.map +1 -0
- package/dist/android-app/testing/conformance.d.ts +63 -0
- package/dist/android-app/testing/conformance.d.ts.map +1 -0
- package/dist/android-app/testing/conformance.js +151 -0
- package/dist/android-app/testing/conformance.js.map +1 -0
- package/dist/android-app/testing/index.d.ts +3 -0
- package/dist/android-app/testing/index.d.ts.map +1 -0
- package/dist/android-app/testing/index.js +13 -0
- package/dist/android-app/testing/index.js.map +1 -0
- package/dist/android-app/trusted-apps-validation.pipe.d.ts +29 -0
- package/dist/android-app/trusted-apps-validation.pipe.d.ts.map +1 -0
- package/dist/android-app/trusted-apps-validation.pipe.js +80 -0
- package/dist/android-app/trusted-apps-validation.pipe.js.map +1 -0
- package/dist/android-app/user-data.d.ts +18 -0
- package/dist/android-app/user-data.d.ts.map +1 -0
- package/dist/android-app/user-data.js +35 -0
- package/dist/android-app/user-data.js.map +1 -0
- package/dist/core/crypto/secret-cipher.d.ts +38 -0
- package/dist/core/crypto/secret-cipher.d.ts.map +1 -1
- package/dist/core/crypto/secret-cipher.js +63 -4
- package/dist/core/crypto/secret-cipher.js.map +1 -1
- package/dist/core/data-access/access-reason.registry.d.ts +95 -0
- package/dist/core/data-access/access-reason.registry.d.ts.map +1 -0
- package/dist/core/data-access/access-reason.registry.js +136 -0
- package/dist/core/data-access/access-reason.registry.js.map +1 -0
- package/dist/core/data-access/index.d.ts +6 -0
- package/dist/core/data-access/index.d.ts.map +1 -1
- package/dist/core/data-access/index.js +24 -1
- package/dist/core/data-access/index.js.map +1 -1
- package/dist/core/data-access/model-ownership.d.ts +112 -0
- package/dist/core/data-access/model-ownership.d.ts.map +1 -0
- package/dist/core/data-access/model-ownership.js +142 -0
- package/dist/core/data-access/model-ownership.js.map +1 -0
- package/dist/core/data-access/rls.d.ts +243 -0
- package/dist/core/data-access/rls.d.ts.map +1 -0
- package/dist/core/data-access/rls.js +357 -0
- package/dist/core/data-access/rls.js.map +1 -0
- package/dist/core/database-url.d.ts +38 -0
- package/dist/core/database-url.d.ts.map +1 -0
- package/dist/core/database-url.js +52 -0
- package/dist/core/database-url.js.map +1 -0
- package/dist/core/errors/error-codes.d.ts +114 -0
- package/dist/core/errors/error-codes.d.ts.map +1 -0
- package/dist/core/errors/error-codes.js +140 -0
- package/dist/core/errors/error-codes.js.map +1 -0
- package/dist/core/errors/error.dto.d.ts +1 -1
- package/dist/core/errors/error.dto.d.ts.map +1 -1
- package/dist/core/errors/error.dto.js +12 -18
- package/dist/core/errors/error.dto.js.map +1 -1
- package/dist/core/errors/http-exception.filter.d.ts +47 -10
- package/dist/core/errors/http-exception.filter.d.ts.map +1 -1
- package/dist/core/errors/http-exception.filter.js +82 -53
- package/dist/core/errors/http-exception.filter.js.map +1 -1
- package/dist/core/host/platform-host.d.ts +11 -2
- package/dist/core/host/platform-host.d.ts.map +1 -1
- package/dist/core/host/platform-host.js +16 -2
- package/dist/core/host/platform-host.js.map +1 -1
- package/dist/core/host/ports.js +2 -2
- package/dist/core/host/ports.js.map +1 -1
- package/dist/core/index.d.ts +81 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +90 -10
- package/dist/core/index.js.map +1 -1
- package/dist/core/maintenance/allow-during-maintenance.decorator.d.ts +33 -0
- package/dist/core/maintenance/allow-during-maintenance.decorator.d.ts.map +1 -0
- package/dist/core/maintenance/allow-during-maintenance.decorator.js +48 -0
- package/dist/core/maintenance/allow-during-maintenance.decorator.js.map +1 -0
- package/dist/core/openapi/api-data-response.decorator.d.ts +72 -0
- package/dist/core/openapi/api-data-response.decorator.d.ts.map +1 -0
- package/dist/core/openapi/api-data-response.decorator.js +133 -0
- package/dist/core/openapi/api-data-response.decorator.js.map +1 -0
- package/dist/core/permissions/index.d.ts +8 -0
- package/dist/core/permissions/index.d.ts.map +1 -0
- package/dist/core/permissions/index.js +23 -0
- package/dist/core/permissions/index.js.map +1 -0
- package/dist/core/permissions/permission-catalog.d.ts +135 -0
- package/dist/core/permissions/permission-catalog.d.ts.map +1 -0
- package/dist/core/permissions/permission-catalog.js +114 -0
- package/dist/core/permissions/permission-catalog.js.map +1 -0
- package/dist/core/permissions/permission-ids.d.ts +42 -0
- package/dist/core/permissions/permission-ids.d.ts.map +1 -0
- package/dist/core/permissions/permission-ids.js +48 -0
- package/dist/core/permissions/permission-ids.js.map +1 -0
- package/dist/core/permissions/permission.registry.d.ts +181 -0
- package/dist/core/permissions/permission.registry.d.ts.map +1 -0
- package/dist/core/permissions/permission.registry.js +285 -0
- package/dist/core/permissions/permission.registry.js.map +1 -0
- package/dist/core/permissions/permission.types.d.ts +104 -0
- package/dist/core/permissions/permission.types.d.ts.map +1 -0
- package/dist/core/permissions/permission.types.js +12 -0
- package/dist/core/permissions/permission.types.js.map +1 -0
- package/dist/core/pluggable/describe-config-fields.d.ts +35 -0
- package/dist/core/pluggable/describe-config-fields.d.ts.map +1 -0
- package/dist/core/pluggable/describe-config-fields.js +133 -0
- package/dist/core/pluggable/describe-config-fields.js.map +1 -0
- package/dist/core/pluggable/index.d.ts +5 -0
- package/dist/core/pluggable/index.d.ts.map +1 -0
- package/dist/core/pluggable/index.js +14 -0
- package/dist/core/pluggable/index.js.map +1 -0
- package/dist/core/pluggable/pluggable-errors.d.ts +46 -0
- package/dist/core/pluggable/pluggable-errors.d.ts.map +1 -0
- package/dist/core/pluggable/pluggable-errors.js +73 -0
- package/dist/core/pluggable/pluggable-errors.js.map +1 -0
- package/dist/core/pluggable/pluggable-kind.d.ts +194 -0
- package/dist/core/pluggable/pluggable-kind.d.ts.map +1 -0
- package/dist/core/pluggable/pluggable-kind.js +200 -0
- package/dist/core/pluggable/pluggable-kind.js.map +1 -0
- package/dist/core/principal/credential-kinds.d.ts +132 -0
- package/dist/core/principal/credential-kinds.d.ts.map +1 -0
- package/dist/core/principal/credential-kinds.js +185 -0
- package/dist/core/principal/credential-kinds.js.map +1 -0
- package/dist/core/principal/index.d.ts +6 -3
- package/dist/core/principal/index.d.ts.map +1 -1
- package/dist/core/principal/index.js +15 -0
- package/dist/core/principal/index.js.map +1 -1
- package/dist/core/principal/principal.types.d.ts +19 -7
- package/dist/core/principal/principal.types.d.ts.map +1 -1
- package/dist/core/principal/principal.types.js +4 -4
- package/dist/core/principal/principal.types.js.map +1 -1
- package/dist/core/registry/registry.d.ts +1 -1
- package/dist/core/registry/registry.js +1 -1
- package/dist/core/testing/index.d.ts +5 -0
- package/dist/core/testing/index.d.ts.map +1 -0
- package/dist/core/testing/index.js +13 -0
- package/dist/core/testing/index.js.map +1 -0
- package/dist/core/testing/pluggable-conformance.d.ts +56 -0
- package/dist/core/testing/pluggable-conformance.d.ts.map +1 -0
- package/dist/core/testing/pluggable-conformance.js +110 -0
- package/dist/core/testing/pluggable-conformance.js.map +1 -0
- package/dist/core/testing/vocabulary-conformance.d.ts +34 -0
- package/dist/core/testing/vocabulary-conformance.d.ts.map +1 -0
- package/dist/core/testing/vocabulary-conformance.js +149 -0
- package/dist/core/testing/vocabulary-conformance.js.map +1 -0
- package/dist/credentials/credential-internals.d.ts +79 -0
- package/dist/credentials/credential-internals.d.ts.map +1 -0
- package/dist/credentials/credential-internals.js +154 -0
- package/dist/credentials/credential-internals.js.map +1 -0
- package/dist/credentials/credentials.module.d.ts +16 -0
- package/dist/credentials/credentials.module.d.ts.map +1 -0
- package/dist/credentials/credentials.module.js +55 -0
- package/dist/credentials/credentials.module.js.map +1 -0
- package/dist/credentials/credentials.service.d.ts +117 -0
- package/dist/credentials/credentials.service.d.ts.map +1 -0
- package/dist/credentials/credentials.service.js +392 -0
- package/dist/credentials/credentials.service.js.map +1 -0
- package/dist/credentials/data/credentials-db.d.ts +134 -0
- package/dist/credentials/data/credentials-db.d.ts.map +1 -0
- package/dist/credentials/data/credentials-db.js +18 -0
- package/dist/credentials/data/credentials-db.js.map +1 -0
- package/dist/credentials/index.d.ts +17 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +43 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/credentials/interfaces/credential-info.interface.d.ts +59 -0
- package/dist/credentials/interfaces/credential-info.interface.d.ts.map +1 -0
- package/dist/credentials/interfaces/credential-info.interface.js +29 -0
- package/dist/credentials/interfaces/credential-info.interface.js.map +1 -0
- package/dist/credentials/interfaces/org-credential-info.interface.d.ts +36 -0
- package/dist/credentials/interfaces/org-credential-info.interface.d.ts.map +1 -0
- package/dist/credentials/interfaces/org-credential-info.interface.js +14 -0
- package/dist/credentials/interfaces/org-credential-info.interface.js.map +1 -0
- package/dist/credentials/interfaces/user-credential-info.interface.d.ts +50 -0
- package/dist/credentials/interfaces/user-credential-info.interface.d.ts.map +1 -0
- package/dist/credentials/interfaces/user-credential-info.interface.js +18 -0
- package/dist/credentials/interfaces/user-credential-info.interface.js.map +1 -0
- package/dist/credentials/org-credentials.module.d.ts +17 -0
- package/dist/credentials/org-credentials.module.d.ts.map +1 -0
- package/dist/credentials/org-credentials.module.js +45 -0
- package/dist/credentials/org-credentials.module.js.map +1 -0
- package/dist/credentials/org-credentials.service.d.ts +87 -0
- package/dist/credentials/org-credentials.service.d.ts.map +1 -0
- package/dist/credentials/org-credentials.service.js +270 -0
- package/dist/credentials/org-credentials.service.js.map +1 -0
- package/dist/credentials/ownership.d.ts +30 -0
- package/dist/credentials/ownership.d.ts.map +1 -0
- package/dist/credentials/ownership.js +74 -0
- package/dist/credentials/ownership.js.map +1 -0
- package/dist/credentials/registry.d.ts +181 -0
- package/dist/credentials/registry.d.ts.map +1 -0
- package/dist/credentials/registry.js +240 -0
- package/dist/credentials/registry.js.map +1 -0
- package/dist/credentials/testing/conformance.d.ts +90 -0
- package/dist/credentials/testing/conformance.d.ts.map +1 -0
- package/dist/credentials/testing/conformance.js +170 -0
- package/dist/credentials/testing/conformance.js.map +1 -0
- package/dist/credentials/testing/index.d.ts +5 -0
- package/dist/credentials/testing/index.d.ts.map +1 -0
- package/dist/credentials/testing/index.js +16 -0
- package/dist/credentials/testing/index.js.map +1 -0
- package/dist/credentials/testing/with-credential-purposes.d.ts +33 -0
- package/dist/credentials/testing/with-credential-purposes.d.ts.map +1 -0
- package/dist/credentials/testing/with-credential-purposes.js +28 -0
- package/dist/credentials/testing/with-credential-purposes.js.map +1 -0
- package/dist/credentials/user-credential.resolver.d.ts +110 -0
- package/dist/credentials/user-credential.resolver.d.ts.map +1 -0
- package/dist/credentials/user-credential.resolver.js +165 -0
- package/dist/credentials/user-credential.resolver.js.map +1 -0
- package/dist/credentials/user-credentials.module.d.ts +17 -0
- package/dist/credentials/user-credentials.module.d.ts.map +1 -0
- package/dist/credentials/user-credentials.module.js +59 -0
- package/dist/credentials/user-credentials.module.js.map +1 -0
- package/dist/credentials/user-credentials.service.d.ts +82 -0
- package/dist/credentials/user-credentials.service.d.ts.map +1 -0
- package/dist/credentials/user-credentials.service.js +292 -0
- package/dist/credentials/user-credentials.service.js.map +1 -0
- package/dist/db-backup/admin-connection.util.d.ts +521 -0
- package/dist/db-backup/admin-connection.util.d.ts.map +1 -0
- package/dist/db-backup/admin-connection.util.js +786 -0
- package/dist/db-backup/admin-connection.util.js.map +1 -0
- package/dist/db-backup/backup-target.d.ts +222 -0
- package/dist/db-backup/backup-target.d.ts.map +1 -0
- package/dist/db-backup/backup-target.js +237 -0
- package/dist/db-backup/backup-target.js.map +1 -0
- package/dist/db-backup/carry-over.registry.d.ts +58 -0
- package/dist/db-backup/carry-over.registry.d.ts.map +1 -0
- package/dist/db-backup/carry-over.registry.js +96 -0
- package/dist/db-backup/carry-over.registry.js.map +1 -0
- package/dist/db-backup/data/db-backup-db.d.ts +207 -0
- package/dist/db-backup/data/db-backup-db.d.ts.map +1 -0
- package/dist/db-backup/data/db-backup-db.js +51 -0
- package/dist/db-backup/data/db-backup-db.js.map +1 -0
- package/dist/db-backup/database-restore.service.d.ts +760 -0
- package/dist/db-backup/database-restore.service.d.ts.map +1 -0
- package/dist/db-backup/database-restore.service.js +2113 -0
- package/dist/db-backup/database-restore.service.js.map +1 -0
- package/dist/db-backup/db-backup-admin.service.d.ts +358 -0
- package/dist/db-backup/db-backup-admin.service.d.ts.map +1 -0
- package/dist/db-backup/db-backup-admin.service.js +952 -0
- package/dist/db-backup/db-backup-admin.service.js.map +1 -0
- package/dist/db-backup/db-backup-events.d.ts +42 -0
- package/dist/db-backup/db-backup-events.d.ts.map +1 -0
- package/dist/db-backup/db-backup-events.js +123 -0
- package/dist/db-backup/db-backup-events.js.map +1 -0
- package/dist/db-backup/db-backup-key-prefix.d.ts +25 -0
- package/dist/db-backup/db-backup-key-prefix.d.ts.map +1 -0
- package/dist/db-backup/db-backup-key-prefix.js +54 -0
- package/dist/db-backup/db-backup-key-prefix.js.map +1 -0
- package/dist/db-backup/db-backup-retention.service.d.ts +91 -0
- package/dist/db-backup/db-backup-retention.service.d.ts.map +1 -0
- package/dist/db-backup/db-backup-retention.service.js +250 -0
- package/dist/db-backup/db-backup-retention.service.js.map +1 -0
- package/dist/db-backup/db-backup-runner.service.d.ts +816 -0
- package/dist/db-backup/db-backup-runner.service.d.ts.map +1 -0
- package/dist/db-backup/db-backup-runner.service.js +1866 -0
- package/dist/db-backup/db-backup-runner.service.js.map +1 -0
- package/dist/db-backup/db-backup-storage.d.ts +124 -0
- package/dist/db-backup/db-backup-storage.d.ts.map +1 -0
- package/dist/db-backup/db-backup-storage.js +268 -0
- package/dist/db-backup/db-backup-storage.js.map +1 -0
- package/dist/db-backup/db-backup.constants.d.ts +46 -0
- package/dist/db-backup/db-backup.constants.d.ts.map +1 -0
- package/dist/db-backup/db-backup.constants.js +51 -0
- package/dist/db-backup/db-backup.constants.js.map +1 -0
- package/dist/db-backup/db-backup.controller.d.ts +61 -0
- package/dist/db-backup/db-backup.controller.d.ts.map +1 -0
- package/dist/db-backup/db-backup.controller.js +683 -0
- package/dist/db-backup/db-backup.controller.js.map +1 -0
- package/dist/db-backup/db-backup.errors.d.ts +291 -0
- package/dist/db-backup/db-backup.errors.d.ts.map +1 -0
- package/dist/db-backup/db-backup.errors.js +433 -0
- package/dist/db-backup/db-backup.errors.js.map +1 -0
- package/dist/db-backup/db-backup.module.d.ts +39 -0
- package/dist/db-backup/db-backup.module.d.ts.map +1 -0
- package/dist/db-backup/db-backup.module.js +401 -0
- package/dist/db-backup/db-backup.module.js.map +1 -0
- package/dist/db-backup/db-backup.permissions.d.ts +32 -0
- package/dist/db-backup/db-backup.permissions.d.ts.map +1 -0
- package/dist/db-backup/db-backup.permissions.js +62 -0
- package/dist/db-backup/db-backup.permissions.js.map +1 -0
- package/dist/db-backup/db-backup.registrations.d.ts +76 -0
- package/dist/db-backup/db-backup.registrations.d.ts.map +1 -0
- package/dist/db-backup/db-backup.registrations.js +129 -0
- package/dist/db-backup/db-backup.registrations.js.map +1 -0
- package/dist/db-backup/db-backup.system-settings.d.ts +200 -0
- package/dist/db-backup/db-backup.system-settings.d.ts.map +1 -0
- package/dist/db-backup/db-backup.system-settings.js +145 -0
- package/dist/db-backup/db-backup.system-settings.js.map +1 -0
- package/dist/db-backup/doctor/backup-mirrors.doctor-check.d.ts +58 -0
- package/dist/db-backup/doctor/backup-mirrors.doctor-check.d.ts.map +1 -0
- package/dist/db-backup/doctor/backup-mirrors.doctor-check.js +140 -0
- package/dist/db-backup/doctor/backup-mirrors.doctor-check.js.map +1 -0
- package/dist/db-backup/doctor/backup-pg-client.doctor-check.d.ts +32 -0
- package/dist/db-backup/doctor/backup-pg-client.doctor-check.d.ts.map +1 -0
- package/dist/db-backup/doctor/backup-pg-client.doctor-check.js +90 -0
- package/dist/db-backup/doctor/backup-pg-client.doctor-check.js.map +1 -0
- package/dist/db-backup/doctor/backup-rls.doctor-check.d.ts +67 -0
- package/dist/db-backup/doctor/backup-rls.doctor-check.d.ts.map +1 -0
- package/dist/db-backup/doctor/backup-rls.doctor-check.js +141 -0
- package/dist/db-backup/doctor/backup-rls.doctor-check.js.map +1 -0
- package/dist/db-backup/doctor/backup-schedule.doctor-check.d.ts +53 -0
- package/dist/db-backup/doctor/backup-schedule.doctor-check.d.ts.map +1 -0
- package/dist/db-backup/doctor/backup-schedule.doctor-check.js +136 -0
- package/dist/db-backup/doctor/backup-schedule.doctor-check.js.map +1 -0
- package/dist/db-backup/dto/db-backup-actions.dto.d.ts +26 -0
- package/dist/db-backup/dto/db-backup-actions.dto.d.ts.map +1 -0
- package/dist/db-backup/dto/db-backup-actions.dto.js +75 -0
- package/dist/db-backup/dto/db-backup-actions.dto.js.map +1 -0
- package/dist/db-backup/dto/db-backup-config.dto.d.ts +56 -0
- package/dist/db-backup/dto/db-backup-config.dto.d.ts.map +1 -0
- package/dist/db-backup/dto/db-backup-config.dto.js +64 -0
- package/dist/db-backup/dto/db-backup-config.dto.js.map +1 -0
- package/dist/db-backup/dto/db-backup-list-query.dto.d.ts +13 -0
- package/dist/db-backup/dto/db-backup-list-query.dto.d.ts.map +1 -0
- package/dist/db-backup/dto/db-backup-list-query.dto.js +46 -0
- package/dist/db-backup/dto/db-backup-list-query.dto.js.map +1 -0
- package/dist/db-backup/dto/db-backup-node-credential.dto.d.ts +20 -0
- package/dist/db-backup/dto/db-backup-node-credential.dto.d.ts.map +1 -0
- package/dist/db-backup/dto/db-backup-node-credential.dto.js +58 -0
- package/dist/db-backup/dto/db-backup-node-credential.dto.js.map +1 -0
- package/dist/db-backup/dto/db-backup-restore.dto.d.ts +244 -0
- package/dist/db-backup/dto/db-backup-restore.dto.d.ts.map +1 -0
- package/dist/db-backup/dto/db-backup-restore.dto.js +335 -0
- package/dist/db-backup/dto/db-backup-restore.dto.js.map +1 -0
- package/dist/db-backup/dto/db-backup-run.dto.d.ts +70 -0
- package/dist/db-backup/dto/db-backup-run.dto.d.ts.map +1 -0
- package/dist/db-backup/dto/db-backup-run.dto.js +170 -0
- package/dist/db-backup/dto/db-backup-run.dto.js.map +1 -0
- package/dist/db-backup/handlers/db-backup-run.handler.d.ts +171 -0
- package/dist/db-backup/handlers/db-backup-run.handler.d.ts.map +1 -0
- package/dist/db-backup/handlers/db-backup-run.handler.js +354 -0
- package/dist/db-backup/handlers/db-backup-run.handler.js.map +1 -0
- package/dist/db-backup/handlers/db-backup-sweep.handler.d.ts +117 -0
- package/dist/db-backup/handlers/db-backup-sweep.handler.d.ts.map +1 -0
- package/dist/db-backup/handlers/db-backup-sweep.handler.js +539 -0
- package/dist/db-backup/handlers/db-backup-sweep.handler.js.map +1 -0
- package/dist/db-backup/handlers/db-restore-old-db-drop.handler.d.ts +40 -0
- package/dist/db-backup/handlers/db-restore-old-db-drop.handler.d.ts.map +1 -0
- package/dist/db-backup/handlers/db-restore-old-db-drop.handler.js +122 -0
- package/dist/db-backup/handlers/db-restore-old-db-drop.handler.js.map +1 -0
- package/dist/db-backup/handlers/db-restore-run.handler.d.ts +55 -0
- package/dist/db-backup/handlers/db-restore-run.handler.d.ts.map +1 -0
- package/dist/db-backup/handlers/db-restore-run.handler.js +207 -0
- package/dist/db-backup/handlers/db-restore-run.handler.js.map +1 -0
- package/dist/db-backup/index.d.ts +49 -0
- package/dist/db-backup/index.d.ts.map +1 -0
- package/dist/db-backup/index.js +116 -0
- package/dist/db-backup/index.js.map +1 -0
- package/dist/db-backup/migration-state.util.d.ts +62 -0
- package/dist/db-backup/migration-state.util.d.ts.map +1 -0
- package/dist/db-backup/migration-state.util.js +69 -0
- package/dist/db-backup/migration-state.util.js.map +1 -0
- package/dist/db-backup/options.d.ts +160 -0
- package/dist/db-backup/options.d.ts.map +1 -0
- package/dist/db-backup/options.js +103 -0
- package/dist/db-backup/options.js.map +1 -0
- package/dist/db-backup/pg-dump.util.d.ts +314 -0
- package/dist/db-backup/pg-dump.util.d.ts.map +1 -0
- package/dist/db-backup/pg-dump.util.js +458 -0
- package/dist/db-backup/pg-dump.util.js.map +1 -0
- package/dist/db-backup/pg-job-role.broker.d.ts +451 -0
- package/dist/db-backup/pg-job-role.broker.d.ts.map +1 -0
- package/dist/db-backup/pg-job-role.broker.js +912 -0
- package/dist/db-backup/pg-job-role.broker.js.map +1 -0
- package/dist/db-backup/pg-restore.util.d.ts +150 -0
- package/dist/db-backup/pg-restore.util.d.ts.map +1 -0
- package/dist/db-backup/pg-restore.util.js +236 -0
- package/dist/db-backup/pg-restore.util.js.map +1 -0
- package/dist/db-backup/pg-version.util.d.ts +207 -0
- package/dist/db-backup/pg-version.util.d.ts.map +1 -0
- package/dist/db-backup/pg-version.util.js +310 -0
- package/dist/db-backup/pg-version.util.js.map +1 -0
- package/dist/db-backup/ports.d.ts +212 -0
- package/dist/db-backup/ports.d.ts.map +1 -0
- package/dist/db-backup/ports.js +100 -0
- package/dist/db-backup/ports.js.map +1 -0
- package/dist/db-backup/restore-gate.d.ts +34 -0
- package/dist/db-backup/restore-gate.d.ts.map +1 -0
- package/dist/db-backup/restore-gate.js +80 -0
- package/dist/db-backup/restore-gate.js.map +1 -0
- package/dist/db-backup/restore-gate.registry.d.ts +253 -0
- package/dist/db-backup/restore-gate.registry.d.ts.map +1 -0
- package/dist/db-backup/restore-gate.registry.js +182 -0
- package/dist/db-backup/restore-gate.registry.js.map +1 -0
- package/dist/db-backup/restore-gates.builtin.d.ts +134 -0
- package/dist/db-backup/restore-gates.builtin.d.ts.map +1 -0
- package/dist/db-backup/restore-gates.builtin.js +513 -0
- package/dist/db-backup/restore-gates.builtin.js.map +1 -0
- package/dist/db-backup/restore-preflight.service.d.ts +339 -0
- package/dist/db-backup/restore-preflight.service.d.ts.map +1 -0
- package/dist/db-backup/restore-preflight.service.js +551 -0
- package/dist/db-backup/restore-preflight.service.js.map +1 -0
- package/dist/db-backup/schedule.util.d.ts +249 -0
- package/dist/db-backup/schedule.util.d.ts.map +1 -0
- package/dist/db-backup/schedule.util.js +619 -0
- package/dist/db-backup/schedule.util.js.map +1 -0
- package/dist/db-backup/tasks/db-backup-schedule.task.d.ts +96 -0
- package/dist/db-backup/tasks/db-backup-schedule.task.d.ts.map +1 -0
- package/dist/db-backup/tasks/db-backup-schedule.task.js +309 -0
- package/dist/db-backup/tasks/db-backup-schedule.task.js.map +1 -0
- package/dist/db-backup/testing/backup-target-conformance.d.ts +57 -0
- package/dist/db-backup/testing/backup-target-conformance.d.ts.map +1 -0
- package/dist/db-backup/testing/backup-target-conformance.js +307 -0
- package/dist/db-backup/testing/backup-target-conformance.js.map +1 -0
- package/dist/db-backup/testing/conformance.d.ts +61 -0
- package/dist/db-backup/testing/conformance.d.ts.map +1 -0
- package/dist/db-backup/testing/conformance.js +178 -0
- package/dist/db-backup/testing/conformance.js.map +1 -0
- package/dist/db-backup/testing/index.d.ts +49 -0
- package/dist/db-backup/testing/index.d.ts.map +1 -0
- package/dist/db-backup/testing/index.js +102 -0
- package/dist/db-backup/testing/index.js.map +1 -0
- package/dist/db-backup/testing/restore-gate-conformance.d.ts +82 -0
- package/dist/db-backup/testing/restore-gate-conformance.d.ts.map +1 -0
- package/dist/db-backup/testing/restore-gate-conformance.js +217 -0
- package/dist/db-backup/testing/restore-gate-conformance.js.map +1 -0
- package/dist/doctor/testing/describe-doctor-check-conformance.d.ts +80 -0
- package/dist/doctor/testing/describe-doctor-check-conformance.d.ts.map +1 -0
- package/dist/doctor/testing/describe-doctor-check-conformance.js +85 -0
- package/dist/doctor/testing/describe-doctor-check-conformance.js.map +1 -0
- package/dist/doctor/testing/doctor-read-only.suite.d.ts +203 -0
- package/dist/doctor/testing/doctor-read-only.suite.d.ts.map +1 -0
- package/dist/doctor/testing/doctor-read-only.suite.js +240 -0
- package/dist/doctor/testing/doctor-read-only.suite.js.map +1 -0
- package/dist/doctor/testing/index.d.ts +12 -0
- package/dist/doctor/testing/index.d.ts.map +1 -0
- package/dist/doctor/testing/index.js +29 -0
- package/dist/doctor/testing/index.js.map +1 -0
- package/dist/doctor/testing/recording-prisma.d.ts +83 -0
- package/dist/doctor/testing/recording-prisma.d.ts.map +1 -0
- package/dist/doctor/testing/recording-prisma.js +242 -0
- package/dist/doctor/testing/recording-prisma.js.map +1 -0
- package/dist/doctor/testing/run-doctor-check.d.ts +80 -0
- package/dist/doctor/testing/run-doctor-check.d.ts.map +1 -0
- package/dist/doctor/testing/run-doctor-check.js +176 -0
- package/dist/doctor/testing/run-doctor-check.js.map +1 -0
- package/dist/doctor/testing/write-failing-storage.d.ts +62 -0
- package/dist/doctor/testing/write-failing-storage.d.ts.map +1 -0
- package/dist/doctor/testing/write-failing-storage.js +99 -0
- package/dist/doctor/testing/write-failing-storage.js.map +1 -0
- package/dist/email/base-email.provider.d.ts +89 -0
- package/dist/email/base-email.provider.d.ts.map +1 -0
- package/dist/email/base-email.provider.js +223 -0
- package/dist/email/base-email.provider.js.map +1 -0
- package/dist/email/doctor/egress/email.egress.contributor.d.ts +30 -0
- package/dist/email/doctor/egress/email.egress.contributor.d.ts.map +1 -0
- package/dist/email/doctor/egress/email.egress.contributor.js +78 -0
- package/dist/email/doctor/egress/email.egress.contributor.js.map +1 -0
- package/dist/email/doctor/email-config.doctor-check.d.ts +42 -0
- package/dist/email/doctor/email-config.doctor-check.d.ts.map +1 -0
- package/dist/email/doctor/email-config.doctor-check.js +131 -0
- package/dist/email/doctor/email-config.doctor-check.js.map +1 -0
- package/dist/email/dto/email-settings-response.dto.d.ts +92 -0
- package/dist/email/dto/email-settings-response.dto.d.ts.map +1 -0
- package/dist/email/dto/email-settings-response.dto.js +26 -0
- package/dist/email/dto/email-settings-response.dto.js.map +1 -0
- package/dist/email/dto/test-email-result.dto.d.ts +18 -0
- package/dist/email/dto/test-email-result.dto.d.ts.map +1 -0
- package/dist/email/dto/test-email-result.dto.js +24 -0
- package/dist/email/dto/test-email-result.dto.js.map +1 -0
- package/dist/email/dto/update-email-settings.dto.d.ts +26 -0
- package/dist/email/dto/update-email-settings.dto.d.ts.map +1 -0
- package/dist/email/dto/update-email-settings.dto.js +25 -0
- package/dist/email/dto/update-email-settings.dto.js.map +1 -0
- package/dist/email/email-rate-limit.d.ts +38 -0
- package/dist/email/email-rate-limit.d.ts.map +1 -0
- package/dist/email/email-rate-limit.js +187 -0
- package/dist/email/email-rate-limit.js.map +1 -0
- package/dist/email/email-settings-compat.d.ts +95 -0
- package/dist/email/email-settings-compat.d.ts.map +1 -0
- package/dist/email/email-settings-compat.js +207 -0
- package/dist/email/email-settings-compat.js.map +1 -0
- package/dist/email/email-settings.controller.d.ts +45 -0
- package/dist/email/email-settings.controller.d.ts.map +1 -0
- package/dist/email/email-settings.controller.js +195 -0
- package/dist/email/email-settings.controller.js.map +1 -0
- package/dist/email/email-settings.schema.d.ts +3 -0
- package/dist/email/email-settings.schema.d.ts.map +1 -0
- package/dist/email/email-settings.schema.js +24 -0
- package/dist/email/email-settings.schema.js.map +1 -0
- package/dist/email/email-settings.service.d.ts +260 -0
- package/dist/email/email-settings.service.d.ts.map +1 -0
- package/dist/email/email-settings.service.js +570 -0
- package/dist/email/email-settings.service.js.map +1 -0
- package/dist/email/email-test-send.service.d.ts +101 -0
- package/dist/email/email-test-send.service.d.ts.map +1 -0
- package/dist/email/email-test-send.service.js +325 -0
- package/dist/email/email-test-send.service.js.map +1 -0
- package/dist/email/email.module.d.ts +60 -0
- package/dist/email/email.module.d.ts.map +1 -0
- package/dist/email/email.module.js +171 -0
- package/dist/email/email.module.js.map +1 -0
- package/dist/email/email.options.d.ts +83 -0
- package/dist/email/email.options.d.ts.map +1 -0
- package/dist/email/email.options.js +64 -0
- package/dist/email/email.options.js.map +1 -0
- package/dist/email/email.types.d.ts +125 -0
- package/dist/email/email.types.d.ts.map +1 -0
- package/dist/email/email.types.js +14 -0
- package/dist/email/email.types.js.map +1 -0
- package/dist/email/index.d.ts +55 -0
- package/dist/email/index.d.ts.map +1 -0
- package/dist/email/index.js +138 -0
- package/dist/email/index.js.map +1 -0
- package/dist/email/providers/email-provider.interface.d.ts +42 -0
- package/dist/email/providers/email-provider.interface.d.ts.map +1 -0
- package/dist/email/providers/email-provider.interface.js +3 -0
- package/dist/email/providers/email-provider.interface.js.map +1 -0
- package/dist/email/providers/ses-email.provider.d.ts +47 -0
- package/dist/email/providers/ses-email.provider.d.ts.map +1 -0
- package/dist/email/providers/ses-email.provider.js +226 -0
- package/dist/email/providers/ses-email.provider.js.map +1 -0
- package/dist/email/providers/smtp-email.provider.d.ts +57 -0
- package/dist/email/providers/smtp-email.provider.d.ts.map +1 -0
- package/dist/email/providers/smtp-email.provider.js +285 -0
- package/dist/email/providers/smtp-email.provider.js.map +1 -0
- package/dist/email/ses-credential.constants.d.ts +47 -0
- package/dist/email/ses-credential.constants.d.ts.map +1 -0
- package/dist/email/ses-credential.constants.js +79 -0
- package/dist/email/ses-credential.constants.js.map +1 -0
- package/dist/email/smtp-credential.constants.d.ts +46 -0
- package/dist/email/smtp-credential.constants.d.ts.map +1 -0
- package/dist/email/smtp-credential.constants.js +77 -0
- package/dist/email/smtp-credential.constants.js.map +1 -0
- package/dist/email/templates/allowlist-invitation.email.d.ts +47 -0
- package/dist/email/templates/allowlist-invitation.email.d.ts.map +1 -0
- package/dist/email/templates/allowlist-invitation.email.js +70 -0
- package/dist/email/templates/allowlist-invitation.email.js.map +1 -0
- package/dist/email/templates/backup-failed.email.d.ts +40 -0
- package/dist/email/templates/backup-failed.email.d.ts.map +1 -0
- package/dist/email/templates/backup-failed.email.js +120 -0
- package/dist/email/templates/backup-failed.email.js.map +1 -0
- package/dist/email/templates/broadcast.email.d.ts +67 -0
- package/dist/email/templates/broadcast.email.d.ts.map +1 -0
- package/dist/email/templates/broadcast.email.js +157 -0
- package/dist/email/templates/broadcast.email.js.map +1 -0
- package/dist/email/templates/email-template.registry.d.ts +182 -0
- package/dist/email/templates/email-template.registry.d.ts.map +1 -0
- package/dist/email/templates/email-template.registry.js +252 -0
- package/dist/email/templates/email-template.registry.js.map +1 -0
- package/dist/email/templates/email-template.types.d.ts +88 -0
- package/dist/email/templates/email-template.types.d.ts.map +1 -0
- package/dist/email/templates/email-template.types.js +31 -0
- package/dist/email/templates/email-template.types.js.map +1 -0
- package/dist/email/templates/index.d.ts +32 -0
- package/dist/email/templates/index.d.ts.map +1 -0
- package/dist/email/templates/index.js +76 -0
- package/dist/email/templates/index.js.map +1 -0
- package/dist/email/templates/job-failed.email.d.ts +47 -0
- package/dist/email/templates/job-failed.email.d.ts.map +1 -0
- package/dist/email/templates/job-failed.email.js +112 -0
- package/dist/email/templates/job-failed.email.js.map +1 -0
- package/dist/email/templates/layout-theme.d.ts +160 -0
- package/dist/email/templates/layout-theme.d.ts.map +1 -0
- package/dist/email/templates/layout-theme.js +134 -0
- package/dist/email/templates/layout-theme.js.map +1 -0
- package/dist/email/templates/layout.d.ts +114 -0
- package/dist/email/templates/layout.d.ts.map +1 -0
- package/dist/email/templates/layout.js +322 -0
- package/dist/email/templates/layout.js.map +1 -0
- package/dist/email/templates/node-offline.email.d.ts +36 -0
- package/dist/email/templates/node-offline.email.d.ts.map +1 -0
- package/dist/email/templates/node-offline.email.js +117 -0
- package/dist/email/templates/node-offline.email.js.map +1 -0
- package/dist/email/templates/platform-email-templates.d.ts +63 -0
- package/dist/email/templates/platform-email-templates.d.ts.map +1 -0
- package/dist/email/templates/platform-email-templates.js +34 -0
- package/dist/email/templates/platform-email-templates.js.map +1 -0
- package/dist/email/templates/render-context.d.ts +81 -0
- package/dist/email/templates/render-context.d.ts.map +1 -0
- package/dist/email/templates/render-context.js +115 -0
- package/dist/email/templates/render-context.js.map +1 -0
- package/dist/email/templates/restore-completed.email.d.ts +46 -0
- package/dist/email/templates/restore-completed.email.d.ts.map +1 -0
- package/dist/email/templates/restore-completed.email.js +118 -0
- package/dist/email/templates/restore-completed.email.js.map +1 -0
- package/dist/email/templates/role-changed.email.d.ts +36 -0
- package/dist/email/templates/role-changed.email.d.ts.map +1 -0
- package/dist/email/templates/role-changed.email.js +118 -0
- package/dist/email/templates/role-changed.email.js.map +1 -0
- package/dist/email/templates/safe-html.d.ts +110 -0
- package/dist/email/templates/safe-html.d.ts.map +1 -0
- package/dist/email/templates/safe-html.js +235 -0
- package/dist/email/templates/safe-html.js.map +1 -0
- package/dist/email/templates/test-email.email.d.ts +46 -0
- package/dist/email/templates/test-email.email.d.ts.map +1 -0
- package/dist/email/templates/test-email.email.js +129 -0
- package/dist/email/templates/test-email.email.js.map +1 -0
- package/dist/email/templates/user-welcome.email.d.ts +47 -0
- package/dist/email/templates/user-welcome.email.d.ts.map +1 -0
- package/dist/email/templates/user-welcome.email.js +96 -0
- package/dist/email/templates/user-welcome.email.js.map +1 -0
- package/dist/email/testing/conformance.d.ts +61 -0
- package/dist/email/testing/conformance.d.ts.map +1 -0
- package/dist/email/testing/conformance.js +179 -0
- package/dist/email/testing/conformance.js.map +1 -0
- package/dist/email/testing/index.d.ts +5 -0
- package/dist/email/testing/index.d.ts.map +1 -0
- package/dist/email/testing/index.js +16 -0
- package/dist/email/testing/index.js.map +1 -0
- package/dist/email/testing/transport-conformance.d.ts +111 -0
- package/dist/email/testing/transport-conformance.d.ts.map +1 -0
- package/dist/email/testing/transport-conformance.js +302 -0
- package/dist/email/testing/transport-conformance.js.map +1 -0
- package/dist/email/transports/builtin-email-transports.d.ts +53 -0
- package/dist/email/transports/builtin-email-transports.d.ts.map +1 -0
- package/dist/email/transports/builtin-email-transports.js +131 -0
- package/dist/email/transports/builtin-email-transports.js.map +1 -0
- package/dist/email/transports/email-transport.d.ts +265 -0
- package/dist/email/transports/email-transport.d.ts.map +1 -0
- package/dist/email/transports/email-transport.js +241 -0
- package/dist/email/transports/email-transport.js.map +1 -0
- package/dist/email/transports/email-transport.resolver.d.ts +75 -0
- package/dist/email/transports/email-transport.resolver.d.ts.map +1 -0
- package/dist/email/transports/email-transport.resolver.js +164 -0
- package/dist/email/transports/email-transport.resolver.js.map +1 -0
- package/dist/exports/csv.d.ts +95 -0
- package/dist/exports/csv.d.ts.map +1 -0
- package/dist/exports/csv.js +132 -0
- package/dist/exports/csv.js.map +1 -0
- package/dist/exports/datamodel.d.ts +139 -0
- package/dist/exports/datamodel.d.ts.map +1 -0
- package/dist/exports/datamodel.js +194 -0
- package/dist/exports/datamodel.js.map +1 -0
- package/dist/exports/documents/export-options.d.ts +102 -0
- package/dist/exports/documents/export-options.d.ts.map +1 -0
- package/dist/exports/documents/export-options.js +117 -0
- package/dist/exports/documents/export-options.js.map +1 -0
- package/dist/exports/documents/exporter-registry.d.ts +80 -0
- package/dist/exports/documents/exporter-registry.d.ts.map +1 -0
- package/dist/exports/documents/exporter-registry.js +96 -0
- package/dist/exports/documents/exporter-registry.js.map +1 -0
- package/dist/exports/export-job.d.ts +113 -0
- package/dist/exports/export-job.d.ts.map +1 -0
- package/dist/exports/export-job.js +140 -0
- package/dist/exports/export-job.js.map +1 -0
- package/dist/exports/export-stream.d.ts +46 -0
- package/dist/exports/export-stream.d.ts.map +1 -0
- package/dist/exports/export-stream.js +104 -0
- package/dist/exports/export-stream.js.map +1 -0
- package/dist/exports/export.registries.d.ts +89 -0
- package/dist/exports/export.registries.d.ts.map +1 -0
- package/dist/exports/export.registries.js +258 -0
- package/dist/exports/export.registries.js.map +1 -0
- package/dist/exports/export.types.d.ts +217 -0
- package/dist/exports/export.types.d.ts.map +1 -0
- package/dist/exports/export.types.js +19 -0
- package/dist/exports/export.types.js.map +1 -0
- package/dist/exports/exports.constants.d.ts +109 -0
- package/dist/exports/exports.constants.d.ts.map +1 -0
- package/dist/exports/exports.constants.js +133 -0
- package/dist/exports/exports.constants.js.map +1 -0
- package/dist/exports/exports.controller.d.ts +147 -0
- package/dist/exports/exports.controller.d.ts.map +1 -0
- package/dist/exports/exports.controller.js +196 -0
- package/dist/exports/exports.controller.js.map +1 -0
- package/dist/exports/exports.metrics.d.ts +45 -0
- package/dist/exports/exports.metrics.d.ts.map +1 -0
- package/dist/exports/exports.metrics.js +92 -0
- package/dist/exports/exports.metrics.js.map +1 -0
- package/dist/exports/exports.module.d.ts +29 -0
- package/dist/exports/exports.module.d.ts.map +1 -0
- package/dist/exports/exports.module.js +90 -0
- package/dist/exports/exports.module.js.map +1 -0
- package/dist/exports/exports.notifications.d.ts +78 -0
- package/dist/exports/exports.notifications.d.ts.map +1 -0
- package/dist/exports/exports.notifications.js +93 -0
- package/dist/exports/exports.notifications.js.map +1 -0
- package/dist/exports/exports.options.d.ts +140 -0
- package/dist/exports/exports.options.d.ts.map +1 -0
- package/dist/exports/exports.options.js +114 -0
- package/dist/exports/exports.options.js.map +1 -0
- package/dist/exports/exports.service.d.ts +111 -0
- package/dist/exports/exports.service.d.ts.map +1 -0
- package/dist/exports/exports.service.js +305 -0
- package/dist/exports/exports.service.js.map +1 -0
- package/dist/exports/handlers/export-purge.handler.d.ts +52 -0
- package/dist/exports/handlers/export-purge.handler.d.ts.map +1 -0
- package/dist/exports/handlers/export-purge.handler.js +135 -0
- package/dist/exports/handlers/export-purge.handler.js.map +1 -0
- package/dist/exports/handlers/export-run.handler.d.ts +50 -0
- package/dist/exports/handlers/export-run.handler.d.ts.map +1 -0
- package/dist/exports/handlers/export-run.handler.js +327 -0
- package/dist/exports/handlers/export-run.handler.js.map +1 -0
- package/dist/exports/index.d.ts +36 -0
- package/dist/exports/index.d.ts.map +1 -0
- package/dist/exports/index.js +140 -0
- package/dist/exports/index.js.map +1 -0
- package/dist/exports/ports.d.ts +77 -0
- package/dist/exports/ports.d.ts.map +1 -0
- package/dist/exports/ports.js +40 -0
- package/dist/exports/ports.js.map +1 -0
- package/dist/exports/request-fields.d.ts +18 -0
- package/dist/exports/request-fields.d.ts.map +1 -0
- package/dist/exports/request-fields.js +100 -0
- package/dist/exports/request-fields.js.map +1 -0
- package/dist/exports/sources/model-table.d.ts +40 -0
- package/dist/exports/sources/model-table.d.ts.map +1 -0
- package/dist/exports/sources/model-table.js +97 -0
- package/dist/exports/sources/model-table.js.map +1 -0
- package/dist/exports/sources/org-data.source.d.ts +40 -0
- package/dist/exports/sources/org-data.source.d.ts.map +1 -0
- package/dist/exports/sources/org-data.source.js +152 -0
- package/dist/exports/sources/org-data.source.js.map +1 -0
- package/dist/exports/sources/user-data.source.d.ts +33 -0
- package/dist/exports/sources/user-data.source.d.ts.map +1 -0
- package/dist/exports/sources/user-data.source.js +93 -0
- package/dist/exports/sources/user-data.source.js.map +1 -0
- package/dist/exports/tasks/export-purge.task.d.ts +17 -0
- package/dist/exports/tasks/export-purge.task.d.ts.map +1 -0
- package/dist/exports/tasks/export-purge.task.js +69 -0
- package/dist/exports/tasks/export-purge.task.js.map +1 -0
- package/dist/exports/testing/conformance.d.ts +138 -0
- package/dist/exports/testing/conformance.d.ts.map +1 -0
- package/dist/exports/testing/conformance.js +333 -0
- package/dist/exports/testing/conformance.js.map +1 -0
- package/dist/exports/testing/index.d.ts +5 -0
- package/dist/exports/testing/index.d.ts.map +1 -0
- package/dist/exports/testing/index.js +21 -0
- package/dist/exports/testing/index.js.map +1 -0
- package/dist/exports/testing/zip.d.ts +41 -0
- package/dist/exports/testing/zip.d.ts.map +1 -0
- package/dist/exports/testing/zip.js +92 -0
- package/dist/exports/testing/zip.js.map +1 -0
- package/dist/exports/writers/csv.writer.d.ts +20 -0
- package/dist/exports/writers/csv.writer.d.ts.map +1 -0
- package/dist/exports/writers/csv.writer.js +96 -0
- package/dist/exports/writers/csv.writer.js.map +1 -0
- package/dist/exports/writers/index.d.ts +11 -0
- package/dist/exports/writers/index.d.ts.map +1 -0
- package/dist/exports/writers/index.js +29 -0
- package/dist/exports/writers/index.js.map +1 -0
- package/dist/exports/writers/json.writer.d.ts +17 -0
- package/dist/exports/writers/json.writer.d.ts.map +1 -0
- package/dist/exports/writers/json.writer.js +83 -0
- package/dist/exports/writers/json.writer.js.map +1 -0
- package/dist/exports/writers/platform-sources.d.ts +8 -0
- package/dist/exports/writers/platform-sources.d.ts.map +1 -0
- package/dist/exports/writers/platform-sources.js +16 -0
- package/dist/exports/writers/platform-sources.js.map +1 -0
- package/dist/exports/writers/xlsx.writer.d.ts +20 -0
- package/dist/exports/writers/xlsx.writer.d.ts.map +1 -0
- package/dist/exports/writers/xlsx.writer.js +105 -0
- package/dist/exports/writers/xlsx.writer.js.map +1 -0
- package/dist/host/about/about-contributor.registry.d.ts +64 -0
- package/dist/host/about/about-contributor.registry.d.ts.map +1 -0
- package/dist/host/about/about-contributor.registry.js +79 -0
- package/dist/host/about/about-contributor.registry.js.map +1 -0
- package/dist/host/about/about-support-bundle.section.d.ts +150 -0
- package/dist/host/about/about-support-bundle.section.d.ts.map +1 -0
- package/dist/host/about/about-support-bundle.section.js +156 -0
- package/dist/host/about/about-support-bundle.section.js.map +1 -0
- package/dist/host/about/about.controller.d.ts +58 -0
- package/dist/host/about/about.controller.d.ts.map +1 -0
- package/dist/host/about/about.controller.js +185 -0
- package/dist/host/about/about.controller.js.map +1 -0
- package/dist/host/about/about.module.d.ts +22 -0
- package/dist/host/about/about.module.d.ts.map +1 -0
- package/dist/host/about/about.module.js +73 -0
- package/dist/host/about/about.module.js.map +1 -0
- package/dist/host/about/about.options.d.ts +38 -0
- package/dist/host/about/about.options.d.ts.map +1 -0
- package/dist/host/about/about.options.js +16 -0
- package/dist/host/about/about.options.js.map +1 -0
- package/dist/host/about/about.service.d.ts +52 -0
- package/dist/host/about/about.service.d.ts.map +1 -0
- package/dist/host/about/about.service.js +202 -0
- package/dist/host/about/about.service.js.map +1 -0
- package/dist/host/about/deploy-info.constants.d.ts +9 -0
- package/dist/host/about/deploy-info.constants.d.ts.map +1 -0
- package/dist/host/about/deploy-info.constants.js +12 -0
- package/dist/host/about/deploy-info.constants.js.map +1 -0
- package/dist/host/about/deploy-info.d.ts +154 -0
- package/dist/host/about/deploy-info.d.ts.map +1 -0
- package/dist/host/about/deploy-info.js +339 -0
- package/dist/host/about/deploy-info.js.map +1 -0
- package/dist/host/about/dto/about-response.dto.d.ts +268 -0
- package/dist/host/about/dto/about-response.dto.d.ts.map +1 -0
- package/dist/host/about/dto/about-response.dto.js +252 -0
- package/dist/host/about/dto/about-response.dto.js.map +1 -0
- package/dist/host/deployment/deployment-mode.d.ts +200 -0
- package/dist/host/deployment/deployment-mode.d.ts.map +1 -0
- package/dist/host/deployment/deployment-mode.js +261 -0
- package/dist/host/deployment/deployment-mode.js.map +1 -0
- package/dist/host/deployment/deployment-mode.service.d.ts +51 -0
- package/dist/host/deployment/deployment-mode.service.d.ts.map +1 -0
- package/dist/host/deployment/deployment-mode.service.js +83 -0
- package/dist/host/deployment/deployment-mode.service.js.map +1 -0
- package/dist/host/deployment/deployment-network.d.ts +41 -0
- package/dist/host/deployment/deployment-network.d.ts.map +1 -0
- package/dist/host/deployment/deployment-network.js +89 -0
- package/dist/host/deployment/deployment-network.js.map +1 -0
- package/dist/host/deployment/deployment-network.service.d.ts +28 -0
- package/dist/host/deployment/deployment-network.service.d.ts.map +1 -0
- package/dist/host/deployment/deployment-network.service.js +49 -0
- package/dist/host/deployment/deployment-network.service.js.map +1 -0
- package/dist/host/doctor/db-connection.doctor-check.d.ts +30 -0
- package/dist/host/doctor/db-connection.doctor-check.d.ts.map +1 -0
- package/dist/host/doctor/db-connection.doctor-check.js +90 -0
- package/dist/host/doctor/db-connection.doctor-check.js.map +1 -0
- package/dist/host/doctor/db-migrations.doctor-check.d.ts +48 -0
- package/dist/host/doctor/db-migrations.doctor-check.d.ts.map +1 -0
- package/dist/host/doctor/db-migrations.doctor-check.js +128 -0
- package/dist/host/doctor/db-migrations.doctor-check.js.map +1 -0
- package/dist/host/doctor/deployment-mode.doctor-check.d.ts +54 -0
- package/dist/host/doctor/deployment-mode.doctor-check.d.ts.map +1 -0
- package/dist/host/doctor/deployment-mode.doctor-check.js +110 -0
- package/dist/host/doctor/deployment-mode.doctor-check.js.map +1 -0
- package/dist/host/doctor/encryption-key.doctor-check.d.ts +25 -0
- package/dist/host/doctor/encryption-key.doctor-check.d.ts.map +1 -0
- package/dist/host/doctor/encryption-key.doctor-check.js +61 -0
- package/dist/host/doctor/encryption-key.doctor-check.js.map +1 -0
- package/dist/host/doctor/rls-role.doctor-check.d.ts +58 -0
- package/dist/host/doctor/rls-role.doctor-check.d.ts.map +1 -0
- package/dist/host/doctor/rls-role.doctor-check.js +118 -0
- package/dist/host/doctor/rls-role.doctor-check.js.map +1 -0
- package/dist/host/event-bus/builtin-event-bus-adapters.d.ts +15 -0
- package/dist/host/event-bus/builtin-event-bus-adapters.d.ts.map +1 -0
- package/dist/host/event-bus/builtin-event-bus-adapters.js +48 -0
- package/dist/host/event-bus/builtin-event-bus-adapters.js.map +1 -0
- package/dist/host/event-bus/doctor/event-bus.doctor-check.d.ts +32 -0
- package/dist/host/event-bus/doctor/event-bus.doctor-check.d.ts.map +1 -0
- package/dist/host/event-bus/doctor/event-bus.doctor-check.js +126 -0
- package/dist/host/event-bus/doctor/event-bus.doctor-check.js.map +1 -0
- package/dist/host/event-bus/event-bus-adapter.registry.d.ts +104 -0
- package/dist/host/event-bus/event-bus-adapter.registry.d.ts.map +1 -0
- package/dist/host/event-bus/event-bus-adapter.registry.js +90 -0
- package/dist/host/event-bus/event-bus-adapter.registry.js.map +1 -0
- package/dist/host/event-bus/event-bus-core.d.ts +74 -0
- package/dist/host/event-bus/event-bus-core.d.ts.map +1 -0
- package/dist/host/event-bus/event-bus-core.js +176 -0
- package/dist/host/event-bus/event-bus-core.js.map +1 -0
- package/dist/host/event-bus/event-bus.config.d.ts +46 -0
- package/dist/host/event-bus/event-bus.config.d.ts.map +1 -0
- package/dist/host/event-bus/event-bus.config.js +69 -0
- package/dist/host/event-bus/event-bus.config.js.map +1 -0
- package/dist/host/event-bus/event-bus.factory.d.ts +42 -0
- package/dist/host/event-bus/event-bus.factory.d.ts.map +1 -0
- package/dist/host/event-bus/event-bus.factory.js +71 -0
- package/dist/host/event-bus/event-bus.factory.js.map +1 -0
- package/dist/host/event-bus/event-bus.interface.d.ts +143 -0
- package/dist/host/event-bus/event-bus.interface.d.ts.map +1 -0
- package/dist/host/event-bus/event-bus.interface.js +154 -0
- package/dist/host/event-bus/event-bus.interface.js.map +1 -0
- package/dist/host/event-bus/event-bus.metrics.d.ts +66 -0
- package/dist/host/event-bus/event-bus.metrics.d.ts.map +1 -0
- package/dist/host/event-bus/event-bus.metrics.js +80 -0
- package/dist/host/event-bus/event-bus.metrics.js.map +1 -0
- package/dist/host/event-bus/in-process-event-bus.d.ts +52 -0
- package/dist/host/event-bus/in-process-event-bus.d.ts.map +1 -0
- package/dist/host/event-bus/in-process-event-bus.js +112 -0
- package/dist/host/event-bus/in-process-event-bus.js.map +1 -0
- package/dist/host/event-bus/postgres-event-bus.d.ts +181 -0
- package/dist/host/event-bus/postgres-event-bus.d.ts.map +1 -0
- package/dist/host/event-bus/postgres-event-bus.js +359 -0
- package/dist/host/event-bus/postgres-event-bus.js.map +1 -0
- package/dist/host/health/builtin-health-indicators.d.ts +14 -0
- package/dist/host/health/builtin-health-indicators.d.ts.map +1 -0
- package/dist/host/health/builtin-health-indicators.js +52 -0
- package/dist/host/health/builtin-health-indicators.js.map +1 -0
- package/dist/host/health/database.indicator.d.ts +19 -0
- package/dist/host/health/database.indicator.d.ts.map +1 -0
- package/dist/host/health/database.indicator.js +63 -0
- package/dist/host/health/database.indicator.js.map +1 -0
- package/dist/host/health/health-indicator.registry.d.ts +111 -0
- package/dist/host/health/health-indicator.registry.d.ts.map +1 -0
- package/dist/host/health/health-indicator.registry.js +102 -0
- package/dist/host/health/health-indicator.registry.js.map +1 -0
- package/dist/host/health/health-indicator.runner.d.ts +41 -0
- package/dist/host/health/health-indicator.runner.d.ts.map +1 -0
- package/dist/host/health/health-indicator.runner.js +92 -0
- package/dist/host/health/health-indicator.runner.js.map +1 -0
- package/dist/host/health/health.controller.d.ts +86 -0
- package/dist/host/health/health.controller.d.ts.map +1 -0
- package/dist/host/health/health.controller.js +236 -0
- package/dist/host/health/health.controller.js.map +1 -0
- package/dist/host/host-core.module.d.ts +41 -0
- package/dist/host/host-core.module.d.ts.map +1 -0
- package/dist/host/host-core.module.js +249 -0
- package/dist/host/host-core.module.js.map +1 -0
- package/dist/host/host-core.options.d.ts +152 -0
- package/dist/host/host-core.options.d.ts.map +1 -0
- package/dist/host/host-core.options.js +69 -0
- package/dist/host/host-core.options.js.map +1 -0
- package/dist/host/http/cors-options.d.ts +88 -0
- package/dist/host/http/cors-options.d.ts.map +1 -0
- package/dist/host/http/cors-options.js +158 -0
- package/dist/host/http/cors-options.js.map +1 -0
- package/dist/host/http/logging.interceptor.d.ts +21 -0
- package/dist/host/http/logging.interceptor.d.ts.map +1 -0
- package/dist/host/http/logging.interceptor.js +56 -0
- package/dist/host/http/logging.interceptor.js.map +1 -0
- package/dist/host/http/request-id.middleware.d.ts +33 -0
- package/dist/host/http/request-id.middleware.d.ts.map +1 -0
- package/dist/host/http/request-id.middleware.js +53 -0
- package/dist/host/http/request-id.middleware.js.map +1 -0
- package/dist/host/http/response-meta.registry.d.ts +62 -0
- package/dist/host/http/response-meta.registry.d.ts.map +1 -0
- package/dist/host/http/response-meta.registry.js +86 -0
- package/dist/host/http/response-meta.registry.js.map +1 -0
- package/dist/host/http/transform.interceptor.d.ts +77 -0
- package/dist/host/http/transform.interceptor.d.ts.map +1 -0
- package/dist/host/http/transform.interceptor.js +161 -0
- package/dist/host/http/transform.interceptor.js.map +1 -0
- package/dist/host/index.d.ts +83 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +238 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/internal/bounded.d.ts +50 -0
- package/dist/host/internal/bounded.d.ts.map +1 -0
- package/dist/host/internal/bounded.js +109 -0
- package/dist/host/internal/bounded.js.map +1 -0
- package/dist/host/internal/host-access.d.ts +23 -0
- package/dist/host/internal/host-access.d.ts.map +1 -0
- package/dist/host/internal/host-access.js +42 -0
- package/dist/host/internal/host-access.js.map +1 -0
- package/dist/host/maintenance/doctor/maintenance-mode.doctor-check.d.ts +19 -0
- package/dist/host/maintenance/doctor/maintenance-mode.doctor-check.d.ts.map +1 -0
- package/dist/host/maintenance/doctor/maintenance-mode.doctor-check.js +80 -0
- package/dist/host/maintenance/doctor/maintenance-mode.doctor-check.js.map +1 -0
- package/dist/host/maintenance/dto/update-maintenance.dto.d.ts +115 -0
- package/dist/host/maintenance/dto/update-maintenance.dto.d.ts.map +1 -0
- package/dist/host/maintenance/dto/update-maintenance.dto.js +128 -0
- package/dist/host/maintenance/dto/update-maintenance.dto.js.map +1 -0
- package/dist/host/maintenance/maintenance-bypass.registry.d.ts +94 -0
- package/dist/host/maintenance/maintenance-bypass.registry.d.ts.map +1 -0
- package/dist/host/maintenance/maintenance-bypass.registry.js +90 -0
- package/dist/host/maintenance/maintenance-bypass.registry.js.map +1 -0
- package/dist/host/maintenance/maintenance-mode.service.d.ts +259 -0
- package/dist/host/maintenance/maintenance-mode.service.d.ts.map +1 -0
- package/dist/host/maintenance/maintenance-mode.service.js +368 -0
- package/dist/host/maintenance/maintenance-mode.service.js.map +1 -0
- package/dist/host/maintenance/maintenance.controller.d.ts +84 -0
- package/dist/host/maintenance/maintenance.controller.d.ts.map +1 -0
- package/dist/host/maintenance/maintenance.controller.js +176 -0
- package/dist/host/maintenance/maintenance.controller.js.map +1 -0
- package/dist/host/maintenance/maintenance.guard.d.ts +112 -0
- package/dist/host/maintenance/maintenance.guard.d.ts.map +1 -0
- package/dist/host/maintenance/maintenance.guard.js +274 -0
- package/dist/host/maintenance/maintenance.guard.js.map +1 -0
- package/dist/host/maintenance/maintenance.schemas.d.ts +91 -0
- package/dist/host/maintenance/maintenance.schemas.d.ts.map +1 -0
- package/dist/host/maintenance/maintenance.schemas.js +118 -0
- package/dist/host/maintenance/maintenance.schemas.js.map +1 -0
- package/dist/host/maintenance/maintenance.system-settings.d.ts +90 -0
- package/dist/host/maintenance/maintenance.system-settings.d.ts.map +1 -0
- package/dist/host/maintenance/maintenance.system-settings.js +76 -0
- package/dist/host/maintenance/maintenance.system-settings.js.map +1 -0
- package/dist/host/metrics/app-metrics.service.d.ts +365 -0
- package/dist/host/metrics/app-metrics.service.d.ts.map +1 -0
- package/dist/host/metrics/app-metrics.service.js +613 -0
- package/dist/host/metrics/app-metrics.service.js.map +1 -0
- package/dist/host/metrics/platform-app-metrics.d.ts +42 -0
- package/dist/host/metrics/platform-app-metrics.d.ts.map +1 -0
- package/dist/host/metrics/platform-app-metrics.js +203 -0
- package/dist/host/metrics/platform-app-metrics.js.map +1 -0
- package/dist/host/metrics/register.d.ts +22 -0
- package/dist/host/metrics/register.d.ts.map +1 -0
- package/dist/host/metrics/register.js +46 -0
- package/dist/host/metrics/register.js.map +1 -0
- package/dist/host/openapi/data-envelope.d.ts +7 -0
- package/dist/host/openapi/data-envelope.d.ts.map +1 -0
- package/dist/host/openapi/data-envelope.js +115 -0
- package/dist/host/openapi/data-envelope.js.map +1 -0
- package/dist/host/openapi/description.d.ts +22 -0
- package/dist/host/openapi/description.d.ts.map +1 -0
- package/dist/host/openapi/description.js +181 -0
- package/dist/host/openapi/description.js.map +1 -0
- package/dist/host/openapi/docs-page.d.ts +95 -0
- package/dist/host/openapi/docs-page.d.ts.map +1 -0
- package/dist/host/openapi/docs-page.js +297 -0
- package/dist/host/openapi/docs-page.js.map +1 -0
- package/dist/host/openapi/document.d.ts +107 -0
- package/dist/host/openapi/document.d.ts.map +1 -0
- package/dist/host/openapi/document.js +328 -0
- package/dist/host/openapi/document.js.map +1 -0
- package/dist/host/openapi/nullable.d.ts +9 -0
- package/dist/host/openapi/nullable.d.ts.map +1 -0
- package/dist/host/openapi/nullable.js +78 -0
- package/dist/host/openapi/nullable.js.map +1 -0
- package/dist/host/openapi/rbac-docs.d.ts +30 -0
- package/dist/host/openapi/rbac-docs.d.ts.map +1 -0
- package/dist/host/openapi/rbac-docs.js +105 -0
- package/dist/host/openapi/rbac-docs.js.map +1 -0
- package/dist/host/openapi/register-docs-routes.d.ts +177 -0
- package/dist/host/openapi/register-docs-routes.d.ts.map +1 -0
- package/dist/host/openapi/register-docs-routes.js +218 -0
- package/dist/host/openapi/register-docs-routes.js.map +1 -0
- package/dist/host/openapi/types.d.ts +56 -0
- package/dist/host/openapi/types.d.ts.map +1 -0
- package/dist/host/openapi/types.js +56 -0
- package/dist/host/openapi/types.js.map +1 -0
- package/dist/host/openapi/version.d.ts +24 -0
- package/dist/host/openapi/version.d.ts.map +1 -0
- package/dist/host/openapi/version.js +54 -0
- package/dist/host/openapi/version.js.map +1 -0
- package/dist/host/testing/conformance.d.ts +95 -0
- package/dist/host/testing/conformance.d.ts.map +1 -0
- package/dist/host/testing/conformance.js +210 -0
- package/dist/host/testing/conformance.js.map +1 -0
- package/dist/host/testing/event-bus-conformance.d.ts +52 -0
- package/dist/host/testing/event-bus-conformance.d.ts.map +1 -0
- package/dist/host/testing/event-bus-conformance.js +188 -0
- package/dist/host/testing/event-bus-conformance.js.map +1 -0
- package/dist/host/testing/fake-event-bus-network.d.ts +45 -0
- package/dist/host/testing/fake-event-bus-network.d.ts.map +1 -0
- package/dist/host/testing/fake-event-bus-network.js +117 -0
- package/dist/host/testing/fake-event-bus-network.js.map +1 -0
- package/dist/host/testing/index.d.ts +6 -0
- package/dist/host/testing/index.d.ts.map +1 -0
- package/dist/host/testing/index.js +19 -0
- package/dist/host/testing/index.js.map +1 -0
- package/dist/identity/allowlist/allowlist.controller.d.ts +22 -0
- package/dist/identity/allowlist/allowlist.controller.d.ts.map +1 -0
- package/dist/identity/allowlist/allowlist.controller.js +96 -0
- package/dist/identity/allowlist/allowlist.controller.js.map +1 -0
- package/dist/identity/allowlist/allowlist.module.d.ts +8 -0
- package/dist/identity/allowlist/allowlist.module.d.ts.map +1 -0
- package/dist/identity/allowlist/allowlist.module.js +31 -0
- package/dist/identity/allowlist/allowlist.module.js.map +1 -0
- package/dist/identity/allowlist/allowlist.permissions.d.ts +15 -0
- package/dist/identity/allowlist/allowlist.permissions.d.ts.map +1 -0
- package/dist/identity/allowlist/allowlist.permissions.js +37 -0
- package/dist/identity/allowlist/allowlist.permissions.js.map +1 -0
- package/dist/identity/allowlist/allowlist.service.d.ts +63 -0
- package/dist/identity/allowlist/allowlist.service.d.ts.map +1 -0
- package/dist/identity/allowlist/allowlist.service.js +258 -0
- package/dist/identity/allowlist/allowlist.service.js.map +1 -0
- package/dist/identity/allowlist/dto/add-email.dto.d.ts +13 -0
- package/dist/identity/allowlist/dto/add-email.dto.d.ts.map +1 -0
- package/dist/identity/allowlist/dto/add-email.dto.js +16 -0
- package/dist/identity/allowlist/dto/add-email.dto.js.map +1 -0
- package/dist/identity/allowlist/dto/allowlist-query.dto.d.ts +43 -0
- package/dist/identity/allowlist/dto/allowlist-query.dto.d.ts.map +1 -0
- package/dist/identity/allowlist/dto/allowlist-query.dto.js +17 -0
- package/dist/identity/allowlist/dto/allowlist-query.dto.js.map +1 -0
- package/dist/identity/allowlist/dto/allowlist-response.dto.d.ts +39 -0
- package/dist/identity/allowlist/dto/allowlist-response.dto.d.ts.map +1 -0
- package/dist/identity/allowlist/dto/allowlist-response.dto.js +33 -0
- package/dist/identity/allowlist/dto/allowlist-response.dto.js.map +1 -0
- package/dist/identity/auth/admin-bootstrap.service.d.ts +35 -0
- package/dist/identity/auth/admin-bootstrap.service.d.ts.map +1 -0
- package/dist/identity/auth/admin-bootstrap.service.js +138 -0
- package/dist/identity/auth/admin-bootstrap.service.js.map +1 -0
- package/dist/identity/auth/auth-error-codes.d.ts +64 -0
- package/dist/identity/auth/auth-error-codes.d.ts.map +1 -0
- package/dist/identity/auth/auth-error-codes.js +89 -0
- package/dist/identity/auth/auth-error-codes.js.map +1 -0
- package/dist/identity/auth/auth-provider.controller.d.ts +38 -0
- package/dist/identity/auth/auth-provider.controller.d.ts.map +1 -0
- package/dist/identity/auth/auth-provider.controller.js +137 -0
- package/dist/identity/auth/auth-provider.controller.js.map +1 -0
- package/dist/identity/auth/auth.controller.d.ts +92 -0
- package/dist/identity/auth/auth.controller.d.ts.map +1 -0
- package/dist/identity/auth/auth.controller.js +367 -0
- package/dist/identity/auth/auth.controller.js.map +1 -0
- package/dist/identity/auth/auth.module.d.ts +15 -0
- package/dist/identity/auth/auth.module.d.ts.map +1 -0
- package/dist/identity/auth/auth.module.js +89 -0
- package/dist/identity/auth/auth.module.js.map +1 -0
- package/dist/identity/auth/auth.service.d.ts +386 -0
- package/dist/identity/auth/auth.service.d.ts.map +1 -0
- package/dist/identity/auth/auth.service.js +1394 -0
- package/dist/identity/auth/auth.service.js.map +1 -0
- package/dist/identity/auth/cookie-http.d.ts +51 -0
- package/dist/identity/auth/cookie-http.d.ts.map +1 -0
- package/dist/identity/auth/cookie-http.js +3 -0
- package/dist/identity/auth/cookie-http.js.map +1 -0
- package/dist/identity/auth/credential-binding.d.ts +53 -0
- package/dist/identity/auth/credential-binding.d.ts.map +1 -0
- package/dist/identity/auth/credential-binding.js +73 -0
- package/dist/identity/auth/credential-binding.js.map +1 -0
- package/dist/identity/auth/decorators/auth-credential.decorator.d.ts +44 -0
- package/dist/identity/auth/decorators/auth-credential.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/auth-credential.decorator.js +23 -0
- package/dist/identity/auth/decorators/auth-credential.decorator.js.map +1 -0
- package/dist/identity/auth/decorators/auth.decorator.d.ts +97 -0
- package/dist/identity/auth/decorators/auth.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/auth.decorator.js +104 -0
- package/dist/identity/auth/decorators/auth.decorator.js.map +1 -0
- package/dist/identity/auth/decorators/current-org.decorator.d.ts +29 -0
- package/dist/identity/auth/decorators/current-org.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/current-org.decorator.js +55 -0
- package/dist/identity/auth/decorators/current-org.decorator.js.map +1 -0
- package/dist/identity/auth/decorators/current-principal.decorator.d.ts +38 -0
- package/dist/identity/auth/decorators/current-principal.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/current-principal.decorator.js +40 -0
- package/dist/identity/auth/decorators/current-principal.decorator.js.map +1 -0
- package/dist/identity/auth/decorators/current-user.decorator.d.ts +26 -0
- package/dist/identity/auth/decorators/current-user.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/current-user.decorator.js +33 -0
- package/dist/identity/auth/decorators/current-user.decorator.js.map +1 -0
- package/dist/identity/auth/decorators/index.d.ts +9 -0
- package/dist/identity/auth/decorators/index.d.ts.map +1 -0
- package/dist/identity/auth/decorators/index.js +25 -0
- package/dist/identity/auth/decorators/index.js.map +1 -0
- package/dist/identity/auth/decorators/permissions.decorator.d.ts +43 -0
- package/dist/identity/auth/decorators/permissions.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/permissions.decorator.js +48 -0
- package/dist/identity/auth/decorators/permissions.decorator.js.map +1 -0
- package/dist/identity/auth/decorators/public.decorator.d.ts +22 -0
- package/dist/identity/auth/decorators/public.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/public.decorator.js +27 -0
- package/dist/identity/auth/decorators/public.decorator.js.map +1 -0
- package/dist/identity/auth/decorators/roles.decorator.d.ts +26 -0
- package/dist/identity/auth/decorators/roles.decorator.d.ts.map +1 -0
- package/dist/identity/auth/decorators/roles.decorator.js +30 -0
- package/dist/identity/auth/decorators/roles.decorator.js.map +1 -0
- package/dist/identity/auth/doctor/auth-providers.doctor-check.d.ts +27 -0
- package/dist/identity/auth/doctor/auth-providers.doctor-check.d.ts.map +1 -0
- package/dist/identity/auth/doctor/auth-providers.doctor-check.js +78 -0
- package/dist/identity/auth/doctor/auth-providers.doctor-check.js.map +1 -0
- package/dist/identity/auth/doctor/egress/auth-providers.egress.contributor.d.ts +29 -0
- package/dist/identity/auth/doctor/egress/auth-providers.egress.contributor.d.ts.map +1 -0
- package/dist/identity/auth/doctor/egress/auth-providers.egress.contributor.js +97 -0
- package/dist/identity/auth/doctor/egress/auth-providers.egress.contributor.js.map +1 -0
- package/dist/identity/auth/doctor/egress/google-auth.egress.contributor.d.ts +2 -0
- package/dist/identity/auth/doctor/egress/google-auth.egress.contributor.d.ts.map +1 -0
- package/dist/identity/auth/doctor/egress/google-auth.egress.contributor.js +13 -0
- package/dist/identity/auth/doctor/egress/google-auth.egress.contributor.js.map +1 -0
- package/dist/identity/auth/doctor/initial-admin.doctor-check.d.ts +27 -0
- package/dist/identity/auth/doctor/initial-admin.doctor-check.d.ts.map +1 -0
- package/dist/identity/auth/doctor/initial-admin.doctor-check.js +87 -0
- package/dist/identity/auth/doctor/initial-admin.doctor-check.js.map +1 -0
- package/dist/identity/auth/doctor/jwt-secret.doctor-check.d.ts +27 -0
- package/dist/identity/auth/doctor/jwt-secret.doctor-check.d.ts.map +1 -0
- package/dist/identity/auth/doctor/jwt-secret.doctor-check.js +78 -0
- package/dist/identity/auth/doctor/jwt-secret.doctor-check.js.map +1 -0
- package/dist/identity/auth/doctor/principal-cache.doctor-check.d.ts +25 -0
- package/dist/identity/auth/doctor/principal-cache.doctor-check.d.ts.map +1 -0
- package/dist/identity/auth/doctor/principal-cache.doctor-check.js +95 -0
- package/dist/identity/auth/doctor/principal-cache.doctor-check.js.map +1 -0
- package/dist/identity/auth/dto/auth-provider.dto.d.ts +15 -0
- package/dist/identity/auth/dto/auth-provider.dto.d.ts.map +1 -0
- package/dist/identity/auth/dto/auth-provider.dto.js +60 -0
- package/dist/identity/auth/dto/auth-provider.dto.js.map +1 -0
- package/dist/identity/auth/dto/auth-user.dto.d.ts +50 -0
- package/dist/identity/auth/dto/auth-user.dto.d.ts.map +1 -0
- package/dist/identity/auth/dto/auth-user.dto.js +232 -0
- package/dist/identity/auth/dto/auth-user.dto.js.map +1 -0
- package/dist/identity/auth/dto/switch-org.dto.d.ts +8 -0
- package/dist/identity/auth/dto/switch-org.dto.d.ts.map +1 -0
- package/dist/identity/auth/dto/switch-org.dto.js +10 -0
- package/dist/identity/auth/dto/switch-org.dto.js.map +1 -0
- package/dist/identity/auth/external-profile.d.ts +86 -0
- package/dist/identity/auth/external-profile.d.ts.map +1 -0
- package/dist/identity/auth/external-profile.js +127 -0
- package/dist/identity/auth/external-profile.js.map +1 -0
- package/dist/identity/auth/filters/auth-provider-exception.filter.d.ts +24 -0
- package/dist/identity/auth/filters/auth-provider-exception.filter.d.ts.map +1 -0
- package/dist/identity/auth/filters/auth-provider-exception.filter.js +62 -0
- package/dist/identity/auth/filters/auth-provider-exception.filter.js.map +1 -0
- package/dist/identity/auth/filters/google-oauth-exception.filter.d.ts +27 -0
- package/dist/identity/auth/filters/google-oauth-exception.filter.d.ts.map +1 -0
- package/dist/identity/auth/filters/google-oauth-exception.filter.js +65 -0
- package/dist/identity/auth/filters/google-oauth-exception.filter.js.map +1 -0
- package/dist/identity/auth/guards/external-provider.guard.d.ts +29 -0
- package/dist/identity/auth/guards/external-provider.guard.d.ts.map +1 -0
- package/dist/identity/auth/guards/external-provider.guard.js +166 -0
- package/dist/identity/auth/guards/external-provider.guard.js.map +1 -0
- package/dist/identity/auth/guards/google-oauth.guard.d.ts +70 -0
- package/dist/identity/auth/guards/google-oauth.guard.d.ts.map +1 -0
- package/dist/identity/auth/guards/google-oauth.guard.js +108 -0
- package/dist/identity/auth/guards/google-oauth.guard.js.map +1 -0
- package/dist/identity/auth/guards/index.d.ts +5 -0
- package/dist/identity/auth/guards/index.d.ts.map +1 -0
- package/dist/identity/auth/guards/index.js +21 -0
- package/dist/identity/auth/guards/index.js.map +1 -0
- package/dist/identity/auth/guards/jwt-auth.guard.d.ts +85 -0
- package/dist/identity/auth/guards/jwt-auth.guard.d.ts.map +1 -0
- package/dist/identity/auth/guards/jwt-auth.guard.js +250 -0
- package/dist/identity/auth/guards/jwt-auth.guard.js.map +1 -0
- package/dist/identity/auth/guards/permissions.guard.d.ts +21 -0
- package/dist/identity/auth/guards/permissions.guard.d.ts.map +1 -0
- package/dist/identity/auth/guards/permissions.guard.js +79 -0
- package/dist/identity/auth/guards/permissions.guard.js.map +1 -0
- package/dist/identity/auth/guards/roles.guard.d.ts +20 -0
- package/dist/identity/auth/guards/roles.guard.d.ts.map +1 -0
- package/dist/identity/auth/guards/roles.guard.js +61 -0
- package/dist/identity/auth/guards/roles.guard.js.map +1 -0
- package/dist/identity/auth/handlers/token-cleanup.handler.d.ts +44 -0
- package/dist/identity/auth/handlers/token-cleanup.handler.d.ts.map +1 -0
- package/dist/identity/auth/handlers/token-cleanup.handler.js +124 -0
- package/dist/identity/auth/handlers/token-cleanup.handler.js.map +1 -0
- package/dist/identity/auth/interfaces/authenticated-user.interface.d.ts +121 -0
- package/dist/identity/auth/interfaces/authenticated-user.interface.d.ts.map +1 -0
- package/dist/identity/auth/interfaces/authenticated-user.interface.js +25 -0
- package/dist/identity/auth/interfaces/authenticated-user.interface.js.map +1 -0
- package/dist/identity/auth/principal-cache/index.d.ts +5 -0
- package/dist/identity/auth/principal-cache/index.d.ts.map +1 -0
- package/dist/identity/auth/principal-cache/index.js +15 -0
- package/dist/identity/auth/principal-cache/index.js.map +1 -0
- package/dist/identity/auth/principal-cache/local-event-bus.d.ts +15 -0
- package/dist/identity/auth/principal-cache/local-event-bus.d.ts.map +1 -0
- package/dist/identity/auth/principal-cache/local-event-bus.js +53 -0
- package/dist/identity/auth/principal-cache/local-event-bus.js.map +1 -0
- package/dist/identity/auth/principal-cache/principal-cache.config.d.ts +16 -0
- package/dist/identity/auth/principal-cache/principal-cache.config.d.ts.map +1 -0
- package/dist/identity/auth/principal-cache/principal-cache.config.js +55 -0
- package/dist/identity/auth/principal-cache/principal-cache.config.js.map +1 -0
- package/dist/identity/auth/principal-cache/principal-cache.module.d.ts +9 -0
- package/dist/identity/auth/principal-cache/principal-cache.module.d.ts.map +1 -0
- package/dist/identity/auth/principal-cache/principal-cache.module.js +44 -0
- package/dist/identity/auth/principal-cache/principal-cache.module.js.map +1 -0
- package/dist/identity/auth/principal-cache/principal-cache.service.d.ts +148 -0
- package/dist/identity/auth/principal-cache/principal-cache.service.d.ts.map +1 -0
- package/dist/identity/auth/principal-cache/principal-cache.service.js +381 -0
- package/dist/identity/auth/principal-cache/principal-cache.service.js.map +1 -0
- package/dist/identity/auth/principal.factory.d.ts +191 -0
- package/dist/identity/auth/principal.factory.d.ts.map +1 -0
- package/dist/identity/auth/principal.factory.js +247 -0
- package/dist/identity/auth/principal.factory.js.map +1 -0
- package/dist/identity/auth/providers/auth-provider.registry.d.ts +217 -0
- package/dist/identity/auth/providers/auth-provider.registry.d.ts.map +1 -0
- package/dist/identity/auth/providers/auth-provider.registry.js +136 -0
- package/dist/identity/auth/providers/auth-provider.registry.js.map +1 -0
- package/dist/identity/auth/providers/cookie-state-store.d.ts +88 -0
- package/dist/identity/auth/providers/cookie-state-store.d.ts.map +1 -0
- package/dist/identity/auth/providers/cookie-state-store.js +86 -0
- package/dist/identity/auth/providers/cookie-state-store.js.map +1 -0
- package/dist/identity/auth/providers/google.provider.d.ts +3 -0
- package/dist/identity/auth/providers/google.provider.d.ts.map +1 -0
- package/dist/identity/auth/providers/google.provider.js +34 -0
- package/dist/identity/auth/providers/google.provider.js.map +1 -0
- package/dist/identity/auth/sign-in-policy.d.ts +87 -0
- package/dist/identity/auth/sign-in-policy.d.ts.map +1 -0
- package/dist/identity/auth/sign-in-policy.js +34 -0
- package/dist/identity/auth/sign-in-policy.js.map +1 -0
- package/dist/identity/auth/sign-in-response.d.ts +94 -0
- package/dist/identity/auth/sign-in-response.d.ts.map +1 -0
- package/dist/identity/auth/sign-in-response.js +128 -0
- package/dist/identity/auth/sign-in-response.js.map +1 -0
- package/dist/identity/auth/strategies/google.strategy.d.ts +44 -0
- package/dist/identity/auth/strategies/google.strategy.d.ts.map +1 -0
- package/dist/identity/auth/strategies/google.strategy.js +67 -0
- package/dist/identity/auth/strategies/google.strategy.js.map +1 -0
- package/dist/identity/auth/strategies/jwt.strategy.d.ts +58 -0
- package/dist/identity/auth/strategies/jwt.strategy.d.ts.map +1 -0
- package/dist/identity/auth/strategies/jwt.strategy.js +57 -0
- package/dist/identity/auth/strategies/jwt.strategy.js.map +1 -0
- package/dist/identity/auth/tasks/token-cleanup.task.d.ts +8 -0
- package/dist/identity/auth/tasks/token-cleanup.task.d.ts.map +1 -0
- package/dist/identity/auth/tasks/token-cleanup.task.js +62 -0
- package/dist/identity/auth/tasks/token-cleanup.task.js.map +1 -0
- package/dist/identity/auth/tenancy-mode.d.ts +16 -0
- package/dist/identity/auth/tenancy-mode.d.ts.map +1 -0
- package/dist/identity/auth/tenancy-mode.js +41 -0
- package/dist/identity/auth/tenancy-mode.js.map +1 -0
- package/dist/identity/data/identity-db.d.ts +448 -0
- package/dist/identity/data/identity-db.d.ts.map +1 -0
- package/dist/identity/data/identity-db.js +58 -0
- package/dist/identity/data/identity-db.js.map +1 -0
- package/dist/identity/device-auth/device-auth.controller.d.ts +57 -0
- package/dist/identity/device-auth/device-auth.controller.d.ts.map +1 -0
- package/dist/identity/device-auth/device-auth.controller.js +315 -0
- package/dist/identity/device-auth/device-auth.controller.js.map +1 -0
- package/dist/identity/device-auth/device-auth.module.d.ts +16 -0
- package/dist/identity/device-auth/device-auth.module.d.ts.map +1 -0
- package/dist/identity/device-auth/device-auth.module.js +41 -0
- package/dist/identity/device-auth/device-auth.module.js.map +1 -0
- package/dist/identity/device-auth/device-auth.service.d.ts +213 -0
- package/dist/identity/device-auth/device-auth.service.d.ts.map +1 -0
- package/dist/identity/device-auth/device-auth.service.js +738 -0
- package/dist/identity/device-auth/device-auth.service.js.map +1 -0
- package/dist/identity/device-auth/dto/device-activate-response.dto.d.ts +10 -0
- package/dist/identity/device-auth/dto/device-activate-response.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-activate-response.dto.js +54 -0
- package/dist/identity/device-auth/dto/device-activate-response.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-authorize-request.dto.d.ts +17 -0
- package/dist/identity/device-auth/dto/device-authorize-request.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-authorize-request.dto.js +41 -0
- package/dist/identity/device-auth/dto/device-authorize-request.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-authorize-response.dto.d.ts +8 -0
- package/dist/identity/device-auth/dto/device-authorize-response.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-authorize-response.dto.js +36 -0
- package/dist/identity/device-auth/dto/device-authorize-response.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-code-request.dto.d.ts +30 -0
- package/dist/identity/device-auth/dto/device-code-request.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-code-request.dto.js +51 -0
- package/dist/identity/device-auth/dto/device-code-request.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-code-response.dto.d.ts +13 -0
- package/dist/identity/device-auth/dto/device-code-response.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-code-response.dto.js +74 -0
- package/dist/identity/device-auth/dto/device-code-response.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-session.dto.d.ts +24 -0
- package/dist/identity/device-auth/dto/device-session.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-session.dto.js +151 -0
- package/dist/identity/device-auth/dto/device-session.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-token-error.dto.d.ts +16 -0
- package/dist/identity/device-auth/dto/device-token-error.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-token-error.dto.js +53 -0
- package/dist/identity/device-auth/dto/device-token-error.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-token-request.dto.d.ts +14 -0
- package/dist/identity/device-auth/dto/device-token-request.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-token-request.dto.js +33 -0
- package/dist/identity/device-auth/dto/device-token-request.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/device-token-response.dto.d.ts +50 -0
- package/dist/identity/device-auth/dto/device-token-response.dto.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/device-token-response.dto.js +145 -0
- package/dist/identity/device-auth/dto/device-token-response.dto.js.map +1 -0
- package/dist/identity/device-auth/dto/index.d.ts +10 -0
- package/dist/identity/device-auth/dto/index.d.ts.map +1 -0
- package/dist/identity/device-auth/dto/index.js +26 -0
- package/dist/identity/device-auth/dto/index.js.map +1 -0
- package/dist/identity/device-auth/exceptions/device-token-error.exception.d.ts +38 -0
- package/dist/identity/device-auth/exceptions/device-token-error.exception.d.ts.map +1 -0
- package/dist/identity/device-auth/exceptions/device-token-error.exception.js +61 -0
- package/dist/identity/device-auth/exceptions/device-token-error.exception.js.map +1 -0
- package/dist/identity/device-auth/handlers/device-code-cleanup.handler.d.ts +30 -0
- package/dist/identity/device-auth/handlers/device-code-cleanup.handler.d.ts.map +1 -0
- package/dist/identity/device-auth/handlers/device-code-cleanup.handler.js +80 -0
- package/dist/identity/device-auth/handlers/device-code-cleanup.handler.js.map +1 -0
- package/dist/identity/device-auth/tasks/device-code-cleanup.task.d.ts +8 -0
- package/dist/identity/device-auth/tasks/device-code-cleanup.task.d.ts.map +1 -0
- package/dist/identity/device-auth/tasks/device-code-cleanup.task.js +58 -0
- package/dist/identity/device-auth/tasks/device-code-cleanup.task.js.map +1 -0
- package/dist/identity/extensions/user-extensions.d.ts +263 -0
- package/dist/identity/extensions/user-extensions.d.ts.map +1 -0
- package/dist/identity/extensions/user-extensions.js +455 -0
- package/dist/identity/extensions/user-extensions.js.map +1 -0
- package/dist/identity/identity.configuration.d.ts +81 -0
- package/dist/identity/identity.configuration.d.ts.map +1 -0
- package/dist/identity/identity.configuration.js +87 -0
- package/dist/identity/identity.configuration.js.map +1 -0
- package/dist/identity/identity.constants.d.ts +3 -0
- package/dist/identity/identity.constants.d.ts.map +1 -0
- package/dist/identity/identity.constants.js +14 -0
- package/dist/identity/identity.constants.js.map +1 -0
- package/dist/identity/identity.events.d.ts +124 -0
- package/dist/identity/identity.events.d.ts.map +1 -0
- package/dist/identity/identity.events.js +74 -0
- package/dist/identity/identity.events.js.map +1 -0
- package/dist/identity/identity.module.d.ts +35 -0
- package/dist/identity/identity.module.d.ts.map +1 -0
- package/dist/identity/identity.module.js +127 -0
- package/dist/identity/identity.module.js.map +1 -0
- package/dist/identity/identity.options.d.ts +92 -0
- package/dist/identity/identity.options.d.ts.map +1 -0
- package/dist/identity/identity.options.js +71 -0
- package/dist/identity/identity.options.js.map +1 -0
- package/dist/identity/identity.permissions.d.ts +135 -0
- package/dist/identity/identity.permissions.d.ts.map +1 -0
- package/dist/identity/identity.permissions.js +111 -0
- package/dist/identity/identity.permissions.js.map +1 -0
- package/dist/identity/index.d.ts +121 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +243 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/metadata/identity-metadata.service.d.ts +142 -0
- package/dist/identity/metadata/identity-metadata.service.d.ts.map +1 -0
- package/dist/identity/metadata/identity-metadata.service.js +273 -0
- package/dist/identity/metadata/identity-metadata.service.js.map +1 -0
- package/dist/identity/metadata/metadata-registry.d.ts +102 -0
- package/dist/identity/metadata/metadata-registry.d.ts.map +1 -0
- package/dist/identity/metadata/metadata-registry.js +130 -0
- package/dist/identity/metadata/metadata-registry.js.map +1 -0
- package/dist/identity/metadata/metadata-secret-guard.d.ts +58 -0
- package/dist/identity/metadata/metadata-secret-guard.d.ts.map +1 -0
- package/dist/identity/metadata/metadata-secret-guard.js +138 -0
- package/dist/identity/metadata/metadata-secret-guard.js.map +1 -0
- package/dist/identity/organizations/doctor/tenancy-mode.doctor-check.d.ts +49 -0
- package/dist/identity/organizations/doctor/tenancy-mode.doctor-check.d.ts.map +1 -0
- package/dist/identity/organizations/doctor/tenancy-mode.doctor-check.js +129 -0
- package/dist/identity/organizations/doctor/tenancy-mode.doctor-check.js.map +1 -0
- package/dist/identity/organizations/dto/org-invite.dto.d.ts +37 -0
- package/dist/identity/organizations/dto/org-invite.dto.d.ts.map +1 -0
- package/dist/identity/organizations/dto/org-invite.dto.js +21 -0
- package/dist/identity/organizations/dto/org-invite.dto.js.map +1 -0
- package/dist/identity/organizations/dto/org-member.dto.d.ts +29 -0
- package/dist/identity/organizations/dto/org-member.dto.d.ts.map +1 -0
- package/dist/identity/organizations/dto/org-member.dto.js +22 -0
- package/dist/identity/organizations/dto/org-member.dto.js.map +1 -0
- package/dist/identity/organizations/dto/organization.dto.d.ts +34 -0
- package/dist/identity/organizations/dto/organization.dto.d.ts.map +1 -0
- package/dist/identity/organizations/dto/organization.dto.js +27 -0
- package/dist/identity/organizations/dto/organization.dto.js.map +1 -0
- package/dist/identity/organizations/org-admin.common.d.ts +34 -0
- package/dist/identity/organizations/org-admin.common.d.ts.map +1 -0
- package/dist/identity/organizations/org-admin.common.js +76 -0
- package/dist/identity/organizations/org-admin.common.js.map +1 -0
- package/dist/identity/organizations/org-invites.controller.d.ts +21 -0
- package/dist/identity/organizations/org-invites.controller.d.ts.map +1 -0
- package/dist/identity/organizations/org-invites.controller.js +107 -0
- package/dist/identity/organizations/org-invites.controller.js.map +1 -0
- package/dist/identity/organizations/org-invites.service.d.ts +128 -0
- package/dist/identity/organizations/org-invites.service.d.ts.map +1 -0
- package/dist/identity/organizations/org-invites.service.js +294 -0
- package/dist/identity/organizations/org-invites.service.js.map +1 -0
- package/dist/identity/organizations/org-members.controller.d.ts +26 -0
- package/dist/identity/organizations/org-members.controller.d.ts.map +1 -0
- package/dist/identity/organizations/org-members.controller.js +116 -0
- package/dist/identity/organizations/org-members.controller.js.map +1 -0
- package/dist/identity/organizations/org-members.service.d.ts +84 -0
- package/dist/identity/organizations/org-members.service.d.ts.map +1 -0
- package/dist/identity/organizations/org-members.service.js +302 -0
- package/dist/identity/organizations/org-members.service.js.map +1 -0
- package/dist/identity/organizations/org-scope.d.ts +65 -0
- package/dist/identity/organizations/org-scope.d.ts.map +1 -0
- package/dist/identity/organizations/org-scope.js +84 -0
- package/dist/identity/organizations/org-scope.js.map +1 -0
- package/dist/identity/organizations/organizations-admin.controller.d.ts +23 -0
- package/dist/identity/organizations/organizations-admin.controller.d.ts.map +1 -0
- package/dist/identity/organizations/organizations-admin.controller.js +103 -0
- package/dist/identity/organizations/organizations-admin.controller.js.map +1 -0
- package/dist/identity/organizations/organizations-admin.service.d.ts +58 -0
- package/dist/identity/organizations/organizations-admin.service.d.ts.map +1 -0
- package/dist/identity/organizations/organizations-admin.service.js +191 -0
- package/dist/identity/organizations/organizations-admin.service.js.map +1 -0
- package/dist/identity/organizations/organizations.errors.d.ts +13 -0
- package/dist/identity/organizations/organizations.errors.d.ts.map +1 -0
- package/dist/identity/organizations/organizations.errors.js +19 -0
- package/dist/identity/organizations/organizations.errors.js.map +1 -0
- package/dist/identity/organizations/organizations.metrics.d.ts +24 -0
- package/dist/identity/organizations/organizations.metrics.d.ts.map +1 -0
- package/dist/identity/organizations/organizations.metrics.js +27 -0
- package/dist/identity/organizations/organizations.metrics.js.map +1 -0
- package/dist/identity/organizations/organizations.module.d.ts +17 -0
- package/dist/identity/organizations/organizations.module.d.ts.map +1 -0
- package/dist/identity/organizations/organizations.module.js +60 -0
- package/dist/identity/organizations/organizations.module.js.map +1 -0
- package/dist/identity/organizations/organizations.permissions.d.ts +23 -0
- package/dist/identity/organizations/organizations.permissions.d.ts.map +1 -0
- package/dist/identity/organizations/organizations.permissions.js +76 -0
- package/dist/identity/organizations/organizations.permissions.js.map +1 -0
- package/dist/identity/organizations/organizations.service.d.ts +173 -0
- package/dist/identity/organizations/organizations.service.d.ts.map +1 -0
- package/dist/identity/organizations/organizations.service.js +408 -0
- package/dist/identity/organizations/organizations.service.js.map +1 -0
- package/dist/identity/organizations/tenancy-mode.d.ts +79 -0
- package/dist/identity/organizations/tenancy-mode.d.ts.map +1 -0
- package/dist/identity/organizations/tenancy-mode.js +128 -0
- package/dist/identity/organizations/tenancy-mode.js.map +1 -0
- package/dist/identity/organizations/tenancy.service.d.ts +35 -0
- package/dist/identity/organizations/tenancy.service.d.ts.map +1 -0
- package/dist/identity/organizations/tenancy.service.js +65 -0
- package/dist/identity/organizations/tenancy.service.js.map +1 -0
- package/dist/identity/pat/dto/create-pat.dto.d.ts +11 -0
- package/dist/identity/pat/dto/create-pat.dto.d.ts.map +1 -0
- package/dist/identity/pat/dto/create-pat.dto.js +10 -0
- package/dist/identity/pat/dto/create-pat.dto.js.map +1 -0
- package/dist/identity/pat/dto/pat-response.dto.d.ts +28 -0
- package/dist/identity/pat/dto/pat-response.dto.d.ts.map +1 -0
- package/dist/identity/pat/dto/pat-response.dto.js +119 -0
- package/dist/identity/pat/dto/pat-response.dto.js.map +1 -0
- package/dist/identity/pat/index.d.ts +3 -0
- package/dist/identity/pat/index.d.ts.map +1 -0
- package/dist/identity/pat/index.js +8 -0
- package/dist/identity/pat/index.js.map +1 -0
- package/dist/identity/pat/pat.controller.d.ts +12 -0
- package/dist/identity/pat/pat.controller.d.ts.map +1 -0
- package/dist/identity/pat/pat.controller.js +111 -0
- package/dist/identity/pat/pat.controller.js.map +1 -0
- package/dist/identity/pat/pat.module.d.ts +8 -0
- package/dist/identity/pat/pat.module.d.ts.map +1 -0
- package/dist/identity/pat/pat.module.js +32 -0
- package/dist/identity/pat/pat.module.js.map +1 -0
- package/dist/identity/pat/pat.service.d.ts +86 -0
- package/dist/identity/pat/pat.service.d.ts.map +1 -0
- package/dist/identity/pat/pat.service.js +296 -0
- package/dist/identity/pat/pat.service.js.map +1 -0
- package/dist/identity/ports.d.ts +396 -0
- package/dist/identity/ports.d.ts.map +1 -0
- package/dist/identity/ports.js +126 -0
- package/dist/identity/ports.js.map +1 -0
- package/dist/identity/roles/dto/roles.dto.d.ts +16 -0
- package/dist/identity/roles/dto/roles.dto.d.ts.map +1 -0
- package/dist/identity/roles/dto/roles.dto.js +13 -0
- package/dist/identity/roles/dto/roles.dto.js.map +1 -0
- package/dist/identity/roles/index.d.ts +3 -0
- package/dist/identity/roles/index.d.ts.map +1 -0
- package/dist/identity/roles/index.js +15 -0
- package/dist/identity/roles/index.js.map +1 -0
- package/dist/identity/roles/role-catalog.d.ts +90 -0
- package/dist/identity/roles/role-catalog.d.ts.map +1 -0
- package/dist/identity/roles/role-catalog.js +187 -0
- package/dist/identity/roles/role-catalog.js.map +1 -0
- package/dist/identity/roles/roles.controller.d.ts +21 -0
- package/dist/identity/roles/roles.controller.d.ts.map +1 -0
- package/dist/identity/roles/roles.controller.js +72 -0
- package/dist/identity/roles/roles.controller.js.map +1 -0
- package/dist/identity/roles/roles.module.d.ts +8 -0
- package/dist/identity/roles/roles.module.d.ts.map +1 -0
- package/dist/identity/roles/roles.module.js +23 -0
- package/dist/identity/roles/roles.module.js.map +1 -0
- package/dist/identity/testing/auth-provider-conformance.d.ts +99 -0
- package/dist/identity/testing/auth-provider-conformance.d.ts.map +1 -0
- package/dist/identity/testing/auth-provider-conformance.js +184 -0
- package/dist/identity/testing/auth-provider-conformance.js.map +1 -0
- package/dist/identity/testing/conformance.d.ts +208 -0
- package/dist/identity/testing/conformance.d.ts.map +1 -0
- package/dist/identity/testing/conformance.js +369 -0
- package/dist/identity/testing/conformance.js.map +1 -0
- package/dist/identity/testing/dto/test-login.dto.d.ts +10 -0
- package/dist/identity/testing/dto/test-login.dto.d.ts.map +1 -0
- package/dist/identity/testing/dto/test-login.dto.js +17 -0
- package/dist/identity/testing/dto/test-login.dto.js.map +1 -0
- package/dist/identity/testing/guards/test-environment.guard.d.ts +14 -0
- package/dist/identity/testing/guards/test-environment.guard.d.ts.map +1 -0
- package/dist/identity/testing/guards/test-environment.guard.js +39 -0
- package/dist/identity/testing/guards/test-environment.guard.js.map +1 -0
- package/dist/identity/testing/index.d.ts +11 -0
- package/dist/identity/testing/index.d.ts.map +1 -0
- package/dist/identity/testing/index.js +32 -0
- package/dist/identity/testing/index.js.map +1 -0
- package/dist/identity/testing/stub-host.d.ts +76 -0
- package/dist/identity/testing/stub-host.d.ts.map +1 -0
- package/dist/identity/testing/stub-host.js +91 -0
- package/dist/identity/testing/stub-host.js.map +1 -0
- package/dist/identity/testing/test-auth.controller.d.ts +25 -0
- package/dist/identity/testing/test-auth.controller.d.ts.map +1 -0
- package/dist/identity/testing/test-auth.controller.js +114 -0
- package/dist/identity/testing/test-auth.controller.js.map +1 -0
- package/dist/identity/testing/test-auth.module.d.ts +8 -0
- package/dist/identity/testing/test-auth.module.d.ts.map +1 -0
- package/dist/identity/testing/test-auth.module.js +51 -0
- package/dist/identity/testing/test-auth.module.js.map +1 -0
- package/dist/identity/testing/test-auth.service.d.ts +64 -0
- package/dist/identity/testing/test-auth.service.d.ts.map +1 -0
- package/dist/identity/testing/test-auth.service.js +262 -0
- package/dist/identity/testing/test-auth.service.js.map +1 -0
- package/dist/identity/users/dto/update-user-roles.dto.d.ts +18 -0
- package/dist/identity/users/dto/update-user-roles.dto.d.ts.map +1 -0
- package/dist/identity/users/dto/update-user-roles.dto.js +22 -0
- package/dist/identity/users/dto/update-user-roles.dto.js.map +1 -0
- package/dist/identity/users/dto/update-user.dto.d.ts +13 -0
- package/dist/identity/users/dto/update-user.dto.d.ts.map +1 -0
- package/dist/identity/users/dto/update-user.dto.js +13 -0
- package/dist/identity/users/dto/update-user.dto.js.map +1 -0
- package/dist/identity/users/dto/user-list-query.dto.d.ts +43 -0
- package/dist/identity/users/dto/user-list-query.dto.d.ts.map +1 -0
- package/dist/identity/users/dto/user-list-query.dto.js +18 -0
- package/dist/identity/users/dto/user-list-query.dto.js.map +1 -0
- package/dist/identity/users/dto/user-response.dto.d.ts +144 -0
- package/dist/identity/users/dto/user-response.dto.d.ts.map +1 -0
- package/dist/identity/users/dto/user-response.dto.js +66 -0
- package/dist/identity/users/dto/user-response.dto.js.map +1 -0
- package/dist/identity/users/users.controller.d.ts +75 -0
- package/dist/identity/users/users.controller.d.ts.map +1 -0
- package/dist/identity/users/users.controller.js +124 -0
- package/dist/identity/users/users.controller.js.map +1 -0
- package/dist/identity/users/users.module.d.ts +8 -0
- package/dist/identity/users/users.module.d.ts.map +1 -0
- package/dist/identity/users/users.module.js +35 -0
- package/dist/identity/users/users.module.js.map +1 -0
- package/dist/identity/users/users.permissions.d.ts +17 -0
- package/dist/identity/users/users.permissions.d.ts.map +1 -0
- package/dist/identity/users/users.permissions.js +44 -0
- package/dist/identity/users/users.permissions.js.map +1 -0
- package/dist/identity/users/users.service.d.ts +144 -0
- package/dist/identity/users/users.service.d.ts.map +1 -0
- package/dist/identity/users/users.service.js +482 -0
- package/dist/identity/users/users.service.js.map +1 -0
- package/dist/jobs/backoff.util.d.ts +59 -0
- package/dist/jobs/backoff.util.d.ts.map +1 -0
- package/dist/jobs/backoff.util.js +100 -0
- package/dist/jobs/backoff.util.js.map +1 -0
- package/dist/jobs/data/jobs-db.d.ts +404 -0
- package/dist/jobs/data/jobs-db.d.ts.map +1 -0
- package/dist/jobs/data/jobs-db.js +62 -0
- package/dist/jobs/data/jobs-db.js.map +1 -0
- package/dist/jobs/data/prisma-runtime.d.ts +2 -0
- package/dist/jobs/data/prisma-runtime.d.ts.map +1 -0
- package/dist/jobs/data/prisma-runtime.js +28 -0
- package/dist/jobs/data/prisma-runtime.js.map +1 -0
- package/dist/jobs/doctor/jobs-backlog.doctor-check.d.ts +39 -0
- package/dist/jobs/doctor/jobs-backlog.doctor-check.d.ts.map +1 -0
- package/dist/jobs/doctor/jobs-backlog.doctor-check.js +106 -0
- package/dist/jobs/doctor/jobs-backlog.doctor-check.js.map +1 -0
- package/dist/jobs/doctor/jobs-worker.doctor-check.d.ts +32 -0
- package/dist/jobs/doctor/jobs-worker.doctor-check.d.ts.map +1 -0
- package/dist/jobs/doctor/jobs-worker.doctor-check.js +91 -0
- package/dist/jobs/doctor/jobs-worker.doctor-check.js.map +1 -0
- package/dist/jobs/dto/job-actions.dto.d.ts +27 -0
- package/dist/jobs/dto/job-actions.dto.d.ts.map +1 -0
- package/dist/jobs/dto/job-actions.dto.js +30 -0
- package/dist/jobs/dto/job-actions.dto.js.map +1 -0
- package/dist/jobs/dto/job-insights.dto.d.ts +101 -0
- package/dist/jobs/dto/job-insights.dto.d.ts.map +1 -0
- package/dist/jobs/dto/job-insights.dto.js +34 -0
- package/dist/jobs/dto/job-insights.dto.js.map +1 -0
- package/dist/jobs/dto/job-list-query.dto.d.ts +18 -0
- package/dist/jobs/dto/job-list-query.dto.d.ts.map +1 -0
- package/dist/jobs/dto/job-list-query.dto.js +20 -0
- package/dist/jobs/dto/job-list-query.dto.js.map +1 -0
- package/dist/jobs/dto/job-response.dto.d.ts +49 -0
- package/dist/jobs/dto/job-response.dto.d.ts.map +1 -0
- package/dist/jobs/dto/job-response.dto.js +23 -0
- package/dist/jobs/dto/job-response.dto.js.map +1 -0
- package/dist/jobs/dto/job-stats.dto.d.ts +41 -0
- package/dist/jobs/dto/job-stats.dto.d.ts.map +1 -0
- package/dist/jobs/dto/job-stats.dto.js +20 -0
- package/dist/jobs/dto/job-stats.dto.js.map +1 -0
- package/dist/jobs/events/job-settled.event.d.ts +58 -0
- package/dist/jobs/events/job-settled.event.d.ts.map +1 -0
- package/dist/jobs/events/job-settled.event.js +124 -0
- package/dist/jobs/events/job-settled.event.js.map +1 -0
- package/dist/jobs/handlers/job-history-purge.handler.d.ts +110 -0
- package/dist/jobs/handlers/job-history-purge.handler.d.ts.map +1 -0
- package/dist/jobs/handlers/job-history-purge.handler.js +378 -0
- package/dist/jobs/handlers/job-history-purge.handler.js.map +1 -0
- package/dist/jobs/housekeeping.enqueue.d.ts +57 -0
- package/dist/jobs/housekeeping.enqueue.d.ts.map +1 -0
- package/dist/jobs/housekeeping.enqueue.js +139 -0
- package/dist/jobs/housekeeping.enqueue.js.map +1 -0
- package/dist/jobs/index.d.ts +71 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +168 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/job-admin.controller.d.ts +19 -0
- package/dist/jobs/job-admin.controller.d.ts.map +1 -0
- package/dist/jobs/job-admin.controller.js +347 -0
- package/dist/jobs/job-admin.controller.js.map +1 -0
- package/dist/jobs/job-admin.service.d.ts +228 -0
- package/dist/jobs/job-admin.service.d.ts.map +1 -0
- package/dist/jobs/job-admin.service.js +699 -0
- package/dist/jobs/job-admin.service.js.map +1 -0
- package/dist/jobs/job-claim.service.d.ts +103 -0
- package/dist/jobs/job-claim.service.d.ts.map +1 -0
- package/dist/jobs/job-claim.service.js +457 -0
- package/dist/jobs/job-claim.service.js.map +1 -0
- package/dist/jobs/job-clock.d.ts +46 -0
- package/dist/jobs/job-clock.d.ts.map +1 -0
- package/dist/jobs/job-clock.js +73 -0
- package/dist/jobs/job-clock.js.map +1 -0
- package/dist/jobs/job-counts.util.d.ts +44 -0
- package/dist/jobs/job-counts.util.d.ts.map +1 -0
- package/dist/jobs/job-counts.util.js +76 -0
- package/dist/jobs/job-counts.util.js.map +1 -0
- package/dist/jobs/job-execution-profile.d.ts +185 -0
- package/dist/jobs/job-execution-profile.d.ts.map +1 -0
- package/dist/jobs/job-execution-profile.js +333 -0
- package/dist/jobs/job-execution-profile.js.map +1 -0
- package/dist/jobs/job-handler.interface.d.ts +291 -0
- package/dist/jobs/job-handler.interface.d.ts.map +1 -0
- package/dist/jobs/job-handler.interface.js +191 -0
- package/dist/jobs/job-handler.interface.js.map +1 -0
- package/dist/jobs/job-handler.registry.d.ts +72 -0
- package/dist/jobs/job-handler.registry.d.ts.map +1 -0
- package/dist/jobs/job-handler.registry.js +174 -0
- package/dist/jobs/job-handler.registry.js.map +1 -0
- package/dist/jobs/job-insights.service.d.ts +152 -0
- package/dist/jobs/job-insights.service.d.ts.map +1 -0
- package/dist/jobs/job-insights.service.js +622 -0
- package/dist/jobs/job-insights.service.js.map +1 -0
- package/dist/jobs/job-keys.d.ts +14 -0
- package/dist/jobs/job-keys.d.ts.map +1 -0
- package/dist/jobs/job-keys.js +58 -0
- package/dist/jobs/job-keys.js.map +1 -0
- package/dist/jobs/job-lease.service.d.ts +187 -0
- package/dist/jobs/job-lease.service.d.ts.map +1 -0
- package/dist/jobs/job-lease.service.js +279 -0
- package/dist/jobs/job-lease.service.js.map +1 -0
- package/dist/jobs/job-reason.d.ts +81 -0
- package/dist/jobs/job-reason.d.ts.map +1 -0
- package/dist/jobs/job-reason.js +128 -0
- package/dist/jobs/job-reason.js.map +1 -0
- package/dist/jobs/job-scope.d.ts +41 -0
- package/dist/jobs/job-scope.d.ts.map +1 -0
- package/dist/jobs/job-scope.js +91 -0
- package/dist/jobs/job-scope.js.map +1 -0
- package/dist/jobs/job-secret-broker.d.ts +157 -0
- package/dist/jobs/job-secret-broker.d.ts.map +1 -0
- package/dist/jobs/job-secret-broker.js +97 -0
- package/dist/jobs/job-secret-broker.js.map +1 -0
- package/dist/jobs/job-settled.emit.d.ts +11 -0
- package/dist/jobs/job-settled.emit.d.ts.map +1 -0
- package/dist/jobs/job-settled.emit.js +43 -0
- package/dist/jobs/job-settled.emit.js.map +1 -0
- package/dist/jobs/job-stuck.service.d.ts +260 -0
- package/dist/jobs/job-stuck.service.d.ts.map +1 -0
- package/dist/jobs/job-stuck.service.js +612 -0
- package/dist/jobs/job-stuck.service.js.map +1 -0
- package/dist/jobs/job-temp.d.ts +67 -0
- package/dist/jobs/job-temp.d.ts.map +1 -0
- package/dist/jobs/job-temp.js +157 -0
- package/dist/jobs/job-temp.js.map +1 -0
- package/dist/jobs/job-terminal.service.d.ts +262 -0
- package/dist/jobs/job-terminal.service.d.ts.map +1 -0
- package/dist/jobs/job-terminal.service.js +733 -0
- package/dist/jobs/job-terminal.service.js.map +1 -0
- package/dist/jobs/job-trace-context.d.ts +74 -0
- package/dist/jobs/job-trace-context.d.ts.map +1 -0
- package/dist/jobs/job-trace-context.js +170 -0
- package/dist/jobs/job-trace-context.js.map +1 -0
- package/dist/jobs/job-type-label.d.ts +49 -0
- package/dist/jobs/job-type-label.d.ts.map +1 -0
- package/dist/jobs/job-type-label.js +99 -0
- package/dist/jobs/job-type-label.js.map +1 -0
- package/dist/jobs/job-wake.d.ts +12 -0
- package/dist/jobs/job-wake.d.ts.map +1 -0
- package/dist/jobs/job-wake.js +37 -0
- package/dist/jobs/job-wake.js.map +1 -0
- package/dist/jobs/job.worker.d.ts +514 -0
- package/dist/jobs/job.worker.d.ts.map +1 -0
- package/dist/jobs/job.worker.js +1183 -0
- package/dist/jobs/job.worker.js.map +1 -0
- package/dist/jobs/jobs.configuration.d.ts +71 -0
- package/dist/jobs/jobs.configuration.d.ts.map +1 -0
- package/dist/jobs/jobs.configuration.js +69 -0
- package/dist/jobs/jobs.configuration.js.map +1 -0
- package/dist/jobs/jobs.constants.d.ts +11 -0
- package/dist/jobs/jobs.constants.d.ts.map +1 -0
- package/dist/jobs/jobs.constants.js +16 -0
- package/dist/jobs/jobs.constants.js.map +1 -0
- package/dist/jobs/jobs.module.d.ts +37 -0
- package/dist/jobs/jobs.module.d.ts.map +1 -0
- package/dist/jobs/jobs.module.js +283 -0
- package/dist/jobs/jobs.module.js.map +1 -0
- package/dist/jobs/jobs.options.d.ts +97 -0
- package/dist/jobs/jobs.options.d.ts.map +1 -0
- package/dist/jobs/jobs.options.js +79 -0
- package/dist/jobs/jobs.options.js.map +1 -0
- package/dist/jobs/jobs.permissions.d.ts +29 -0
- package/dist/jobs/jobs.permissions.d.ts.map +1 -0
- package/dist/jobs/jobs.permissions.js +49 -0
- package/dist/jobs/jobs.permissions.js.map +1 -0
- package/dist/jobs/jobs.policy.d.ts +47 -0
- package/dist/jobs/jobs.policy.d.ts.map +1 -0
- package/dist/jobs/jobs.policy.js +44 -0
- package/dist/jobs/jobs.policy.js.map +1 -0
- package/dist/jobs/jobs.service.d.ts +220 -0
- package/dist/jobs/jobs.service.d.ts.map +1 -0
- package/dist/jobs/jobs.service.js +459 -0
- package/dist/jobs/jobs.service.js.map +1 -0
- package/dist/jobs/jobs.system-settings.d.ts +94 -0
- package/dist/jobs/jobs.system-settings.d.ts.map +1 -0
- package/dist/jobs/jobs.system-settings.js +76 -0
- package/dist/jobs/jobs.system-settings.js.map +1 -0
- package/dist/jobs/node-offload.service.d.ts +118 -0
- package/dist/jobs/node-offload.service.d.ts.map +1 -0
- package/dist/jobs/node-offload.service.js +264 -0
- package/dist/jobs/node-offload.service.js.map +1 -0
- package/dist/jobs/ports.d.ts +129 -0
- package/dist/jobs/ports.d.ts.map +1 -0
- package/dist/jobs/ports.js +69 -0
- package/dist/jobs/ports.js.map +1 -0
- package/dist/jobs/provider-throttle.service.d.ts +97 -0
- package/dist/jobs/provider-throttle.service.d.ts.map +1 -0
- package/dist/jobs/provider-throttle.service.js +248 -0
- package/dist/jobs/provider-throttle.service.js.map +1 -0
- package/dist/jobs/rate-limit.error.d.ts +90 -0
- package/dist/jobs/rate-limit.error.d.ts.map +1 -0
- package/dist/jobs/rate-limit.error.js +338 -0
- package/dist/jobs/rate-limit.error.js.map +1 -0
- package/dist/jobs/retention/audit-events-purge.handler.d.ts +75 -0
- package/dist/jobs/retention/audit-events-purge.handler.d.ts.map +1 -0
- package/dist/jobs/retention/audit-events-purge.handler.js +109 -0
- package/dist/jobs/retention/audit-events-purge.handler.js.map +1 -0
- package/dist/jobs/retention/batched-purge.d.ts +112 -0
- package/dist/jobs/retention/batched-purge.d.ts.map +1 -0
- package/dist/jobs/retention/batched-purge.js +150 -0
- package/dist/jobs/retention/batched-purge.js.map +1 -0
- package/dist/jobs/retention/retention-policy.registry.d.ts +108 -0
- package/dist/jobs/retention/retention-policy.registry.d.ts.map +1 -0
- package/dist/jobs/retention/retention-policy.registry.js +182 -0
- package/dist/jobs/retention/retention-policy.registry.js.map +1 -0
- package/dist/jobs/retention/retention-purge.registry.d.ts +60 -0
- package/dist/jobs/retention/retention-purge.registry.d.ts.map +1 -0
- package/dist/jobs/retention/retention-purge.registry.js +96 -0
- package/dist/jobs/retention/retention-purge.registry.js.map +1 -0
- package/dist/jobs/retention/retention-purge.task.d.ts +23 -0
- package/dist/jobs/retention/retention-purge.task.d.ts.map +1 -0
- package/dist/jobs/retention/retention-purge.task.js +123 -0
- package/dist/jobs/retention/retention-purge.task.js.map +1 -0
- package/dist/jobs/retention/retention.system-settings.d.ts +74 -0
- package/dist/jobs/retention/retention.system-settings.d.ts.map +1 -0
- package/dist/jobs/retention/retention.system-settings.js +167 -0
- package/dist/jobs/retention/retention.system-settings.js.map +1 -0
- package/dist/jobs/tasks/job-history-purge.task.d.ts +12 -0
- package/dist/jobs/tasks/job-history-purge.task.d.ts.map +1 -0
- package/dist/jobs/tasks/job-history-purge.task.js +150 -0
- package/dist/jobs/tasks/job-history-purge.task.js.map +1 -0
- package/dist/jobs/tasks/job-stuck-reset.task.d.ts +21 -0
- package/dist/jobs/tasks/job-stuck-reset.task.d.ts.map +1 -0
- package/dist/jobs/tasks/job-stuck-reset.task.js +128 -0
- package/dist/jobs/tasks/job-stuck-reset.task.js.map +1 -0
- package/dist/jobs/tasks/temp-file-janitor.task.d.ts +50 -0
- package/dist/jobs/tasks/temp-file-janitor.task.d.ts.map +1 -0
- package/dist/jobs/tasks/temp-file-janitor.task.js +206 -0
- package/dist/jobs/tasks/temp-file-janitor.task.js.map +1 -0
- package/dist/jobs/testing/fake-job-queue.d.ts +98 -0
- package/dist/jobs/testing/fake-job-queue.d.ts.map +1 -0
- package/dist/jobs/testing/fake-job-queue.js +203 -0
- package/dist/jobs/testing/fake-job-queue.js.map +1 -0
- package/dist/jobs/testing/index.d.ts +7 -0
- package/dist/jobs/testing/index.d.ts.map +1 -0
- package/dist/jobs/testing/index.js +22 -0
- package/dist/jobs/testing/index.js.map +1 -0
- package/dist/jobs/testing/job-handler-conformance.d.ts +136 -0
- package/dist/jobs/testing/job-handler-conformance.d.ts.map +1 -0
- package/dist/jobs/testing/job-handler-conformance.js +267 -0
- package/dist/jobs/testing/job-handler-conformance.js.map +1 -0
- package/dist/jobs/testing/on-event-no-io.suite.d.ts +99 -0
- package/dist/jobs/testing/on-event-no-io.suite.d.ts.map +1 -0
- package/dist/jobs/testing/on-event-no-io.suite.js +313 -0
- package/dist/jobs/testing/on-event-no-io.suite.js.map +1 -0
- package/dist/manifest/index.d.ts +9 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +28 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/permission-sets.d.ts +54 -0
- package/dist/manifest/permission-sets.d.ts.map +1 -0
- package/dist/manifest/permission-sets.js +70 -0
- package/dist/manifest/permission-sets.js.map +1 -0
- package/dist/manifest/platform-model-ownership.d.ts +28 -0
- package/dist/manifest/platform-model-ownership.d.ts.map +1 -0
- package/dist/manifest/platform-model-ownership.js +170 -0
- package/dist/manifest/platform-model-ownership.js.map +1 -0
- package/dist/manifest/platform-permissions.d.ts +87 -0
- package/dist/manifest/platform-permissions.d.ts.map +1 -0
- package/dist/manifest/platform-permissions.js +104 -0
- package/dist/manifest/platform-permissions.js.map +1 -0
- package/dist/manifest/platform-user-owned-models.d.ts +30 -0
- package/dist/manifest/platform-user-owned-models.d.ts.map +1 -0
- package/dist/manifest/platform-user-owned-models.js +256 -0
- package/dist/manifest/platform-user-owned-models.js.map +1 -0
- package/dist/manifest/register-permissions.d.ts +118 -0
- package/dist/manifest/register-permissions.d.ts.map +1 -0
- package/dist/manifest/register-permissions.js +145 -0
- package/dist/manifest/register-permissions.js.map +1 -0
- package/dist/nodes/doctor/nodes-fleet.doctor-check.d.ts +31 -0
- package/dist/nodes/doctor/nodes-fleet.doctor-check.d.ts.map +1 -0
- package/dist/nodes/doctor/nodes-fleet.doctor-check.js +77 -0
- package/dist/nodes/doctor/nodes-fleet.doctor-check.js.map +1 -0
- package/dist/nodes/dto/claim-token.field.d.ts +3 -0
- package/dist/nodes/dto/claim-token.field.d.ts.map +1 -0
- package/dist/nodes/dto/claim-token.field.js +14 -0
- package/dist/nodes/dto/claim-token.field.js.map +1 -0
- package/dist/nodes/dto/create-node-credential.dto.d.ts +14 -0
- package/dist/nodes/dto/create-node-credential.dto.d.ts.map +1 -0
- package/dist/nodes/dto/create-node-credential.dto.js +24 -0
- package/dist/nodes/dto/create-node-credential.dto.js.map +1 -0
- package/dist/nodes/dto/node-admin.dto.d.ts +174 -0
- package/dist/nodes/dto/node-admin.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-admin.dto.js +506 -0
- package/dist/nodes/dto/node-admin.dto.js.map +1 -0
- package/dist/nodes/dto/node-control-plane.dto.d.ts +108 -0
- package/dist/nodes/dto/node-control-plane.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-control-plane.dto.js +72 -0
- package/dist/nodes/dto/node-control-plane.dto.js.map +1 -0
- package/dist/nodes/dto/node-credential-response.dto.d.ts +61 -0
- package/dist/nodes/dto/node-credential-response.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-credential-response.dto.js +152 -0
- package/dist/nodes/dto/node-credential-response.dto.js.map +1 -0
- package/dist/nodes/dto/node-data-plane.dto.d.ts +80 -0
- package/dist/nodes/dto/node-data-plane.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-data-plane.dto.js +202 -0
- package/dist/nodes/dto/node-data-plane.dto.js.map +1 -0
- package/dist/nodes/dto/node-job-secret.dto.d.ts +26 -0
- package/dist/nodes/dto/node-job-secret.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-job-secret.dto.js +75 -0
- package/dist/nodes/dto/node-job-secret.dto.js.map +1 -0
- package/dist/nodes/dto/node-response.dto.d.ts +139 -0
- package/dist/nodes/dto/node-response.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-response.dto.js +475 -0
- package/dist/nodes/dto/node-response.dto.js.map +1 -0
- package/dist/nodes/dto/node-telemetry.dto.d.ts +153 -0
- package/dist/nodes/dto/node-telemetry.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-telemetry.dto.js +210 -0
- package/dist/nodes/dto/node-telemetry.dto.js.map +1 -0
- package/dist/nodes/events/node-offline.event.d.ts +37 -0
- package/dist/nodes/events/node-offline.event.d.ts.map +1 -0
- package/dist/nodes/events/node-offline.event.js +64 -0
- package/dist/nodes/events/node-offline.event.js.map +1 -0
- package/dist/nodes/handlers/node-fleet-prune.handler.d.ts +70 -0
- package/dist/nodes/handlers/node-fleet-prune.handler.d.ts.map +1 -0
- package/dist/nodes/handlers/node-fleet-prune.handler.js +241 -0
- package/dist/nodes/handlers/node-fleet-prune.handler.js.map +1 -0
- package/dist/nodes/handlers/node-fleet-sweep.handler.d.ts +79 -0
- package/dist/nodes/handlers/node-fleet-sweep.handler.d.ts.map +1 -0
- package/dist/nodes/handlers/node-fleet-sweep.handler.js +300 -0
- package/dist/nodes/handlers/node-fleet-sweep.handler.js.map +1 -0
- package/dist/nodes/index.d.ts +38 -0
- package/dist/nodes/index.d.ts.map +1 -0
- package/dist/nodes/index.js +78 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/node-credential.controller.d.ts +11 -0
- package/dist/nodes/node-credential.controller.d.ts.map +1 -0
- package/dist/nodes/node-credential.controller.js +184 -0
- package/dist/nodes/node-credential.controller.js.map +1 -0
- package/dist/nodes/node-credential.module.d.ts +12 -0
- package/dist/nodes/node-credential.module.d.ts.map +1 -0
- package/dist/nodes/node-credential.module.js +73 -0
- package/dist/nodes/node-credential.module.js.map +1 -0
- package/dist/nodes/node-credential.service.d.ts +239 -0
- package/dist/nodes/node-credential.service.d.ts.map +1 -0
- package/dist/nodes/node-credential.service.js +406 -0
- package/dist/nodes/node-credential.service.js.map +1 -0
- package/dist/nodes/node-data-plane.service.d.ts +198 -0
- package/dist/nodes/node-data-plane.service.d.ts.map +1 -0
- package/dist/nodes/node-data-plane.service.js +478 -0
- package/dist/nodes/node-data-plane.service.js.map +1 -0
- package/dist/nodes/node-fleet-metrics.service.d.ts +85 -0
- package/dist/nodes/node-fleet-metrics.service.d.ts.map +1 -0
- package/dist/nodes/node-fleet-metrics.service.js +413 -0
- package/dist/nodes/node-fleet-metrics.service.js.map +1 -0
- package/dist/nodes/node-lifecycle.service.d.ts +93 -0
- package/dist/nodes/node-lifecycle.service.d.ts.map +1 -0
- package/dist/nodes/node-lifecycle.service.js +217 -0
- package/dist/nodes/node-lifecycle.service.js.map +1 -0
- package/dist/nodes/node-secret-broker.service.d.ts +281 -0
- package/dist/nodes/node-secret-broker.service.d.ts.map +1 -0
- package/dist/nodes/node-secret-broker.service.js +711 -0
- package/dist/nodes/node-secret-broker.service.js.map +1 -0
- package/dist/nodes/node-settlement-ledger.d.ts +19 -0
- package/dist/nodes/node-settlement-ledger.d.ts.map +1 -0
- package/dist/nodes/node-settlement-ledger.js +86 -0
- package/dist/nodes/node-settlement-ledger.js.map +1 -0
- package/dist/nodes/node-span-attribute.registry.d.ts +118 -0
- package/dist/nodes/node-span-attribute.registry.d.ts.map +1 -0
- package/dist/nodes/node-span-attribute.registry.js +153 -0
- package/dist/nodes/node-span-attribute.registry.js.map +1 -0
- package/dist/nodes/node-telemetry-rate-limiter.d.ts +25 -0
- package/dist/nodes/node-telemetry-rate-limiter.d.ts.map +1 -0
- package/dist/nodes/node-telemetry-rate-limiter.js +104 -0
- package/dist/nodes/node-telemetry-rate-limiter.js.map +1 -0
- package/dist/nodes/node-telemetry.service.d.ts +22 -0
- package/dist/nodes/node-telemetry.service.d.ts.map +1 -0
- package/dist/nodes/node-telemetry.service.js +178 -0
- package/dist/nodes/node-telemetry.service.js.map +1 -0
- package/dist/nodes/nodes-admin.controller.d.ts +12 -0
- package/dist/nodes/nodes-admin.controller.d.ts.map +1 -0
- package/dist/nodes/nodes-admin.controller.js +218 -0
- package/dist/nodes/nodes-admin.controller.js.map +1 -0
- package/dist/nodes/nodes-admin.service.d.ts +111 -0
- package/dist/nodes/nodes-admin.service.d.ts.map +1 -0
- package/dist/nodes/nodes-admin.service.js +310 -0
- package/dist/nodes/nodes-admin.service.js.map +1 -0
- package/dist/nodes/nodes.constants.d.ts +11 -0
- package/dist/nodes/nodes.constants.d.ts.map +1 -0
- package/dist/nodes/nodes.constants.js +15 -0
- package/dist/nodes/nodes.constants.js.map +1 -0
- package/dist/nodes/nodes.controller.d.ts +31 -0
- package/dist/nodes/nodes.controller.d.ts.map +1 -0
- package/dist/nodes/nodes.controller.js +616 -0
- package/dist/nodes/nodes.controller.js.map +1 -0
- package/dist/nodes/nodes.metrics.d.ts +51 -0
- package/dist/nodes/nodes.metrics.d.ts.map +1 -0
- package/dist/nodes/nodes.metrics.js +148 -0
- package/dist/nodes/nodes.metrics.js.map +1 -0
- package/dist/nodes/nodes.module.d.ts +35 -0
- package/dist/nodes/nodes.module.d.ts.map +1 -0
- package/dist/nodes/nodes.module.js +278 -0
- package/dist/nodes/nodes.module.js.map +1 -0
- package/dist/nodes/nodes.options.d.ts +64 -0
- package/dist/nodes/nodes.options.d.ts.map +1 -0
- package/dist/nodes/nodes.options.js +39 -0
- package/dist/nodes/nodes.options.js.map +1 -0
- package/dist/nodes/nodes.permissions.d.ts +29 -0
- package/dist/nodes/nodes.permissions.d.ts.map +1 -0
- package/dist/nodes/nodes.permissions.js +55 -0
- package/dist/nodes/nodes.permissions.js.map +1 -0
- package/dist/nodes/nodes.service.d.ts +482 -0
- package/dist/nodes/nodes.service.d.ts.map +1 -0
- package/dist/nodes/nodes.service.js +1017 -0
- package/dist/nodes/nodes.service.js.map +1 -0
- package/dist/nodes/nodes.system-settings.d.ts +83 -0
- package/dist/nodes/nodes.system-settings.d.ts.map +1 -0
- package/dist/nodes/nodes.system-settings.js +70 -0
- package/dist/nodes/nodes.system-settings.js.map +1 -0
- package/dist/nodes/ops/node-secret-revoker.d.ts +16 -0
- package/dist/nodes/ops/node-secret-revoker.d.ts.map +1 -0
- package/dist/nodes/ops/node-secret-revoker.js +152 -0
- package/dist/nodes/ops/node-secret-revoker.js.map +1 -0
- package/dist/nodes/ports.d.ts +126 -0
- package/dist/nodes/ports.d.ts.map +1 -0
- package/dist/nodes/ports.js +65 -0
- package/dist/nodes/ports.js.map +1 -0
- package/dist/nodes/tasks/node-offline-prune.task.d.ts +25 -0
- package/dist/nodes/tasks/node-offline-prune.task.d.ts.map +1 -0
- package/dist/nodes/tasks/node-offline-prune.task.js +96 -0
- package/dist/nodes/tasks/node-offline-prune.task.js.map +1 -0
- package/dist/nodes/tasks/node-secret-sweep.task.d.ts +24 -0
- package/dist/nodes/tasks/node-secret-sweep.task.d.ts.map +1 -0
- package/dist/nodes/tasks/node-secret-sweep.task.js +151 -0
- package/dist/nodes/tasks/node-secret-sweep.task.js.map +1 -0
- package/dist/nodes/tasks/node-stale-offline.task.d.ts +29 -0
- package/dist/nodes/tasks/node-stale-offline.task.d.ts.map +1 -0
- package/dist/nodes/tasks/node-stale-offline.task.js +120 -0
- package/dist/nodes/tasks/node-stale-offline.task.js.map +1 -0
- package/dist/notifications/broadcasts/broadcast-audience.d.ts +109 -0
- package/dist/notifications/broadcasts/broadcast-audience.d.ts.map +1 -0
- package/dist/notifications/broadcasts/broadcast-audience.js +150 -0
- package/dist/notifications/broadcasts/broadcast-audience.js.map +1 -0
- package/dist/notifications/broadcasts/broadcast-failure.listener.d.ts +30 -0
- package/dist/notifications/broadcasts/broadcast-failure.listener.d.ts.map +1 -0
- package/dist/notifications/broadcasts/broadcast-failure.listener.js +212 -0
- package/dist/notifications/broadcasts/broadcast-failure.listener.js.map +1 -0
- package/dist/notifications/broadcasts/broadcast-job-delete-guard.d.ts +17 -0
- package/dist/notifications/broadcasts/broadcast-job-delete-guard.d.ts.map +1 -0
- package/dist/notifications/broadcasts/broadcast-job-delete-guard.js +64 -0
- package/dist/notifications/broadcasts/broadcast-job-delete-guard.js.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.controller.d.ts +32 -0
- package/dist/notifications/broadcasts/broadcasts.controller.d.ts.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.controller.js +368 -0
- package/dist/notifications/broadcasts/broadcasts.controller.js.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.module.d.ts +20 -0
- package/dist/notifications/broadcasts/broadcasts.module.d.ts.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.module.js +121 -0
- package/dist/notifications/broadcasts/broadcasts.module.js.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.notifications.d.ts +11 -0
- package/dist/notifications/broadcasts/broadcasts.notifications.d.ts.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.notifications.js +92 -0
- package/dist/notifications/broadcasts/broadcasts.notifications.js.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.service.d.ts +361 -0
- package/dist/notifications/broadcasts/broadcasts.service.d.ts.map +1 -0
- package/dist/notifications/broadcasts/broadcasts.service.js +693 -0
- package/dist/notifications/broadcasts/broadcasts.service.js.map +1 -0
- package/dist/notifications/broadcasts/dto/broadcast-list-query.dto.d.ts +15 -0
- package/dist/notifications/broadcasts/dto/broadcast-list-query.dto.d.ts.map +1 -0
- package/dist/notifications/broadcasts/dto/broadcast-list-query.dto.js +19 -0
- package/dist/notifications/broadcasts/dto/broadcast-list-query.dto.js.map +1 -0
- package/dist/notifications/broadcasts/dto/broadcast-response.dto.d.ts +152 -0
- package/dist/notifications/broadcasts/dto/broadcast-response.dto.d.ts.map +1 -0
- package/dist/notifications/broadcasts/dto/broadcast-response.dto.js +77 -0
- package/dist/notifications/broadcasts/dto/broadcast-response.dto.js.map +1 -0
- package/dist/notifications/broadcasts/dto/create-broadcast.dto.d.ts +62 -0
- package/dist/notifications/broadcasts/dto/create-broadcast.dto.d.ts.map +1 -0
- package/dist/notifications/broadcasts/dto/create-broadcast.dto.js +68 -0
- package/dist/notifications/broadcasts/dto/create-broadcast.dto.js.map +1 -0
- package/dist/notifications/broadcasts/handlers/broadcast-chunk.handler.d.ts +164 -0
- package/dist/notifications/broadcasts/handlers/broadcast-chunk.handler.d.ts.map +1 -0
- package/dist/notifications/broadcasts/handlers/broadcast-chunk.handler.js +807 -0
- package/dist/notifications/broadcasts/handlers/broadcast-chunk.handler.js.map +1 -0
- package/dist/notifications/broadcasts/handlers/broadcast-start.handler.d.ts +103 -0
- package/dist/notifications/broadcasts/handlers/broadcast-start.handler.d.ts.map +1 -0
- package/dist/notifications/broadcasts/handlers/broadcast-start.handler.js +454 -0
- package/dist/notifications/broadcasts/handlers/broadcast-start.handler.js.map +1 -0
- package/dist/notifications/channels/android-app-notification.channel.d.ts +36 -0
- package/dist/notifications/channels/android-app-notification.channel.d.ts.map +1 -0
- package/dist/notifications/channels/android-app-notification.channel.js +88 -0
- package/dist/notifications/channels/android-app-notification.channel.js.map +1 -0
- package/dist/notifications/channels/browser-notification.channel.d.ts +125 -0
- package/dist/notifications/channels/browser-notification.channel.d.ts.map +1 -0
- package/dist/notifications/channels/browser-notification.channel.js +312 -0
- package/dist/notifications/channels/browser-notification.channel.js.map +1 -0
- package/dist/notifications/channels/browser-templates.d.ts +98 -0
- package/dist/notifications/channels/browser-templates.d.ts.map +1 -0
- package/dist/notifications/channels/browser-templates.js +200 -0
- package/dist/notifications/channels/browser-templates.js.map +1 -0
- package/dist/notifications/channels/email-notification.channel.d.ts +76 -0
- package/dist/notifications/channels/email-notification.channel.d.ts.map +1 -0
- package/dist/notifications/channels/email-notification.channel.js +300 -0
- package/dist/notifications/channels/email-notification.channel.js.map +1 -0
- package/dist/notifications/channels/push-notification.channel.d.ts +82 -0
- package/dist/notifications/channels/push-notification.channel.d.ts.map +1 -0
- package/dist/notifications/channels/push-notification.channel.js +463 -0
- package/dist/notifications/channels/push-notification.channel.js.map +1 -0
- package/dist/notifications/channels/push-payload.d.ts +127 -0
- package/dist/notifications/channels/push-payload.d.ts.map +1 -0
- package/dist/notifications/channels/push-payload.js +108 -0
- package/dist/notifications/channels/push-payload.js.map +1 -0
- package/dist/notifications/data/notifications-db.d.ts +300 -0
- package/dist/notifications/data/notifications-db.d.ts.map +1 -0
- package/dist/notifications/data/notifications-db.js +52 -0
- package/dist/notifications/data/notifications-db.js.map +1 -0
- package/dist/notifications/describe-thrown.d.ts +21 -0
- package/dist/notifications/describe-thrown.d.ts.map +1 -0
- package/dist/notifications/describe-thrown.js +48 -0
- package/dist/notifications/describe-thrown.js.map +1 -0
- package/dist/notifications/doctor/egress/web-push.egress.contributor.d.ts +43 -0
- package/dist/notifications/doctor/egress/web-push.egress.contributor.d.ts.map +1 -0
- package/dist/notifications/doctor/egress/web-push.egress.contributor.js +111 -0
- package/dist/notifications/doctor/egress/web-push.egress.contributor.js.map +1 -0
- package/dist/notifications/doctor/push-vapid.doctor-check.d.ts +35 -0
- package/dist/notifications/doctor/push-vapid.doctor-check.d.ts.map +1 -0
- package/dist/notifications/doctor/push-vapid.doctor-check.js +87 -0
- package/dist/notifications/doctor/push-vapid.doctor-check.js.map +1 -0
- package/dist/notifications/dto/generate-push-config.dto.d.ts +13 -0
- package/dist/notifications/dto/generate-push-config.dto.d.ts.map +1 -0
- package/dist/notifications/dto/generate-push-config.dto.js +20 -0
- package/dist/notifications/dto/generate-push-config.dto.js.map +1 -0
- package/dist/notifications/dto/notification-channel.dto.d.ts +20 -0
- package/dist/notifications/dto/notification-channel.dto.d.ts.map +1 -0
- package/dist/notifications/dto/notification-channel.dto.js +18 -0
- package/dist/notifications/dto/notification-channel.dto.js.map +1 -0
- package/dist/notifications/dto/notification-config.dto.d.ts +15 -0
- package/dist/notifications/dto/notification-config.dto.d.ts.map +1 -0
- package/dist/notifications/dto/notification-config.dto.js +20 -0
- package/dist/notifications/dto/notification-config.dto.js.map +1 -0
- package/dist/notifications/dto/notification-event.dto.d.ts +19 -0
- package/dist/notifications/dto/notification-event.dto.d.ts.map +1 -0
- package/dist/notifications/dto/notification-event.dto.js +20 -0
- package/dist/notifications/dto/notification-event.dto.js.map +1 -0
- package/dist/notifications/dto/notification.dto.d.ts +43 -0
- package/dist/notifications/dto/notification.dto.d.ts.map +1 -0
- package/dist/notifications/dto/notification.dto.js +40 -0
- package/dist/notifications/dto/notification.dto.js.map +1 -0
- package/dist/notifications/dto/push-config-confirmation.dto.d.ts +24 -0
- package/dist/notifications/dto/push-config-confirmation.dto.d.ts.map +1 -0
- package/dist/notifications/dto/push-config-confirmation.dto.js +31 -0
- package/dist/notifications/dto/push-config-confirmation.dto.js.map +1 -0
- package/dist/notifications/dto/push-config-response.dto.d.ts +29 -0
- package/dist/notifications/dto/push-config-response.dto.d.ts.map +1 -0
- package/dist/notifications/dto/push-config-response.dto.js +22 -0
- package/dist/notifications/dto/push-config-response.dto.js.map +1 -0
- package/dist/notifications/dto/push-subscription.dto.d.ts +42 -0
- package/dist/notifications/dto/push-subscription.dto.d.ts.map +1 -0
- package/dist/notifications/dto/push-subscription.dto.js +38 -0
- package/dist/notifications/dto/push-subscription.dto.js.map +1 -0
- package/dist/notifications/dto/push-test.dto.d.ts +68 -0
- package/dist/notifications/dto/push-test.dto.d.ts.map +1 -0
- package/dist/notifications/dto/push-test.dto.js +37 -0
- package/dist/notifications/dto/push-test.dto.js.map +1 -0
- package/dist/notifications/dto/update-push-config.dto.d.ts +14 -0
- package/dist/notifications/dto/update-push-config.dto.d.ts.map +1 -0
- package/dist/notifications/dto/update-push-config.dto.js +20 -0
- package/dist/notifications/dto/update-push-config.dto.js.map +1 -0
- package/dist/notifications/index.d.ts +72 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +173 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/notification-delivery.service.d.ts +63 -0
- package/dist/notifications/notification-delivery.service.d.ts.map +1 -0
- package/dist/notifications/notification-delivery.service.js +194 -0
- package/dist/notifications/notification-delivery.service.js.map +1 -0
- package/dist/notifications/notification-events.d.ts +72 -0
- package/dist/notifications/notification-events.d.ts.map +1 -0
- package/dist/notifications/notification-events.js +198 -0
- package/dist/notifications/notification-events.js.map +1 -0
- package/dist/notifications/notification-policy.d.ts +145 -0
- package/dist/notifications/notification-policy.d.ts.map +1 -0
- package/dist/notifications/notification-policy.js +132 -0
- package/dist/notifications/notification-policy.js.map +1 -0
- package/dist/notifications/notification-policy.service.d.ts +32 -0
- package/dist/notifications/notification-policy.service.d.ts.map +1 -0
- package/dist/notifications/notification-policy.service.js +127 -0
- package/dist/notifications/notification-policy.service.js.map +1 -0
- package/dist/notifications/notification-preferences.d.ts +146 -0
- package/dist/notifications/notification-preferences.d.ts.map +1 -0
- package/dist/notifications/notification-preferences.js +295 -0
- package/dist/notifications/notification-preferences.js.map +1 -0
- package/dist/notifications/notification-store.service.d.ts +72 -0
- package/dist/notifications/notification-store.service.d.ts.map +1 -0
- package/dist/notifications/notification-store.service.js +222 -0
- package/dist/notifications/notification-store.service.js.map +1 -0
- package/dist/notifications/notification-stream.service.d.ts +298 -0
- package/dist/notifications/notification-stream.service.d.ts.map +1 -0
- package/dist/notifications/notification-stream.service.js +406 -0
- package/dist/notifications/notification-stream.service.js.map +1 -0
- package/dist/notifications/notification.types.d.ts +432 -0
- package/dist/notifications/notification.types.d.ts.map +1 -0
- package/dist/notifications/notification.types.js +18 -0
- package/dist/notifications/notification.types.js.map +1 -0
- package/dist/notifications/notifications.constants.d.ts +17 -0
- package/dist/notifications/notifications.constants.d.ts.map +1 -0
- package/dist/notifications/notifications.constants.js +24 -0
- package/dist/notifications/notifications.constants.js.map +1 -0
- package/dist/notifications/notifications.controller.d.ts +141 -0
- package/dist/notifications/notifications.controller.d.ts.map +1 -0
- package/dist/notifications/notifications.controller.js +594 -0
- package/dist/notifications/notifications.controller.js.map +1 -0
- package/dist/notifications/notifications.module.d.ts +41 -0
- package/dist/notifications/notifications.module.d.ts.map +1 -0
- package/dist/notifications/notifications.module.js +311 -0
- package/dist/notifications/notifications.module.js.map +1 -0
- package/dist/notifications/notifications.options.d.ts +87 -0
- package/dist/notifications/notifications.options.d.ts.map +1 -0
- package/dist/notifications/notifications.options.js +43 -0
- package/dist/notifications/notifications.options.js.map +1 -0
- package/dist/notifications/notifications.permissions.d.ts +70 -0
- package/dist/notifications/notifications.permissions.d.ts.map +1 -0
- package/dist/notifications/notifications.permissions.js +98 -0
- package/dist/notifications/notifications.permissions.js.map +1 -0
- package/dist/notifications/notifications.service.d.ts +564 -0
- package/dist/notifications/notifications.service.d.ts.map +1 -0
- package/dist/notifications/notifications.service.js +1221 -0
- package/dist/notifications/notifications.service.js.map +1 -0
- package/dist/notifications/notifications.system-settings.d.ts +139 -0
- package/dist/notifications/notifications.system-settings.d.ts.map +1 -0
- package/dist/notifications/notifications.system-settings.js +198 -0
- package/dist/notifications/notifications.system-settings.js.map +1 -0
- package/dist/notifications/notifications.user-settings.d.ts +117 -0
- package/dist/notifications/notifications.user-settings.d.ts.map +1 -0
- package/dist/notifications/notifications.user-settings.js +192 -0
- package/dist/notifications/notifications.user-settings.js.map +1 -0
- package/dist/notifications/ops/job-failure-notifier.d.ts +31 -0
- package/dist/notifications/ops/job-failure-notifier.d.ts.map +1 -0
- package/dist/notifications/ops/job-failure-notifier.js +200 -0
- package/dist/notifications/ops/job-failure-notifier.js.map +1 -0
- package/dist/notifications/ops/node-offline-notifier.d.ts +18 -0
- package/dist/notifications/ops/node-offline-notifier.d.ts.map +1 -0
- package/dist/notifications/ops/node-offline-notifier.js +101 -0
- package/dist/notifications/ops/node-offline-notifier.js.map +1 -0
- package/dist/notifications/ops/nodes.notifications.d.ts +9 -0
- package/dist/notifications/ops/nodes.notifications.d.ts.map +1 -0
- package/dist/notifications/ops/nodes.notifications.js +41 -0
- package/dist/notifications/ops/nodes.notifications.js.map +1 -0
- package/dist/notifications/ops/ops.notifications.d.ts +9 -0
- package/dist/notifications/ops/ops.notifications.d.ts.map +1 -0
- package/dist/notifications/ops/ops.notifications.js +87 -0
- package/dist/notifications/ops/ops.notifications.js.map +1 -0
- package/dist/notifications/ports.d.ts +186 -0
- package/dist/notifications/ports.d.ts.map +1 -0
- package/dist/notifications/ports.js +110 -0
- package/dist/notifications/ports.js.map +1 -0
- package/dist/notifications/push-config.controller.d.ts +69 -0
- package/dist/notifications/push-config.controller.d.ts.map +1 -0
- package/dist/notifications/push-config.controller.js +275 -0
- package/dist/notifications/push-config.controller.js.map +1 -0
- package/dist/notifications/push-config.schema.d.ts +10 -0
- package/dist/notifications/push-config.schema.d.ts.map +1 -0
- package/dist/notifications/push-config.schema.js +22 -0
- package/dist/notifications/push-config.schema.js.map +1 -0
- package/dist/notifications/push-config.service.d.ts +205 -0
- package/dist/notifications/push-config.service.d.ts.map +1 -0
- package/dist/notifications/push-config.service.js +472 -0
- package/dist/notifications/push-config.service.js.map +1 -0
- package/dist/notifications/push-subscription.service.d.ts +72 -0
- package/dist/notifications/push-subscription.service.d.ts.map +1 -0
- package/dist/notifications/push-subscription.service.js +195 -0
- package/dist/notifications/push-subscription.service.js.map +1 -0
- package/dist/notifications/push-test.service.d.ts +99 -0
- package/dist/notifications/push-test.service.d.ts.map +1 -0
- package/dist/notifications/push-test.service.js +683 -0
- package/dist/notifications/push-test.service.js.map +1 -0
- package/dist/notifications/push-vapid-credential.constants.d.ts +45 -0
- package/dist/notifications/push-vapid-credential.constants.d.ts.map +1 -0
- package/dist/notifications/push-vapid-credential.constants.js +73 -0
- package/dist/notifications/push-vapid-credential.constants.js.map +1 -0
- package/dist/notifications/registry/bindings.registry.d.ts +128 -0
- package/dist/notifications/registry/bindings.registry.d.ts.map +1 -0
- package/dist/notifications/registry/bindings.registry.js +244 -0
- package/dist/notifications/registry/bindings.registry.js.map +1 -0
- package/dist/notifications/registry/channel-sender.registry.d.ts +54 -0
- package/dist/notifications/registry/channel-sender.registry.d.ts.map +1 -0
- package/dist/notifications/registry/channel-sender.registry.js +138 -0
- package/dist/notifications/registry/channel-sender.registry.js.map +1 -0
- package/dist/notifications/registry/channel-template.registry.d.ts +149 -0
- package/dist/notifications/registry/channel-template.registry.d.ts.map +1 -0
- package/dist/notifications/registry/channel-template.registry.js +169 -0
- package/dist/notifications/registry/channel-template.registry.js.map +1 -0
- package/dist/notifications/registry/channel.registry.d.ts +177 -0
- package/dist/notifications/registry/channel.registry.d.ts.map +1 -0
- package/dist/notifications/registry/channel.registry.js +214 -0
- package/dist/notifications/registry/channel.registry.js.map +1 -0
- package/dist/notifications/registry/event.registry.d.ts +154 -0
- package/dist/notifications/registry/event.registry.d.ts.map +1 -0
- package/dist/notifications/registry/event.registry.js +129 -0
- package/dist/notifications/registry/event.registry.js.map +1 -0
- package/dist/notifications/registry/index.d.ts +12 -0
- package/dist/notifications/registry/index.d.ts.map +1 -0
- package/dist/notifications/registry/index.js +61 -0
- package/dist/notifications/registry/index.js.map +1 -0
- package/dist/notifications/registry/platform-channels.d.ts +50 -0
- package/dist/notifications/registry/platform-channels.d.ts.map +1 -0
- package/dist/notifications/registry/platform-channels.js +105 -0
- package/dist/notifications/registry/platform-channels.js.map +1 -0
- package/dist/notifications/retention/notification-deliveries-purge.handler.d.ts +38 -0
- package/dist/notifications/retention/notification-deliveries-purge.handler.d.ts.map +1 -0
- package/dist/notifications/retention/notification-deliveries-purge.handler.js +113 -0
- package/dist/notifications/retention/notification-deliveries-purge.handler.js.map +1 -0
- package/dist/notifications/retention/notification-inbox-purge.handler.d.ts +32 -0
- package/dist/notifications/retention/notification-inbox-purge.handler.d.ts.map +1 -0
- package/dist/notifications/retention/notification-inbox-purge.handler.js +98 -0
- package/dist/notifications/retention/notification-inbox-purge.handler.js.map +1 -0
- package/dist/notifications/testing/conformance.d.ts +93 -0
- package/dist/notifications/testing/conformance.d.ts.map +1 -0
- package/dist/notifications/testing/conformance.js +292 -0
- package/dist/notifications/testing/conformance.js.map +1 -0
- package/dist/notifications/testing/index.d.ts +32 -0
- package/dist/notifications/testing/index.d.ts.map +1 -0
- package/dist/notifications/testing/index.js +85 -0
- package/dist/notifications/testing/index.js.map +1 -0
- package/dist/notifications/testing/sender-conformance.d.ts +71 -0
- package/dist/notifications/testing/sender-conformance.d.ts.map +1 -0
- package/dist/notifications/testing/sender-conformance.js +206 -0
- package/dist/notifications/testing/sender-conformance.js.map +1 -0
- package/dist/onboarding/index.d.ts +19 -0
- package/dist/onboarding/index.d.ts.map +1 -0
- package/dist/onboarding/index.js +65 -0
- package/dist/onboarding/index.js.map +1 -0
- package/dist/onboarding/onboarding-metrics.d.ts +56 -0
- package/dist/onboarding/onboarding-metrics.d.ts.map +1 -0
- package/dist/onboarding/onboarding-metrics.js +155 -0
- package/dist/onboarding/onboarding-metrics.js.map +1 -0
- package/dist/onboarding/onboarding.audiences.d.ts +50 -0
- package/dist/onboarding/onboarding.audiences.d.ts.map +1 -0
- package/dist/onboarding/onboarding.audiences.js +111 -0
- package/dist/onboarding/onboarding.audiences.js.map +1 -0
- package/dist/onboarding/onboarding.builtins.d.ts +88 -0
- package/dist/onboarding/onboarding.builtins.d.ts.map +1 -0
- package/dist/onboarding/onboarding.builtins.js +284 -0
- package/dist/onboarding/onboarding.builtins.js.map +1 -0
- package/dist/onboarding/onboarding.controller.d.ts +135 -0
- package/dist/onboarding/onboarding.controller.d.ts.map +1 -0
- package/dist/onboarding/onboarding.controller.js +164 -0
- package/dist/onboarding/onboarding.controller.js.map +1 -0
- package/dist/onboarding/onboarding.engine.d.ts +86 -0
- package/dist/onboarding/onboarding.engine.d.ts.map +1 -0
- package/dist/onboarding/onboarding.engine.js +226 -0
- package/dist/onboarding/onboarding.engine.js.map +1 -0
- package/dist/onboarding/onboarding.module.d.ts +29 -0
- package/dist/onboarding/onboarding.module.d.ts.map +1 -0
- package/dist/onboarding/onboarding.module.js +65 -0
- package/dist/onboarding/onboarding.module.js.map +1 -0
- package/dist/onboarding/onboarding.options.d.ts +56 -0
- package/dist/onboarding/onboarding.options.d.ts.map +1 -0
- package/dist/onboarding/onboarding.options.js +45 -0
- package/dist/onboarding/onboarding.options.js.map +1 -0
- package/dist/onboarding/onboarding.registries.d.ts +135 -0
- package/dist/onboarding/onboarding.registries.d.ts.map +1 -0
- package/dist/onboarding/onboarding.registries.js +282 -0
- package/dist/onboarding/onboarding.registries.js.map +1 -0
- package/dist/onboarding/onboarding.service.d.ts +62 -0
- package/dist/onboarding/onboarding.service.d.ts.map +1 -0
- package/dist/onboarding/onboarding.service.js +171 -0
- package/dist/onboarding/onboarding.service.js.map +1 -0
- package/dist/onboarding/onboarding.settings.d.ts +101 -0
- package/dist/onboarding/onboarding.settings.d.ts.map +1 -0
- package/dist/onboarding/onboarding.settings.js +171 -0
- package/dist/onboarding/onboarding.settings.js.map +1 -0
- package/dist/onboarding/onboarding.types.d.ts +225 -0
- package/dist/onboarding/onboarding.types.d.ts.map +1 -0
- package/dist/onboarding/onboarding.types.js +14 -0
- package/dist/onboarding/onboarding.types.js.map +1 -0
- package/dist/onboarding/ports.d.ts +48 -0
- package/dist/onboarding/ports.d.ts.map +1 -0
- package/dist/onboarding/ports.js +28 -0
- package/dist/onboarding/ports.js.map +1 -0
- package/dist/onboarding/testing/conformance.d.ts +64 -0
- package/dist/onboarding/testing/conformance.d.ts.map +1 -0
- package/dist/onboarding/testing/conformance.js +185 -0
- package/dist/onboarding/testing/conformance.js.map +1 -0
- package/dist/onboarding/testing/index.d.ts +3 -0
- package/dist/onboarding/testing/index.d.ts.map +1 -0
- package/dist/onboarding/testing/index.js +13 -0
- package/dist/onboarding/testing/index.js.map +1 -0
- package/dist/otel-core/index.d.ts +16 -1
- package/dist/otel-core/index.d.ts.map +1 -1
- package/dist/otel-core/index.js.map +1 -1
- package/dist/otel-core/metrics/gauge-provider.d.ts +1 -1
- package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -1
- package/dist/otel-core/metrics/gauge-provider.js.map +1 -1
- package/dist/otel-core/metrics/metric-name.registry.d.ts +0 -15
- package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -1
- package/dist/otel-core/metrics/metric-name.registry.js +2 -0
- package/dist/otel-core/metrics/metric-name.registry.js.map +1 -1
- package/dist/otel-core/metrics/metrics-host.service.js +2 -2
- package/dist/otel-core/metrics/metrics-host.service.js.map +1 -1
- package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -1
- package/dist/otel-core/metrics/otel-metrics.module.js +2 -1
- package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -1
- package/dist/otel-core/sdk/index.d.ts +2 -2
- package/dist/otel-core/sdk/index.d.ts.map +1 -1
- package/dist/otel-core/sdk/index.js +6 -1
- package/dist/otel-core/sdk/index.js.map +1 -1
- package/dist/otel-core/sdk/initialize-otel.d.ts +54 -0
- package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -1
- package/dist/otel-core/sdk/initialize-otel.js +105 -11
- package/dist/otel-core/sdk/initialize-otel.js.map +1 -1
- package/dist/otel-core/sdk/telemetry-gate.d.ts +89 -3
- package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -1
- package/dist/otel-core/sdk/telemetry-gate.js +182 -1
- package/dist/otel-core/sdk/telemetry-gate.js.map +1 -1
- package/dist/settings/data/settings-db.d.ts +144 -0
- package/dist/settings/data/settings-db.d.ts.map +1 -0
- package/dist/settings/data/settings-db.js +25 -0
- package/dist/settings/data/settings-db.js.map +1 -0
- package/dist/settings/data/settings-ownership.d.ts +27 -0
- package/dist/settings/data/settings-ownership.d.ts.map +1 -0
- package/dist/settings/data/settings-ownership.js +52 -0
- package/dist/settings/data/settings-ownership.js.map +1 -0
- package/dist/settings/index.d.ts +108 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +114 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/org-settings/describe-fields.d.ts +7 -0
- package/dist/settings/org-settings/describe-fields.d.ts.map +1 -0
- package/dist/settings/org-settings/describe-fields.js +34 -0
- package/dist/settings/org-settings/describe-fields.js.map +1 -0
- package/dist/settings/org-settings/org-layer.d.ts +29 -0
- package/dist/settings/org-settings/org-layer.d.ts.map +1 -0
- package/dist/settings/org-settings/org-layer.js +74 -0
- package/dist/settings/org-settings/org-layer.js.map +1 -0
- package/dist/settings/org-settings/org-settings.controller.d.ts +112 -0
- package/dist/settings/org-settings/org-settings.controller.d.ts.map +1 -0
- package/dist/settings/org-settings/org-settings.controller.js +138 -0
- package/dist/settings/org-settings/org-settings.controller.js.map +1 -0
- package/dist/settings/org-settings/org-settings.service.d.ts +94 -0
- package/dist/settings/org-settings/org-settings.service.d.ts.map +1 -0
- package/dist/settings/org-settings/org-settings.service.js +267 -0
- package/dist/settings/org-settings/org-settings.service.js.map +1 -0
- package/dist/settings/ports.d.ts +79 -0
- package/dist/settings/ports.d.ts.map +1 -0
- package/dist/settings/ports.js +46 -0
- package/dist/settings/ports.js.map +1 -0
- package/dist/settings/registry/assemble.d.ts +195 -0
- package/dist/settings/registry/assemble.d.ts.map +1 -0
- package/dist/settings/registry/assemble.js +283 -0
- package/dist/settings/registry/assemble.js.map +1 -0
- package/dist/settings/registry/catalog.d.ts +24 -0
- package/dist/settings/registry/catalog.d.ts.map +1 -0
- package/dist/settings/registry/catalog.js +43 -0
- package/dist/settings/registry/catalog.js.map +1 -0
- package/dist/settings/registry/compose.d.ts +398 -0
- package/dist/settings/registry/compose.d.ts.map +1 -0
- package/dist/settings/registry/compose.js +285 -0
- package/dist/settings/registry/compose.js.map +1 -0
- package/dist/settings/registry/core-user-fields.d.ts +121 -0
- package/dist/settings/registry/core-user-fields.d.ts.map +1 -0
- package/dist/settings/registry/core-user-fields.js +252 -0
- package/dist/settings/registry/core-user-fields.js.map +1 -0
- package/dist/settings/registry/core-user-namespaces.d.ts +179 -0
- package/dist/settings/registry/core-user-namespaces.d.ts.map +1 -0
- package/dist/settings/registry/core-user-namespaces.js +142 -0
- package/dist/settings/registry/core-user-namespaces.js.map +1 -0
- package/dist/settings/registry/extend.d.ts +197 -0
- package/dist/settings/registry/extend.d.ts.map +1 -0
- package/dist/settings/registry/extend.js +379 -0
- package/dist/settings/registry/extend.js.map +1 -0
- package/dist/settings/registry/merge-helpers.d.ts +10 -0
- package/dist/settings/registry/merge-helpers.d.ts.map +1 -0
- package/dist/settings/registry/merge-helpers.js +24 -0
- package/dist/settings/registry/merge-helpers.js.map +1 -0
- package/dist/settings/registry/nested.d.ts +55 -0
- package/dist/settings/registry/nested.d.ts.map +1 -0
- package/dist/settings/registry/nested.js +158 -0
- package/dist/settings/registry/nested.js.map +1 -0
- package/dist/settings/registry/schema-walk.d.ts +46 -0
- package/dist/settings/registry/schema-walk.d.ts.map +1 -0
- package/dist/settings/registry/schema-walk.js +112 -0
- package/dist/settings/registry/schema-walk.js.map +1 -0
- package/dist/settings/registry/secret-fields.d.ts +32 -0
- package/dist/settings/registry/secret-fields.d.ts.map +1 -0
- package/dist/settings/registry/secret-fields.js +57 -0
- package/dist/settings/registry/secret-fields.js.map +1 -0
- package/dist/settings/registry/system-settings-namespace.d.ts +242 -0
- package/dist/settings/registry/system-settings-namespace.d.ts.map +1 -0
- package/dist/settings/registry/system-settings-namespace.js +214 -0
- package/dist/settings/registry/system-settings-namespace.js.map +1 -0
- package/dist/settings/registry/user-settings-namespace.d.ts +90 -0
- package/dist/settings/registry/user-settings-namespace.d.ts.map +1 -0
- package/dist/settings/registry/user-settings-namespace.js +108 -0
- package/dist/settings/registry/user-settings-namespace.js.map +1 -0
- package/dist/settings/row-store.d.ts +85 -0
- package/dist/settings/row-store.d.ts.map +1 -0
- package/dist/settings/row-store.js +168 -0
- package/dist/settings/row-store.js.map +1 -0
- package/dist/settings/settings-resolver.d.ts +48 -0
- package/dist/settings/settings-resolver.d.ts.map +1 -0
- package/dist/settings/settings-resolver.js +127 -0
- package/dist/settings/settings-resolver.js.map +1 -0
- package/dist/settings/settings.module.d.ts +35 -0
- package/dist/settings/settings.module.d.ts.map +1 -0
- package/dist/settings/settings.module.js +102 -0
- package/dist/settings/settings.module.js.map +1 -0
- package/dist/settings/settings.options.d.ts +69 -0
- package/dist/settings/settings.options.d.ts.map +1 -0
- package/dist/settings/settings.options.js +51 -0
- package/dist/settings/settings.options.js.map +1 -0
- package/dist/settings/settings.permissions.d.ts +55 -0
- package/dist/settings/settings.permissions.d.ts.map +1 -0
- package/dist/settings/settings.permissions.js +93 -0
- package/dist/settings/settings.permissions.js.map +1 -0
- package/dist/settings/system-settings/system-settings.controller.d.ts +12 -0
- package/dist/settings/system-settings/system-settings.controller.d.ts.map +1 -0
- package/dist/settings/system-settings/system-settings.controller.js +137 -0
- package/dist/settings/system-settings/system-settings.controller.js.map +1 -0
- package/dist/settings/system-settings/system-settings.service.d.ts +616 -0
- package/dist/settings/system-settings/system-settings.service.d.ts.map +1 -0
- package/dist/settings/system-settings/system-settings.service.js +969 -0
- package/dist/settings/system-settings/system-settings.service.js.map +1 -0
- package/dist/settings/testing/conformance.d.ts +59 -0
- package/dist/settings/testing/conformance.d.ts.map +1 -0
- package/dist/settings/testing/conformance.js +164 -0
- package/dist/settings/testing/conformance.js.map +1 -0
- package/dist/settings/testing/index.d.ts +3 -0
- package/dist/settings/testing/index.d.ts.map +1 -0
- package/dist/settings/testing/index.js +12 -0
- package/dist/settings/testing/index.js.map +1 -0
- package/dist/settings/user-settings/user-settings.controller.d.ts +12 -0
- package/dist/settings/user-settings/user-settings.controller.d.ts.map +1 -0
- package/dist/settings/user-settings/user-settings.controller.js +124 -0
- package/dist/settings/user-settings/user-settings.controller.js.map +1 -0
- package/dist/settings/user-settings/user-settings.service.d.ts +146 -0
- package/dist/settings/user-settings/user-settings.service.d.ts.map +1 -0
- package/dist/settings/user-settings/user-settings.service.js +380 -0
- package/dist/settings/user-settings/user-settings.service.js.map +1 -0
- package/dist/sharing/access/access-policy.service.d.ts +194 -0
- package/dist/sharing/access/access-policy.service.d.ts.map +1 -0
- package/dist/sharing/access/access-policy.service.js +515 -0
- package/dist/sharing/access/access-policy.service.js.map +1 -0
- package/dist/sharing/access/access-rules.d.ts +199 -0
- package/dist/sharing/access/access-rules.d.ts.map +1 -0
- package/dist/sharing/access/access-rules.js +230 -0
- package/dist/sharing/access/access-rules.js.map +1 -0
- package/dist/sharing/access/accessible.d.ts +197 -0
- package/dist/sharing/access/accessible.d.ts.map +1 -0
- package/dist/sharing/access/accessible.js +355 -0
- package/dist/sharing/access/accessible.js.map +1 -0
- package/dist/sharing/access/grantee-kinds.d.ts +261 -0
- package/dist/sharing/access/grantee-kinds.d.ts.map +1 -0
- package/dist/sharing/access/grantee-kinds.js +345 -0
- package/dist/sharing/access/grantee-kinds.js.map +1 -0
- package/dist/sharing/access/resource-types.d.ts +211 -0
- package/dist/sharing/access/resource-types.d.ts.map +1 -0
- package/dist/sharing/access/resource-types.js +235 -0
- package/dist/sharing/access/resource-types.js.map +1 -0
- package/dist/sharing/data/sharing-tx.d.ts +168 -0
- package/dist/sharing/data/sharing-tx.d.ts.map +1 -0
- package/dist/sharing/data/sharing-tx.js +24 -0
- package/dist/sharing/data/sharing-tx.js.map +1 -0
- package/dist/sharing/doctor/groups-orphaned.doctor-check.d.ts +37 -0
- package/dist/sharing/doctor/groups-orphaned.doctor-check.d.ts.map +1 -0
- package/dist/sharing/doctor/groups-orphaned.doctor-check.js +100 -0
- package/dist/sharing/doctor/groups-orphaned.doctor-check.js.map +1 -0
- package/dist/sharing/dto/grants.dto.d.ts +171 -0
- package/dist/sharing/dto/grants.dto.d.ts.map +1 -0
- package/dist/sharing/dto/grants.dto.js +78 -0
- package/dist/sharing/dto/grants.dto.js.map +1 -0
- package/dist/sharing/dto/groups.dto.d.ts +273 -0
- package/dist/sharing/dto/groups.dto.d.ts.map +1 -0
- package/dist/sharing/dto/groups.dto.js +150 -0
- package/dist/sharing/dto/groups.dto.js.map +1 -0
- package/dist/sharing/dto/link-grants.dto.d.ts +94 -0
- package/dist/sharing/dto/link-grants.dto.d.ts.map +1 -0
- package/dist/sharing/dto/link-grants.dto.js +53 -0
- package/dist/sharing/dto/link-grants.dto.js.map +1 -0
- package/dist/sharing/errors.d.ts +124 -0
- package/dist/sharing/errors.d.ts.map +1 -0
- package/dist/sharing/errors.js +236 -0
- package/dist/sharing/errors.js.map +1 -0
- package/dist/sharing/events.d.ts +99 -0
- package/dist/sharing/events.d.ts.map +1 -0
- package/dist/sharing/events.js +36 -0
- package/dist/sharing/events.js.map +1 -0
- package/dist/sharing/grants/grantee-kinds.controller.d.ts +14 -0
- package/dist/sharing/grants/grantee-kinds.controller.d.ts.map +1 -0
- package/dist/sharing/grants/grantee-kinds.controller.js +84 -0
- package/dist/sharing/grants/grantee-kinds.controller.js.map +1 -0
- package/dist/sharing/grants/grants.controller.d.ts +14 -0
- package/dist/sharing/grants/grants.controller.d.ts.map +1 -0
- package/dist/sharing/grants/grants.controller.js +176 -0
- package/dist/sharing/grants/grants.controller.js.map +1 -0
- package/dist/sharing/grants/grants.service.d.ts +197 -0
- package/dist/sharing/grants/grants.service.d.ts.map +1 -0
- package/dist/sharing/grants/grants.service.js +736 -0
- package/dist/sharing/grants/grants.service.js.map +1 -0
- package/dist/sharing/group-roles.d.ts +114 -0
- package/dist/sharing/group-roles.d.ts.map +1 -0
- package/dist/sharing/group-roles.js +186 -0
- package/dist/sharing/group-roles.js.map +1 -0
- package/dist/sharing/groups/group-common.d.ts +58 -0
- package/dist/sharing/groups/group-common.d.ts.map +1 -0
- package/dist/sharing/groups/group-common.js +96 -0
- package/dist/sharing/groups/group-common.js.map +1 -0
- package/dist/sharing/groups/group-invites.controller.d.ts +14 -0
- package/dist/sharing/groups/group-invites.controller.d.ts.map +1 -0
- package/dist/sharing/groups/group-invites.controller.js +124 -0
- package/dist/sharing/groups/group-invites.controller.js.map +1 -0
- package/dist/sharing/groups/group-invites.service.d.ts +118 -0
- package/dist/sharing/groups/group-invites.service.d.ts.map +1 -0
- package/dist/sharing/groups/group-invites.service.js +463 -0
- package/dist/sharing/groups/group-invites.service.js.map +1 -0
- package/dist/sharing/groups/group-membership.service.d.ts +108 -0
- package/dist/sharing/groups/group-membership.service.d.ts.map +1 -0
- package/dist/sharing/groups/group-membership.service.js +353 -0
- package/dist/sharing/groups/group-membership.service.js.map +1 -0
- package/dist/sharing/groups/groups.controller.d.ts +14 -0
- package/dist/sharing/groups/groups.controller.d.ts.map +1 -0
- package/dist/sharing/groups/groups.controller.js +327 -0
- package/dist/sharing/groups/groups.controller.js.map +1 -0
- package/dist/sharing/groups/groups.service.d.ts +81 -0
- package/dist/sharing/groups/groups.service.d.ts.map +1 -0
- package/dist/sharing/groups/groups.service.js +301 -0
- package/dist/sharing/groups/groups.service.js.map +1 -0
- package/dist/sharing/groups/member-lookup-throttle.d.ts +48 -0
- package/dist/sharing/groups/member-lookup-throttle.d.ts.map +1 -0
- package/dist/sharing/groups/member-lookup-throttle.js +99 -0
- package/dist/sharing/groups/member-lookup-throttle.js.map +1 -0
- package/dist/sharing/groups/sharing-effects.d.ts +85 -0
- package/dist/sharing/groups/sharing-effects.d.ts.map +1 -0
- package/dist/sharing/groups/sharing-effects.js +143 -0
- package/dist/sharing/groups/sharing-effects.js.map +1 -0
- package/dist/sharing/groups/sharing-principal.decorator.d.ts +14 -0
- package/dist/sharing/groups/sharing-principal.decorator.d.ts.map +1 -0
- package/dist/sharing/groups/sharing-principal.decorator.js +24 -0
- package/dist/sharing/groups/sharing-principal.decorator.js.map +1 -0
- package/dist/sharing/index.d.ts +56 -0
- package/dist/sharing/index.d.ts.map +1 -0
- package/dist/sharing/index.js +177 -0
- package/dist/sharing/index.js.map +1 -0
- package/dist/sharing/jobs/grants-prune.handler.d.ts +64 -0
- package/dist/sharing/jobs/grants-prune.handler.d.ts.map +1 -0
- package/dist/sharing/jobs/grants-prune.handler.js +181 -0
- package/dist/sharing/jobs/grants-prune.handler.js.map +1 -0
- package/dist/sharing/jobs/grants-prune.task.d.ts +14 -0
- package/dist/sharing/jobs/grants-prune.task.d.ts.map +1 -0
- package/dist/sharing/jobs/grants-prune.task.js +63 -0
- package/dist/sharing/jobs/grants-prune.task.js.map +1 -0
- package/dist/sharing/links/link-grant.decorators.d.ts +46 -0
- package/dist/sharing/links/link-grant.decorators.d.ts.map +1 -0
- package/dist/sharing/links/link-grant.decorators.js +71 -0
- package/dist/sharing/links/link-grant.decorators.js.map +1 -0
- package/dist/sharing/links/link-grant.guard.d.ts +47 -0
- package/dist/sharing/links/link-grant.guard.d.ts.map +1 -0
- package/dist/sharing/links/link-grant.guard.js +163 -0
- package/dist/sharing/links/link-grant.guard.js.map +1 -0
- package/dist/sharing/links/link-grants.controller.d.ts +14 -0
- package/dist/sharing/links/link-grants.controller.d.ts.map +1 -0
- package/dist/sharing/links/link-grants.controller.js +111 -0
- package/dist/sharing/links/link-grants.controller.js.map +1 -0
- package/dist/sharing/links/link-grants.service.d.ts +315 -0
- package/dist/sharing/links/link-grants.service.d.ts.map +1 -0
- package/dist/sharing/links/link-grants.service.js +582 -0
- package/dist/sharing/links/link-grants.service.js.map +1 -0
- package/dist/sharing/links/link-miss-throttle.d.ts +15 -0
- package/dist/sharing/links/link-miss-throttle.d.ts.map +1 -0
- package/dist/sharing/links/link-miss-throttle.js +55 -0
- package/dist/sharing/links/link-miss-throttle.js.map +1 -0
- package/dist/sharing/links/link-token.d.ts +11 -0
- package/dist/sharing/links/link-token.d.ts.map +1 -0
- package/dist/sharing/links/link-token.js +47 -0
- package/dist/sharing/links/link-token.js.map +1 -0
- package/dist/sharing/links/public-link.interceptor.d.ts +34 -0
- package/dist/sharing/links/public-link.interceptor.d.ts.map +1 -0
- package/dist/sharing/links/public-link.interceptor.js +76 -0
- package/dist/sharing/links/public-link.interceptor.js.map +1 -0
- package/dist/sharing/links/public-links.controller.d.ts +13 -0
- package/dist/sharing/links/public-links.controller.d.ts.map +1 -0
- package/dist/sharing/links/public-links.controller.js +97 -0
- package/dist/sharing/links/public-links.controller.js.map +1 -0
- package/dist/sharing/metrics.d.ts +75 -0
- package/dist/sharing/metrics.d.ts.map +1 -0
- package/dist/sharing/metrics.js +128 -0
- package/dist/sharing/metrics.js.map +1 -0
- package/dist/sharing/notifications/group-invitation.templates.d.ts +149 -0
- package/dist/sharing/notifications/group-invitation.templates.d.ts.map +1 -0
- package/dist/sharing/notifications/group-invitation.templates.js +146 -0
- package/dist/sharing/notifications/group-invitation.templates.js.map +1 -0
- package/dist/sharing/notifications/shared-with-you.templates.d.ts +118 -0
- package/dist/sharing/notifications/shared-with-you.templates.d.ts.map +1 -0
- package/dist/sharing/notifications/shared-with-you.templates.js +140 -0
- package/dist/sharing/notifications/shared-with-you.templates.js.map +1 -0
- package/dist/sharing/ownership.d.ts +134 -0
- package/dist/sharing/ownership.d.ts.map +1 -0
- package/dist/sharing/ownership.js +140 -0
- package/dist/sharing/ownership.js.map +1 -0
- package/dist/sharing/permissions.d.ts +57 -0
- package/dist/sharing/permissions.d.ts.map +1 -0
- package/dist/sharing/permissions.js +94 -0
- package/dist/sharing/permissions.js.map +1 -0
- package/dist/sharing/ports.d.ts +246 -0
- package/dist/sharing/ports.d.ts.map +1 -0
- package/dist/sharing/ports.js +65 -0
- package/dist/sharing/ports.js.map +1 -0
- package/dist/sharing/principal-groups.provider.d.ts +113 -0
- package/dist/sharing/principal-groups.provider.d.ts.map +1 -0
- package/dist/sharing/principal-groups.provider.js +281 -0
- package/dist/sharing/principal-groups.provider.js.map +1 -0
- package/dist/sharing/sharing.module.d.ts +34 -0
- package/dist/sharing/sharing.module.d.ts.map +1 -0
- package/dist/sharing/sharing.module.js +151 -0
- package/dist/sharing/sharing.module.js.map +1 -0
- package/dist/sharing/sharing.options.d.ts +175 -0
- package/dist/sharing/sharing.options.d.ts.map +1 -0
- package/dist/sharing/sharing.options.js +153 -0
- package/dist/sharing/sharing.options.js.map +1 -0
- package/dist/sharing/testing/access-rule-conformance.d.ts +90 -0
- package/dist/sharing/testing/access-rule-conformance.d.ts.map +1 -0
- package/dist/sharing/testing/access-rule-conformance.js +180 -0
- package/dist/sharing/testing/access-rule-conformance.js.map +1 -0
- package/dist/sharing/testing/conformance.d.ts +211 -0
- package/dist/sharing/testing/conformance.d.ts.map +1 -0
- package/dist/sharing/testing/conformance.js +509 -0
- package/dist/sharing/testing/conformance.js.map +1 -0
- package/dist/sharing/testing/grantee-kind-conformance.d.ts +77 -0
- package/dist/sharing/testing/grantee-kind-conformance.d.ts.map +1 -0
- package/dist/sharing/testing/grantee-kind-conformance.js +218 -0
- package/dist/sharing/testing/grantee-kind-conformance.js.map +1 -0
- package/dist/sharing/testing/hostile-principal.d.ts +26 -0
- package/dist/sharing/testing/hostile-principal.d.ts.map +1 -0
- package/dist/sharing/testing/hostile-principal.js +47 -0
- package/dist/sharing/testing/hostile-principal.js.map +1 -0
- package/dist/sharing/testing/index.d.ts +11 -0
- package/dist/sharing/testing/index.d.ts.map +1 -0
- package/dist/sharing/testing/index.js +29 -0
- package/dist/sharing/testing/index.js.map +1 -0
- package/dist/sharing/testing/recording-sql-kit.d.ts +24 -0
- package/dist/sharing/testing/recording-sql-kit.d.ts.map +1 -0
- package/dist/sharing/testing/recording-sql-kit.js +66 -0
- package/dist/sharing/testing/recording-sql-kit.js.map +1 -0
- package/dist/sharing/user-data.d.ts +56 -0
- package/dist/sharing/user-data.d.ts.map +1 -0
- package/dist/sharing/user-data.js +185 -0
- package/dist/sharing/user-data.js.map +1 -0
- package/dist/storage/config/doctor/egress/storage.egress.contributor.d.ts +28 -0
- package/dist/storage/config/doctor/egress/storage.egress.contributor.d.ts.map +1 -0
- package/dist/storage/config/doctor/egress/storage.egress.contributor.js +76 -0
- package/dist/storage/config/doctor/egress/storage.egress.contributor.js.map +1 -0
- package/dist/storage/config/doctor/storage-bucket.doctor-check.d.ts +47 -0
- package/dist/storage/config/doctor/storage-bucket.doctor-check.d.ts.map +1 -0
- package/dist/storage/config/doctor/storage-bucket.doctor-check.js +141 -0
- package/dist/storage/config/doctor/storage-bucket.doctor-check.js.map +1 -0
- package/dist/storage/config/doctor/storage-config.doctor-check.d.ts +31 -0
- package/dist/storage/config/doctor/storage-config.doctor-check.d.ts.map +1 -0
- package/dist/storage/config/doctor/storage-config.doctor-check.js +82 -0
- package/dist/storage/config/doctor/storage-config.doctor-check.js.map +1 -0
- package/dist/storage/config/dto/storage-bucket-provision.dto.d.ts +52 -0
- package/dist/storage/config/dto/storage-bucket-provision.dto.d.ts.map +1 -0
- package/dist/storage/config/dto/storage-bucket-provision.dto.js +33 -0
- package/dist/storage/config/dto/storage-bucket-provision.dto.js.map +1 -0
- package/dist/storage/config/dto/storage-config-response.dto.d.ts +80 -0
- package/dist/storage/config/dto/storage-config-response.dto.d.ts.map +1 -0
- package/dist/storage/config/dto/storage-config-response.dto.js +20 -0
- package/dist/storage/config/dto/storage-config-response.dto.js.map +1 -0
- package/dist/storage/config/dto/storage-connection-test.dto.d.ts +49 -0
- package/dist/storage/config/dto/storage-connection-test.dto.d.ts.map +1 -0
- package/dist/storage/config/dto/storage-connection-test.dto.js +32 -0
- package/dist/storage/config/dto/storage-connection-test.dto.js.map +1 -0
- package/dist/storage/config/dto/update-storage-config.dto.d.ts +24 -0
- package/dist/storage/config/dto/update-storage-config.dto.d.ts.map +1 -0
- package/dist/storage/config/dto/update-storage-config.dto.js +20 -0
- package/dist/storage/config/dto/update-storage-config.dto.js.map +1 -0
- package/dist/storage/config/index.d.ts +15 -0
- package/dist/storage/config/index.d.ts.map +1 -0
- package/dist/storage/config/index.js +33 -0
- package/dist/storage/config/index.js.map +1 -0
- package/dist/storage/config/storage-bucket-provision.service.d.ts +34 -0
- package/dist/storage/config/storage-bucket-provision.service.d.ts.map +1 -0
- package/dist/storage/config/storage-bucket-provision.service.js +185 -0
- package/dist/storage/config/storage-bucket-provision.service.js.map +1 -0
- package/dist/storage/config/storage-config-admin.service.d.ts +120 -0
- package/dist/storage/config/storage-config-admin.service.d.ts.map +1 -0
- package/dist/storage/config/storage-config-admin.service.js +355 -0
- package/dist/storage/config/storage-config-admin.service.js.map +1 -0
- package/dist/storage/config/storage-config.controller.d.ts +199 -0
- package/dist/storage/config/storage-config.controller.d.ts.map +1 -0
- package/dist/storage/config/storage-config.controller.js +275 -0
- package/dist/storage/config/storage-config.controller.js.map +1 -0
- package/dist/storage/config/storage-config.d.ts +104 -0
- package/dist/storage/config/storage-config.d.ts.map +1 -0
- package/dist/storage/config/storage-config.js +66 -0
- package/dist/storage/config/storage-config.js.map +1 -0
- package/dist/storage/config/storage-config.module.d.ts +11 -0
- package/dist/storage/config/storage-config.module.d.ts.map +1 -0
- package/dist/storage/config/storage-config.module.js +108 -0
- package/dist/storage/config/storage-config.module.js.map +1 -0
- package/dist/storage/config/storage-config.permissions.d.ts +17 -0
- package/dist/storage/config/storage-config.permissions.d.ts.map +1 -0
- package/dist/storage/config/storage-config.permissions.js +69 -0
- package/dist/storage/config/storage-config.permissions.js.map +1 -0
- package/dist/storage/config/storage-config.service.d.ts +248 -0
- package/dist/storage/config/storage-config.service.d.ts.map +1 -0
- package/dist/storage/config/storage-config.service.js +431 -0
- package/dist/storage/config/storage-config.service.js.map +1 -0
- package/dist/storage/config/storage-connection-test.service.d.ts +30 -0
- package/dist/storage/config/storage-connection-test.service.d.ts.map +1 -0
- package/dist/storage/config/storage-connection-test.service.js +174 -0
- package/dist/storage/config/storage-connection-test.service.js.map +1 -0
- package/dist/storage/config/storage-driver-context.d.ts +36 -0
- package/dist/storage/config/storage-driver-context.d.ts.map +1 -0
- package/dist/storage/config/storage-driver-context.js +61 -0
- package/dist/storage/config/storage-driver-context.js.map +1 -0
- package/dist/storage/config/storage-not-configured.error.d.ts +70 -0
- package/dist/storage/config/storage-not-configured.error.d.ts.map +1 -0
- package/dist/storage/config/storage-not-configured.error.js +117 -0
- package/dist/storage/config/storage-not-configured.error.js.map +1 -0
- package/dist/storage/config/storage-settings-compat.d.ts +44 -0
- package/dist/storage/config/storage-settings-compat.d.ts.map +1 -0
- package/dist/storage/config/storage-settings-compat.js +135 -0
- package/dist/storage/config/storage-settings-compat.js.map +1 -0
- package/dist/storage/config/storage-submission.service.d.ts +46 -0
- package/dist/storage/config/storage-submission.service.d.ts.map +1 -0
- package/dist/storage/config/storage-submission.service.js +102 -0
- package/dist/storage/config/storage-submission.service.js.map +1 -0
- package/dist/storage/config/storage.system-settings.d.ts +130 -0
- package/dist/storage/config/storage.system-settings.d.ts.map +1 -0
- package/dist/storage/config/storage.system-settings.js +307 -0
- package/dist/storage/config/storage.system-settings.js.map +1 -0
- package/dist/storage/data/storage-db.d.ts +292 -0
- package/dist/storage/data/storage-db.d.ts.map +1 -0
- package/dist/storage/data/storage-db.js +87 -0
- package/dist/storage/data/storage-db.js.map +1 -0
- package/dist/storage/drivers/builtin-storage-drivers.d.ts +8 -0
- package/dist/storage/drivers/builtin-storage-drivers.d.ts.map +1 -0
- package/dist/storage/drivers/builtin-storage-drivers.js +35 -0
- package/dist/storage/drivers/builtin-storage-drivers.js.map +1 -0
- package/dist/storage/drivers/s3/s3-config.d.ts +316 -0
- package/dist/storage/drivers/s3/s3-config.d.ts.map +1 -0
- package/dist/storage/drivers/s3/s3-config.js +315 -0
- package/dist/storage/drivers/s3/s3-config.js.map +1 -0
- package/dist/storage/drivers/s3/s3-connection-test.d.ts +28 -0
- package/dist/storage/drivers/s3/s3-connection-test.d.ts.map +1 -0
- package/dist/storage/drivers/s3/s3-connection-test.js +424 -0
- package/dist/storage/drivers/s3/s3-connection-test.js.map +1 -0
- package/dist/storage/drivers/s3/s3-family.d.ts +20 -0
- package/dist/storage/drivers/s3/s3-family.d.ts.map +1 -0
- package/dist/storage/drivers/s3/s3-family.js +208 -0
- package/dist/storage/drivers/s3/s3-family.js.map +1 -0
- package/dist/storage/drivers/s3/s3-probe.support.d.ts +153 -0
- package/dist/storage/drivers/s3/s3-probe.support.d.ts.map +1 -0
- package/dist/storage/drivers/s3/s3-probe.support.js +250 -0
- package/dist/storage/drivers/s3/s3-probe.support.js.map +1 -0
- package/dist/storage/drivers/s3/s3-provision.d.ts +46 -0
- package/dist/storage/drivers/s3/s3-provision.d.ts.map +1 -0
- package/dist/storage/drivers/s3/s3-provision.js +495 -0
- package/dist/storage/drivers/s3/s3-provision.js.map +1 -0
- package/dist/storage/drivers/s3/s3-purge.d.ts +29 -0
- package/dist/storage/drivers/s3/s3-purge.d.ts.map +1 -0
- package/dist/storage/drivers/s3/s3-purge.js +146 -0
- package/dist/storage/drivers/s3/s3-purge.js.map +1 -0
- package/dist/storage/drivers/storage-driver.d.ts +393 -0
- package/dist/storage/drivers/storage-driver.d.ts.map +1 -0
- package/dist/storage/drivers/storage-driver.js +251 -0
- package/dist/storage/drivers/storage-driver.js.map +1 -0
- package/dist/storage/handlers/storage-cleanup.handler.d.ts +59 -0
- package/dist/storage/handlers/storage-cleanup.handler.d.ts.map +1 -0
- package/dist/storage/handlers/storage-cleanup.handler.js +185 -0
- package/dist/storage/handlers/storage-cleanup.handler.js.map +1 -0
- package/dist/storage/handlers/storage-object-process.handler.d.ts +47 -0
- package/dist/storage/handlers/storage-object-process.handler.d.ts.map +1 -0
- package/dist/storage/handlers/storage-object-process.handler.js +172 -0
- package/dist/storage/handlers/storage-object-process.handler.js.map +1 -0
- package/dist/storage/index.d.ts +86 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +221 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/mime-type-match.d.ts +26 -0
- package/dist/storage/mime-type-match.d.ts.map +1 -0
- package/dist/storage/mime-type-match.js +36 -0
- package/dist/storage/mime-type-match.js.map +1 -0
- package/dist/storage/multipart.d.ts +51 -0
- package/dist/storage/multipart.d.ts.map +1 -0
- package/dist/storage/multipart.js +21 -0
- package/dist/storage/multipart.js.map +1 -0
- package/dist/storage/node-object-store.binding.d.ts +28 -0
- package/dist/storage/node-object-store.binding.d.ts.map +1 -0
- package/dist/storage/node-object-store.binding.js +40 -0
- package/dist/storage/node-object-store.binding.js.map +1 -0
- package/dist/storage/objects/dto/complete-upload.dto.d.ts +17 -0
- package/dist/storage/objects/dto/complete-upload.dto.d.ts.map +1 -0
- package/dist/storage/objects/dto/complete-upload.dto.js +19 -0
- package/dist/storage/objects/dto/complete-upload.dto.js.map +1 -0
- package/dist/storage/objects/dto/download-url-response.dto.d.ts +14 -0
- package/dist/storage/objects/dto/download-url-response.dto.d.ts.map +1 -0
- package/dist/storage/objects/dto/download-url-response.dto.js +19 -0
- package/dist/storage/objects/dto/download-url-response.dto.js.map +1 -0
- package/dist/storage/objects/dto/init-upload.dto.d.ts +33 -0
- package/dist/storage/objects/dto/init-upload.dto.d.ts.map +1 -0
- package/dist/storage/objects/dto/init-upload.dto.js +28 -0
- package/dist/storage/objects/dto/init-upload.dto.js.map +1 -0
- package/dist/storage/objects/dto/object-list-query.dto.d.ts +13 -0
- package/dist/storage/objects/dto/object-list-query.dto.d.ts.map +1 -0
- package/dist/storage/objects/dto/object-list-query.dto.js +7 -0
- package/dist/storage/objects/dto/object-list-query.dto.js.map +1 -0
- package/dist/storage/objects/dto/object-response.dto.d.ts +35 -0
- package/dist/storage/objects/dto/object-response.dto.d.ts.map +1 -0
- package/dist/storage/objects/dto/object-response.dto.js +28 -0
- package/dist/storage/objects/dto/object-response.dto.js.map +1 -0
- package/dist/storage/objects/dto/update-metadata.dto.d.ts +14 -0
- package/dist/storage/objects/dto/update-metadata.dto.d.ts.map +1 -0
- package/dist/storage/objects/dto/update-metadata.dto.js +19 -0
- package/dist/storage/objects/dto/update-metadata.dto.js.map +1 -0
- package/dist/storage/objects/objects.controller.d.ts +77 -0
- package/dist/storage/objects/objects.controller.d.ts.map +1 -0
- package/dist/storage/objects/objects.controller.js +383 -0
- package/dist/storage/objects/objects.controller.js.map +1 -0
- package/dist/storage/objects/objects.service.d.ts +156 -0
- package/dist/storage/objects/objects.service.d.ts.map +1 -0
- package/dist/storage/objects/objects.service.js +642 -0
- package/dist/storage/objects/objects.service.js.map +1 -0
- package/dist/storage/ports.d.ts +39 -0
- package/dist/storage/ports.d.ts.map +1 -0
- package/dist/storage/ports.js +37 -0
- package/dist/storage/ports.js.map +1 -0
- package/dist/storage/processing/index.d.ts +11 -0
- package/dist/storage/processing/index.d.ts.map +1 -0
- package/dist/storage/processing/index.js +16 -0
- package/dist/storage/processing/index.js.map +1 -0
- package/dist/storage/processing/object-processing.module.d.ts +11 -0
- package/dist/storage/processing/object-processing.module.d.ts.map +1 -0
- package/dist/storage/processing/object-processing.module.js +32 -0
- package/dist/storage/processing/object-processing.module.js.map +1 -0
- package/dist/storage/processing/object-processing.service.d.ts +65 -0
- package/dist/storage/processing/object-processing.service.d.ts.map +1 -0
- package/dist/storage/processing/object-processing.service.js +211 -0
- package/dist/storage/processing/object-processing.service.js.map +1 -0
- package/dist/storage/processing/object-processor.interface.d.ts +47 -0
- package/dist/storage/processing/object-processor.interface.d.ts.map +1 -0
- package/dist/storage/processing/object-processor.interface.js +3 -0
- package/dist/storage/processing/object-processor.interface.js.map +1 -0
- package/dist/storage/processing/object-processor.registry.d.ts +50 -0
- package/dist/storage/processing/object-processor.registry.d.ts.map +1 -0
- package/dist/storage/processing/object-processor.registry.js +100 -0
- package/dist/storage/processing/object-processor.registry.js.map +1 -0
- package/dist/storage/processing/processing-metadata.d.ts +20 -0
- package/dist/storage/processing/processing-metadata.d.ts.map +1 -0
- package/dist/storage/processing/processing-metadata.js +34 -0
- package/dist/storage/processing/processing-metadata.js.map +1 -0
- package/dist/storage/profile-image/avatar.controller.d.ts +24 -0
- package/dist/storage/profile-image/avatar.controller.d.ts.map +1 -0
- package/dist/storage/profile-image/avatar.controller.js +90 -0
- package/dist/storage/profile-image/avatar.controller.js.map +1 -0
- package/dist/storage/profile-image/avatar.service.d.ts +60 -0
- package/dist/storage/profile-image/avatar.service.d.ts.map +1 -0
- package/dist/storage/profile-image/avatar.service.js +117 -0
- package/dist/storage/profile-image/avatar.service.js.map +1 -0
- package/dist/storage/profile-image/dto/profile-image-response.dto.d.ts +28 -0
- package/dist/storage/profile-image/dto/profile-image-response.dto.d.ts.map +1 -0
- package/dist/storage/profile-image/dto/profile-image-response.dto.js +40 -0
- package/dist/storage/profile-image/dto/profile-image-response.dto.js.map +1 -0
- package/dist/storage/profile-image/profile-image.controller.d.ts +32 -0
- package/dist/storage/profile-image/profile-image.controller.d.ts.map +1 -0
- package/dist/storage/profile-image/profile-image.controller.js +192 -0
- package/dist/storage/profile-image/profile-image.controller.js.map +1 -0
- package/dist/storage/profile-image/profile-image.d.ts +138 -0
- package/dist/storage/profile-image/profile-image.d.ts.map +1 -0
- package/dist/storage/profile-image/profile-image.js +182 -0
- package/dist/storage/profile-image/profile-image.js.map +1 -0
- package/dist/storage/profile-image/profile-image.module.d.ts +39 -0
- package/dist/storage/profile-image/profile-image.module.d.ts.map +1 -0
- package/dist/storage/profile-image/profile-image.module.js +66 -0
- package/dist/storage/profile-image/profile-image.module.js.map +1 -0
- package/dist/storage/profile-image/profile-image.service.d.ts +66 -0
- package/dist/storage/profile-image/profile-image.service.d.ts.map +1 -0
- package/dist/storage/profile-image/profile-image.service.js +243 -0
- package/dist/storage/profile-image/profile-image.service.js.map +1 -0
- package/dist/storage/providers/index.d.ts +11 -0
- package/dist/storage/providers/index.d.ts.map +1 -0
- package/dist/storage/providers/index.js +18 -0
- package/dist/storage/providers/index.js.map +1 -0
- package/dist/storage/providers/resolving-storage.provider.d.ts +113 -0
- package/dist/storage/providers/resolving-storage.provider.d.ts.map +1 -0
- package/dist/storage/providers/resolving-storage.provider.js +292 -0
- package/dist/storage/providers/resolving-storage.provider.js.map +1 -0
- package/dist/storage/providers/s3/s3-storage.provider.d.ts +263 -0
- package/dist/storage/providers/s3/s3-storage.provider.d.ts.map +1 -0
- package/dist/storage/providers/s3/s3-storage.provider.js +542 -0
- package/dist/storage/providers/s3/s3-storage.provider.js.map +1 -0
- package/dist/storage/providers/storage-provider.binding.d.ts +29 -0
- package/dist/storage/providers/storage-provider.binding.d.ts.map +1 -0
- package/dist/storage/providers/storage-provider.binding.js +80 -0
- package/dist/storage/providers/storage-provider.binding.js.map +1 -0
- package/dist/storage/providers/storage-provider.interface.d.ts +164 -0
- package/dist/storage/providers/storage-provider.interface.d.ts.map +1 -0
- package/dist/storage/providers/storage-provider.interface.js +33 -0
- package/dist/storage/providers/storage-provider.interface.js.map +1 -0
- package/dist/storage/providers/storage-provider.types.d.ts +90 -0
- package/dist/storage/providers/storage-provider.types.d.ts.map +1 -0
- package/dist/storage/providers/storage-provider.types.js +3 -0
- package/dist/storage/providers/storage-provider.types.js.map +1 -0
- package/dist/storage/providers/storage-providers.module.d.ts +63 -0
- package/dist/storage/providers/storage-providers.module.d.ts.map +1 -0
- package/dist/storage/providers/storage-providers.module.js +94 -0
- package/dist/storage/providers/storage-providers.module.js.map +1 -0
- package/dist/storage/purge/run-storage-purge.d.ts +179 -0
- package/dist/storage/purge/run-storage-purge.d.ts.map +1 -0
- package/dist/storage/purge/run-storage-purge.js +205 -0
- package/dist/storage/purge/run-storage-purge.js.map +1 -0
- package/dist/storage/status/dto/storage-status.dto.d.ts +14 -0
- package/dist/storage/status/dto/storage-status.dto.d.ts.map +1 -0
- package/dist/storage/status/dto/storage-status.dto.js +19 -0
- package/dist/storage/status/dto/storage-status.dto.js.map +1 -0
- package/dist/storage/status/storage-status.controller.d.ts +16 -0
- package/dist/storage/status/storage-status.controller.d.ts.map +1 -0
- package/dist/storage/status/storage-status.controller.js +85 -0
- package/dist/storage/status/storage-status.controller.js.map +1 -0
- package/dist/storage/storage-credential.constants.d.ts +47 -0
- package/dist/storage/storage-credential.constants.d.ts.map +1 -0
- package/dist/storage/storage-credential.constants.js +88 -0
- package/dist/storage/storage-credential.constants.js.map +1 -0
- package/dist/storage/storage-job-input.d.ts +90 -0
- package/dist/storage/storage-job-input.d.ts.map +1 -0
- package/dist/storage/storage-job-input.js +96 -0
- package/dist/storage/storage-job-input.js.map +1 -0
- package/dist/storage/storage-key-prefix.registry.d.ts +196 -0
- package/dist/storage/storage-key-prefix.registry.d.ts.map +1 -0
- package/dist/storage/storage-key-prefix.registry.js +303 -0
- package/dist/storage/storage-key-prefix.registry.js.map +1 -0
- package/dist/storage/storage-key-prefixes.d.ts +66 -0
- package/dist/storage/storage-key-prefixes.d.ts.map +1 -0
- package/dist/storage/storage-key-prefixes.js +161 -0
- package/dist/storage/storage-key-prefixes.js.map +1 -0
- package/dist/storage/storage.constants.d.ts +17 -0
- package/dist/storage/storage.constants.d.ts.map +1 -0
- package/dist/storage/storage.constants.js +28 -0
- package/dist/storage/storage.constants.js.map +1 -0
- package/dist/storage/storage.module.d.ts +35 -0
- package/dist/storage/storage.module.d.ts.map +1 -0
- package/dist/storage/storage.module.js +99 -0
- package/dist/storage/storage.module.js.map +1 -0
- package/dist/storage/storage.options.d.ts +116 -0
- package/dist/storage/storage.options.d.ts.map +1 -0
- package/dist/storage/storage.options.js +97 -0
- package/dist/storage/storage.options.js.map +1 -0
- package/dist/storage/storage.permissions.d.ts +33 -0
- package/dist/storage/storage.permissions.d.ts.map +1 -0
- package/dist/storage/storage.permissions.js +55 -0
- package/dist/storage/storage.permissions.js.map +1 -0
- package/dist/storage/tasks/index.d.ts +2 -0
- package/dist/storage/tasks/index.d.ts.map +1 -0
- package/dist/storage/tasks/index.js +18 -0
- package/dist/storage/tasks/index.js.map +1 -0
- package/dist/storage/tasks/storage-cleanup.task.d.ts +17 -0
- package/dist/storage/tasks/storage-cleanup.task.d.ts.map +1 -0
- package/dist/storage/tasks/storage-cleanup.task.js +71 -0
- package/dist/storage/tasks/storage-cleanup.task.js.map +1 -0
- package/dist/storage/testing/conformance.d.ts +61 -0
- package/dist/storage/testing/conformance.d.ts.map +1 -0
- package/dist/storage/testing/conformance.js +163 -0
- package/dist/storage/testing/conformance.js.map +1 -0
- package/dist/storage/testing/driver-conformance.d.ts +66 -0
- package/dist/storage/testing/driver-conformance.d.ts.map +1 -0
- package/dist/storage/testing/driver-conformance.js +333 -0
- package/dist/storage/testing/driver-conformance.js.map +1 -0
- package/dist/storage/testing/index.d.ts +5 -0
- package/dist/storage/testing/index.d.ts.map +1 -0
- package/dist/storage/testing/index.js +16 -0
- package/dist/storage/testing/index.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant-tool.registry.d.ts +90 -0
- package/dist/telemetry/assistant/telemetry-assistant-tool.registry.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant-tool.registry.js +52 -0
- package/dist/telemetry/assistant/telemetry-assistant-tool.registry.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +1 -1
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -1
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +47 -4
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -1
- package/dist/telemetry/assistant/telemetry-assistant.service.js +129 -14
- package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -1
- package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +1 -1
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +1 -1
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -1
- package/dist/telemetry/connection/telemetry-connection-test.service.js +2 -2
- package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -1
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts +7 -1
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -1
- package/dist/telemetry/connection/telemetry-connection.schema.js +7 -1
- package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -1
- package/dist/telemetry/dashboard/panels/dashboard-panel.manifest.d.ts +2 -0
- package/dist/telemetry/dashboard/panels/dashboard-panel.manifest.d.ts.map +1 -0
- package/dist/telemetry/dashboard/panels/dashboard-panel.manifest.js +28 -0
- package/dist/telemetry/dashboard/panels/dashboard-panel.manifest.js.map +1 -0
- package/dist/telemetry/dashboard/panels/dashboard-panel.registry.d.ts +111 -0
- package/dist/telemetry/dashboard/panels/dashboard-panel.registry.d.ts.map +1 -0
- package/dist/telemetry/dashboard/panels/dashboard-panel.registry.js +63 -0
- package/dist/telemetry/dashboard/panels/dashboard-panel.registry.js.map +1 -0
- package/dist/telemetry/dashboard/panels/dashboard-panels.d.ts +3 -0
- package/dist/telemetry/dashboard/panels/dashboard-panels.d.ts.map +1 -0
- package/dist/telemetry/dashboard/panels/dashboard-panels.js +12 -0
- package/dist/telemetry/dashboard/panels/dashboard-panels.js.map +1 -0
- package/dist/telemetry/dashboard/panels/telemetry-dashboard-panel.service.d.ts +34 -0
- package/dist/telemetry/dashboard/panels/telemetry-dashboard-panel.service.d.ts.map +1 -0
- package/dist/telemetry/dashboard/panels/telemetry-dashboard-panel.service.js +145 -0
- package/dist/telemetry/dashboard/panels/telemetry-dashboard-panel.service.js.map +1 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts +2 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -1
- package/dist/telemetry/dashboard/sql-literals.js +7 -0
- package/dist/telemetry/dashboard/sql-literals.js.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +70 -5
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +21 -4
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js +73 -35
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +21 -15
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +104 -65
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -1
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +5 -4
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -1
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +14 -9
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -1
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +4 -4
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -1
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +12 -8
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -1
- package/dist/telemetry/dto/telemetry-config.dto.d.ts +4 -0
- package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -1
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +94 -22
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -1
- package/dist/telemetry/dto/telemetry-dashboard.dto.js +11 -1
- package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -1
- package/dist/telemetry/dto/telemetry-query.dto.d.ts +1 -1
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +6 -6
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -1
- package/dist/telemetry/handlers/telemetry-retention.handler.js +43 -52
- package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -1
- package/dist/telemetry/index.d.ts +49 -6
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +66 -3
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/groups/database.metric-group.js +3 -0
- package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -1
- package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/groups/host.metric-group.js +3 -0
- package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -1
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/groups/nodes.metric-group.js +3 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -1
- package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js +3 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -1
- package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/groups/queue.metric-group.js +3 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -1
- package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/groups/uptime.metric-group.js +3 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -1
- package/dist/telemetry/metrics/metric-catalog.d.ts +5 -4
- package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -1
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +9 -1
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -1
- package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -1
- package/dist/telemetry/metrics/metric-catalog.js.map +1 -1
- package/dist/telemetry/metrics/metric-group.d.ts +3 -1
- package/dist/telemetry/metrics/metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/metric-group.js +4 -2
- package/dist/telemetry/metrics/metric-group.js.map +1 -1
- package/dist/telemetry/metrics/metric-group.registry.d.ts +10 -26
- package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -1
- package/dist/telemetry/metrics/metric-group.registry.js +6 -3
- package/dist/telemetry/metrics/metric-group.registry.js.map +1 -1
- package/dist/telemetry/metrics/metric-presentation.d.ts +29 -0
- package/dist/telemetry/metrics/metric-presentation.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-presentation.js +127 -0
- package/dist/telemetry/metrics/metric-presentation.js.map +1 -0
- package/dist/telemetry/metrics/metric-sql.d.ts +3 -2
- package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -1
- package/dist/telemetry/metrics/metric-sql.js +7 -4
- package/dist/telemetry/metrics/metric-sql.js.map +1 -1
- package/dist/telemetry/metrics/metric-unit.registry.d.ts +61 -0
- package/dist/telemetry/metrics/metric-unit.registry.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-unit.registry.js +91 -0
- package/dist/telemetry/metrics/metric-unit.registry.js.map +1 -0
- package/dist/telemetry/metrics/metric-values.d.ts +1 -1
- package/dist/telemetry/metrics/metric-values.d.ts.map +1 -1
- package/dist/telemetry/metrics/metric-values.js +1 -1
- package/dist/telemetry/metrics/metric-values.js.map +1 -1
- package/dist/telemetry/metrics/metric-verdict.d.ts +1 -1
- package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -1
- package/dist/telemetry/query/telemetry-availability.d.ts +3 -3
- package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -1
- package/dist/telemetry/query/telemetry-availability.js +8 -8
- package/dist/telemetry/query/telemetry-availability.js.map +1 -1
- package/dist/telemetry/query/telemetry-query-facade.d.ts +128 -0
- package/dist/telemetry/query/telemetry-query-facade.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-query-facade.js +112 -0
- package/dist/telemetry/query/telemetry-query-facade.js.map +1 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts +2 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -1
- package/dist/telemetry/query/telemetry-query.errors.js +10 -0
- package/dist/telemetry/query/telemetry-query.errors.js.map +1 -1
- package/dist/telemetry/query/telemetry-query.service.d.ts +5 -5
- package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -1
- package/dist/telemetry/query/telemetry-query.service.js +13 -11
- package/dist/telemetry/query/telemetry-query.service.js.map +1 -1
- package/dist/telemetry/query/telemetry-schema.service.d.ts +4 -10
- package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -1
- package/dist/telemetry/query/telemetry-schema.service.js +17 -66
- package/dist/telemetry/query/telemetry-schema.service.js.map +1 -1
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +3 -3
- package/dist/telemetry/stack/stack-agent.client.d.ts +2 -2
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -1
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -1
- package/dist/telemetry/stores/dto/telemetry-store.dto.d.ts +73 -0
- package/dist/telemetry/stores/dto/telemetry-store.dto.d.ts.map +1 -0
- package/dist/telemetry/stores/dto/telemetry-store.dto.js +15 -0
- package/dist/telemetry/stores/dto/telemetry-store.dto.js.map +1 -0
- package/dist/telemetry/stores/greptime/greptime-host.d.ts.map +1 -0
- package/dist/telemetry/stores/greptime/greptime-host.js.map +1 -0
- package/dist/telemetry/{greptime → stores/greptime}/greptime.client.d.ts +30 -57
- package/dist/telemetry/stores/greptime/greptime.client.d.ts.map +1 -0
- package/dist/telemetry/{greptime → stores/greptime}/greptime.client.js +52 -23
- package/dist/telemetry/stores/greptime/greptime.client.js.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.dialect.d.ts +8 -0
- package/dist/telemetry/stores/greptime/greptime.dialect.d.ts.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.dialect.js +53 -0
- package/dist/telemetry/stores/greptime/greptime.dialect.js.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.retention.d.ts +37 -0
- package/dist/telemetry/stores/greptime/greptime.retention.d.ts.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.retention.js +128 -0
- package/dist/telemetry/stores/greptime/greptime.retention.js.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.schema.d.ts +25 -0
- package/dist/telemetry/stores/greptime/greptime.schema.d.ts.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.schema.js +80 -0
- package/dist/telemetry/stores/greptime/greptime.schema.js.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.store.d.ts +8 -0
- package/dist/telemetry/stores/greptime/greptime.store.d.ts.map +1 -0
- package/dist/telemetry/stores/greptime/greptime.store.js +47 -0
- package/dist/telemetry/stores/greptime/greptime.store.js.map +1 -0
- package/dist/telemetry/stores/telemetry-store-settings.service.d.ts +44 -0
- package/dist/telemetry/stores/telemetry-store-settings.service.d.ts.map +1 -0
- package/dist/telemetry/stores/telemetry-store-settings.service.js +208 -0
- package/dist/telemetry/stores/telemetry-store-settings.service.js.map +1 -0
- package/dist/telemetry/stores/telemetry-store.controller.d.ts +14 -0
- package/dist/telemetry/stores/telemetry-store.controller.d.ts.map +1 -0
- package/dist/telemetry/stores/telemetry-store.controller.js +111 -0
- package/dist/telemetry/stores/telemetry-store.controller.js.map +1 -0
- package/dist/telemetry/stores/telemetry-store.d.ts +428 -0
- package/dist/telemetry/stores/telemetry-store.d.ts.map +1 -0
- package/dist/telemetry/{greptime/greptime.errors.d.ts → stores/telemetry-store.errors.d.ts} +31 -5
- package/dist/telemetry/stores/telemetry-store.errors.d.ts.map +1 -0
- package/dist/telemetry/{greptime/greptime.errors.js → stores/telemetry-store.errors.js} +41 -15
- package/dist/telemetry/stores/telemetry-store.errors.js.map +1 -0
- package/dist/telemetry/stores/telemetry-store.js +213 -0
- package/dist/telemetry/stores/telemetry-store.js.map +1 -0
- package/dist/telemetry/stores/telemetry-store.resolver.d.ts +81 -0
- package/dist/telemetry/stores/telemetry-store.resolver.d.ts.map +1 -0
- package/dist/telemetry/stores/telemetry-store.resolver.js +312 -0
- package/dist/telemetry/stores/telemetry-store.resolver.js.map +1 -0
- package/dist/telemetry/tasks/telemetry-retention.task.js +1 -1
- package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -1
- package/dist/telemetry/telemetry-settings.service.d.ts +5 -3
- package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -1
- package/dist/telemetry/telemetry-settings.service.js +15 -9
- package/dist/telemetry/telemetry-settings.service.js.map +1 -1
- package/dist/telemetry/telemetry-status.service.d.ts +5 -17
- package/dist/telemetry/telemetry-status.service.d.ts.map +1 -1
- package/dist/telemetry/telemetry-status.service.js +31 -100
- package/dist/telemetry/telemetry-status.service.js.map +1 -1
- package/dist/telemetry/telemetry-support-bundle.section.d.ts +13 -13
- package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -1
- package/dist/telemetry/telemetry-support-bundle.section.js +10 -8
- package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -1
- package/dist/telemetry/telemetry.module.d.ts +2 -2
- package/dist/telemetry/telemetry.module.d.ts.map +1 -1
- package/dist/telemetry/telemetry.module.js +42 -3
- package/dist/telemetry/telemetry.module.js.map +1 -1
- package/dist/telemetry/telemetry.options.d.ts +60 -0
- package/dist/telemetry/telemetry.options.d.ts.map +1 -1
- package/dist/telemetry/telemetry.options.js +57 -1
- package/dist/telemetry/telemetry.options.js.map +1 -1
- package/dist/telemetry/telemetry.permissions.d.ts +4 -16
- package/dist/telemetry/telemetry.permissions.d.ts.map +1 -1
- package/dist/telemetry/telemetry.permissions.js +1 -1
- package/dist/telemetry/telemetry.permissions.js.map +1 -1
- package/dist/telemetry/testing/conformance.d.ts +63 -4
- package/dist/telemetry/testing/conformance.d.ts.map +1 -1
- package/dist/telemetry/testing/conformance.js +154 -16
- package/dist/telemetry/testing/conformance.js.map +1 -1
- package/dist/telemetry/testing/index.d.ts +6 -2
- package/dist/telemetry/testing/index.d.ts.map +1 -1
- package/dist/telemetry/testing/index.js +10 -1
- package/dist/telemetry/testing/index.js.map +1 -1
- package/dist/telemetry/testing/metric-schema.fixture.d.ts +1 -1
- package/dist/telemetry/testing/metric-schema.fixture.js +1 -1
- package/dist/telemetry/testing/store-conformance.d.ts +129 -0
- package/dist/telemetry/testing/store-conformance.d.ts.map +1 -0
- package/dist/telemetry/testing/store-conformance.js +371 -0
- package/dist/telemetry/testing/store-conformance.js.map +1 -0
- package/dist/telemetry/testing/stub-ports.d.ts +11 -1
- package/dist/telemetry/testing/stub-ports.d.ts.map +1 -1
- package/dist/telemetry/testing/stub-ports.js +17 -9
- package/dist/telemetry/testing/stub-ports.js.map +1 -1
- package/dist/testing/conformance-suite.d.ts +43 -0
- package/dist/testing/conformance-suite.d.ts.map +1 -1
- package/dist/testing/conformance-suites.d.ts +2 -2
- package/dist/testing/conformance-suites.d.ts.map +1 -1
- package/dist/testing/conformance-suites.js.map +1 -1
- package/dist/testing/index.d.ts +31 -3
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/run-platform-conformance.d.ts +41 -34
- package/dist/testing/run-platform-conformance.d.ts.map +1 -1
- package/dist/testing/run-platform-conformance.js +51 -2
- package/dist/testing/run-platform-conformance.js.map +1 -1
- package/dist/testing/suites/cron-enqueue-only.d.ts +7 -0
- package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -1
- package/dist/testing/suites/cron-enqueue-only.js +12 -5
- package/dist/testing/suites/cron-enqueue-only.js.map +1 -1
- package/dist/testing/suites/user-owned-data.d.ts +1 -1
- package/dist/testing/test-api.d.ts +15 -0
- package/dist/testing/test-api.d.ts.map +1 -0
- package/dist/testing/test-api.js +29 -0
- package/dist/testing/test-api.js.map +1 -0
- package/dist/user-data/composed-schema.d.ts +28 -0
- package/dist/user-data/composed-schema.d.ts.map +1 -0
- package/dist/user-data/composed-schema.js +56 -0
- package/dist/user-data/composed-schema.js.map +1 -0
- package/dist/user-data/default-environment.d.ts +19 -0
- package/dist/user-data/default-environment.d.ts.map +1 -0
- package/dist/user-data/default-environment.js +47 -0
- package/dist/user-data/default-environment.js.map +1 -0
- package/dist/user-data/doctor/user-data-registries.doctor-check.d.ts +23 -0
- package/dist/user-data/doctor/user-data-registries.doctor-check.d.ts.map +1 -0
- package/dist/user-data/doctor/user-data-registries.doctor-check.js +102 -0
- package/dist/user-data/doctor/user-data-registries.doctor-check.js.map +1 -0
- package/dist/user-data/handlers/factory-reset.handler.d.ts +54 -0
- package/dist/user-data/handlers/factory-reset.handler.d.ts.map +1 -0
- package/dist/user-data/handlers/factory-reset.handler.js +351 -0
- package/dist/user-data/handlers/factory-reset.handler.js.map +1 -0
- package/dist/user-data/handlers/org-offboard.handler.d.ts +52 -0
- package/dist/user-data/handlers/org-offboard.handler.d.ts.map +1 -0
- package/dist/user-data/handlers/org-offboard.handler.js +263 -0
- package/dist/user-data/handlers/org-offboard.handler.js.map +1 -0
- package/dist/user-data/handlers/user-data-purge.handler.d.ts +69 -0
- package/dist/user-data/handlers/user-data-purge.handler.d.ts.map +1 -0
- package/dist/user-data/handlers/user-data-purge.handler.js +146 -0
- package/dist/user-data/handlers/user-data-purge.handler.js.map +1 -0
- package/dist/user-data/index.d.ts +30 -0
- package/dist/user-data/index.d.ts.map +1 -0
- package/dist/user-data/index.js +118 -0
- package/dist/user-data/index.js.map +1 -0
- package/dist/user-data/platform-user-data.d.ts +39 -0
- package/dist/user-data/platform-user-data.d.ts.map +1 -0
- package/dist/user-data/platform-user-data.js +167 -0
- package/dist/user-data/platform-user-data.js.map +1 -0
- package/dist/user-data/ports.d.ts +68 -0
- package/dist/user-data/ports.d.ts.map +1 -0
- package/dist/user-data/ports.js +43 -0
- package/dist/user-data/ports.js.map +1 -0
- package/dist/user-data/preconditions/recent-org-export.d.ts +29 -0
- package/dist/user-data/preconditions/recent-org-export.d.ts.map +1 -0
- package/dist/user-data/preconditions/recent-org-export.js +79 -0
- package/dist/user-data/preconditions/recent-org-export.js.map +1 -0
- package/dist/user-data/purge/purge-planner.d.ts +106 -0
- package/dist/user-data/purge/purge-planner.d.ts.map +1 -0
- package/dist/user-data/purge/purge-planner.js +202 -0
- package/dist/user-data/purge/purge-planner.js.map +1 -0
- package/dist/user-data/purge/user-purge.d.ts +209 -0
- package/dist/user-data/purge/user-purge.d.ts.map +1 -0
- package/dist/user-data/purge/user-purge.js +305 -0
- package/dist/user-data/purge/user-purge.js.map +1 -0
- package/dist/user-data/registry-checks.d.ts +44 -0
- package/dist/user-data/registry-checks.d.ts.map +1 -0
- package/dist/user-data/registry-checks.js +121 -0
- package/dist/user-data/registry-checks.js.map +1 -0
- package/dist/user-data/testing/conformance.d.ts +33 -0
- package/dist/user-data/testing/conformance.d.ts.map +1 -0
- package/dist/user-data/testing/conformance.js +80 -0
- package/dist/user-data/testing/conformance.js.map +1 -0
- package/dist/user-data/testing/index.d.ts +3 -0
- package/dist/user-data/testing/index.d.ts.map +1 -0
- package/dist/user-data/testing/index.js +13 -0
- package/dist/user-data/testing/index.js.map +1 -0
- package/dist/user-data/user-data-plan.service.d.ts +62 -0
- package/dist/user-data/user-data-plan.service.d.ts.map +1 -0
- package/dist/user-data/user-data-plan.service.js +84 -0
- package/dist/user-data/user-data-plan.service.js.map +1 -0
- package/dist/user-data/user-data.controller.d.ts +142 -0
- package/dist/user-data/user-data.controller.d.ts.map +1 -0
- package/dist/user-data/user-data.controller.js +302 -0
- package/dist/user-data/user-data.controller.js.map +1 -0
- package/dist/user-data/user-data.metrics.d.ts +57 -0
- package/dist/user-data/user-data.metrics.d.ts.map +1 -0
- package/dist/user-data/user-data.metrics.js +84 -0
- package/dist/user-data/user-data.metrics.js.map +1 -0
- package/dist/user-data/user-data.module.d.ts +38 -0
- package/dist/user-data/user-data.module.d.ts.map +1 -0
- package/dist/user-data/user-data.module.js +86 -0
- package/dist/user-data/user-data.module.js.map +1 -0
- package/dist/user-data/user-data.options.d.ts +108 -0
- package/dist/user-data/user-data.options.d.ts.map +1 -0
- package/dist/user-data/user-data.options.js +66 -0
- package/dist/user-data/user-data.options.js.map +1 -0
- package/dist/user-data/user-data.permissions.d.ts +29 -0
- package/dist/user-data/user-data.permissions.d.ts.map +1 -0
- package/dist/user-data/user-data.permissions.js +33 -0
- package/dist/user-data/user-data.permissions.js.map +1 -0
- package/dist/user-data/user-data.registries.d.ts +202 -0
- package/dist/user-data/user-data.registries.d.ts.map +1 -0
- package/dist/user-data/user-data.registries.js +425 -0
- package/dist/user-data/user-data.registries.js.map +1 -0
- package/dist/user-data/user-data.service.d.ts +132 -0
- package/dist/user-data/user-data.service.d.ts.map +1 -0
- package/dist/user-data/user-data.service.js +434 -0
- package/dist/user-data/user-data.service.js.map +1 -0
- package/dist/user-data/user-data.types.d.ts +299 -0
- package/dist/user-data/user-data.types.d.ts.map +1 -0
- package/dist/user-data/user-data.types.js +23 -0
- package/dist/user-data/user-data.types.js.map +1 -0
- package/dist/user-data/user-purge.runner.d.ts +132 -0
- package/dist/user-data/user-purge.runner.d.ts.map +1 -0
- package/dist/user-data/user-purge.runner.js +283 -0
- package/dist/user-data/user-purge.runner.js.map +1 -0
- package/dist/user-data/user-removal-hooks.d.ts +17 -0
- package/dist/user-data/user-removal-hooks.d.ts.map +1 -0
- package/dist/user-data/user-removal-hooks.js +27 -0
- package/dist/user-data/user-removal-hooks.js.map +1 -0
- package/package.json +210 -4
- package/dist/telemetry/greptime/greptime-host.d.ts.map +0 -1
- package/dist/telemetry/greptime/greptime-host.js.map +0 -1
- package/dist/telemetry/greptime/greptime.client.d.ts.map +0 -1
- package/dist/telemetry/greptime/greptime.client.js.map +0 -1
- package/dist/telemetry/greptime/greptime.errors.d.ts.map +0 -1
- package/dist/telemetry/greptime/greptime.errors.js.map +0 -1
- /package/dist/telemetry/{greptime → stores/greptime}/greptime-host.d.ts +0 -0
- /package/dist/telemetry/{greptime → stores/greptime}/greptime-host.js +0 -0
|
@@ -0,0 +1,2113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var DatabaseRestoreService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DatabaseRestoreService = exports.defaultDatabaseRestoreSeam = exports.DATABASE_RESTORE_SEAM = exports.DB_RESTORE_RUN_TYPE = exports.RESTORE_MAINTENANCE_MESSAGE = exports.ROLLBACK_EXIT_DELAY_MS = exports.PRE_RESTORE_SETTLE_GRACE_MS = exports.PRE_RESTORE_POLL_INTERVAL_MS = exports.RESTORE_JOBS = exports.RESTORE_AUDIT_TARGET_TYPE = exports.RESTORE_AUDIT_ROLLBACK = exports.RESTORE_AUDIT_FAILED = exports.RESTORE_AUDIT_COMPLETE = exports.RESTORE_AUDIT_SWAP = exports.RESTORE_AUDIT_START = exports.RESTORE_STATUSES = void 0;
|
|
17
|
+
exports.parseRestoreJobPayload = parseRestoreJobPayload;
|
|
18
|
+
const node_crypto_1 = require("node:crypto");
|
|
19
|
+
const node_fs_1 = require("node:fs");
|
|
20
|
+
const promises_1 = require("node:fs/promises");
|
|
21
|
+
const node_stream_1 = require("node:stream");
|
|
22
|
+
const promises_2 = require("node:stream/promises");
|
|
23
|
+
const common_1 = require("@nestjs/common");
|
|
24
|
+
const config_1 = require("@nestjs/config");
|
|
25
|
+
const carry_over_registry_1 = require("./carry-over.registry");
|
|
26
|
+
const db_backup_constants_1 = require("./db-backup.constants");
|
|
27
|
+
const restore_gate_1 = require("./restore-gate");
|
|
28
|
+
const index_1 = require("../jobs/index");
|
|
29
|
+
const index_2 = require("../jobs/index");
|
|
30
|
+
const index_3 = require("../core/index");
|
|
31
|
+
const ports_1 = require("./ports");
|
|
32
|
+
const index_4 = require("../settings/index");
|
|
33
|
+
const index_5 = require("../storage/index");
|
|
34
|
+
const admin_connection_util_1 = require("./admin-connection.util");
|
|
35
|
+
const backup_target_1 = require("./backup-target");
|
|
36
|
+
const db_backup_events_1 = require("./db-backup-events");
|
|
37
|
+
const db_backup_runner_service_1 = require("./db-backup-runner.service");
|
|
38
|
+
const db_backup_errors_1 = require("./db-backup.errors");
|
|
39
|
+
const pg_restore_util_1 = require("./pg-restore.util");
|
|
40
|
+
const restore_preflight_service_1 = require("./restore-preflight.service");
|
|
41
|
+
// =============================================================================
|
|
42
|
+
// The scratch-database restore and the atomic swap (issue #285, epic #254)
|
|
43
|
+
// =============================================================================
|
|
44
|
+
//
|
|
45
|
+
// This is the file that replaces a production database. Everything in it exists
|
|
46
|
+
// to hold ONE property:
|
|
47
|
+
//
|
|
48
|
+
// THE APPLICATION SERVES NORMALLY THROUGHOUT THE ENTIRE RESTORE, AND THE
|
|
49
|
+
// ONLY DESTRUCTIVE WINDOW IS TWO CATALOG UPDATES LONG.
|
|
50
|
+
//
|
|
51
|
+
// -----------------------------------------------------------------------------
|
|
52
|
+
// WHY NOT `pg_restore --clean` AGAINST THE LIVE DATABASE
|
|
53
|
+
// -----------------------------------------------------------------------------
|
|
54
|
+
//
|
|
55
|
+
// ⚠ REJECTED OUTRIGHT. DO NOT REINTRODUCE IT. The reason is written here rather
|
|
56
|
+
// than in a design document because it is the obvious implementation and it
|
|
57
|
+
// will be proposed again by somebody who has not thought about the failure:
|
|
58
|
+
//
|
|
59
|
+
// `--clean` emits a `DROP` for every object in the archive before recreating
|
|
60
|
+
// it. Those objects include `database_backup_runs` — THE TABLE TRACKING THE
|
|
61
|
+
// RESTORE'S OWN PROGRESS — and `system_settings`, and `users`. If it fails
|
|
62
|
+
// midway (an extension the server does not have, a client older than the
|
|
63
|
+
// server, a network blip at 40 GB) what is left is a live database with half
|
|
64
|
+
// its tables dropped: an application that cannot boot, no admin UI to look at,
|
|
65
|
+
// no catalog to say what happened, and no way back except another restore of
|
|
66
|
+
// the archive that just failed. The destructive window is not the swap. It is
|
|
67
|
+
// THE WHOLE RESTORE, which on any database worth backing up is hours.
|
|
68
|
+
//
|
|
69
|
+
// And a restore IS hours. A `pg_dump` archive stores `CREATE INDEX`, not index
|
|
70
|
+
// data, so every index in the database is rebuilt from scratch on the way in.
|
|
71
|
+
// That single fact is what makes "restore somewhere else, then rename" not
|
|
72
|
+
// merely safer but the only sane shape: a window measured in hours must not be
|
|
73
|
+
// a window in which the application is broken.
|
|
74
|
+
//
|
|
75
|
+
// -----------------------------------------------------------------------------
|
|
76
|
+
// THE SHAPE
|
|
77
|
+
// -----------------------------------------------------------------------------
|
|
78
|
+
//
|
|
79
|
+
// 1. Download the archive to a seekable temp file; RE-VERIFY checksum and TOC.
|
|
80
|
+
// 2. (`pre_restore_dump` mode only) take a fresh safety backup.
|
|
81
|
+
// 3. `CREATE DATABASE <live>_restore_<ts>`
|
|
82
|
+
// 4. `pg_restore -j N` into it ← the app is FULLY UP for all of this
|
|
83
|
+
// 5. Verify the restored database.
|
|
84
|
+
// 6. Swap, in seconds.
|
|
85
|
+
//
|
|
86
|
+
// ⚠ A FAILURE AT ANY POINT BEFORE THE RENAME LEAVES THE LIVE DATABASE
|
|
87
|
+
// COMPLETELY UNTOUCHED and drops the scratch database. Steps 1-5 create exactly
|
|
88
|
+
// one thing (a database with a name no other process uses) and one temp file,
|
|
89
|
+
// and both are removed on the way out. There is an explicit test per phase.
|
|
90
|
+
//
|
|
91
|
+
// -----------------------------------------------------------------------------
|
|
92
|
+
// WHY THE ARCHIVE IS DOWNLOADED TO A FILE INSTEAD OF STREAMED
|
|
93
|
+
// -----------------------------------------------------------------------------
|
|
94
|
+
//
|
|
95
|
+
// `pg_restore -j N` SEEKS. Parallel restore hands different table-data members
|
|
96
|
+
// to different workers, which means jumping around the archive, which a pipe
|
|
97
|
+
// cannot do — `pg_restore` rejects `-j` with a stdin source outright (see
|
|
98
|
+
// `pg-restore.util.ts`). Streaming the object straight into `pg_restore` would
|
|
99
|
+
// therefore forfeit ALL parallelism on the phase that dominates the runtime, to
|
|
100
|
+
// save a temp file on a host that is about to hold a second copy of the whole
|
|
101
|
+
// database anyway.
|
|
102
|
+
//
|
|
103
|
+
// The file carries `JOB_TEMP_PREFIX` — the application's janitor-swept prefix —
|
|
104
|
+
// so that a SIGKILL between the download and the delete cannot leak it forever.
|
|
105
|
+
// That import reaches into `jobs/` on purpose, and it is the one case where
|
|
106
|
+
// copying the prefix would be wrong: `db-backup-storage.ts` deliberately
|
|
107
|
+
// duplicated `job-temp.ts`'s slugifier because it only needed the same SHAPE,
|
|
108
|
+
// whereas this file needs the same VALUE — a file whose prefix merely resembles
|
|
109
|
+
// the janitor's is a file the janitor never sweeps.
|
|
110
|
+
//
|
|
111
|
+
// -----------------------------------------------------------------------------
|
|
112
|
+
// WHY THE CHECKSUM IS RE-VERIFIED WHEN #281 ALREADY VERIFIED IT
|
|
113
|
+
// -----------------------------------------------------------------------------
|
|
114
|
+
//
|
|
115
|
+
// Because #281 verified a DIFFERENT THING: that the bytes were readable and
|
|
116
|
+
// hashed to the recorded value AT UPLOAD TIME, possibly months ago. This
|
|
117
|
+
// verifies the bytes AS THEY ARE NOW, which catches bit-rot, a storage
|
|
118
|
+
// lifecycle rule that moved the object to a tier that returned something else, a
|
|
119
|
+
// truncated download, and a proxy that ended the transfer early. Trusting the
|
|
120
|
+
// stored checksum is trusting a measurement of a file nobody has looked at
|
|
121
|
+
// since — and the moment you find out it was wrong would otherwise be after the
|
|
122
|
+
// swap.
|
|
123
|
+
//
|
|
124
|
+
// -----------------------------------------------------------------------------
|
|
125
|
+
// THE SWAP, AND THE ONE GENUINELY DANGEROUS MOMENT
|
|
126
|
+
// -----------------------------------------------------------------------------
|
|
127
|
+
//
|
|
128
|
+
// maintenance ON (allowAdmins: false)
|
|
129
|
+
// prisma.$disconnect() + terminateConnections(live)
|
|
130
|
+
// rename live -> old ← from here there is NO DATABASE NAMED <live>
|
|
131
|
+
// rename scratch -> live ← ...until here
|
|
132
|
+
// on failure: rename old -> live, and rethrow
|
|
133
|
+
//
|
|
134
|
+
// ⚠ BETWEEN THE TWO RENAMES THERE IS NO DATABASE UNDER THE LIVE NAME AT ALL.
|
|
135
|
+
// That is why traffic must already be stopped before the first rename, and why
|
|
136
|
+
// the maintenance window is opened with `allowAdmins: false`:
|
|
137
|
+
//
|
|
138
|
+
// - The PERSISTED maintenance flag lives INSIDE the database being renamed,
|
|
139
|
+
// so during those seconds it is unreadable. `MaintenanceModeService` has an
|
|
140
|
+
// IN-MEMORY override layer for exactly this caller and says so in its own
|
|
141
|
+
// header; this is the only thing in the repository that sets it.
|
|
142
|
+
// - `allowAdmins: true` would be actively wrong here rather than merely
|
|
143
|
+
// generous. An admin request during the window does not get "access to a
|
|
144
|
+
// degraded system"; it gets a connection attempt against a database that
|
|
145
|
+
// momentarily does not exist.
|
|
146
|
+
//
|
|
147
|
+
// The inner recovery — renaming the original back when the second rename fails
|
|
148
|
+
// — is the single most important `catch` in this subsystem, and it has a test of
|
|
149
|
+
// its own. What it cannot do is guarantee success: if the recovery rename ALSO
|
|
150
|
+
// fails there is no database under the live name and a human must finish or undo
|
|
151
|
+
// the swap by hand. `DatabaseRestoreSwapError.originalRestored` is how the
|
|
152
|
+
// difference is reported, and in that case the maintenance window is deliberately
|
|
153
|
+
// LEFT OPEN so the deployment answers 503 rather than five hundred stack traces.
|
|
154
|
+
//
|
|
155
|
+
// -----------------------------------------------------------------------------
|
|
156
|
+
// TWO THINGS THE SWAP INTRODUCES
|
|
157
|
+
// -----------------------------------------------------------------------------
|
|
158
|
+
//
|
|
159
|
+
// 1. CATALOG CARRY-OVER. The restored database contains `database_backup_runs`
|
|
160
|
+
// AS OF BACKUP TIME. Swap it in naively and this restore's own record, every
|
|
161
|
+
// backup taken since the archive was made, and the `pre_restore` safety dump
|
|
162
|
+
// taken ten minutes ago all cease to exist — including the row that says
|
|
163
|
+
// where the way back is stored. So the rows are EXPORTED BEFORE THE RENAME,
|
|
164
|
+
// WITH THIS RUN'S POST-SWAP AUDIT FIELDS ALREADY APPLIED (writing "restore
|
|
165
|
+
// completed" into a database nobody will ever open again is exactly the
|
|
166
|
+
// mistake this avoids) and re-inserted afterwards. See {@link exportCatalog}
|
|
167
|
+
// for the FK rules, which are the subtle part.
|
|
168
|
+
//
|
|
169
|
+
// 2. MIGRATION ROLL-FORWARD. `_prisma_migrations` also comes from the archive,
|
|
170
|
+
// so after the swap the restored database is at the ARCHIVE's migration. That
|
|
171
|
+
// is precisely what #284's `schema_compatibility` gate detects and what
|
|
172
|
+
// `prisma migrate deploy` fixes. IT IS DOCUMENTED AND NOT RUN AUTOMATICALLY:
|
|
173
|
+
// a migration is a schema change against data an operator has just decided to
|
|
174
|
+
// trust, and running it unattended inside a restore would make one
|
|
175
|
+
// irreversible act into two.
|
|
176
|
+
//
|
|
177
|
+
// -----------------------------------------------------------------------------
|
|
178
|
+
// IT ENDS IN `process.exit(0)`
|
|
179
|
+
// -----------------------------------------------------------------------------
|
|
180
|
+
//
|
|
181
|
+
// The connection pool is bound to a database that has just been renamed out from
|
|
182
|
+
// under it, and every pooled session was terminated to allow that rename. There
|
|
183
|
+
// is no API that rebuilds a Prisma pool in place, and a process holding stale
|
|
184
|
+
// sessions to a database that no longer exists under that name cannot be trusted
|
|
185
|
+
// to serve. Exiting hands the problem to the supervisor, which is the one
|
|
186
|
+
// component that can solve it.
|
|
187
|
+
//
|
|
188
|
+
// ⚠ THIS MAKES A RESTART POLICY A HARD REQUIREMENT. `restart: unless-stopped`
|
|
189
|
+
// (or a Kubernetes Deployment) — WITHOUT IT, AN OTHERWISE SUCCESSFUL RESTORE
|
|
190
|
+
// LEAVES THE APPLICATION DOWN. The swap also assumes a SINGLE API REPLICA: the
|
|
191
|
+
// maintenance flag is per-process, so any other replica keeps serving traffic,
|
|
192
|
+
// gets terminated mid-request, and then talks to a renamed database. Both are
|
|
193
|
+
// pre-flight warnings (#284's `replicas` gate, and the runbook's §7) and both
|
|
194
|
+
// are prerequisites an operator satisfies in advance, not things this code can
|
|
195
|
+
// enforce.
|
|
196
|
+
//
|
|
197
|
+
// The exit is behind {@link DatabaseRestoreSeam.exitProcess} so the suite can
|
|
198
|
+
// assert it happened without killing the Jest worker.
|
|
199
|
+
// =============================================================================
|
|
200
|
+
/**
|
|
201
|
+
* The states written to `database_backup_runs.restore_status`.
|
|
202
|
+
*
|
|
203
|
+
* `restoring` covers everything from the download to the last byte
|
|
204
|
+
* `pg_restore` writes — the phase that takes hours — because splitting it
|
|
205
|
+
* further would imply a progress signal this design does not have: a
|
|
206
|
+
* `pg_restore` in flight reports nothing a caller could poll, and inventing
|
|
207
|
+
* finer states that all mean "still restoring" would be dishonest precision.
|
|
208
|
+
*
|
|
209
|
+
* A plain string column rather than an enum, exactly as `schema.prisma` says:
|
|
210
|
+
* adding `rolled_back` below cost no migration, which is the whole argument.
|
|
211
|
+
*
|
|
212
|
+
* @stability experimental
|
|
213
|
+
*/
|
|
214
|
+
exports.RESTORE_STATUSES = [
|
|
215
|
+
'restoring',
|
|
216
|
+
'verifying',
|
|
217
|
+
'swapping',
|
|
218
|
+
'completed',
|
|
219
|
+
'failed',
|
|
220
|
+
/** A restore that was swapped in and then undone. See {@link DatabaseRestoreService.rollback}. */
|
|
221
|
+
'rolled_back',
|
|
222
|
+
];
|
|
223
|
+
/**
|
|
224
|
+
* Audit actions. `<area>:<verb>`, matching `maintenance:enable` and `users:update`.
|
|
225
|
+
*
|
|
226
|
+
* @stability experimental
|
|
227
|
+
*/
|
|
228
|
+
exports.RESTORE_AUDIT_START = 'db_restore:start';
|
|
229
|
+
/** @stability experimental */
|
|
230
|
+
exports.RESTORE_AUDIT_SWAP = 'db_restore:swap';
|
|
231
|
+
/** @stability experimental */
|
|
232
|
+
exports.RESTORE_AUDIT_COMPLETE = 'db_restore:complete';
|
|
233
|
+
/**
|
|
234
|
+
* Not one of the three the issue names, and it earns its place: a restore that
|
|
235
|
+
* FAILED is the one an operator greps `audit_events` for, and without this row
|
|
236
|
+
* the only trace of it in that table is a `db_restore:start` with nothing after
|
|
237
|
+
* it — indistinguishable from a restore that is still running.
|
|
238
|
+
*
|
|
239
|
+
* @stability experimental
|
|
240
|
+
*/
|
|
241
|
+
exports.RESTORE_AUDIT_FAILED = 'db_restore:failed';
|
|
242
|
+
/**
|
|
243
|
+
* Written into the database the rollback promoted, after the renames.
|
|
244
|
+
*
|
|
245
|
+
* @stability experimental
|
|
246
|
+
*/
|
|
247
|
+
exports.RESTORE_AUDIT_ROLLBACK = 'db_restore:rollback';
|
|
248
|
+
/**
|
|
249
|
+
* `target_type` on every row above; `target_id` is the backup run's id.
|
|
250
|
+
*
|
|
251
|
+
* @stability experimental
|
|
252
|
+
*/
|
|
253
|
+
exports.RESTORE_AUDIT_TARGET_TYPE = 'database_backup_run';
|
|
254
|
+
/**
|
|
255
|
+
* Parallel `pg_restore` jobs.
|
|
256
|
+
*
|
|
257
|
+
* THE SAME NUMBER THE GUIDED COMMAND BLOCK PRINTS, and deliberately imported
|
|
258
|
+
* rather than restated: an operator who pasted #284's block and an operator who
|
|
259
|
+
* pressed the button must not get restores with different performance
|
|
260
|
+
* characteristics, or the two paths become impossible to compare when one of
|
|
261
|
+
* them is slow.
|
|
262
|
+
*
|
|
263
|
+
* @stability experimental
|
|
264
|
+
*/
|
|
265
|
+
exports.RESTORE_JOBS = restore_preflight_service_1.GUIDED_RESTORE_JOBS;
|
|
266
|
+
/**
|
|
267
|
+
* How often the `pre_restore` safety backup's row is re-read while waiting for
|
|
268
|
+
* it.
|
|
269
|
+
*
|
|
270
|
+
* `startBackup` is DETACHED by contract (it returns as soon as the row is
|
|
271
|
+
* claimed, because a multi-gigabyte dump outlives every HTTP timeout in the
|
|
272
|
+
* stack), so the only way to know it finished is to watch the row it writes.
|
|
273
|
+
* Five seconds against a dump measured in minutes to hours is free.
|
|
274
|
+
*
|
|
275
|
+
* @stability experimental
|
|
276
|
+
*/
|
|
277
|
+
exports.PRE_RESTORE_POLL_INTERVAL_MS = 5_000;
|
|
278
|
+
/**
|
|
279
|
+
* Extra grace on top of `databaseBackup.runStaleMinutes` before giving up on
|
|
280
|
+
* the safety backup.
|
|
281
|
+
*
|
|
282
|
+
* The dump's own budget IS the stale window (see the runner), so a run that has
|
|
283
|
+
* outlived the window plus this margin is one the stale sweep is about to
|
|
284
|
+
* settle. Waiting longer would mean a restore that hangs forever because a
|
|
285
|
+
* container disappeared.
|
|
286
|
+
*
|
|
287
|
+
* @stability experimental
|
|
288
|
+
*/
|
|
289
|
+
exports.PRE_RESTORE_SETTLE_GRACE_MS = 60_000;
|
|
290
|
+
/**
|
|
291
|
+
* How long the rollback waits before exiting, so its HTTP response can be
|
|
292
|
+
* flushed first.
|
|
293
|
+
*
|
|
294
|
+
* ⚠ THE RESTORE'S OWN SWAP NEEDS NO SUCH DELAY and does not take one: it runs
|
|
295
|
+
* detached, and the request that started it was answered hours earlier. A
|
|
296
|
+
* rollback is different — it is fast enough that an operator is still holding
|
|
297
|
+
* the connection when the process decides to exit, and killing the process
|
|
298
|
+
* mid-response would show them a network error for an operation that succeeded.
|
|
299
|
+
*
|
|
300
|
+
* @stability experimental
|
|
301
|
+
*/
|
|
302
|
+
exports.ROLLBACK_EXIT_DELAY_MS = 500;
|
|
303
|
+
/**
|
|
304
|
+
* What a blocked caller is shown during the swap.
|
|
305
|
+
*
|
|
306
|
+
* ⚠ NO APPLICATION, PRODUCT OR REPOSITORY NAME. This is a template; every
|
|
307
|
+
* user-visible string in it describes what is happening, not whose it is.
|
|
308
|
+
*
|
|
309
|
+
* @stability experimental
|
|
310
|
+
*/
|
|
311
|
+
exports.RESTORE_MAINTENANCE_MESSAGE = 'A database restore is being completed. The service will return on its own within a ' +
|
|
312
|
+
'few minutes; no action is needed.';
|
|
313
|
+
// -----------------------------------------------------------------------------
|
|
314
|
+
// The queue type, and what one restore job carries (#353, epic #345)
|
|
315
|
+
// -----------------------------------------------------------------------------
|
|
316
|
+
/**
|
|
317
|
+
* The `Job.type` every restore row carries.
|
|
318
|
+
*
|
|
319
|
+
* DEFINED HERE, NOT IN THE HANDLER, for the reason `BACKUP_JOB_TYPE` is defined
|
|
320
|
+
* in the runner: the enqueueing side and the executing side must agree on this
|
|
321
|
+
* string exactly, and only one of the two can own the definition. This service
|
|
322
|
+
* enqueues, so it owns it and `handlers/db-restore-run.handler.ts` imports it.
|
|
323
|
+
*
|
|
324
|
+
* PERMANENT once rows of this type exist — `jobs` rows outlive the handler that
|
|
325
|
+
* produced them, so renaming this orphans every historical restore.
|
|
326
|
+
*
|
|
327
|
+
* @stability experimental
|
|
328
|
+
*/
|
|
329
|
+
exports.DB_RESTORE_RUN_TYPE = 'db.restore.run';
|
|
330
|
+
/**
|
|
331
|
+
* Narrows a job's opaque payload to {@link RestoreJobPayload}, or throws.
|
|
332
|
+
*
|
|
333
|
+
* THROWS RATHER THAN DEFAULTING, and this is the one place in this file where
|
|
334
|
+
* that is obviously right: every field is a database NAME or an identity, and a
|
|
335
|
+
* defaulted one would be a `CREATE DATABASE`/`ALTER DATABASE ... RENAME`
|
|
336
|
+
* against a name nobody chose. A malformed payload is a bug, and a `failed` job
|
|
337
|
+
* carrying "malformed payload" is the correct outcome — with `maxAttempts: 1`
|
|
338
|
+
* it is also a final one, so nothing retries a restore whose plan cannot be
|
|
339
|
+
* read.
|
|
340
|
+
*
|
|
341
|
+
* @stability experimental
|
|
342
|
+
*/
|
|
343
|
+
function parseRestoreJobPayload(payload) {
|
|
344
|
+
const value = (payload ?? {});
|
|
345
|
+
const str = (key) => {
|
|
346
|
+
const raw = value[key];
|
|
347
|
+
if (typeof raw !== 'string' || raw.length === 0) {
|
|
348
|
+
throw new Error(`The restore job's payload is missing "${String(key)}"; it cannot be run. This ` +
|
|
349
|
+
'job was queued by a version of startRestore that wrote a different shape, or ' +
|
|
350
|
+
'the payload was edited.');
|
|
351
|
+
}
|
|
352
|
+
return raw;
|
|
353
|
+
};
|
|
354
|
+
const mode = value.rollbackMode;
|
|
355
|
+
if (mode !== 'retain_database' && mode !== 'pre_restore_dump') {
|
|
356
|
+
throw new Error(`The restore job's payload carries an unknown rollbackMode (${String(mode)}); it ` +
|
|
357
|
+
'cannot be run.');
|
|
358
|
+
}
|
|
359
|
+
const actorUserId = value.actorUserId;
|
|
360
|
+
return {
|
|
361
|
+
runId: str('runId'),
|
|
362
|
+
actorUserId: typeof actorUserId === 'string' && actorUserId.length > 0 ? actorUserId : null,
|
|
363
|
+
scratchDatabase: str('scratchDatabase'),
|
|
364
|
+
oldDatabase: str('oldDatabase'),
|
|
365
|
+
rollbackMode: mode,
|
|
366
|
+
startedAt: str('startedAt'),
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* DI token for {@link DatabaseRestoreSeam}.
|
|
371
|
+
*
|
|
372
|
+
* OPTIONAL AND LEFT UNBOUND in `DbBackupModule`, the same discipline
|
|
373
|
+
* `DB_BACKUP_ENGINE`, `JOB_CLOCK` and `RESTORE_PREFLIGHT_SEAM` follow. A stubbed
|
|
374
|
+
* seam in production would be a restore that reports success having renamed
|
|
375
|
+
* nothing — or, worse, an `exitProcess` that does not exit, leaving a process
|
|
376
|
+
* serving from a pool pointed at a database that no longer exists.
|
|
377
|
+
*
|
|
378
|
+
* @stability experimental
|
|
379
|
+
*/
|
|
380
|
+
exports.DATABASE_RESTORE_SEAM = 'DATABASE_RESTORE_SEAM';
|
|
381
|
+
/**
|
|
382
|
+
* The real seam. Every member is a thin binding to the utility that owns it.
|
|
383
|
+
*
|
|
384
|
+
* @stability experimental
|
|
385
|
+
*/
|
|
386
|
+
exports.defaultDatabaseRestoreSeam = {
|
|
387
|
+
resolveConnection: () => (0, admin_connection_util_1.resolveAdminConnection)(),
|
|
388
|
+
// No `timeoutMs`: see the interface.
|
|
389
|
+
withAdminConnection: (config, fn) => (0, admin_connection_util_1.withAdminConnection)(config, fn),
|
|
390
|
+
tempFilePath: () => (0, index_2.jobTempPath)('.dump'),
|
|
391
|
+
writeArchiveToFile: async (source, path) => {
|
|
392
|
+
const hash = (0, node_crypto_1.createHash)('sha256');
|
|
393
|
+
let bytes = 0n;
|
|
394
|
+
// The same metering `Transform` the backup engine uses, for the same
|
|
395
|
+
// reason: the checksum and the byte count come out of the single pass the
|
|
396
|
+
// write is already making. Buffering the archive to hash it first would put
|
|
397
|
+
// a whole production database in this process's heap.
|
|
398
|
+
const meter = new node_stream_1.Transform({
|
|
399
|
+
transform(chunk, _encoding, callback) {
|
|
400
|
+
hash.update(chunk);
|
|
401
|
+
bytes += BigInt(chunk.length);
|
|
402
|
+
callback(null, chunk);
|
|
403
|
+
},
|
|
404
|
+
});
|
|
405
|
+
// `pipeline` rather than three `.pipe()` calls: it propagates errors and
|
|
406
|
+
// destroys every stream in the chain, so a storage read that dies half way
|
|
407
|
+
// cannot leave a write stream holding a file handle open.
|
|
408
|
+
await (0, promises_2.pipeline)(source, meter, (0, node_fs_1.createWriteStream)(path));
|
|
409
|
+
return { bytes, sha256: hash.digest('hex') };
|
|
410
|
+
},
|
|
411
|
+
readTocEntryCount: (file) => (0, pg_restore_util_1.readTocEntryCount)({ source: { file } }),
|
|
412
|
+
runPgRestore: async ({ connection, file, jobs }) => {
|
|
413
|
+
const child = (0, pg_restore_util_1.spawnPgRestore)({ connection, file, jobs });
|
|
414
|
+
// Drained, never read. `pg_restore` writing to a database says little on
|
|
415
|
+
// stdout, but a child whose stdout nobody consumes blocks forever once the
|
|
416
|
+
// pipe buffer fills, and "the restore hung at 64 KiB of notices" is not a
|
|
417
|
+
// failure anyone would diagnose quickly.
|
|
418
|
+
child.stdout.resume();
|
|
419
|
+
// ⚠ `done` IS THE AUTHORITY, and with `--exit-on-error` it means what it
|
|
420
|
+
// says: the first failed statement stops the process and rejects this.
|
|
421
|
+
await child.done;
|
|
422
|
+
},
|
|
423
|
+
removeFile: async (path) => {
|
|
424
|
+
await (0, promises_1.rm)(path, { force: true });
|
|
425
|
+
},
|
|
426
|
+
sleep: (ms) => new Promise((resolve) => {
|
|
427
|
+
const timer = setTimeout(resolve, ms);
|
|
428
|
+
// Unreferenced so a pending wait cannot by itself hold a shutting-down
|
|
429
|
+
// process (or a Jest worker) open.
|
|
430
|
+
timer.unref?.();
|
|
431
|
+
}),
|
|
432
|
+
now: () => new Date(),
|
|
433
|
+
exitProcess: (code, delayMs = 0) => {
|
|
434
|
+
if (delayMs <= 0) {
|
|
435
|
+
process.exit(code);
|
|
436
|
+
}
|
|
437
|
+
const timer = setTimeout(() => process.exit(code), delayMs);
|
|
438
|
+
timer.unref?.();
|
|
439
|
+
},
|
|
440
|
+
};
|
|
441
|
+
/**
|
|
442
|
+
* Lifts row-level security for ONE transaction on an admin session, as the
|
|
443
|
+
* first statement after `BEGIN` (never a session-level `SET`: CLAUDE.md, the
|
|
444
|
+
* RLS invariant), so an org-owned carry table is read and written in full.
|
|
445
|
+
*/
|
|
446
|
+
const CARRY_RLS_BYPASS_SQL = "SELECT set_config('app.rls_bypass', 'on', true)";
|
|
447
|
+
/**
|
|
448
|
+
* The settled `jobs` row, upserted into the promoted database.
|
|
449
|
+
*
|
|
450
|
+
* ⚠ `ON CONFLICT (id) DO UPDATE`, NOT `DO NOTHING`, and it is not theoretical
|
|
451
|
+
* which case needs it. A `pre_restore` safety dump is taken DURING the restore,
|
|
452
|
+
* so that archive contains this very job row as `running` — and rolling that
|
|
453
|
+
* dump back replays it. `DO NOTHING` would keep the stale `running` copy, with
|
|
454
|
+
* its lease, and the reaper would fail it after the restart. The upsert
|
|
455
|
+
* overwrites it with the truth.
|
|
456
|
+
*
|
|
457
|
+
* ⚠ `claimed_by_node_id` IS WRITTEN NULL AND IS NOT A PARAMETER. This type is
|
|
458
|
+
* server-only permanently (see the handler's header), so there is never a node
|
|
459
|
+
* to attribute — and `jobs.claimed_by_node_id` references `worker_nodes`, whose
|
|
460
|
+
* copy in the promoted database is the ARCHIVE's. Binding a node id the archive
|
|
461
|
+
* has never heard of would raise a foreign-key violation and abort the whole
|
|
462
|
+
* carry, losing the backup catalog to preserve an attribution that does not
|
|
463
|
+
* exist. `lease_expires_at` and `scheduled_for` are NULL for the reason
|
|
464
|
+
* `completeSucceeded` clears them: a terminal row must not appear to be held by
|
|
465
|
+
* anybody.
|
|
466
|
+
*
|
|
467
|
+
* ⚠ `claim_token` IS WRITTEN NULL ON BOTH PATHS, and the CONFLICT path is the
|
|
468
|
+
* one that needed saying (#361). The column is non-null exactly while a row is
|
|
469
|
+
* held under a claim, and the promoted database's `jobs` is the ARCHIVE's — so
|
|
470
|
+
* this id usually already exists there as it stood at dump time: `running`,
|
|
471
|
+
* with a live token. Settling that row while leaving the token would leave an
|
|
472
|
+
* ownership assertion on a terminal row, which is the state the invariant rules
|
|
473
|
+
* out. It is an INVARIANT REPAIR rather than a live hazard — `heldLeaseWhere`
|
|
474
|
+
* also demands `status = 'running'` and an unexpired lease, both of which this
|
|
475
|
+
* statement clears, so no renewal could match such a row; see
|
|
476
|
+
* `job-lease.service.ts` for that argument. The invariant is nonetheless what
|
|
477
|
+
* the next reader will reason from, and a column that is only USUALLY
|
|
478
|
+
* non-null-iff-claimed is worth less than one that always is. On the INSERT
|
|
479
|
+
* path the NULL was already correct by omission; it is spelled out beside
|
|
480
|
+
* `scheduled_for` and `claimed_by_node_id` so the statement says what it means.
|
|
481
|
+
*/
|
|
482
|
+
const CARRY_JOB_SQL = `
|
|
483
|
+
INSERT INTO jobs (
|
|
484
|
+
id, type, subject_type, subject_id, dedup_key, status, reason, priority,
|
|
485
|
+
payload, attempts, last_error, created_at, started_at, finished_at,
|
|
486
|
+
scheduled_for, rate_limited_at, rate_limit_hits, claimed_by_node_id,
|
|
487
|
+
claim_token, lease_expires_at, executor,
|
|
488
|
+
provider_key, model_version, trace_context, org_id
|
|
489
|
+
) VALUES (
|
|
490
|
+
$1::uuid, $2, $3, $4, $5, 'succeeded'::"JobStatus", $6::text, $7::int,
|
|
491
|
+
$8::jsonb, $9::int, $10, $11::timestamptz, $12::timestamptz, $13::timestamptz,
|
|
492
|
+
NULL, NULL, 0, NULL,
|
|
493
|
+
NULL, NULL, $14,
|
|
494
|
+
$15, $16, $17, (SELECT id FROM organizations WHERE id = $18::uuid)
|
|
495
|
+
)
|
|
496
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
497
|
+
type = EXCLUDED.type,
|
|
498
|
+
subject_type = EXCLUDED.subject_type,
|
|
499
|
+
subject_id = EXCLUDED.subject_id,
|
|
500
|
+
dedup_key = EXCLUDED.dedup_key,
|
|
501
|
+
status = EXCLUDED.status,
|
|
502
|
+
reason = EXCLUDED.reason,
|
|
503
|
+
priority = EXCLUDED.priority,
|
|
504
|
+
payload = EXCLUDED.payload,
|
|
505
|
+
attempts = EXCLUDED.attempts,
|
|
506
|
+
last_error = EXCLUDED.last_error,
|
|
507
|
+
created_at = EXCLUDED.created_at,
|
|
508
|
+
started_at = EXCLUDED.started_at,
|
|
509
|
+
finished_at = EXCLUDED.finished_at,
|
|
510
|
+
scheduled_for = NULL,
|
|
511
|
+
rate_limited_at = NULL,
|
|
512
|
+
claimed_by_node_id = NULL,
|
|
513
|
+
claim_token = NULL,
|
|
514
|
+
lease_expires_at = NULL,
|
|
515
|
+
executor = EXCLUDED.executor,
|
|
516
|
+
provider_key = EXCLUDED.provider_key,
|
|
517
|
+
model_version = EXCLUDED.model_version,
|
|
518
|
+
trace_context = EXCLUDED.trace_context,
|
|
519
|
+
org_id = EXCLUDED.org_id
|
|
520
|
+
`.trim();
|
|
521
|
+
/**
|
|
522
|
+
* Pass one: every column EXCEPT the self-FK.
|
|
523
|
+
*
|
|
524
|
+
* ⚠ THE TWO USER FKs GO THROUGH A SUBSELECT, and that is the load-bearing
|
|
525
|
+
* detail. `created_by_id` and `restored_by_id` reference `users(id)`, and the
|
|
526
|
+
* promoted database's `users` table is the ARCHIVE's — so an administrator who
|
|
527
|
+
* was created after the backup was taken does not exist in it. A plain value
|
|
528
|
+
* would raise a foreign-key violation and abort the WHOLE carry-over, losing
|
|
529
|
+
* every backup record to preserve one attribution.
|
|
530
|
+
* `(SELECT id FROM users WHERE id = $n)` yields NULL instead, which is exactly what the column already means
|
|
531
|
+
* for a scheduled run, and which `onDelete: SetNull` already declares as the
|
|
532
|
+
* behaviour when an actor goes away.
|
|
533
|
+
*
|
|
534
|
+
* `ON CONFLICT (id) DO UPDATE` rather than `DO NOTHING`: the archive contains
|
|
535
|
+
* these rows as of backup time, so most ids ALREADY EXIST in the promoted
|
|
536
|
+
* database with stale contents. `DO NOTHING` would silently keep the stale copy
|
|
537
|
+
* — including a `restore_status` from an older restore — and the carry-over
|
|
538
|
+
* would appear to work while changing nothing.
|
|
539
|
+
*/
|
|
540
|
+
const CARRY_RUN_SQL = `
|
|
541
|
+
INSERT INTO database_backup_runs (
|
|
542
|
+
id, status, trigger, started_at, finished_at, last_heartbeat_at,
|
|
543
|
+
bytes_written, size_bytes, storage_provider, storage_key, bucket, format,
|
|
544
|
+
checksum_sha256, db_version, app_version, migration_name, verified_at, last_error,
|
|
545
|
+
created_by_id, restore_status, restore_error, restored_at, restored_by_id,
|
|
546
|
+
restore_scratch_db, restore_old_db, swapped_at, created_at, updated_at,
|
|
547
|
+
job_id, pg_dump_version
|
|
548
|
+
) VALUES (
|
|
549
|
+
$1::uuid, $2::"DatabaseBackupStatus", $3::"DatabaseBackupTrigger",
|
|
550
|
+
$4::timestamptz, $5::timestamptz, $6::timestamptz,
|
|
551
|
+
$7::bigint, $8::bigint, $9, $10, $11, $12,
|
|
552
|
+
$13, $14, $15, $16, $17::timestamptz, $18,
|
|
553
|
+
(SELECT id FROM users WHERE id = $19::uuid),
|
|
554
|
+
$20, $21, $22::timestamptz,
|
|
555
|
+
(SELECT id FROM users WHERE id = $23::uuid),
|
|
556
|
+
$24, $25, $26::timestamptz, $27::timestamptz, $28::timestamptz,
|
|
557
|
+
(SELECT id FROM jobs WHERE id = $29::uuid), $30
|
|
558
|
+
)
|
|
559
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
560
|
+
status = EXCLUDED.status,
|
|
561
|
+
trigger = EXCLUDED.trigger,
|
|
562
|
+
started_at = EXCLUDED.started_at,
|
|
563
|
+
finished_at = EXCLUDED.finished_at,
|
|
564
|
+
last_heartbeat_at = EXCLUDED.last_heartbeat_at,
|
|
565
|
+
bytes_written = EXCLUDED.bytes_written,
|
|
566
|
+
size_bytes = EXCLUDED.size_bytes,
|
|
567
|
+
storage_provider = EXCLUDED.storage_provider,
|
|
568
|
+
storage_key = EXCLUDED.storage_key,
|
|
569
|
+
bucket = EXCLUDED.bucket,
|
|
570
|
+
format = EXCLUDED.format,
|
|
571
|
+
checksum_sha256 = EXCLUDED.checksum_sha256,
|
|
572
|
+
db_version = EXCLUDED.db_version,
|
|
573
|
+
app_version = EXCLUDED.app_version,
|
|
574
|
+
migration_name = EXCLUDED.migration_name,
|
|
575
|
+
verified_at = EXCLUDED.verified_at,
|
|
576
|
+
last_error = EXCLUDED.last_error,
|
|
577
|
+
created_by_id = EXCLUDED.created_by_id,
|
|
578
|
+
restore_status = EXCLUDED.restore_status,
|
|
579
|
+
restore_error = EXCLUDED.restore_error,
|
|
580
|
+
restored_at = EXCLUDED.restored_at,
|
|
581
|
+
restored_by_id = EXCLUDED.restored_by_id,
|
|
582
|
+
restore_scratch_db = EXCLUDED.restore_scratch_db,
|
|
583
|
+
restore_old_db = EXCLUDED.restore_old_db,
|
|
584
|
+
swapped_at = EXCLUDED.swapped_at,
|
|
585
|
+
created_at = EXCLUDED.created_at,
|
|
586
|
+
updated_at = EXCLUDED.updated_at,
|
|
587
|
+
job_id = EXCLUDED.job_id,
|
|
588
|
+
pg_dump_version = EXCLUDED.pg_dump_version
|
|
589
|
+
`.trim();
|
|
590
|
+
/**
|
|
591
|
+
* Pass two: the self-FK, and it MUST be a second pass.
|
|
592
|
+
*
|
|
593
|
+
* `pre_restore_backup_id` points at another row in this same table — the safety
|
|
594
|
+
* dump taken minutes before the swap. Set during pass one it would reference a
|
|
595
|
+
* row that may not have been inserted yet (the export is ordered by creation
|
|
596
|
+
* time, but nothing forces the referent to sort first, and a future ordering
|
|
597
|
+
* change must not be able to break the carry-over silently). Applied afterwards,
|
|
598
|
+
* every referent is already present.
|
|
599
|
+
*
|
|
600
|
+
* The subselect is here for the same reason it is in pass one: a referent that
|
|
601
|
+
* genuinely is not present yields NULL rather than aborting the pass.
|
|
602
|
+
*/
|
|
603
|
+
const CARRY_SELF_LINK_SQL = `
|
|
604
|
+
UPDATE database_backup_runs
|
|
605
|
+
SET pre_restore_backup_id = (SELECT id FROM database_backup_runs WHERE id = $2::uuid)
|
|
606
|
+
WHERE id = $1::uuid
|
|
607
|
+
`.trim();
|
|
608
|
+
/**
|
|
609
|
+
* The completion audit row, written into the promoted database.
|
|
610
|
+
*
|
|
611
|
+
* ⚠ `id` IS SUPPLIED, exactly as {@link CARRY_RUN_SQL} supplies it — see
|
|
612
|
+
* {@link CarriedAudit} for where the value comes from and why it is a new one.
|
|
613
|
+
* Omitting it relied on a server-side default that
|
|
614
|
+
* `20260831014110_drop_stale_uuid_defaults` removed, which made this INSERT
|
|
615
|
+
* fail on every real restore; {@link DatabaseRestoreService.reinsertCatalog}
|
|
616
|
+
* never throws, so the only trace was a `CRITICAL` log line and the record of
|
|
617
|
+
* the restore was missing from the one database anybody would look in (#337).
|
|
618
|
+
*
|
|
619
|
+
* `org_id` IS NULL, SPELLED OUT (#740): a restore is a deployment event that
|
|
620
|
+
* rolls back every organization, never one organization's.
|
|
621
|
+
*
|
|
622
|
+
* The actor goes through the same subselect as {@link CARRY_RUN_SQL}'s two user
|
|
623
|
+
* FKs, and for the same reason: the promoted database's `users` is the
|
|
624
|
+
* ARCHIVE's, so an administrator created after the backup was taken is not in
|
|
625
|
+
* it, and a plain value would raise a foreign-key violation.
|
|
626
|
+
*/
|
|
627
|
+
const CARRY_AUDIT_SQL = `
|
|
628
|
+
INSERT INTO audit_events (id, actor_user_id, action, target_type, target_id, meta, org_id)
|
|
629
|
+
VALUES ($1::uuid, (SELECT id FROM users WHERE id = $2::uuid), $3, $4, $5, $6::jsonb, NULL)
|
|
630
|
+
`.trim();
|
|
631
|
+
/** Tables in a non-system schema — the "did anything actually arrive" check. */
|
|
632
|
+
const COUNT_USER_TABLES_SQL = `
|
|
633
|
+
SELECT count(*)::text AS count
|
|
634
|
+
FROM pg_class c
|
|
635
|
+
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
636
|
+
WHERE c.relkind IN ('r', 'p')
|
|
637
|
+
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
|
|
638
|
+
AND n.nspname NOT LIKE 'pg_toast%'
|
|
639
|
+
`.trim();
|
|
640
|
+
/** Rows in the migration ledger. `to_regclass` is NULL when the table is absent. */
|
|
641
|
+
const COUNT_MIGRATIONS_SQL = `
|
|
642
|
+
SELECT CASE WHEN to_regclass('_prisma_migrations') IS NULL THEN NULL
|
|
643
|
+
ELSE (SELECT count(*)::text FROM _prisma_migrations) END AS count
|
|
644
|
+
`.trim();
|
|
645
|
+
/**
|
|
646
|
+
* The settled form of the restore's own job row, ready for {@link CARRY_JOB_SQL}.
|
|
647
|
+
*
|
|
648
|
+
* A pure function of the row and the swap instant, so the whole terminal write
|
|
649
|
+
* is decided BEFORE the renames begin and {@link DatabaseRestoreService
|
|
650
|
+
* .reinsertCatalog} only binds what it was given — the same rule every other
|
|
651
|
+
* member of {@link CarriedCatalog} follows.
|
|
652
|
+
*
|
|
653
|
+
* `payload` is re-serialised to a string because `pg` binds `jsonb` from text;
|
|
654
|
+
* a `null` payload stays `null` rather than becoming the JSON literal `"null"`.
|
|
655
|
+
*/
|
|
656
|
+
function carryJob(job, finishedAt) {
|
|
657
|
+
if (job === null)
|
|
658
|
+
return null;
|
|
659
|
+
return {
|
|
660
|
+
id: job.id,
|
|
661
|
+
type: job.type,
|
|
662
|
+
subjectType: job.subjectType,
|
|
663
|
+
subjectId: job.subjectId,
|
|
664
|
+
dedupKey: job.dedupKey,
|
|
665
|
+
reason: job.reason,
|
|
666
|
+
priority: job.priority,
|
|
667
|
+
payload: job.payload == null ? null : JSON.stringify(job.payload),
|
|
668
|
+
attempts: job.attempts,
|
|
669
|
+
// PRESERVED, not cleared: on a job that logged something on the way past,
|
|
670
|
+
// that message is the only surviving explanation of it. Same reasoning
|
|
671
|
+
// `JobTerminalService.completeSucceeded` gives for leaving it alone.
|
|
672
|
+
lastError: job.lastError,
|
|
673
|
+
createdAt: job.createdAt.toISOString(),
|
|
674
|
+
startedAt: iso(job.startedAt),
|
|
675
|
+
finishedAt: finishedAt.toISOString(),
|
|
676
|
+
executor: job.executor,
|
|
677
|
+
providerKey: job.providerKey,
|
|
678
|
+
modelVersion: job.modelVersion,
|
|
679
|
+
traceContext: job.traceContext ?? null,
|
|
680
|
+
orgId: job.orgId ?? null,
|
|
681
|
+
};
|
|
682
|
+
}
|
|
683
|
+
/** Anything thrown, as an `Error`. JavaScript lets you throw a string. */
|
|
684
|
+
function toError(value) {
|
|
685
|
+
return value instanceof Error ? value : new Error(String(value));
|
|
686
|
+
}
|
|
687
|
+
/** A `Date | null` as an ISO string, which is what the raw inserts bind. */
|
|
688
|
+
function iso(value) {
|
|
689
|
+
return value == null ? null : value.toISOString();
|
|
690
|
+
}
|
|
691
|
+
/** A `count`-shaped result row, as a number. `null`/unparseable becomes `-1`. */
|
|
692
|
+
function readCount(rows) {
|
|
693
|
+
const value = rows[0]?.count;
|
|
694
|
+
if (typeof value !== 'string')
|
|
695
|
+
return -1;
|
|
696
|
+
const parsed = Number.parseInt(value, 10);
|
|
697
|
+
return Number.isFinite(parsed) ? parsed : -1;
|
|
698
|
+
}
|
|
699
|
+
/**
|
|
700
|
+
* The restore: replays an archive into a scratch database, verifies it, swaps it in by renaming, carries the backup catalog and the registered `RestoreCarryOver` tables across, and exits the process. Also the rollback. Server-only, permanently.
|
|
701
|
+
*
|
|
702
|
+
* @stability experimental
|
|
703
|
+
*/
|
|
704
|
+
let DatabaseRestoreService = DatabaseRestoreService_1 = class DatabaseRestoreService {
|
|
705
|
+
prisma;
|
|
706
|
+
settings;
|
|
707
|
+
preflight;
|
|
708
|
+
runner;
|
|
709
|
+
maintenance;
|
|
710
|
+
notifications;
|
|
711
|
+
config;
|
|
712
|
+
jobs;
|
|
713
|
+
deployment;
|
|
714
|
+
events;
|
|
715
|
+
logger = new common_1.Logger(DatabaseRestoreService_1.name);
|
|
716
|
+
seam;
|
|
717
|
+
/**
|
|
718
|
+
* The restore this process is executing, or `null`.
|
|
719
|
+
*
|
|
720
|
+
* PROCESS-LOCAL AND HONESTLY SO — see {@link StartRestoreResult}'s
|
|
721
|
+
* `already_running` variant. There is no database constraint that could
|
|
722
|
+
* express "one restore at a time", because a restore's state lives on the row
|
|
723
|
+
* of the BACKUP it replays and two restores are two different rows. The real
|
|
724
|
+
* exclusion is the single-replica prerequisite; this is the guard for the case
|
|
725
|
+
* that prerequisite is met and an operator double-clicks.
|
|
726
|
+
*/
|
|
727
|
+
activeRestoreRunId = null;
|
|
728
|
+
constructor(prisma, settings, storage,
|
|
729
|
+
// The pre-flight is a REQUIRED collaborator, not a courtesy. See
|
|
730
|
+
// `startRestore`: a restore that could be started without the gates having
|
|
731
|
+
// run is a restore whose gates are a UI decoration.
|
|
732
|
+
preflight,
|
|
733
|
+
// The one writer of `database_backup_runs`' active slot. The `pre_restore`
|
|
734
|
+
// safety dump goes through it rather than through a second claim path, or
|
|
735
|
+
// the single-active-run index stops being a guarantee.
|
|
736
|
+
runner, maintenance, notifications, config,
|
|
737
|
+
// #353 (epic #345). A restore is queued, not detached: `startRestore`
|
|
738
|
+
// writes a `db.restore.run` row and returns, and
|
|
739
|
+
// `handlers/db-restore-run.handler.ts` executes it on a worker slot.
|
|
740
|
+
jobs,
|
|
741
|
+
// #685. The deployment-mode gate: in `saas` every restore entry point
|
|
742
|
+
// refuses before it does anything at all. See `startRestore`.
|
|
743
|
+
deployment, seam, target, events) {
|
|
744
|
+
this.prisma = prisma;
|
|
745
|
+
this.settings = settings;
|
|
746
|
+
this.preflight = preflight;
|
|
747
|
+
this.runner = runner;
|
|
748
|
+
this.maintenance = maintenance;
|
|
749
|
+
this.notifications = notifications;
|
|
750
|
+
this.config = config;
|
|
751
|
+
this.jobs = jobs;
|
|
752
|
+
this.deployment = deployment;
|
|
753
|
+
this.events = events;
|
|
754
|
+
this.seam = seam ?? exports.defaultDatabaseRestoreSeam;
|
|
755
|
+
this.target = target ?? new backup_target_1.StorageProviderBackupTarget(storage);
|
|
756
|
+
}
|
|
757
|
+
/** Where the archive is read from. */
|
|
758
|
+
target;
|
|
759
|
+
// =========================================================================
|
|
760
|
+
// Starting a restore
|
|
761
|
+
// =========================================================================
|
|
762
|
+
/**
|
|
763
|
+
* Runs the pre-flight and, if it comes back `ok`, starts the restore in the
|
|
764
|
+
* background.
|
|
765
|
+
*
|
|
766
|
+
* ⚠ THE PRE-FLIGHT RUNS HERE, not only in #286's endpoint, and the duplication
|
|
767
|
+
* is deliberate. The gates are the difference between "a restore that fails"
|
|
768
|
+
* and "a restore that destroys a database", and a service that trusted its
|
|
769
|
+
* caller to have run them would be one refactor — or one new caller, such as
|
|
770
|
+
* this file's own rollback path — away from a restore with no gates at all.
|
|
771
|
+
* The cost is a handful of catalog reads.
|
|
772
|
+
*
|
|
773
|
+
* @param run - the archive to replay. Looked up, permission-checked and
|
|
774
|
+
* `completed`-filtered by #286, exactly as pre-flight's own contract says.
|
|
775
|
+
*/
|
|
776
|
+
async startRestore(run, options = {}) {
|
|
777
|
+
// ⚠ FIRST, BEFORE EVERY GATE (#685). In `DEPLOYMENT_MODE=saas` in-app
|
|
778
|
+
// restore does not exist: no queue read, no pre-flight (which opens a
|
|
779
|
+
// cluster admin connection), no download, no pre-restore dump, no job. The
|
|
780
|
+
// refusal is a thrown `DatabaseRestoreDisabledError` rather than a result
|
|
781
|
+
// variant because it is not a verdict about THIS run — nothing about the
|
|
782
|
+
// archive could change it — and because the rollback delegation below
|
|
783
|
+
// re-enters here and must refuse the same way.
|
|
784
|
+
this.deployment.assertInAppRestoreEnabled();
|
|
785
|
+
if (this.activeRestoreRunId !== null) {
|
|
786
|
+
return { outcome: 'already_running', runId: this.activeRestoreRunId };
|
|
787
|
+
}
|
|
788
|
+
// ⚠ TWO GUARDS, AND THE DEDUP KEY REPLACES NEITHER OF THEM (#353).
|
|
789
|
+
//
|
|
790
|
+
// The natural reading of "the restore is a job now" is that the active-dedup
|
|
791
|
+
// unique index supersedes the process-local flag above. IT DOES NOT, and the
|
|
792
|
+
// difference matters: a `db.restore.run` job's dedup key folds in its
|
|
793
|
+
// SUBJECT, so the index guarantees at most one active restore OF ONE BACKUP
|
|
794
|
+
// RUN. Two restores of two DIFFERENT archives have two different keys and
|
|
795
|
+
// the index permits both — which is precisely the concurrent-restore
|
|
796
|
+
// catastrophe this service must not have.
|
|
797
|
+
//
|
|
798
|
+
// So the three guards divide the work, and each closes something the others
|
|
799
|
+
// cannot:
|
|
800
|
+
//
|
|
801
|
+
// 1. `activeRestoreRunId` (above) — closes the DOUBLE-CLICK race inside
|
|
802
|
+
// one process. It is set before the pre-flight's several round trips
|
|
803
|
+
// and read synchronously, so two overlapping requests cannot both reach
|
|
804
|
+
// the enqueue. Nothing else in this list can do that: every other guard
|
|
805
|
+
// is a read followed by a write.
|
|
806
|
+
// 2. THE QUERY BELOW — closes the case the flag structurally cannot: a
|
|
807
|
+
// restore queued by a PREVIOUS PROCESS (this one restarted, or a second
|
|
808
|
+
// replica queued it), which the flag knows nothing about. It is
|
|
809
|
+
// type-wide, not subject-wide, so it is the only guard that refuses a
|
|
810
|
+
// second restore of a DIFFERENT archive.
|
|
811
|
+
// 3. THE ACTIVE-DEDUP INDEX — closes the same-archive race between two
|
|
812
|
+
// replicas, atomically, which neither of the above can.
|
|
813
|
+
//
|
|
814
|
+
// The single-replica prerequisite still stands and is still what the runbook
|
|
815
|
+
// requires; these three narrow the window inside it rather than replacing
|
|
816
|
+
// it.
|
|
817
|
+
const queued = await this.prisma.job.findFirst({
|
|
818
|
+
where: { type: exports.DB_RESTORE_RUN_TYPE, status: { in: ['pending', 'running'] } },
|
|
819
|
+
select: { id: true, subjectId: true },
|
|
820
|
+
});
|
|
821
|
+
if (queued) {
|
|
822
|
+
return { outcome: 'already_running', runId: queued.subjectId ?? queued.id };
|
|
823
|
+
}
|
|
824
|
+
const now = options.now ?? this.seam.now();
|
|
825
|
+
const actorUserId = options.actorUserId ?? null;
|
|
826
|
+
// ⚠ CLAIMED BEFORE THE PRE-FLIGHT, NOT AFTER IT. The pre-flight is several
|
|
827
|
+
// network round trips, and claiming afterwards would leave a window in which
|
|
828
|
+
// two clicks both pass the gates and both start a restore. Released in the
|
|
829
|
+
// `finally` on every path that does NOT hand the slot to the detached body.
|
|
830
|
+
this.activeRestoreRunId = run.id;
|
|
831
|
+
let claimHandedOver = false;
|
|
832
|
+
try {
|
|
833
|
+
const preflight = await this.preflight.check(run, {
|
|
834
|
+
overrideSchemaMismatch: options.overrideSchemaMismatch,
|
|
835
|
+
now,
|
|
836
|
+
});
|
|
837
|
+
if (preflight.outcome !== 'ok') {
|
|
838
|
+
// NOTHING HAS BEEN CREATED AND NOTHING HAS BEEN WRITTEN, including on
|
|
839
|
+
// the run's row. A refused restore is not an attempted restore, and
|
|
840
|
+
// recording one would put a `failed` restore on a backup nobody touched.
|
|
841
|
+
return { outcome: 'refused', preflight };
|
|
842
|
+
}
|
|
843
|
+
const connection = this.seam.resolveConnection();
|
|
844
|
+
// THE PRE-FLIGHT'S NAMES, not freshly derived ones. Both are built from
|
|
845
|
+
// the same builders and the same `now`, so they would agree today — and
|
|
846
|
+
// would stop agreeing the first time a caller passed a different clock, at
|
|
847
|
+
// which point the row, the API response and the DDL would name three
|
|
848
|
+
// databases.
|
|
849
|
+
const { scratchDatabase, oldDatabase } = preflight;
|
|
850
|
+
// ⚠ QUEUED, NOT DETACHED (#353, epic #345). This used to be
|
|
851
|
+
// `void this.executeRestore(...)` with a terminal `.catch()` — the work is
|
|
852
|
+
// hours long and every proxy between a browser and this process has a
|
|
853
|
+
// response timeout measured in seconds, so it could not be awaited. A
|
|
854
|
+
// queue job answers the same problem and answers three more with it: the
|
|
855
|
+
// restore now has a row in `GET /api/admin/jobs` with a duration and a
|
|
856
|
+
// `lastError`, it holds a worker slot with a ceiling
|
|
857
|
+
// (`RESTORE_JOB_MAX_RUNTIME_MS`) rather than an unbounded promise nothing
|
|
858
|
+
// owns, and its `maxAttempts: 1` makes "never automatically retried" a
|
|
859
|
+
// property the queue ENFORCES rather than a property of not being in the
|
|
860
|
+
// queue.
|
|
861
|
+
//
|
|
862
|
+
// THE PAYLOAD CARRIES THE PRE-FLIGHT'S DECISIONS, not seeds for
|
|
863
|
+
// recomputing them — see `RestoreJobPayload` for why deriving the names
|
|
864
|
+
// again from a later clock would make the row, the API response and the
|
|
865
|
+
// DDL name three databases.
|
|
866
|
+
const job = await this.jobs.enqueue({
|
|
867
|
+
type: exports.DB_RESTORE_RUN_TYPE,
|
|
868
|
+
// `rerun` is the closest of the three reasons: a human asked for this
|
|
869
|
+
// archive to be replayed. It is not a response to an upload and it is
|
|
870
|
+
// not scheduled maintenance.
|
|
871
|
+
reason: 'rerun',
|
|
872
|
+
// The SUBJECT is the backup being replayed, which is what makes the
|
|
873
|
+
// dedup key refuse a second restore of the same archive. See the
|
|
874
|
+
// three-guard note above for what it deliberately does NOT refuse.
|
|
875
|
+
subjectType: exports.RESTORE_AUDIT_TARGET_TYPE,
|
|
876
|
+
subjectId: run.id,
|
|
877
|
+
// INLINE WITH `satisfies` rather than a typed local, the same shape
|
|
878
|
+
// `queueBackup` uses: `EnqueueJobInput.payload` is
|
|
879
|
+
// `Prisma.InputJsonValue`, which an object LITERAL satisfies and a
|
|
880
|
+
// named interface does not (it has no index signature). The `satisfies`
|
|
881
|
+
// is what keeps this checked against `RestoreJobPayload` anyway, which
|
|
882
|
+
// matters because `parseRestoreJobPayload` is the only other place the
|
|
883
|
+
// shape is stated.
|
|
884
|
+
payload: {
|
|
885
|
+
runId: run.id,
|
|
886
|
+
actorUserId,
|
|
887
|
+
scratchDatabase,
|
|
888
|
+
oldDatabase,
|
|
889
|
+
rollbackMode: preflight.rollback.effective,
|
|
890
|
+
startedAt: now.toISOString(),
|
|
891
|
+
},
|
|
892
|
+
});
|
|
893
|
+
this.logger.warn(`Queued a database restore of backup run ${run.id} as job ${job.id}. The live ` +
|
|
894
|
+
`database will be replaced by "${scratchDatabase}" and the current one parked ` +
|
|
895
|
+
`as "${oldDatabase}".`);
|
|
896
|
+
return { outcome: 'started', runId: run.id, scratchDatabase, oldDatabase, preflight };
|
|
897
|
+
}
|
|
898
|
+
finally {
|
|
899
|
+
// ⚠ ALWAYS RELEASED NOW, ON EVERY PATH, INCLUDING THE ACCEPTED ONE.
|
|
900
|
+
//
|
|
901
|
+
// Before #353 the flag was handed to the detached body and released in its
|
|
902
|
+
// `.finally()`, because the body WAS the restore. It no longer is: this
|
|
903
|
+
// method's work ends at the enqueue, and the executor is a worker that may
|
|
904
|
+
// not even be in this process. Holding the flag past the enqueue would
|
|
905
|
+
// mean a restore whose job failed at 3am left this replica refusing every
|
|
906
|
+
// later restore until somebody restarted it — a process-local flag
|
|
907
|
+
// becoming a durable outage. The durable exclusion is the queue query and
|
|
908
|
+
// the dedup index above; this flag's job is only the double-click window
|
|
909
|
+
// around the pre-flight, and that window closes here.
|
|
910
|
+
this.activeRestoreRunId = null;
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* Runs a queued restore. THE HANDLER'S ONLY ENTRY POINT (#353, epic #345).
|
|
915
|
+
*
|
|
916
|
+
* ⚠ IT DOES NOT RE-RUN THE PRE-FLIGHT, and that is deliberate. The gates ran
|
|
917
|
+
* in `startRestore`, seconds ago, and their VERDICT — including the two
|
|
918
|
+
* database names and the effective rollback mode — is what the payload
|
|
919
|
+
* carries; re-running them here would derive different names from a different
|
|
920
|
+
* clock and quietly disagree with the answer the operator was already given.
|
|
921
|
+
* What this method does re-read is the RUN ROW, by id, because the payload
|
|
922
|
+
* carries identifiers rather than copies (`EnqueueJobInput.payload`) and the
|
|
923
|
+
* row's storage key and checksum must be the current ones.
|
|
924
|
+
*
|
|
925
|
+
* THROWS TO FAIL, like every handler. `executeRestore` records the failure on
|
|
926
|
+
* the run's restore columns first — that is still its contract, and it is
|
|
927
|
+
* still the only account an operator has — and then rethrows so the queue can
|
|
928
|
+
* write `lastError` and mark the row `failed`. Before #353 it swallowed,
|
|
929
|
+
* because there was no caller left to tell; now there is one.
|
|
930
|
+
*/
|
|
931
|
+
async executeRestoreJob(job) {
|
|
932
|
+
// #685. The handler refuses first; this is the same gate one layer down,
|
|
933
|
+
// so no caller of the executor can reach the swap in `saas` mode either.
|
|
934
|
+
// Before the payload is parsed and before the run row is read: a refused
|
|
935
|
+
// job touches no database at all.
|
|
936
|
+
this.deployment.assertInAppRestoreEnabled();
|
|
937
|
+
const payload = parseRestoreJobPayload(job.payload);
|
|
938
|
+
const run = await this.prisma.databaseBackupRun.findUnique({
|
|
939
|
+
where: { id: payload.runId },
|
|
940
|
+
});
|
|
941
|
+
if (run === null) {
|
|
942
|
+
throw new Error(`The backup run ${payload.runId} this restore job replays no longer exists; ` +
|
|
943
|
+
'nothing has been created and nothing has been touched.');
|
|
944
|
+
}
|
|
945
|
+
await this.executeRestore({
|
|
946
|
+
run,
|
|
947
|
+
connection: this.seam.resolveConnection(),
|
|
948
|
+
scratchDatabase: payload.scratchDatabase,
|
|
949
|
+
oldDatabase: payload.oldDatabase,
|
|
950
|
+
actorUserId: payload.actorUserId,
|
|
951
|
+
rollbackMode: payload.rollbackMode,
|
|
952
|
+
startedAt: new Date(payload.startedAt),
|
|
953
|
+
job,
|
|
954
|
+
});
|
|
955
|
+
}
|
|
956
|
+
// =========================================================================
|
|
957
|
+
// The restore itself
|
|
958
|
+
// =========================================================================
|
|
959
|
+
/**
|
|
960
|
+
* The six phases.
|
|
961
|
+
*
|
|
962
|
+
* ⚠ IT RECORDS THE FAILURE AND THEN RETHROWS (#353, epic #345). Until the
|
|
963
|
+
* restore became a queue job this method NEVER REJECTED: it wrote the failure
|
|
964
|
+
* onto the run's restore columns and returned, because it was launched
|
|
965
|
+
* detached and there was no caller left to tell. There is one now — the
|
|
966
|
+
* worker running `db.restore.run` — and a handler that returned normally after
|
|
967
|
+
* a failed restore would be settled `succeeded`, which is exactly the "job row
|
|
968
|
+
* that lies" this conversion exists to avoid. The row-first ordering is
|
|
969
|
+
* unchanged and still matters: the run's `restore_status` and `restore_error`
|
|
970
|
+
* are the operator's account of what happened, and they are written before
|
|
971
|
+
* anything is rethrown, so they survive whatever the queue then decides.
|
|
972
|
+
*/
|
|
973
|
+
async executeRestore(context) {
|
|
974
|
+
const { run, connection, scratchDatabase, oldDatabase, actorUserId, startedAt } = context;
|
|
975
|
+
/** Set as soon as the path is chosen, cleared once the file is gone. */
|
|
976
|
+
let tempPath = null;
|
|
977
|
+
/** Only `true` once `CREATE DATABASE` has actually returned. */
|
|
978
|
+
let scratchCreated = false;
|
|
979
|
+
try {
|
|
980
|
+
await this.writeRestoreState(run.id, {
|
|
981
|
+
restoreStatus: 'restoring',
|
|
982
|
+
restoreError: null,
|
|
983
|
+
// The instant this restore BEGAN, not the instant it finished:
|
|
984
|
+
// `swappedAt` is the destructive moment and is written separately, and
|
|
985
|
+
// an operator reading a stuck row needs to know how long it has been
|
|
986
|
+
// stuck.
|
|
987
|
+
restoredAt: startedAt,
|
|
988
|
+
restoredById: actorUserId,
|
|
989
|
+
// Written before either database exists, so a restore that dies without
|
|
990
|
+
// reaching its `catch` still says which names it was going to use.
|
|
991
|
+
restoreScratchDb: scratchDatabase,
|
|
992
|
+
restoreOldDb: oldDatabase,
|
|
993
|
+
});
|
|
994
|
+
await this.writeAudit(exports.RESTORE_AUDIT_START, actorUserId, run.id, {
|
|
995
|
+
storageKey: run.storageKey,
|
|
996
|
+
archiveMigration: run.migrationName,
|
|
997
|
+
scratchDatabase,
|
|
998
|
+
oldDatabase,
|
|
999
|
+
rollbackMode: context.rollbackMode,
|
|
1000
|
+
});
|
|
1001
|
+
// --- 1. The archive, re-verified against the bytes as they are now -----
|
|
1002
|
+
tempPath = this.seam.tempFilePath();
|
|
1003
|
+
await this.downloadAndVerifyArchive(run, tempPath);
|
|
1004
|
+
// --- 2. The safety backup, when the effective mode calls for one -------
|
|
1005
|
+
const preRestoreRunId = await this.takePreRestoreBackupIfNeeded(context, actorUserId);
|
|
1006
|
+
if (preRestoreRunId !== null) {
|
|
1007
|
+
await this.writeRestoreState(run.id, { preRestoreBackupId: preRestoreRunId });
|
|
1008
|
+
}
|
|
1009
|
+
// --- 3. The scratch database ------------------------------------------
|
|
1010
|
+
await this.createScratchDatabase(connection, scratchDatabase);
|
|
1011
|
+
scratchCreated = true;
|
|
1012
|
+
// --- 4. The replay. Hours, and the application is fully up for all of it.
|
|
1013
|
+
await this.seam.runPgRestore({
|
|
1014
|
+
connection: { ...connection, database: scratchDatabase },
|
|
1015
|
+
file: tempPath,
|
|
1016
|
+
jobs: exports.RESTORE_JOBS,
|
|
1017
|
+
});
|
|
1018
|
+
// --- 5. Verification --------------------------------------------------
|
|
1019
|
+
await this.writeRestoreState(run.id, { restoreStatus: 'verifying' });
|
|
1020
|
+
await this.verifyRestoredDatabase(connection, scratchDatabase);
|
|
1021
|
+
// ⚠ THE TEMP FILE GOES BEFORE THE SWAP, NOT AFTER IT. The process does not
|
|
1022
|
+
// come back from the swap, so a `finally` that ran after it would never
|
|
1023
|
+
// run at all and every successful restore would leave a database-sized
|
|
1024
|
+
// file behind — swept eventually by the janitor, but only eventually, and
|
|
1025
|
+
// only because of the prefix. Deleting it here means the success path
|
|
1026
|
+
// cleans up after itself and the janitor stays a safety net.
|
|
1027
|
+
await this.seam.removeFile(tempPath);
|
|
1028
|
+
tempPath = null;
|
|
1029
|
+
// --- 6. The swap. Seconds. --------------------------------------------
|
|
1030
|
+
await this.swap(context, preRestoreRunId);
|
|
1031
|
+
// Unreachable in production: `swap` ends in `process.exit(0)`.
|
|
1032
|
+
}
|
|
1033
|
+
catch (error) {
|
|
1034
|
+
const failure = toError(error);
|
|
1035
|
+
// ORDER: give the scratch database back first, then record the failure.
|
|
1036
|
+
// A `failed` row whose scratch database is still on disk is a full copy of
|
|
1037
|
+
// the database nothing will ever look for again — the same argument the
|
|
1038
|
+
// backup engine's "delete the object, then mark the row" ordering makes.
|
|
1039
|
+
//
|
|
1040
|
+
// ⚠ EXCEPT WHEN THE SWAP ITSELF FAILED, WHERE IT IS KEPT. By that point
|
|
1041
|
+
// the scratch database is a COMPLETE, VERIFIED restore that cost hours to
|
|
1042
|
+
// build, and the failure was a rename — something an operator can retry by
|
|
1043
|
+
// hand in seconds (runbook §5.2). Dropping it here would turn a recoverable
|
|
1044
|
+
// five-second problem into another multi-hour replay, and would do it
|
|
1045
|
+
// unattended. Every failure BEFORE the rename is the opposite case: the
|
|
1046
|
+
// scratch database is a half-built artefact nobody will ever want.
|
|
1047
|
+
if (scratchCreated && !(failure instanceof db_backup_errors_1.DatabaseRestoreSwapError)) {
|
|
1048
|
+
await this.dropScratchDatabase(connection, scratchDatabase);
|
|
1049
|
+
}
|
|
1050
|
+
await this.recordFailure(run.id, actorUserId, failure);
|
|
1051
|
+
this.events?.restoreCompleted({
|
|
1052
|
+
runId: run.id,
|
|
1053
|
+
status: 'failed',
|
|
1054
|
+
targetId: run.storageProvider,
|
|
1055
|
+
sizeBytes: (0, db_backup_events_1.eventBytes)(run.sizeBytes),
|
|
1056
|
+
durationMs: Math.max(0, this.seam.now().getTime() - startedAt.getTime()),
|
|
1057
|
+
});
|
|
1058
|
+
// ⚠ RETHROWN, AFTER THE ROW HAS BEEN WRITTEN AND THE SCRATCH DATABASE
|
|
1059
|
+
// GIVEN BACK. Both of those are this method's contract and neither may be
|
|
1060
|
+
// skipped by a throw travelling earlier: the queue's `lastError` is a
|
|
1061
|
+
// summary, the run row is the account. Note that the temp-file cleanup in
|
|
1062
|
+
// the `finally` below still runs — a rethrow does not skip it.
|
|
1063
|
+
throw failure;
|
|
1064
|
+
}
|
|
1065
|
+
finally {
|
|
1066
|
+
// The safety net for every failure path. A no-op on success, where the
|
|
1067
|
+
// file was already removed and `tempPath` nulled.
|
|
1068
|
+
if (tempPath !== null)
|
|
1069
|
+
await this.seam.removeFile(tempPath);
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
/**
|
|
1073
|
+
* Phase 1: pull the object to a seekable file and prove it is still the
|
|
1074
|
+
* archive it was.
|
|
1075
|
+
*
|
|
1076
|
+
* Two checks, and they catch different things:
|
|
1077
|
+
*
|
|
1078
|
+
* - THE CHECKSUM proves the bytes are unchanged since the dump was hashed
|
|
1079
|
+
* on its way into storage. It cannot tell you they are a valid archive —
|
|
1080
|
+
* a correctly-checksummed zero-byte object is still zero bytes.
|
|
1081
|
+
* - THE TABLE OF CONTENTS proves `pg_restore` can read them and that there
|
|
1082
|
+
* is something in there to restore. It cannot tell you they are the RIGHT
|
|
1083
|
+
* bytes.
|
|
1084
|
+
*
|
|
1085
|
+
* @throws {@link DatabaseRestoreArchiveError} before anything has been created.
|
|
1086
|
+
*/
|
|
1087
|
+
async downloadAndVerifyArchive(run, path) {
|
|
1088
|
+
const source = await this.target.openRead(run.storageKey);
|
|
1089
|
+
const { bytes, sha256 } = await this.seam.writeArchiveToFile(source, path);
|
|
1090
|
+
if (run.checksumSha256 !== null && run.checksumSha256 !== sha256) {
|
|
1091
|
+
throw new db_backup_errors_1.DatabaseRestoreArchiveError(run.storageKey, `the sha256 of the ${bytes} bytes downloaded is ${sha256}, but the backup recorded ` +
|
|
1092
|
+
`${run.checksumSha256}. The object in storage is not the archive that was written.`);
|
|
1093
|
+
}
|
|
1094
|
+
if (run.checksumSha256 === null) {
|
|
1095
|
+
// A completed run always records one, so this is a row that predates the
|
|
1096
|
+
// column or was written by hand. WARN AND PROCEED: the table-of-contents
|
|
1097
|
+
// check below still runs, and refusing to restore because a provenance
|
|
1098
|
+
// field is missing would make a best-effort value load-bearing after the
|
|
1099
|
+
// fact — the same call the schema gate makes for a missing migration.
|
|
1100
|
+
this.logger.warn(`Backup run ${run.id} has no recorded checksum, so the downloaded archive could ` +
|
|
1101
|
+
'only be checked for readability, not for identity.');
|
|
1102
|
+
}
|
|
1103
|
+
const entries = await this.seam.readTocEntryCount(path);
|
|
1104
|
+
if (entries <= 0) {
|
|
1105
|
+
throw new db_backup_errors_1.DatabaseRestoreArchiveError(run.storageKey, `pg_restore --list found ${entries} table-of-contents entries in the downloaded ` +
|
|
1106
|
+
'file, so replaying it would produce an empty database.');
|
|
1107
|
+
}
|
|
1108
|
+
this.logger.log(`Verified the archive for backup run ${run.id}: ${bytes} bytes, ${entries} archive ` +
|
|
1109
|
+
`entries, ${run.checksumSha256 === null ? 'no checksum to compare' : 'checksum matches'}.`);
|
|
1110
|
+
}
|
|
1111
|
+
/**
|
|
1112
|
+
* Phase 2: the `pre_restore` safety dump — the way back when the displaced
|
|
1113
|
+
* database will not be kept.
|
|
1114
|
+
*
|
|
1115
|
+
* ⚠ ONLY IN `pre_restore_dump` MODE. Under `retain_database` the way back is
|
|
1116
|
+
* the displaced database itself, and taking a full dump as well would add
|
|
1117
|
+
* hours to a restore to duplicate a guarantee it already has.
|
|
1118
|
+
*
|
|
1119
|
+
* ⚠ IT IS AWAITED TO COMPLETION, and that is why this method exists at all.
|
|
1120
|
+
* `startBackup` is detached by contract: it returns the moment the row is
|
|
1121
|
+
* claimed, with `pg_dump` still streaming. Swapping while that dump was in
|
|
1122
|
+
* flight would rename the database out from under it and leave a truncated
|
|
1123
|
+
* "safety" archive — a way back that does not work, discovered at the only
|
|
1124
|
+
* moment it is ever used.
|
|
1125
|
+
*/
|
|
1126
|
+
async takePreRestoreBackupIfNeeded(context, actorUserId) {
|
|
1127
|
+
if (context.rollbackMode !== 'pre_restore_dump')
|
|
1128
|
+
return null;
|
|
1129
|
+
const policy = await this.settings.getDatabaseBackupPolicy();
|
|
1130
|
+
const started = await this.runner.startBackup({
|
|
1131
|
+
trigger: 'pre_restore',
|
|
1132
|
+
createdById: actorUserId,
|
|
1133
|
+
});
|
|
1134
|
+
this.logger.log(`Taking a pre-restore safety backup (run ${started.id}) before replacing ` +
|
|
1135
|
+
`"${context.connection.liveDatabase}"; the displaced database will not be kept.`);
|
|
1136
|
+
const settled = await this.awaitBackupSettled(started.id, policy);
|
|
1137
|
+
if (settled !== 'completed') {
|
|
1138
|
+
throw new Error(`The pre-restore safety backup (run ${started.id}) ended as "${settled}" instead of ` +
|
|
1139
|
+
'completing. The restore was abandoned before anything was created: with no way ' +
|
|
1140
|
+
'back and no database being retained, swapping would have been irreversible.');
|
|
1141
|
+
}
|
|
1142
|
+
return started.id;
|
|
1143
|
+
}
|
|
1144
|
+
/**
|
|
1145
|
+
* Watches a backup's row until it leaves `pending`/`running`.
|
|
1146
|
+
*
|
|
1147
|
+
* Bounded by the dump's own budget — `runStaleMinutes`, which is what the
|
|
1148
|
+
* runner passes as the child's timeout — plus a grace margin, after which the
|
|
1149
|
+
* stale sweep is about to settle the row anyway and waiting longer would mean
|
|
1150
|
+
* a restore that hangs forever because a container vanished.
|
|
1151
|
+
*/
|
|
1152
|
+
async awaitBackupSettled(runId, policy) {
|
|
1153
|
+
const deadline = this.seam.now().getTime() + policy.runStaleMinutes * 60_000 + exports.PRE_RESTORE_SETTLE_GRACE_MS;
|
|
1154
|
+
for (;;) {
|
|
1155
|
+
const row = await this.prisma.databaseBackupRun.findUnique({
|
|
1156
|
+
where: { id: runId },
|
|
1157
|
+
select: { status: true },
|
|
1158
|
+
});
|
|
1159
|
+
if (row === null)
|
|
1160
|
+
return 'missing';
|
|
1161
|
+
if (row.status !== 'pending' && row.status !== 'running')
|
|
1162
|
+
return row.status;
|
|
1163
|
+
if (this.seam.now().getTime() >= deadline)
|
|
1164
|
+
return 'timed_out';
|
|
1165
|
+
await this.seam.sleep(exports.PRE_RESTORE_POLL_INTERVAL_MS);
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
/**
|
|
1169
|
+
* Phase 3: `CREATE DATABASE <live>_restore_<ts>`.
|
|
1170
|
+
*
|
|
1171
|
+
* ⚠ THE EXISTENCE CHECK IS HERE AND NOT IN PRE-FLIGHT, deliberately: the
|
|
1172
|
+
* timestamp in the name is generated when the name is built, so a pre-flight
|
|
1173
|
+
* check would have proved something about a different name. `databaseExists`
|
|
1174
|
+
* is exported precisely for this call site.
|
|
1175
|
+
*
|
|
1176
|
+
* A collision is refused rather than reused. A scratch database that already
|
|
1177
|
+
* exists holds another restore's half-replayed contents, and `pg_restore`
|
|
1178
|
+
* would happily add to them.
|
|
1179
|
+
*/
|
|
1180
|
+
async createScratchDatabase(connection, scratchDatabase) {
|
|
1181
|
+
await this.seam.withAdminConnection(connection, async (client) => {
|
|
1182
|
+
if (await (0, admin_connection_util_1.databaseExists)(client, scratchDatabase)) {
|
|
1183
|
+
throw new Error(`The scratch database "${scratchDatabase}" already exists. It is left alone: it ` +
|
|
1184
|
+
'holds another restore\'s contents, and replaying an archive into it would mix ' +
|
|
1185
|
+
'two databases together. Drop it by hand once you know what it is.');
|
|
1186
|
+
}
|
|
1187
|
+
await (0, admin_connection_util_1.createDatabase)(client, scratchDatabase);
|
|
1188
|
+
});
|
|
1189
|
+
this.logger.log(`Created the scratch database "${scratchDatabase}".`);
|
|
1190
|
+
}
|
|
1191
|
+
/**
|
|
1192
|
+
* Phase 5: is what came out of the archive a database this application could
|
|
1193
|
+
* run on?
|
|
1194
|
+
*
|
|
1195
|
+
* `--exit-on-error` already proved that no statement failed. It cannot prove
|
|
1196
|
+
* the archive contained statements worth running, which is the same gap
|
|
1197
|
+
* `DatabaseBackupVerificationError` closes on the other side of the round
|
|
1198
|
+
* trip. Two checks, deliberately cheap, deliberately not clever:
|
|
1199
|
+
*
|
|
1200
|
+
* - AT LEAST ONE ORDINARY TABLE outside the system schemas. Zero means the
|
|
1201
|
+
* replay produced an empty database.
|
|
1202
|
+
* - A NON-EMPTY `_prisma_migrations`. A database with tables but no
|
|
1203
|
+
* migration ledger is not one this application can boot against, and it
|
|
1204
|
+
* is what a restore of somebody else's archive looks like.
|
|
1205
|
+
*
|
|
1206
|
+
* ⚠ IT DELIBERATELY DOES NOT RE-READ "the newest applied migration".
|
|
1207
|
+
* `migration-state.util.ts` is emphatic that exactly one query answers that
|
|
1208
|
+
* question, because the pre-flight's schema gate compares its two callers'
|
|
1209
|
+
* answers; a third reader here would be a third chance for the rule to drift.
|
|
1210
|
+
* The archive's migration is already on the run row and was already gated.
|
|
1211
|
+
*/
|
|
1212
|
+
async verifyRestoredDatabase(connection, scratchDatabase) {
|
|
1213
|
+
await this.seam.withAdminConnection(
|
|
1214
|
+
// Attached to the SCRATCH database — the only place in this file that
|
|
1215
|
+
// connects to something other than the maintenance database, and safe
|
|
1216
|
+
// because nothing renames the scratch database while this session is open.
|
|
1217
|
+
{ ...connection, database: scratchDatabase }, async (client) => {
|
|
1218
|
+
const tables = readCount((await client.query(COUNT_USER_TABLES_SQL)).rows);
|
|
1219
|
+
if (tables <= 0) {
|
|
1220
|
+
throw new db_backup_errors_1.DatabaseRestoreVerificationError(scratchDatabase, `it holds ${tables < 0 ? 'an unreadable number of' : 'no'} tables outside the ` +
|
|
1221
|
+
'system schemas, so the archive restored nothing.');
|
|
1222
|
+
}
|
|
1223
|
+
const migrations = readCount((await client.query(COUNT_MIGRATIONS_SQL)).rows);
|
|
1224
|
+
if (migrations <= 0) {
|
|
1225
|
+
throw new db_backup_errors_1.DatabaseRestoreVerificationError(scratchDatabase, 'its _prisma_migrations table is missing or empty, so this application could ' +
|
|
1226
|
+
'not boot against it even though the archive replayed cleanly.');
|
|
1227
|
+
}
|
|
1228
|
+
this.logger.log(`Verified the restored database "${scratchDatabase}": ${tables} tables, ` +
|
|
1229
|
+
`${migrations} migration ledger row(s).`);
|
|
1230
|
+
});
|
|
1231
|
+
}
|
|
1232
|
+
// =========================================================================
|
|
1233
|
+
// The swap
|
|
1234
|
+
// =========================================================================
|
|
1235
|
+
/**
|
|
1236
|
+
* Phase 6. Seconds, and the only destructive window in the whole design.
|
|
1237
|
+
*
|
|
1238
|
+
* Read this together with the file header. The ordering below is not
|
|
1239
|
+
* incidental — every line before the first rename is there so that the two
|
|
1240
|
+
* renames have nothing left to fail on:
|
|
1241
|
+
*
|
|
1242
|
+
* 1. `swapping` on the row, so a poll sees the window open.
|
|
1243
|
+
* 2. The swap audit row, written into the database that is ABOUT TO BE
|
|
1244
|
+
* DISPLACED — it survives in `<live>_old_<ts>`, and the completion row
|
|
1245
|
+
* written after the renames is the one that lands in the promoted
|
|
1246
|
+
* database with the whole timeline in its `meta`.
|
|
1247
|
+
* 3. The catalog export, WITH THE POST-SWAP AUDIT VALUES ALREADY APPLIED.
|
|
1248
|
+
* 4. The maintenance window, in memory, `allowAdmins: false`.
|
|
1249
|
+
*/
|
|
1250
|
+
async swap(context, preRestoreRunId) {
|
|
1251
|
+
const { run, connection, scratchDatabase, oldDatabase, actorUserId } = context;
|
|
1252
|
+
const swappedAt = this.seam.now();
|
|
1253
|
+
await this.writeRestoreState(run.id, { restoreStatus: 'swapping' });
|
|
1254
|
+
await this.writeAudit(exports.RESTORE_AUDIT_SWAP, actorUserId, run.id, {
|
|
1255
|
+
scratchDatabase,
|
|
1256
|
+
oldDatabase,
|
|
1257
|
+
preRestoreBackupId: preRestoreRunId,
|
|
1258
|
+
note: 'This row is in the database being displaced. The matching completion row is ' +
|
|
1259
|
+
'written into the promoted database after the renames.',
|
|
1260
|
+
});
|
|
1261
|
+
const catalog = await this.exportCatalog(run.id, {
|
|
1262
|
+
// ⚠ THE JOB'S TERMINAL WRITE RIDES WITH THE CATALOG (#353). See
|
|
1263
|
+
// `CarriedJob`'s header: `process()` never returns on this path, so the
|
|
1264
|
+
// worker's own settle never runs, and the only correct place for the
|
|
1265
|
+
// terminal write is the set of rows that lands IF AND ONLY IF both
|
|
1266
|
+
// renames succeed. `swappedAt` is its `finished_at` — the same instant
|
|
1267
|
+
// the run row records — so the two agree about when the restore was over.
|
|
1268
|
+
job: context.job ?? null,
|
|
1269
|
+
finishedAt: swappedAt,
|
|
1270
|
+
restoreStatus: 'completed',
|
|
1271
|
+
restoreError: null,
|
|
1272
|
+
restoredAt: iso(context.startedAt),
|
|
1273
|
+
restoredById: actorUserId,
|
|
1274
|
+
restoreScratchDb: scratchDatabase,
|
|
1275
|
+
restoreOldDb: oldDatabase,
|
|
1276
|
+
swappedAt: iso(swappedAt),
|
|
1277
|
+
preRestoreBackupId: preRestoreRunId,
|
|
1278
|
+
audit: {
|
|
1279
|
+
actorUserId,
|
|
1280
|
+
action: exports.RESTORE_AUDIT_COMPLETE,
|
|
1281
|
+
targetType: exports.RESTORE_AUDIT_TARGET_TYPE,
|
|
1282
|
+
targetId: run.id,
|
|
1283
|
+
meta: {
|
|
1284
|
+
storageKey: run.storageKey,
|
|
1285
|
+
archiveMigration: run.migrationName,
|
|
1286
|
+
scratchDatabase,
|
|
1287
|
+
oldDatabase,
|
|
1288
|
+
oldDatabaseRetained: context.rollbackMode === 'retain_database',
|
|
1289
|
+
preRestoreBackupId: preRestoreRunId,
|
|
1290
|
+
startedAt: iso(context.startedAt),
|
|
1291
|
+
swappedAt: iso(swappedAt),
|
|
1292
|
+
},
|
|
1293
|
+
},
|
|
1294
|
+
});
|
|
1295
|
+
await this.renameSwap(context, {
|
|
1296
|
+
parkAs: oldDatabase,
|
|
1297
|
+
promote: scratchDatabase,
|
|
1298
|
+
catalog,
|
|
1299
|
+
// Under `pre_restore_dump` the displaced database is not the way back —
|
|
1300
|
+
// the safety archive is — so it is dropped immediately rather than left
|
|
1301
|
+
// to the retention sweep. Under `retain_database` it is the entire point.
|
|
1302
|
+
dropParked: context.rollbackMode !== 'retain_database',
|
|
1303
|
+
});
|
|
1304
|
+
this.logger.warn(`Database restore of backup run ${run.id} swapped "${scratchDatabase}" into ` +
|
|
1305
|
+
`"${connection.liveDatabase}". Exiting so a supervisor can start a process with a ` +
|
|
1306
|
+
'connection pool built against the restored database. If this process does not come ' +
|
|
1307
|
+
'back, this deployment has no restart policy — see docs/runbooks/database-restore.md.');
|
|
1308
|
+
// =========================================================================
|
|
1309
|
+
// ⚠ AWAITED, AND IT MUST STAY BETWEEN THE RENAME AND THE EXIT (#288, #254)
|
|
1310
|
+
// =========================================================================
|
|
1311
|
+
//
|
|
1312
|
+
// THE ORDERING BELOW IS THE WHOLE POINT, AND IT IS WHAT A LATER REFACTOR
|
|
1313
|
+
// WILL SILENTLY BREAK. Three constraints pin this one line to this one
|
|
1314
|
+
// place, and losing any of them produces a `mandatory` event that appears
|
|
1315
|
+
// wired, passes every registry and template test, and delivers nothing in
|
|
1316
|
+
// production on the only path that matters.
|
|
1317
|
+
//
|
|
1318
|
+
// 1. AFTER `renameSwap`, BECAUSE OF WHERE THE ROWS LAND. Prisma is
|
|
1319
|
+
// pointed at `connection.liveDatabase` BY NAME, and after the renames
|
|
1320
|
+
// that name resolves to the PROMOTED database. So the
|
|
1321
|
+
// `notification_deliveries` and `notifications` rows this writes go
|
|
1322
|
+
// into the database the operator will actually be looking at, and the
|
|
1323
|
+
// recipients are resolved from the restored `users`/`user_roles` — the
|
|
1324
|
+
// post-restore answer to "who can act on this?", which is the correct
|
|
1325
|
+
// one. Raising it before the swap would write the record of the
|
|
1326
|
+
// restore into the database the restore is about to rename away.
|
|
1327
|
+
//
|
|
1328
|
+
// 2. BEFORE `exitProcess`, OBVIOUSLY — and that is exactly why it is
|
|
1329
|
+
// AWAITED. The detached `notifyPermissionHolders` would schedule the
|
|
1330
|
+
// work on a microtask and return; `exitProcess` would then tear the
|
|
1331
|
+
// process down before any of it ran, and `onModuleDestroy`'s shutdown
|
|
1332
|
+
// drain never runs here because nothing is shutting Nest down. The
|
|
1333
|
+
// awaited sibling is the only shape that survives this seam.
|
|
1334
|
+
//
|
|
1335
|
+
// 3. `notifyPermissionHoldersNow` NEVER REJECTS — same containment as
|
|
1336
|
+
// every other entry point, via `runContained` — so awaiting it cannot
|
|
1337
|
+
// turn a completed restore into a failure. It cannot hang the exit
|
|
1338
|
+
// either: the seam's `exitProcess` is the next statement whatever the
|
|
1339
|
+
// transports did.
|
|
1340
|
+
//
|
|
1341
|
+
// The audience is `db_backup:read` (the string `db-backup.controller.ts`
|
|
1342
|
+
// enforces) PLUS the actor, de-duplicated by user id inside the dispatcher —
|
|
1343
|
+
// an operator who triggered the restore through `db_backup:restore` need not
|
|
1344
|
+
// also hold `db_backup:read` to hear that their own restore finished.
|
|
1345
|
+
await this.announceRestoreCompleted(context, swappedAt, preRestoreRunId);
|
|
1346
|
+
// `db_backup.restore.completed`: SYNCHRONOUS, and before the exit that
|
|
1347
|
+
// follows (an async publish would be torn down with the process). After the
|
|
1348
|
+
// renames committed and outside any transaction.
|
|
1349
|
+
this.events?.restoreCompleted({
|
|
1350
|
+
runId: run.id,
|
|
1351
|
+
status: 'completed',
|
|
1352
|
+
targetId: run.storageProvider,
|
|
1353
|
+
sizeBytes: (0, db_backup_events_1.eventBytes)(run.sizeBytes),
|
|
1354
|
+
durationMs: Math.max(0, swappedAt.getTime() - context.startedAt.getTime()),
|
|
1355
|
+
});
|
|
1356
|
+
this.seam.exitProcess(0);
|
|
1357
|
+
}
|
|
1358
|
+
/**
|
|
1359
|
+
* Raise `db_backup.restore_completed`, AWAITED, from inside the promoted
|
|
1360
|
+
* database (#288, epic #254).
|
|
1361
|
+
*
|
|
1362
|
+
* See the block comment at the call site for why this sits exactly where it
|
|
1363
|
+
* does. What is worth saying HERE is the two things this method does that
|
|
1364
|
+
* the other three operational notifiers do not:
|
|
1365
|
+
*
|
|
1366
|
+
* 1. IT RESOLVES THE ACTOR'S ADDRESS FROM THE RESTORED DATABASE, AND MAY
|
|
1367
|
+
* LEGITIMATELY FIND NOTHING. The account that triggered the restore is
|
|
1368
|
+
* looked up AFTER the swap, so it is looked up in the archive's copy of
|
|
1369
|
+
* `users` — and an operator whose account was created after the backup was
|
|
1370
|
+
* taken genuinely does not exist there. That is not an error to log
|
|
1371
|
+
* loudly; it is a true and rather important fact about the state the
|
|
1372
|
+
* deployment is now in, and it renders as "Not recorded" rather than as a
|
|
1373
|
+
* failure.
|
|
1374
|
+
*
|
|
1375
|
+
* 2. IT ADDS THE ACTOR TO THE AUDIENCE RATHER THAN SENDING THEM A SECOND
|
|
1376
|
+
* MESSAGE. `alsoNotifyUserIds` is unioned with the permission holders and
|
|
1377
|
+
* de-duplicated by user id inside the dispatcher, so an actor who also
|
|
1378
|
+
* holds `db_backup:read` gets exactly one email and one bell row. See
|
|
1379
|
+
* `NotifyPermissionHoldersOptions`.
|
|
1380
|
+
*
|
|
1381
|
+
* NEVER THROWS. `notifyPermissionHoldersNow` cannot reject by construction,
|
|
1382
|
+
* and the try/catch covers the address lookup and the payload build — because
|
|
1383
|
+
* a throw here would land in `executeRestore`'s `catch`, which would then
|
|
1384
|
+
* record a COMPLETED restore as a failure and, worse, try to drop a scratch
|
|
1385
|
+
* database that has already been promoted to live.
|
|
1386
|
+
*/
|
|
1387
|
+
async announceRestoreCompleted(context, swappedAt, preRestoreRunId) {
|
|
1388
|
+
const { run, actorUserId } = context;
|
|
1389
|
+
try {
|
|
1390
|
+
const payload = {
|
|
1391
|
+
runId: run.id,
|
|
1392
|
+
// `startedAt`, NOT `finishedAt`: `pg_dump` takes its snapshot when it
|
|
1393
|
+
// starts, so the state this database now holds is the state at the
|
|
1394
|
+
// START of that run. `finishedAt` would overstate it by however long
|
|
1395
|
+
// the dump took, which on a large database is the difference between
|
|
1396
|
+
// "we lost ten minutes" and "we lost two hours".
|
|
1397
|
+
backupTakenAt: run.startedAt ?? run.finishedAt,
|
|
1398
|
+
completedAt: swappedAt,
|
|
1399
|
+
triggeredBy: await this.resolveActorEmail(actorUserId),
|
|
1400
|
+
preRestoreBackupId: preRestoreRunId,
|
|
1401
|
+
appUrl: this.appUrl(),
|
|
1402
|
+
};
|
|
1403
|
+
await this.notifications.notifyPermissionHoldersNow('db_backup.restore_completed', db_backup_constants_1.PERMISSIONS.DB_BACKUP_READ, payload, {
|
|
1404
|
+
// The actor, when there is one. Unioned and de-duplicated by the
|
|
1405
|
+
// dispatcher — see the header.
|
|
1406
|
+
alsoNotifyUserIds: actorUserId === null ? [] : [actorUserId],
|
|
1407
|
+
});
|
|
1408
|
+
}
|
|
1409
|
+
catch (error) {
|
|
1410
|
+
this.logger.error(`The restore of backup run ${run.id} completed, but ` +
|
|
1411
|
+
`'db_backup.restore_completed' could not be raised: ` +
|
|
1412
|
+
`${toError(error).message}`);
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
/**
|
|
1416
|
+
* The actor's email address as recorded IN THE RESTORED DATABASE, or `null`.
|
|
1417
|
+
*
|
|
1418
|
+
* `null` for three different and equally ordinary reasons: there was no actor
|
|
1419
|
+
* (a restore triggered without one), the actor's account does not exist in
|
|
1420
|
+
* the archive, or the read failed. None of them justifies holding up an exit
|
|
1421
|
+
* or failing a completed restore, so all three collapse to `null` and the
|
|
1422
|
+
* template gives it words.
|
|
1423
|
+
*/
|
|
1424
|
+
async resolveActorEmail(actorUserId) {
|
|
1425
|
+
if (actorUserId === null)
|
|
1426
|
+
return null;
|
|
1427
|
+
try {
|
|
1428
|
+
const actor = await this.prisma.user.findUnique({
|
|
1429
|
+
where: { id: actorUserId },
|
|
1430
|
+
select: { email: true },
|
|
1431
|
+
});
|
|
1432
|
+
return actor?.email ?? null;
|
|
1433
|
+
}
|
|
1434
|
+
catch (error) {
|
|
1435
|
+
this.logger.warn(`Could not read the restore actor's address from the restored database: ` +
|
|
1436
|
+
`${toError(error).message}`);
|
|
1437
|
+
return null;
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
/**
|
|
1441
|
+
* The application root, trailing slashes trimmed, or `undefined`.
|
|
1442
|
+
*
|
|
1443
|
+
* Same shape as `UsersService.appUrl()`; `undefined` makes the template omit
|
|
1444
|
+
* its CTA rather than render a button that goes nowhere.
|
|
1445
|
+
*/
|
|
1446
|
+
appUrl() {
|
|
1447
|
+
const appUrl = this.config.get('appUrl');
|
|
1448
|
+
return appUrl ? appUrl.replace(/\/+$/, '') : undefined;
|
|
1449
|
+
}
|
|
1450
|
+
/**
|
|
1451
|
+
* THE TWO RENAMES, and the inner recovery between them.
|
|
1452
|
+
*
|
|
1453
|
+
* ⚠ ONE IMPLEMENTATION, USED BY BOTH DIRECTIONS. The restore parks the live
|
|
1454
|
+
* database as `<live>_old_<ts>` and promotes the scratch database; the
|
|
1455
|
+
* rollback parks the bad restore as a fresh `<live>_restore_<ts>` and promotes
|
|
1456
|
+
* the retained original. They are the same three statements with the names
|
|
1457
|
+
* exchanged, and writing them twice would mean the recovery `catch` — the one
|
|
1458
|
+
* genuinely dangerous moment in this design — existed in two places, one of
|
|
1459
|
+
* which would eventually be wrong.
|
|
1460
|
+
*
|
|
1461
|
+
* ⚠ THE MAINTENANCE WINDOW IS OPENED WITH `allowAdmins: false`, IN MEMORY.
|
|
1462
|
+
* See the file header: the persisted flag lives inside the database being
|
|
1463
|
+
* renamed, and an admin request during the window would reach a database that
|
|
1464
|
+
* momentarily does not exist.
|
|
1465
|
+
*
|
|
1466
|
+
* ⚠ THE WINDOW IS NOT CLOSED ON THE SUCCESS PATH. `process.exit(0)` is the
|
|
1467
|
+
* release: closing it here would open a gap in which this process served
|
|
1468
|
+
* requests through a connection pool it is about to tear down. It IS closed
|
|
1469
|
+
* when the swap failed and the original was renamed back, because then there
|
|
1470
|
+
* is a working database to serve from and the deployment must not be left in
|
|
1471
|
+
* a window nothing will ever close. It is deliberately LEFT OPEN when the
|
|
1472
|
+
* recovery also failed — an orderly 503 beats five hundred stack traces
|
|
1473
|
+
* against a database that is not there.
|
|
1474
|
+
*/
|
|
1475
|
+
async renameSwap(context, options) {
|
|
1476
|
+
const { connection } = context;
|
|
1477
|
+
const { parkAs, promote, catalog, dropParked } = options;
|
|
1478
|
+
const live = connection.liveDatabase;
|
|
1479
|
+
this.maintenance.setInMemoryOverride({
|
|
1480
|
+
enabled: true,
|
|
1481
|
+
message: exports.RESTORE_MAINTENANCE_MESSAGE,
|
|
1482
|
+
allowAdmins: false,
|
|
1483
|
+
});
|
|
1484
|
+
try {
|
|
1485
|
+
await this.seam.withAdminConnection(connection, async (client) => {
|
|
1486
|
+
// The application's own pool is the largest set of sessions holding the
|
|
1487
|
+
// rename off. Disconnecting first is a courtesy that makes the
|
|
1488
|
+
// termination below smaller and quieter; `.catch()` because a pool that
|
|
1489
|
+
// is already broken must not stop the swap.
|
|
1490
|
+
await this.prisma.$disconnect().catch(() => undefined);
|
|
1491
|
+
// AND THEN EVERYTHING ELSE. A rename fails while ANY session is
|
|
1492
|
+
// attached — a pooler, a metrics exporter, an open psql window, a
|
|
1493
|
+
// replica that should not be running.
|
|
1494
|
+
const terminated = await (0, admin_connection_util_1.terminateConnections)(client, live);
|
|
1495
|
+
if (terminated > 0) {
|
|
1496
|
+
this.logger.warn(`Terminated ${terminated} session(s) on "${live}" for the swap.`);
|
|
1497
|
+
}
|
|
1498
|
+
// ⚠ FROM HERE UNTIL THE NEXT STATEMENT SUCCEEDS THERE IS NO DATABASE
|
|
1499
|
+
// NAMED `live`.
|
|
1500
|
+
await (0, admin_connection_util_1.renameDatabase)(client, live, parkAs);
|
|
1501
|
+
try {
|
|
1502
|
+
await (0, admin_connection_util_1.renameDatabase)(client, promote, live);
|
|
1503
|
+
}
|
|
1504
|
+
catch (error) {
|
|
1505
|
+
const cause = toError(error);
|
|
1506
|
+
let originalRestored = true;
|
|
1507
|
+
// THE ONE GENUINELY DANGEROUS MOMENT. Put the original back, whatever
|
|
1508
|
+
// it costs, and never let a failure here hide the failure that caused
|
|
1509
|
+
// it.
|
|
1510
|
+
await (0, admin_connection_util_1.renameDatabase)(client, parkAs, live).catch((recoveryError) => {
|
|
1511
|
+
originalRestored = false;
|
|
1512
|
+
this.logger.error(`CRITICAL: "${live}" could not be renamed from "${promote}" ` +
|
|
1513
|
+
`(${cause.message}) AND "${parkAs}" could not be renamed back ` +
|
|
1514
|
+
`(${toError(recoveryError).message}). THERE IS NOW NO DATABASE NAMED ` +
|
|
1515
|
+
`"${live}". Nothing has been deleted - both databases still exist under ` +
|
|
1516
|
+
`their other names ("${parkAs}" is the original. "${promote}" is the ` +
|
|
1517
|
+
'replacement). Finish or undo the swap by hand: see section 5.2 of ' +
|
|
1518
|
+
'docs/runbooks/database-restore.md.');
|
|
1519
|
+
});
|
|
1520
|
+
throw new db_backup_errors_1.DatabaseRestoreSwapError(live, originalRestored, cause);
|
|
1521
|
+
}
|
|
1522
|
+
// The renames are done and the promoted database is live. Everything
|
|
1523
|
+
// below is repair of what the rename cost, and NONE of it may undo the
|
|
1524
|
+
// swap — see `reinsertCatalog`.
|
|
1525
|
+
await this.reinsertCatalog(connection, catalog);
|
|
1526
|
+
if (dropParked) {
|
|
1527
|
+
// Best-effort: the swap has already succeeded, and a database left on
|
|
1528
|
+
// disk is a storage cost the retention sweep will collect later.
|
|
1529
|
+
try {
|
|
1530
|
+
await (0, admin_connection_util_1.dropDatabase)(client, parkAs);
|
|
1531
|
+
this.logger.log(`Dropped the displaced database "${parkAs}".`);
|
|
1532
|
+
}
|
|
1533
|
+
catch (error) {
|
|
1534
|
+
this.logger.warn(`The displaced database "${parkAs}" could not be dropped ` +
|
|
1535
|
+
`(${toError(error).message}); the retained-database sweep will retry it.`);
|
|
1536
|
+
}
|
|
1537
|
+
}
|
|
1538
|
+
});
|
|
1539
|
+
}
|
|
1540
|
+
catch (error) {
|
|
1541
|
+
if (error instanceof db_backup_errors_1.DatabaseRestoreSwapError && !error.originalRestored) {
|
|
1542
|
+
// No database under the live name. Leave the window OPEN so callers get
|
|
1543
|
+
// a 503 rather than a connection error, and leave the process running so
|
|
1544
|
+
// its logs — which contain the only account of what happened — survive.
|
|
1545
|
+
throw error;
|
|
1546
|
+
}
|
|
1547
|
+
this.maintenance.setInMemoryOverride(null);
|
|
1548
|
+
throw error;
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
// =========================================================================
|
|
1552
|
+
// Catalog carry-over
|
|
1553
|
+
// =========================================================================
|
|
1554
|
+
/**
|
|
1555
|
+
* Reads `database_backup_runs` out of the database that is about to be
|
|
1556
|
+
* displaced, applying this restore's POST-SWAP audit values on the way past.
|
|
1557
|
+
*
|
|
1558
|
+
* ⚠ THE AUDIT VALUES ARE APPLIED HERE, NOT WRITTEN TO THE LIVE ROW. Writing
|
|
1559
|
+
* "restore completed" to the database this restore is about to rename away
|
|
1560
|
+
* would put the record of the operation in the one database nobody will ever
|
|
1561
|
+
* open again. The row the operator eventually reads is the one this function
|
|
1562
|
+
* builds.
|
|
1563
|
+
*
|
|
1564
|
+
* ⚠ THE SELF-FK IS STRIPPED INTO {@link CarriedCatalog.selfLinks} and applied
|
|
1565
|
+
* in a second pass. See {@link CARRY_SELF_LINK_SQL}.
|
|
1566
|
+
*/
|
|
1567
|
+
async exportCatalog(runId, postSwap) {
|
|
1568
|
+
const rows = await this.prisma.databaseBackupRun.findMany({
|
|
1569
|
+
// Oldest first: the order rows are re-inserted in. It does not matter for
|
|
1570
|
+
// correctness — pass two exists precisely so no ordering is load-bearing —
|
|
1571
|
+
// but a table whose ids come back in creation order is easier to read.
|
|
1572
|
+
orderBy: { createdAt: 'asc' },
|
|
1573
|
+
});
|
|
1574
|
+
const runs = [];
|
|
1575
|
+
const selfLinks = [];
|
|
1576
|
+
for (const row of rows) {
|
|
1577
|
+
const isThisRestore = row.id === runId;
|
|
1578
|
+
runs.push({
|
|
1579
|
+
id: row.id,
|
|
1580
|
+
status: row.status,
|
|
1581
|
+
trigger: row.trigger,
|
|
1582
|
+
startedAt: iso(row.startedAt),
|
|
1583
|
+
finishedAt: iso(row.finishedAt),
|
|
1584
|
+
lastHeartbeatAt: iso(row.lastHeartbeatAt),
|
|
1585
|
+
bytesWritten: row.bytesWritten.toString(),
|
|
1586
|
+
sizeBytes: row.sizeBytes.toString(),
|
|
1587
|
+
storageProvider: row.storageProvider,
|
|
1588
|
+
storageKey: row.storageKey,
|
|
1589
|
+
bucket: row.bucket,
|
|
1590
|
+
format: row.format,
|
|
1591
|
+
checksumSha256: row.checksumSha256,
|
|
1592
|
+
dbVersion: row.dbVersion,
|
|
1593
|
+
appVersion: row.appVersion,
|
|
1594
|
+
migrationName: row.migrationName,
|
|
1595
|
+
verifiedAt: iso(row.verifiedAt),
|
|
1596
|
+
lastError: row.lastError,
|
|
1597
|
+
createdById: row.createdById,
|
|
1598
|
+
restoreStatus: isThisRestore ? postSwap.restoreStatus : row.restoreStatus,
|
|
1599
|
+
restoreError: isThisRestore ? postSwap.restoreError : row.restoreError,
|
|
1600
|
+
restoredAt: isThisRestore ? postSwap.restoredAt : iso(row.restoredAt),
|
|
1601
|
+
restoredById: isThisRestore ? postSwap.restoredById : row.restoredById,
|
|
1602
|
+
restoreScratchDb: isThisRestore ? postSwap.restoreScratchDb : row.restoreScratchDb,
|
|
1603
|
+
restoreOldDb: isThisRestore ? postSwap.restoreOldDb : row.restoreOldDb,
|
|
1604
|
+
swappedAt: isThisRestore ? postSwap.swappedAt : iso(row.swappedAt),
|
|
1605
|
+
createdAt: row.createdAt.toISOString(),
|
|
1606
|
+
// Bumped for the row this restore changed, so the promoted database's
|
|
1607
|
+
// `updated_at` is not older than the change it describes.
|
|
1608
|
+
updatedAt: (isThisRestore ? this.seam.now() : row.updatedAt).toISOString(),
|
|
1609
|
+
jobId: row.jobId ?? null,
|
|
1610
|
+
pgDumpVersion: row.pgDumpVersion ?? null,
|
|
1611
|
+
});
|
|
1612
|
+
const link = isThisRestore ? postSwap.preRestoreBackupId : row.preRestoreBackupId;
|
|
1613
|
+
if (link !== null)
|
|
1614
|
+
selfLinks.push({ id: row.id, preRestoreBackupId: link });
|
|
1615
|
+
}
|
|
1616
|
+
return {
|
|
1617
|
+
runs,
|
|
1618
|
+
selfLinks,
|
|
1619
|
+
audit: { id: (0, node_crypto_1.randomUUID)(), ...postSwap.audit },
|
|
1620
|
+
job: carryJob(postSwap.job, postSwap.finishedAt),
|
|
1621
|
+
extras: await this.exportExtraCarries(),
|
|
1622
|
+
};
|
|
1623
|
+
}
|
|
1624
|
+
/**
|
|
1625
|
+
* Reads every registered `RestoreCarryOver` from the LIVE database, before
|
|
1626
|
+
* the swap (#740). Ascending `order`; one transaction per carry with
|
|
1627
|
+
* `app.rls_bypass` set transaction-locally.
|
|
1628
|
+
*
|
|
1629
|
+
* ⚠ A FAILING EXPORT ABORTS NOTHING. It is logged and the carry is skipped:
|
|
1630
|
+
* refusing a restore because an app's own carry cannot be read would turn a
|
|
1631
|
+
* fork's mistake into a database that cannot be restored at all.
|
|
1632
|
+
*/
|
|
1633
|
+
async exportExtraCarries() {
|
|
1634
|
+
const carries = carry_over_registry_1.restoreCarryOverRegistry.list();
|
|
1635
|
+
if (carries.length === 0)
|
|
1636
|
+
return [];
|
|
1637
|
+
const connection = this.seam.resolveConnection();
|
|
1638
|
+
const extras = [];
|
|
1639
|
+
await this.seam.withAdminConnection({ ...connection, database: connection.liveDatabase }, async (client) => {
|
|
1640
|
+
for (const carry of carries) {
|
|
1641
|
+
try {
|
|
1642
|
+
await client.query('BEGIN');
|
|
1643
|
+
await client.query(CARRY_RLS_BYPASS_SQL);
|
|
1644
|
+
const { rows } = await client.query(carry.exportSql);
|
|
1645
|
+
await client.query('COMMIT');
|
|
1646
|
+
extras.push({ id: carry.id, reinsertSql: carry.reinsertSql, rows: rows.map((row) => JSON.stringify(row)) });
|
|
1647
|
+
}
|
|
1648
|
+
catch (error) {
|
|
1649
|
+
await client.query('ROLLBACK').catch(() => undefined);
|
|
1650
|
+
this.logger.error(`The restore carry-over "${carry.id}" could not be exported (${toError(error).message}); ` +
|
|
1651
|
+
'its rows will not survive this restore.');
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
});
|
|
1655
|
+
return extras;
|
|
1656
|
+
}
|
|
1657
|
+
/**
|
|
1658
|
+
* Writes the carried catalog into the database that has just been promoted.
|
|
1659
|
+
*
|
|
1660
|
+
* ⚠ IT NEVER THROWS, AND THAT IS A SAFETY PROPERTY RATHER THAN LAZINESS. By
|
|
1661
|
+
* the time this runs, both renames have succeeded: the restored database IS
|
|
1662
|
+
* the live one and the swap is irreversible. A throw here would travel to
|
|
1663
|
+
* `executeRestore`'s `catch`, which would try to drop a scratch database that
|
|
1664
|
+
* no longer exists under that name and then write a `failed` restore status
|
|
1665
|
+
* into a database that no longer holds that row — and it would tempt a future
|
|
1666
|
+
* change to "roll the swap back", which at this point would mean discarding a
|
|
1667
|
+
* database the deployment is already serving from. Losing the backup catalog
|
|
1668
|
+
* is bad. Undoing a successful restore to avoid losing it would be worse.
|
|
1669
|
+
*
|
|
1670
|
+
* A separate session on the LIVE name, not the maintenance one: the rows go
|
|
1671
|
+
* into the promoted database, and the outer session is attached elsewhere
|
|
1672
|
+
* precisely so it could do the renaming.
|
|
1673
|
+
*/
|
|
1674
|
+
async reinsertCatalog(connection, catalog) {
|
|
1675
|
+
try {
|
|
1676
|
+
await this.seam.withAdminConnection({ ...connection, database: connection.liveDatabase }, async (client) => {
|
|
1677
|
+
// ⚠ THE JOB ROW GOES FIRST, AND THE ORDER IS NOT COSMETIC. Everything
|
|
1678
|
+
// else in this carry is READ by a human later; this row is ACTED ON by
|
|
1679
|
+
// a machine — the lease reaper, on the very next process start. If the
|
|
1680
|
+
// session dies part way through this loop, the value most worth having
|
|
1681
|
+
// landed is the one that stops a successful restore being marked
|
|
1682
|
+
// `failed`. `reinsertCatalog` never throws, so a failure here still
|
|
1683
|
+
// leaves the backup catalog to be attempted.
|
|
1684
|
+
if (catalog.job !== null) {
|
|
1685
|
+
await client.query(CARRY_JOB_SQL, [
|
|
1686
|
+
catalog.job.id,
|
|
1687
|
+
catalog.job.type,
|
|
1688
|
+
catalog.job.subjectType,
|
|
1689
|
+
catalog.job.subjectId,
|
|
1690
|
+
catalog.job.dedupKey,
|
|
1691
|
+
catalog.job.reason,
|
|
1692
|
+
catalog.job.priority,
|
|
1693
|
+
catalog.job.payload,
|
|
1694
|
+
catalog.job.attempts,
|
|
1695
|
+
catalog.job.lastError,
|
|
1696
|
+
catalog.job.createdAt,
|
|
1697
|
+
catalog.job.startedAt,
|
|
1698
|
+
catalog.job.finishedAt,
|
|
1699
|
+
catalog.job.executor,
|
|
1700
|
+
catalog.job.providerKey,
|
|
1701
|
+
catalog.job.modelVersion,
|
|
1702
|
+
catalog.job.traceContext,
|
|
1703
|
+
catalog.job.orgId,
|
|
1704
|
+
]);
|
|
1705
|
+
}
|
|
1706
|
+
for (const row of catalog.runs) {
|
|
1707
|
+
await client.query(CARRY_RUN_SQL, [
|
|
1708
|
+
row.id,
|
|
1709
|
+
row.status,
|
|
1710
|
+
row.trigger,
|
|
1711
|
+
row.startedAt,
|
|
1712
|
+
row.finishedAt,
|
|
1713
|
+
row.lastHeartbeatAt,
|
|
1714
|
+
row.bytesWritten,
|
|
1715
|
+
row.sizeBytes,
|
|
1716
|
+
row.storageProvider,
|
|
1717
|
+
row.storageKey,
|
|
1718
|
+
row.bucket,
|
|
1719
|
+
row.format,
|
|
1720
|
+
row.checksumSha256,
|
|
1721
|
+
row.dbVersion,
|
|
1722
|
+
row.appVersion,
|
|
1723
|
+
row.migrationName,
|
|
1724
|
+
row.verifiedAt,
|
|
1725
|
+
row.lastError,
|
|
1726
|
+
row.createdById,
|
|
1727
|
+
row.restoreStatus,
|
|
1728
|
+
row.restoreError,
|
|
1729
|
+
row.restoredAt,
|
|
1730
|
+
row.restoredById,
|
|
1731
|
+
row.restoreScratchDb,
|
|
1732
|
+
row.restoreOldDb,
|
|
1733
|
+
row.swappedAt,
|
|
1734
|
+
row.createdAt,
|
|
1735
|
+
row.updatedAt,
|
|
1736
|
+
row.jobId,
|
|
1737
|
+
row.pgDumpVersion,
|
|
1738
|
+
]);
|
|
1739
|
+
}
|
|
1740
|
+
// PASS TWO. Every referent is now present.
|
|
1741
|
+
for (const link of catalog.selfLinks) {
|
|
1742
|
+
await client.query(CARRY_SELF_LINK_SQL, [link.id, link.preRestoreBackupId]);
|
|
1743
|
+
}
|
|
1744
|
+
await client.query(CARRY_AUDIT_SQL, [
|
|
1745
|
+
catalog.audit.id,
|
|
1746
|
+
catalog.audit.actorUserId,
|
|
1747
|
+
catalog.audit.action,
|
|
1748
|
+
catalog.audit.targetType,
|
|
1749
|
+
catalog.audit.targetId,
|
|
1750
|
+
JSON.stringify(catalog.audit.meta),
|
|
1751
|
+
]);
|
|
1752
|
+
// The app's carries (#740), after the four built-in ones and in
|
|
1753
|
+
// their registered order. Each in its own transaction with the
|
|
1754
|
+
// bypass set transaction-locally; a failing carry is rolled back
|
|
1755
|
+
// and logged, and never stops the next (this method never throws).
|
|
1756
|
+
for (const extra of catalog.extras) {
|
|
1757
|
+
try {
|
|
1758
|
+
await client.query('BEGIN');
|
|
1759
|
+
await client.query(CARRY_RLS_BYPASS_SQL);
|
|
1760
|
+
for (const row of extra.rows)
|
|
1761
|
+
await client.query(extra.reinsertSql, [row]);
|
|
1762
|
+
await client.query('COMMIT');
|
|
1763
|
+
}
|
|
1764
|
+
catch (error) {
|
|
1765
|
+
await client.query('ROLLBACK').catch(() => undefined);
|
|
1766
|
+
this.logger.error(`CRITICAL: the restore succeeded but the carry-over "${extra.id}" could not be ` +
|
|
1767
|
+
`re-inserted into "${connection.liveDatabase}" (${toError(error).message}); its rows ` +
|
|
1768
|
+
'from before the swap are missing from the restored database.');
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
});
|
|
1772
|
+
this.logger.log(`Carried ${catalog.runs.length} backup record(s), ${catalog.selfLinks.length} ` +
|
|
1773
|
+
`pre-restore link(s) and ${catalog.job === null ? 'no' : 'the settled'} restore ` +
|
|
1774
|
+
`job row into "${connection.liveDatabase}".`);
|
|
1775
|
+
}
|
|
1776
|
+
catch (error) {
|
|
1777
|
+
this.logger.error(`CRITICAL: the restore succeeded but its backup catalog could not be carried into ` +
|
|
1778
|
+
`"${connection.liveDatabase}" (${toError(error).message}). The database now shows ` +
|
|
1779
|
+
'backups as of the archive\'s own age: any backup taken after that archive, and ' +
|
|
1780
|
+
'the record of this restore itself, are missing from database_backup_runs, and ' +
|
|
1781
|
+
'the restore\'s own job row was not settled (the lease reaper will mark it ' +
|
|
1782
|
+
'failed after the restart even though the restore succeeded). The ' +
|
|
1783
|
+
'ARCHIVES are untouched in object storage, and any displaced database has to be ' +
|
|
1784
|
+
'dropped by hand because nothing now records its name. See section 5 of ' +
|
|
1785
|
+
'docs/runbooks/database-restore.md.');
|
|
1786
|
+
}
|
|
1787
|
+
}
|
|
1788
|
+
// =========================================================================
|
|
1789
|
+
// Rollback
|
|
1790
|
+
// =========================================================================
|
|
1791
|
+
/**
|
|
1792
|
+
* Undoes a restore, by whichever of the two routes this deployment still has.
|
|
1793
|
+
*
|
|
1794
|
+
* The two costs are not comparable, and reporting which one happened is the
|
|
1795
|
+
* whole reason this returns a discriminated result rather than a boolean:
|
|
1796
|
+
*
|
|
1797
|
+
* - `retain_database` → ONE RENAME. Seconds. This is the entire
|
|
1798
|
+
* justification for paying roughly double the PostgreSQL volume for
|
|
1799
|
+
* `oldDatabaseRetentionHours`.
|
|
1800
|
+
* - `pre_restore_dump` → a full restore of the safety archive. HOURS,
|
|
1801
|
+
* and it goes back through `startRestore`, gates and all.
|
|
1802
|
+
* - Neither → `unavailable`, honestly. Nothing failed; the window closed.
|
|
1803
|
+
*
|
|
1804
|
+
* ⚠ THE DELEGATED RESTORE OVERRIDES THE SCHEMA GATE. The `pre_restore` dump
|
|
1805
|
+
* was taken from the schema this code was running moments before the restore,
|
|
1806
|
+
* so the live migration it would be compared against is the ARCHIVE's — the
|
|
1807
|
+
* gate would block on a mismatch that exists only because the thing being
|
|
1808
|
+
* undone happened. That block would be spurious, and it would fire at the
|
|
1809
|
+
* exact moment an operator needs the way back.
|
|
1810
|
+
*/
|
|
1811
|
+
async rollback(run, actorUserId) {
|
|
1812
|
+
// #685. First, before the existence probe opens a cluster admin
|
|
1813
|
+
// connection. A rename back is as much a database swap as a restore is.
|
|
1814
|
+
this.deployment.assertInAppRestoreEnabled();
|
|
1815
|
+
const connection = this.seam.resolveConnection();
|
|
1816
|
+
const oldDatabase = run.restoreOldDb;
|
|
1817
|
+
if (oldDatabase !== null && oldDatabase !== '') {
|
|
1818
|
+
const exists = await this.seam.withAdminConnection(connection, (client) => (0, admin_connection_util_1.databaseExists)(client, oldDatabase));
|
|
1819
|
+
if (exists)
|
|
1820
|
+
return this.rollbackByRename(run, connection, oldDatabase, actorUserId);
|
|
1821
|
+
this.logger.warn(`The database displaced by the restore of backup run ${run.id} ("${oldDatabase}") no ` +
|
|
1822
|
+
'longer exists; falling back to the pre-restore archive.');
|
|
1823
|
+
}
|
|
1824
|
+
if (run.preRestoreBackupId !== null) {
|
|
1825
|
+
const preRestore = await this.prisma.databaseBackupRun.findUnique({
|
|
1826
|
+
where: { id: run.preRestoreBackupId },
|
|
1827
|
+
});
|
|
1828
|
+
if (preRestore !== null && preRestore.status === 'completed') {
|
|
1829
|
+
const started = await this.startRestore(preRestore, {
|
|
1830
|
+
actorUserId,
|
|
1831
|
+
// See the method comment. It unblocks that gate and nothing else.
|
|
1832
|
+
overrideSchemaMismatch: true,
|
|
1833
|
+
});
|
|
1834
|
+
if (started.outcome === 'started') {
|
|
1835
|
+
return { outcome: 'restore_started', runId: run.id, preRestoreRunId: preRestore.id };
|
|
1836
|
+
}
|
|
1837
|
+
return {
|
|
1838
|
+
outcome: 'unavailable',
|
|
1839
|
+
runId: run.id,
|
|
1840
|
+
reason: `The pre-restore safety backup (run ${preRestore.id}) exists, but a restore of ` +
|
|
1841
|
+
`it could not be started (${started.outcome}). Run the pre-flight against that ` +
|
|
1842
|
+
'backup to see what is in the way.',
|
|
1843
|
+
};
|
|
1844
|
+
}
|
|
1845
|
+
}
|
|
1846
|
+
return {
|
|
1847
|
+
outcome: 'unavailable',
|
|
1848
|
+
runId: run.id,
|
|
1849
|
+
reason: oldDatabase === null || oldDatabase === ''
|
|
1850
|
+
? 'This backup has no recorded restore to roll back.'
|
|
1851
|
+
: `The displaced database "${oldDatabase}" has been dropped (past ` +
|
|
1852
|
+
'databaseBackup.oldDatabaseRetentionHours) and there is no completed pre-restore ' +
|
|
1853
|
+
'backup to fall back on. There is nothing left to roll back to; restoring any ' +
|
|
1854
|
+
'other archive is a new restore, not a rollback.',
|
|
1855
|
+
};
|
|
1856
|
+
}
|
|
1857
|
+
/**
|
|
1858
|
+
* The fast rollback: park the current live database, promote the retained one.
|
|
1859
|
+
*
|
|
1860
|
+
* ⚠ THE CATALOG IS CARRIED OVER HERE TOO, and it matters more than it looks.
|
|
1861
|
+
* The retained database's `database_backup_runs` is as of the moment BEFORE
|
|
1862
|
+
* the restore — so without a carry-over the rollback would delete every
|
|
1863
|
+
* backup record created since, INCLUDING the `pre_restore` dump's, which under
|
|
1864
|
+
* some configurations is the only remaining way back from the thing being
|
|
1865
|
+
* undone. Reusing {@link exportCatalog} rather than writing a second, smaller
|
|
1866
|
+
* version is the point: one carry-over, one set of FK rules.
|
|
1867
|
+
*/
|
|
1868
|
+
async rollbackByRename(run, connection, oldDatabase, actorUserId) {
|
|
1869
|
+
const now = this.seam.now();
|
|
1870
|
+
// Where the database being undone goes. A fresh scratch name rather than
|
|
1871
|
+
// reusing the recorded one: that name belonged to a database that no longer
|
|
1872
|
+
// exists under it, and a collision here would fail the first rename.
|
|
1873
|
+
const parkAs = (0, admin_connection_util_1.buildScratchDatabaseName)(connection.liveDatabase, now);
|
|
1874
|
+
const catalog = await this.exportCatalog(run.id, {
|
|
1875
|
+
// NO JOB ROW ON THIS PATH. A rollback-by-rename is not a queue job — it
|
|
1876
|
+
// is a synchronous admin request that renames two databases and exits —
|
|
1877
|
+
// so there is nothing to settle. `finishedAt` is still supplied because
|
|
1878
|
+
// the parameter is not optional; it is unused when `job` is `null`.
|
|
1879
|
+
job: null,
|
|
1880
|
+
finishedAt: now,
|
|
1881
|
+
restoreStatus: 'rolled_back',
|
|
1882
|
+
restoreError: null,
|
|
1883
|
+
restoredAt: iso(run.restoredAt),
|
|
1884
|
+
restoredById: run.restoredById,
|
|
1885
|
+
// The names AFTER the rollback: the parked database is the one this
|
|
1886
|
+
// restore produced, and the database that was displaced is now live.
|
|
1887
|
+
restoreScratchDb: parkAs,
|
|
1888
|
+
restoreOldDb: null,
|
|
1889
|
+
swappedAt: iso(run.swappedAt),
|
|
1890
|
+
preRestoreBackupId: run.preRestoreBackupId,
|
|
1891
|
+
audit: {
|
|
1892
|
+
actorUserId,
|
|
1893
|
+
action: exports.RESTORE_AUDIT_ROLLBACK,
|
|
1894
|
+
targetType: exports.RESTORE_AUDIT_TARGET_TYPE,
|
|
1895
|
+
targetId: run.id,
|
|
1896
|
+
meta: {
|
|
1897
|
+
promoted: oldDatabase,
|
|
1898
|
+
parked: parkAs,
|
|
1899
|
+
swappedAt: iso(run.swappedAt),
|
|
1900
|
+
rolledBackAt: iso(now),
|
|
1901
|
+
},
|
|
1902
|
+
},
|
|
1903
|
+
});
|
|
1904
|
+
await this.renameSwap({
|
|
1905
|
+
run,
|
|
1906
|
+
connection,
|
|
1907
|
+
scratchDatabase: parkAs,
|
|
1908
|
+
oldDatabase,
|
|
1909
|
+
actorUserId,
|
|
1910
|
+
rollbackMode: 'retain_database',
|
|
1911
|
+
startedAt: now,
|
|
1912
|
+
}, {
|
|
1913
|
+
parkAs,
|
|
1914
|
+
promote: oldDatabase,
|
|
1915
|
+
catalog,
|
|
1916
|
+
// NEVER. The database being parked is the restore that is being undone,
|
|
1917
|
+
// and an operator who rolled back at 3am may still want to look at it.
|
|
1918
|
+
// The retained-database sweep does not know about it either, which is
|
|
1919
|
+
// correct: it is the operator's to drop.
|
|
1920
|
+
dropParked: false,
|
|
1921
|
+
});
|
|
1922
|
+
this.logger.warn(`Rolled the restore of backup run ${run.id} back: "${oldDatabase}" is live again and ` +
|
|
1923
|
+
`the restored database is parked as "${parkAs}". Exiting so a supervisor can start ` +
|
|
1924
|
+
'a process with a connection pool built against it.');
|
|
1925
|
+
// DELAYED, unlike the restore's: a rollback is fast enough that its HTTP
|
|
1926
|
+
// caller is still holding the connection, and exiting mid-response would
|
|
1927
|
+
// show an operator a network error for an operation that succeeded.
|
|
1928
|
+
this.seam.exitProcess(0, exports.ROLLBACK_EXIT_DELAY_MS);
|
|
1929
|
+
return { outcome: 'renamed', runId: run.id, promoted: oldDatabase, parked: parkAs };
|
|
1930
|
+
}
|
|
1931
|
+
// =========================================================================
|
|
1932
|
+
// Retained-database cleanup
|
|
1933
|
+
// =========================================================================
|
|
1934
|
+
/**
|
|
1935
|
+
* Drops `<live>_old_<ts>` databases whose `oldDatabaseRetentionHours` window
|
|
1936
|
+
* has passed.
|
|
1937
|
+
*
|
|
1938
|
+
* ⚠ ROW-DRIVEN, NOT NAME-DRIVEN, and that is a deliberate refusal. Sweeping
|
|
1939
|
+
* `pg_database` for anything matching the `<live>_old_` prefix would be
|
|
1940
|
+
* self-healing and would also DROP DATABASES THIS APPLICATION NEVER CREATED —
|
|
1941
|
+
* specifically the one an operator makes by hand when they follow #284's
|
|
1942
|
+
* guided command block, which uses exactly that name and which the runbook
|
|
1943
|
+
* tells them to keep until they have verified the restore. An unattended cron
|
|
1944
|
+
* that deletes a full copy of a production database nobody in this system
|
|
1945
|
+
* recorded creating is not a trade worth making for tidiness.
|
|
1946
|
+
*
|
|
1947
|
+
* The cost is honest: if the catalog carry-over failed, the row naming the
|
|
1948
|
+
* displaced database is gone and nothing here will ever drop it. That case
|
|
1949
|
+
* logs CRITICAL at the time and is in the runbook.
|
|
1950
|
+
*
|
|
1951
|
+
* Called from `DatabaseBackupScheduleTask`'s ten-minute tick rather than from
|
|
1952
|
+
* a `@Cron` of its own, for the reason `DbBackupModule` already gives about
|
|
1953
|
+
* retention: a second timer is a second unsynchronised thing acting on the
|
|
1954
|
+
* same subsystem, and a window measured in hours does not need a schedule
|
|
1955
|
+
* finer than the one that already exists.
|
|
1956
|
+
*
|
|
1957
|
+
* @returns how many databases were actually dropped.
|
|
1958
|
+
*/
|
|
1959
|
+
async dropExpiredOldDatabases(policy, now) {
|
|
1960
|
+
const cutoff = new Date(now.getTime() - policy.oldDatabaseRetentionHours * 3_600_000);
|
|
1961
|
+
const candidates = await this.prisma.databaseBackupRun.findMany({
|
|
1962
|
+
where: {
|
|
1963
|
+
restoreOldDb: { not: null },
|
|
1964
|
+
// `swappedAt` and not `restoredAt`: the retention clock starts when the
|
|
1965
|
+
// database was actually displaced. A restore still in flight has a
|
|
1966
|
+
// `restoreOldDb` and a NULL `swappedAt`, and `NULL < cutoff` is never
|
|
1967
|
+
// true — so an in-flight restore's name can never be swept.
|
|
1968
|
+
swappedAt: { lt: cutoff },
|
|
1969
|
+
},
|
|
1970
|
+
select: { id: true, restoreOldDb: true, swappedAt: true },
|
|
1971
|
+
});
|
|
1972
|
+
if (candidates.length === 0)
|
|
1973
|
+
return 0;
|
|
1974
|
+
const connection = this.seam.resolveConnection();
|
|
1975
|
+
let dropped = 0;
|
|
1976
|
+
await this.seam.withAdminConnection(connection, async (client) => {
|
|
1977
|
+
for (const candidate of candidates) {
|
|
1978
|
+
const name = candidate.restoreOldDb;
|
|
1979
|
+
if (name === null)
|
|
1980
|
+
continue;
|
|
1981
|
+
// ⚠ A SEMANTIC GUARD, NOT A SYNTACTIC ONE. `quoteIdentifier` already
|
|
1982
|
+
// makes the statement safe to send; this makes it safe to MEAN. A row
|
|
1983
|
+
// whose `restore_old_db` somehow names the live database (a hand-edited
|
|
1984
|
+
// row, a restored settings blob, a bug) would otherwise have this cron
|
|
1985
|
+
// drop the database the application is serving from.
|
|
1986
|
+
if (name === connection.liveDatabase || name === connection.database) {
|
|
1987
|
+
this.logger.error(`Refusing to drop "${name}" for backup run ${candidate.id}: it is this ` +
|
|
1988
|
+
'deployment\'s live or maintenance database, not a displaced one.');
|
|
1989
|
+
continue;
|
|
1990
|
+
}
|
|
1991
|
+
try {
|
|
1992
|
+
if (!(await (0, admin_connection_util_1.databaseExists)(client, name)))
|
|
1993
|
+
continue;
|
|
1994
|
+
await (0, admin_connection_util_1.dropDatabase)(client, name);
|
|
1995
|
+
dropped += 1;
|
|
1996
|
+
this.logger.warn(`Dropped the retained database "${name}" from the restore of backup run ` +
|
|
1997
|
+
`${candidate.id} (displaced ${iso(candidate.swappedAt)}, past ` +
|
|
1998
|
+
`${policy.oldDatabaseRetentionHours}h). Rolling that restore back now means ` +
|
|
1999
|
+
'restoring an archive, not renaming a database.');
|
|
2000
|
+
}
|
|
2001
|
+
catch (error) {
|
|
2002
|
+
// Per row, so one database that still has a session attached does not
|
|
2003
|
+
// stop the rest. The next tick retries it.
|
|
2004
|
+
this.logger.warn(`Could not drop the retained database "${name}" for backup run ` +
|
|
2005
|
+
`${candidate.id}; the next sweep retries it: ${toError(error).message}`);
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2008
|
+
});
|
|
2009
|
+
return dropped;
|
|
2010
|
+
}
|
|
2011
|
+
// =========================================================================
|
|
2012
|
+
// Row and audit writes
|
|
2013
|
+
// =========================================================================
|
|
2014
|
+
/**
|
|
2015
|
+
* One progress write. SWALLOWS ITS OWN FAILURES.
|
|
2016
|
+
*
|
|
2017
|
+
* The same call the backup heartbeat makes, for the same reason: a transient
|
|
2018
|
+
* write failure — a recycled connection, a brief failover, a lock wait — is
|
|
2019
|
+
* not evidence that a restore which is otherwise going perfectly should be
|
|
2020
|
+
* abandoned. Abandoning a two-hour replay because one status UPDATE failed
|
|
2021
|
+
* would be a self-inflicted outage, and the phase this is reporting on is the
|
|
2022
|
+
* one where nothing has been touched yet anyway.
|
|
2023
|
+
*/
|
|
2024
|
+
async writeRestoreState(runId, data) {
|
|
2025
|
+
try {
|
|
2026
|
+
await this.prisma.databaseBackupRun.update({ where: { id: runId }, data });
|
|
2027
|
+
}
|
|
2028
|
+
catch (error) {
|
|
2029
|
+
this.logger.warn(`Could not write restore progress for backup run ${runId} (the restore ` +
|
|
2030
|
+
`continues): ${toError(error).message}`);
|
|
2031
|
+
}
|
|
2032
|
+
}
|
|
2033
|
+
/** The terminal `failed` write, plus the audit row an operator greps for. */
|
|
2034
|
+
async recordFailure(runId, actorUserId, error) {
|
|
2035
|
+
this.logger.error(`Database restore of backup run ${runId} failed: ${error.message}`);
|
|
2036
|
+
await this.writeRestoreState(runId, {
|
|
2037
|
+
restoreStatus: 'failed',
|
|
2038
|
+
restoreError: error.message,
|
|
2039
|
+
});
|
|
2040
|
+
await this.writeAudit(exports.RESTORE_AUDIT_FAILED, actorUserId, runId, {
|
|
2041
|
+
error: error.message,
|
|
2042
|
+
errorName: error.name,
|
|
2043
|
+
});
|
|
2044
|
+
}
|
|
2045
|
+
/**
|
|
2046
|
+
* One `audit_events` row, in the repository's existing shape
|
|
2047
|
+
* (`UsersService.createAuditEvent`, `MaintenanceModeService.writeAuditEvent`).
|
|
2048
|
+
*
|
|
2049
|
+
* BEST-EFFORT. An audit write that threw inside `executeRestore`'s `try` would
|
|
2050
|
+
* be a logging failure that failed a restore, and inside its `catch` it would
|
|
2051
|
+
* be a logging failure that replaced the real diagnosis.
|
|
2052
|
+
*
|
|
2053
|
+
* ⚠ ROWS WRITTEN BEFORE THE SWAP LAND IN THE DATABASE THAT IS ABOUT TO BE
|
|
2054
|
+
* DISPLACED. That is unavoidable — they are written while it is still the live
|
|
2055
|
+
* database — and it is why the completion row is written afterwards, into the
|
|
2056
|
+
* promoted database, carrying the whole timeline in its `meta`.
|
|
2057
|
+
*/
|
|
2058
|
+
async writeAudit(action, actorUserId, runId, meta) {
|
|
2059
|
+
try {
|
|
2060
|
+
await this.prisma.auditEvent.create({
|
|
2061
|
+
data: {
|
|
2062
|
+
actorUserId,
|
|
2063
|
+
action,
|
|
2064
|
+
targetType: exports.RESTORE_AUDIT_TARGET_TYPE,
|
|
2065
|
+
targetId: runId,
|
|
2066
|
+
meta: meta,
|
|
2067
|
+
},
|
|
2068
|
+
});
|
|
2069
|
+
}
|
|
2070
|
+
catch (error) {
|
|
2071
|
+
this.logger.warn(`Could not write the "${action}" audit row for backup run ${runId}: ` +
|
|
2072
|
+
`${toError(error).message}`);
|
|
2073
|
+
}
|
|
2074
|
+
}
|
|
2075
|
+
/**
|
|
2076
|
+
* Gives the scratch database back after a failure before the swap.
|
|
2077
|
+
*
|
|
2078
|
+
* BEST-EFFORT AND IT NEVER MASKS THE ORIGINAL ERROR — the same contract the
|
|
2079
|
+
* backup engine's partial-object delete has. Whatever broke the restore is
|
|
2080
|
+
* what belongs on the row; "and the cleanup also failed" is a log line.
|
|
2081
|
+
*/
|
|
2082
|
+
async dropScratchDatabase(connection, scratchDatabase) {
|
|
2083
|
+
try {
|
|
2084
|
+
await this.seam.withAdminConnection(connection, async (client) => {
|
|
2085
|
+
await (0, admin_connection_util_1.dropDatabase)(client, scratchDatabase);
|
|
2086
|
+
});
|
|
2087
|
+
this.logger.log(`Dropped the scratch database "${scratchDatabase}" after a failed restore. The live ` +
|
|
2088
|
+
'database was never touched.');
|
|
2089
|
+
}
|
|
2090
|
+
catch (error) {
|
|
2091
|
+
this.logger.warn(`Could not drop the scratch database "${scratchDatabase}" after a failed restore; ` +
|
|
2092
|
+
`it may need dropping by hand: ${toError(error).message}`);
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
2095
|
+
};
|
|
2096
|
+
exports.DatabaseRestoreService = DatabaseRestoreService;
|
|
2097
|
+
exports.DatabaseRestoreService = DatabaseRestoreService = DatabaseRestoreService_1 = __decorate([
|
|
2098
|
+
(0, common_1.Injectable)(),
|
|
2099
|
+
__param(0, (0, common_1.Inject)(index_3.PLATFORM_PRISMA)),
|
|
2100
|
+
__param(2, (0, common_1.Inject)(index_5.STORAGE_PROVIDER)),
|
|
2101
|
+
__param(5, (0, common_1.Inject)(ports_1.DB_BACKUP_MAINTENANCE)),
|
|
2102
|
+
__param(6, (0, common_1.Inject)(ports_1.DB_BACKUP_NOTIFIER)),
|
|
2103
|
+
__param(10, (0, common_1.Optional)()),
|
|
2104
|
+
__param(10, (0, common_1.Inject)(exports.DATABASE_RESTORE_SEAM)),
|
|
2105
|
+
__param(11, (0, common_1.Optional)()),
|
|
2106
|
+
__param(11, (0, common_1.Inject)(backup_target_1.DB_BACKUP_TARGET)),
|
|
2107
|
+
__param(12, (0, common_1.Optional)()),
|
|
2108
|
+
__metadata("design:paramtypes", [Object, index_4.SystemSettingsService, Object, restore_preflight_service_1.DatabaseRestorePreflightService,
|
|
2109
|
+
db_backup_runner_service_1.DatabaseBackupRunnerService, Object, Object, config_1.ConfigService,
|
|
2110
|
+
index_1.JobsService,
|
|
2111
|
+
restore_gate_1.DbBackupRestoreGate, Object, Object, db_backup_events_1.DbBackupEvents])
|
|
2112
|
+
], DatabaseRestoreService);
|
|
2113
|
+
//# sourceMappingURL=database-restore.service.js.map
|