@adonis-agora/durable 1.0.0-rc.2 → 1.0.0-rc.21
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 +204 -0
- package/dist/assets/spa/assets/index-BgoNV3TR.css +1 -0
- package/dist/assets/spa/assets/index-DzXygyDm.js +57 -0
- package/dist/assets/spa/assets/index-DzXygyDm.js.map +1 -0
- package/dist/assets/spa/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/dist/assets/spa/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/assets/spa/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- package/dist/assets/spa/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
- package/dist/assets/spa/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
- package/dist/assets/spa/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
- package/dist/assets/spa/assets/sora-latin-400-normal-CRt88UEn.woff2 +0 -0
- package/dist/assets/spa/assets/sora-latin-400-normal-OW7qkl5a.woff +0 -0
- package/dist/assets/spa/assets/sora-latin-500-normal-01eiPEn0.woff2 +0 -0
- package/dist/assets/spa/assets/sora-latin-500-normal-w58xtEt9.woff +0 -0
- package/dist/assets/spa/assets/sora-latin-600-normal-1_7fyUAY.woff +0 -0
- package/dist/assets/spa/assets/sora-latin-600-normal-Cdg4DaK0.woff2 +0 -0
- package/dist/assets/spa/assets/sora-latin-700-normal-9waGdLWo.woff2 +0 -0
- package/dist/assets/spa/assets/sora-latin-700-normal-BKPfQAnC.woff +0 -0
- package/dist/assets/spa/index.html +2 -8
- package/dist/commands/agora_doctor.d.ts +23 -0
- package/dist/commands/agora_doctor.d.ts.map +1 -0
- package/dist/commands/agora_doctor.js +110 -0
- package/dist/commands/agora_doctor.js.map +1 -0
- package/dist/commands/durable_doctor.d.ts +8 -0
- package/dist/commands/durable_doctor.d.ts.map +1 -0
- package/dist/commands/durable_doctor.js +8 -0
- package/dist/commands/durable_doctor.js.map +1 -0
- package/dist/commands/durable_worker.d.ts +3 -3
- package/dist/commands/durable_worker.js +7 -7
- package/dist/commands/durable_worker.js.map +1 -1
- package/dist/commands/health.d.ts +12 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +34 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/lifecycle_republish.d.ts +8 -9
- package/dist/commands/lifecycle_republish.d.ts.map +1 -1
- package/dist/commands/lifecycle_republish.js +29 -16
- package/dist/commands/lifecycle_republish.js.map +1 -1
- package/dist/commands/main.d.ts +25 -5
- package/dist/commands/main.d.ts.map +1 -1
- package/dist/commands/main.js +54 -7
- package/dist/commands/main.js.map +1 -1
- package/dist/commands/runs.d.ts +9 -16
- package/dist/commands/runs.d.ts.map +1 -1
- package/dist/commands/runs.js +60 -47
- package/dist/commands/runs.js.map +1 -1
- package/dist/commands/runs_bulk.d.ts +17 -0
- package/dist/commands/runs_bulk.d.ts.map +1 -0
- package/dist/commands/runs_bulk.js +76 -0
- package/dist/commands/runs_bulk.js.map +1 -0
- package/dist/commands/runs_cancel.d.ts +15 -0
- package/dist/commands/runs_cancel.d.ts.map +1 -0
- package/dist/commands/runs_cancel.js +39 -0
- package/dist/commands/runs_cancel.js.map +1 -0
- package/dist/commands/runs_continue.d.ts +12 -0
- package/dist/commands/runs_continue.d.ts.map +1 -0
- package/dist/commands/runs_continue.js +28 -0
- package/dist/commands/runs_continue.js.map +1 -0
- package/dist/commands/runs_event.d.ts +13 -0
- package/dist/commands/runs_event.d.ts.map +1 -0
- package/dist/commands/runs_event.js +28 -0
- package/dist/commands/runs_event.js.map +1 -0
- package/dist/commands/runs_fan.d.ts +16 -0
- package/dist/commands/runs_fan.d.ts.map +1 -0
- package/dist/commands/runs_fan.js +58 -0
- package/dist/commands/runs_fan.js.map +1 -0
- package/dist/commands/runs_redispatch.d.ts +14 -0
- package/dist/commands/runs_redispatch.d.ts.map +1 -0
- package/dist/commands/runs_redispatch.js +35 -0
- package/dist/commands/runs_redispatch.js.map +1 -0
- package/dist/commands/runs_replay.d.ts +14 -0
- package/dist/commands/runs_replay.d.ts.map +1 -0
- package/dist/commands/runs_replay.js +38 -0
- package/dist/commands/runs_replay.js.map +1 -0
- package/dist/commands/runs_retry.d.ts +13 -0
- package/dist/commands/runs_retry.d.ts.map +1 -0
- package/dist/commands/runs_retry.js +29 -0
- package/dist/commands/runs_retry.js.map +1 -0
- package/dist/commands/runs_show.d.ts +14 -0
- package/dist/commands/runs_show.d.ts.map +1 -0
- package/dist/commands/runs_show.js +96 -0
- package/dist/commands/runs_show.js.map +1 -0
- package/dist/commands/runs_signal.d.ts +17 -0
- package/dist/commands/runs_signal.d.ts.map +1 -0
- package/dist/commands/runs_signal.js +49 -0
- package/dist/commands/runs_signal.js.map +1 -0
- package/dist/commands/runs_update.d.ts +15 -0
- package/dist/commands/runs_update.d.ts.map +1 -0
- package/dist/commands/runs_update.js +39 -0
- package/dist/commands/runs_update.js.map +1 -0
- package/dist/commands/runs_values.d.ts +15 -0
- package/dist/commands/runs_values.d.ts.map +1 -0
- package/dist/commands/runs_values.js +45 -0
- package/dist/commands/runs_values.js.map +1 -0
- package/dist/commands/schedules.d.ts +18 -0
- package/dist/commands/schedules.d.ts.map +1 -0
- package/dist/commands/schedules.js +70 -0
- package/dist/commands/schedules.js.map +1 -0
- package/dist/commands/schedules_pause.d.ts +16 -0
- package/dist/commands/schedules_pause.d.ts.map +1 -0
- package/dist/commands/schedules_pause.js +40 -0
- package/dist/commands/schedules_pause.js.map +1 -0
- package/dist/commands/schedules_resume.d.ts +8 -0
- package/dist/commands/schedules_resume.d.ts.map +1 -0
- package/dist/commands/schedules_resume.js +8 -0
- package/dist/commands/schedules_resume.js.map +1 -0
- package/dist/commands/schedules_trigger.d.ts +13 -0
- package/dist/commands/schedules_trigger.d.ts.map +1 -0
- package/dist/commands/schedules_trigger.js +32 -0
- package/dist/commands/schedules_trigger.js.map +1 -0
- package/dist/commands/tasks_complete.d.ts +15 -0
- package/dist/commands/tasks_complete.d.ts.map +1 -0
- package/dist/commands/tasks_complete.js +41 -0
- package/dist/commands/tasks_complete.js.map +1 -0
- package/dist/commands/tasks_fail.d.ts +16 -0
- package/dist/commands/tasks_fail.d.ts.map +1 -0
- package/dist/commands/tasks_fail.js +47 -0
- package/dist/commands/tasks_fail.js.map +1 -0
- package/dist/commands/workers.d.ts +11 -0
- package/dist/commands/workers.d.ts.map +1 -0
- package/dist/commands/workers.js +35 -0
- package/dist/commands/workers.js.map +1 -0
- package/dist/commands/workflows_lifecycle.d.ts +12 -0
- package/dist/commands/workflows_lifecycle.d.ts.map +1 -0
- package/dist/commands/workflows_lifecycle.js +37 -0
- package/dist/commands/workflows_lifecycle.js.map +1 -0
- package/dist/configure.d.ts +2 -2
- package/dist/configure.js +2 -2
- package/dist/providers/dashboard_provider.d.ts +57 -54
- package/dist/providers/dashboard_provider.d.ts.map +1 -1
- package/dist/providers/dashboard_provider.js +399 -288
- package/dist/providers/dashboard_provider.js.map +1 -1
- package/dist/providers/durable_provider.d.ts.map +1 -1
- package/dist/providers/durable_provider.js +67 -37
- package/dist/providers/durable_provider.js.map +1 -1
- package/dist/src/commands/console_command.d.ts +82 -0
- package/dist/src/commands/console_command.d.ts.map +1 -0
- package/dist/src/commands/console_command.js +238 -0
- package/dist/src/commands/console_command.js.map +1 -0
- package/dist/src/commands/runs.js +2 -2
- package/dist/src/commands/runs.js.map +1 -1
- package/dist/src/concurrency.d.ts.map +1 -1
- package/dist/src/concurrency.js +1 -0
- package/dist/src/concurrency.js.map +1 -1
- package/dist/src/config_types.d.ts +79 -26
- package/dist/src/config_types.d.ts.map +1 -1
- package/dist/src/dashboard/access_denied_page.d.ts +5 -7
- package/dist/src/dashboard/access_denied_page.d.ts.map +1 -1
- package/dist/src/dashboard/access_denied_page.js +2 -6
- package/dist/src/dashboard/access_denied_page.js.map +1 -1
- package/dist/src/dashboard/audit.d.ts +14 -0
- package/dist/src/dashboard/audit.d.ts.map +1 -0
- package/dist/src/dashboard/audit.js +36 -0
- package/dist/src/dashboard/audit.js.map +1 -0
- package/dist/src/dashboard/console_authorize.d.ts +98 -0
- package/dist/src/dashboard/console_authorize.d.ts.map +1 -0
- package/dist/src/dashboard/console_authorize.js +163 -0
- package/dist/src/dashboard/console_authorize.js.map +1 -0
- package/dist/src/dashboard/console_shell.d.ts +45 -0
- package/dist/src/dashboard/console_shell.d.ts.map +1 -0
- package/dist/src/dashboard/console_shell.js +125 -0
- package/dist/src/dashboard/console_shell.js.map +1 -0
- package/dist/src/dashboard/console_switcher.d.ts +132 -0
- package/dist/src/dashboard/console_switcher.d.ts.map +1 -0
- package/dist/src/dashboard/console_switcher.js +201 -0
- package/dist/src/dashboard/console_switcher.js.map +1 -0
- package/dist/src/dashboard/define_config.d.ts +68 -81
- package/dist/src/dashboard/define_config.d.ts.map +1 -1
- package/dist/src/dashboard/define_config.js +18 -112
- package/dist/src/dashboard/define_config.js.map +1 -1
- package/dist/src/dashboard/dev_tools.d.ts +102 -0
- package/dist/src/dashboard/dev_tools.d.ts.map +1 -0
- package/dist/src/dashboard/dev_tools.js +502 -0
- package/dist/src/dashboard/dev_tools.js.map +1 -0
- package/dist/src/dashboard/diagnostics-recorder.d.ts +1 -1
- package/dist/src/dashboard/diagnostics-recorder.js +1 -1
- package/dist/src/dashboard/gateway-adapter.d.ts +6 -6
- package/dist/src/dashboard/gateway-adapter.d.ts.map +1 -1
- package/dist/src/dashboard/gateway-adapter.js +5 -5
- package/dist/src/dashboard/gateway-adapter.js.map +1 -1
- package/dist/src/dashboard/handlers.d.ts +48 -39
- package/dist/src/dashboard/handlers.d.ts.map +1 -1
- package/dist/src/dashboard/handlers.js +181 -83
- package/dist/src/dashboard/handlers.js.map +1 -1
- package/dist/src/dashboard/index.d.ts +12 -9
- package/dist/src/dashboard/index.d.ts.map +1 -1
- package/dist/src/dashboard/index.js +10 -7
- package/dist/src/dashboard/index.js.map +1 -1
- package/dist/src/dashboard/list-filters.d.ts +27 -0
- package/dist/src/dashboard/list-filters.d.ts.map +1 -0
- package/dist/src/dashboard/list-filters.js +69 -0
- package/dist/src/dashboard/list-filters.js.map +1 -0
- package/dist/src/dashboard/openapi.d.ts.map +1 -1
- package/dist/src/dashboard/openapi.js +127 -52
- package/dist/src/dashboard/openapi.js.map +1 -1
- package/dist/src/dashboard/run-filter.d.ts +18 -15
- package/dist/src/dashboard/run-filter.d.ts.map +1 -1
- package/dist/src/dashboard/run-filter.js +30 -22
- package/dist/src/dashboard/run-filter.js.map +1 -1
- package/dist/src/dashboard/spa.d.ts +26 -1
- package/dist/src/dashboard/spa.d.ts.map +1 -1
- package/dist/src/dashboard/spa.js +9 -2
- package/dist/src/dashboard/spa.js.map +1 -1
- package/dist/src/dashboard/tenant_scope.d.ts +38 -0
- package/dist/src/dashboard/tenant_scope.d.ts.map +1 -0
- package/dist/src/dashboard/tenant_scope.js +166 -0
- package/dist/src/dashboard/tenant_scope.js.map +1 -0
- package/dist/src/define_config.d.ts +27 -12
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +9 -4
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/diagnostics/index.d.ts +11 -0
- package/dist/src/diagnostics/index.d.ts.map +1 -0
- package/dist/src/diagnostics/index.js +6 -0
- package/dist/src/diagnostics/index.js.map +1 -0
- package/dist/src/diagnostics/transport.d.ts +71 -0
- package/dist/src/diagnostics/transport.d.ts.map +1 -0
- package/dist/src/diagnostics/transport.js +188 -0
- package/dist/src/diagnostics/transport.js.map +1 -0
- package/dist/src/diagnostics-bridge.d.ts +2 -1
- package/dist/src/diagnostics-bridge.d.ts.map +1 -1
- package/dist/src/diagnostics-bridge.js +7 -1
- package/dist/src/diagnostics-bridge.js.map +1 -1
- package/dist/src/doctor/agora_doctor.d.ts +116 -0
- package/dist/src/doctor/agora_doctor.d.ts.map +1 -0
- package/dist/src/doctor/agora_doctor.js +685 -0
- package/dist/src/doctor/agora_doctor.js.map +1 -0
- package/dist/src/doctor/checks.d.ts +28 -0
- package/dist/src/doctor/checks.d.ts.map +1 -0
- package/dist/src/doctor/checks.js +288 -0
- package/dist/src/doctor/checks.js.map +1 -0
- package/dist/src/doctor/index.d.ts +9 -0
- package/dist/src/doctor/index.d.ts.map +1 -0
- package/dist/src/doctor/index.js +16 -0
- package/dist/src/doctor/index.js.map +1 -0
- package/dist/src/engine.d.ts +55 -9
- package/dist/src/engine.d.ts.map +1 -1
- package/dist/src/engine.js +333 -84
- package/dist/src/engine.js.map +1 -1
- package/dist/src/errors.d.ts +9 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +13 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/event-trigger-bridge.d.ts +5 -14
- package/dist/src/event-trigger-bridge.d.ts.map +1 -1
- package/dist/src/event-trigger-bridge.js +11 -99
- package/dist/src/event-trigger-bridge.js.map +1 -1
- package/dist/src/index.d.ts +8 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/interfaces.d.ts +53 -9
- package/dist/src/interfaces.d.ts.map +1 -1
- package/dist/src/interfaces.js +8 -0
- package/dist/src/interfaces.js.map +1 -1
- package/dist/src/origin.js +3 -3
- package/dist/src/role_bindings.d.ts +8 -8
- package/dist/src/role_bindings.js +8 -8
- package/dist/src/run-gateway/interface.d.ts +4 -3
- package/dist/src/run-gateway/interface.d.ts.map +1 -1
- package/dist/src/run-gateway/proxy-run-gateway.d.ts +4 -2
- package/dist/src/run-gateway/proxy-run-gateway.d.ts.map +1 -1
- package/dist/src/run-gateway/proxy-run-gateway.js +21 -6
- package/dist/src/run-gateway/proxy-run-gateway.js.map +1 -1
- package/dist/src/run-gateway/run-request-responder.d.ts +6 -1
- package/dist/src/run-gateway/run-request-responder.d.ts.map +1 -1
- package/dist/src/run-gateway/run-request-responder.js +30 -3
- package/dist/src/run-gateway/run-request-responder.js.map +1 -1
- package/dist/src/run-gateway/store-run-gateway.d.ts +4 -4
- package/dist/src/run-gateway/store-run-gateway.d.ts.map +1 -1
- package/dist/src/run-gateway/store-run-gateway.js +4 -4
- package/dist/src/run-gateway/store-run-gateway.js.map +1 -1
- package/dist/src/run-gateway/tenant-auth.d.ts +19 -1
- package/dist/src/run-gateway/tenant-auth.d.ts.map +1 -1
- package/dist/src/run-gateway/tenant-auth.js +133 -0
- package/dist/src/run-gateway/tenant-auth.js.map +1 -1
- package/dist/src/run-gateway/tenant-scoped-gateway.d.ts +10 -0
- package/dist/src/run-gateway/tenant-scoped-gateway.d.ts.map +1 -0
- package/dist/src/run-gateway/tenant-scoped-gateway.js +107 -0
- package/dist/src/run-gateway/tenant-scoped-gateway.js.map +1 -0
- package/dist/src/run-value-facets.d.ts +1 -1
- package/dist/src/run-value-facets.d.ts.map +1 -1
- package/dist/src/run-value-facets.js +5 -1
- package/dist/src/run-value-facets.js.map +1 -1
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +2 -1
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/schedules.d.ts +16 -1
- package/dist/src/schedules.d.ts.map +1 -1
- package/dist/src/schedules.js +29 -4
- package/dist/src/schedules.js.map +1 -1
- package/dist/src/services/main.d.ts +3 -3
- package/dist/src/services/main.js +6 -6
- package/dist/src/services/main.js.map +1 -1
- package/dist/src/singleton-admission.d.ts.map +1 -1
- package/dist/src/singleton-admission.js +2 -0
- package/dist/src/singleton-admission.js.map +1 -1
- package/dist/src/singleton-gate.d.ts +1 -1
- package/dist/src/singleton-gate.d.ts.map +1 -1
- package/dist/src/singleton-gate.js +4 -3
- package/dist/src/singleton-gate.js.map +1 -1
- package/dist/src/sql-schema.d.ts +54 -0
- package/dist/src/sql-schema.d.ts.map +1 -0
- package/dist/src/sql-schema.js +145 -0
- package/dist/src/sql-schema.js.map +1 -0
- package/dist/src/stores/factory.d.ts +6 -0
- package/dist/src/stores/factory.d.ts.map +1 -1
- package/dist/src/stores/factory.js +3 -0
- package/dist/src/stores/factory.js.map +1 -1
- package/dist/src/stores/lucid-mappers.d.ts +3 -0
- package/dist/src/stores/lucid-mappers.d.ts.map +1 -1
- package/dist/src/stores/lucid-mappers.js +12 -0
- package/dist/src/stores/lucid-mappers.js.map +1 -1
- package/dist/src/stores/lucid-pg-hot-path.d.ts +6 -2
- package/dist/src/stores/lucid-pg-hot-path.d.ts.map +1 -1
- package/dist/src/stores/lucid-pg-hot-path.js +7 -3
- package/dist/src/stores/lucid-pg-hot-path.js.map +1 -1
- package/dist/src/stores/lucid-schema.d.ts +18 -4
- package/dist/src/stores/lucid-schema.d.ts.map +1 -1
- package/dist/src/stores/lucid-schema.js +106 -61
- package/dist/src/stores/lucid-schema.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +42 -2
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +450 -231
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/tenancy.d.ts +104 -0
- package/dist/src/tenancy.d.ts.map +1 -0
- package/dist/src/tenancy.js +91 -0
- package/dist/src/tenancy.js.map +1 -0
- package/dist/src/testing/in-memory-state-store.d.ts.map +1 -1
- package/dist/src/testing/in-memory-state-store.js +9 -3
- package/dist/src/testing/in-memory-state-store.js.map +1 -1
- package/dist/src/testing-kit/state-store-conformance.d.ts.map +1 -1
- package/dist/src/testing-kit/state-store-conformance.js +59 -0
- package/dist/src/testing-kit/state-store-conformance.js.map +1 -1
- package/dist/src/testing-kit/transport-conformance.d.ts.map +1 -1
- package/dist/src/testing-kit/transport-conformance.js +5 -1
- package/dist/src/testing-kit/transport-conformance.js.map +1 -1
- package/dist/src/transports/bullmq/bullmq-transport.d.ts +1 -1
- package/dist/src/transports/bullmq/bullmq-transport.d.ts.map +1 -1
- package/dist/src/transports/bullmq/bullmq-transport.js +14 -3
- package/dist/src/transports/bullmq/bullmq-transport.js.map +1 -1
- package/dist/src/transports/db-schema.d.ts +13 -5
- package/dist/src/transports/db-schema.d.ts.map +1 -1
- package/dist/src/transports/db-schema.js +52 -27
- package/dist/src/transports/db-schema.js.map +1 -1
- package/dist/src/transports/db.d.ts +6 -0
- package/dist/src/transports/db.d.ts.map +1 -1
- package/dist/src/transports/db.js +91 -42
- package/dist/src/transports/db.js.map +1 -1
- package/dist/src/transports/factory.d.ts +16 -0
- package/dist/src/transports/factory.d.ts.map +1 -1
- package/dist/src/transports/factory.js +6 -1
- package/dist/src/transports/factory.js.map +1 -1
- package/dist/src/transports/queue.d.ts +2 -2
- package/dist/src/transports/queue.d.ts.map +1 -1
- package/dist/src/transports/queue.js +49 -8
- package/dist/src/transports/queue.js.map +1 -1
- package/dist/src/transports/worker-keys-db.d.ts +5 -0
- package/dist/src/transports/worker-keys-db.d.ts.map +1 -1
- package/dist/src/transports/worker-keys-db.js +10 -8
- package/dist/src/transports/worker-keys-db.js.map +1 -1
- package/dist/src/workflow-discovery.d.ts +1 -1
- package/dist/src/workflow-discovery.d.ts.map +1 -1
- package/dist/src/workflow-discovery.js +4 -7
- package/dist/src/workflow-discovery.js.map +1 -1
- package/dist/src/workflow-events.d.ts +20 -51
- package/dist/src/workflow-events.d.ts.map +1 -1
- package/dist/src/workflow-events.js +12 -30
- package/dist/src/workflow-events.js.map +1 -1
- package/dist/src/workflow-ref.d.ts +1 -1
- package/dist/stubs/config/durable_dashboard.stub +9 -29
- package/dist/stubs/database/migrations/create_durable_tables.stub +12 -2
- package/dist/stubs/database/migrations/create_durable_transport_messages.stub +34 -5
- package/dist/stubs/database/migrations/create_durable_transport_tables.stub +30 -8
- package/dist/stubs/database/migrations/create_durable_transport_worker_keys.stub +24 -2
- package/package.json +25 -7
- package/skills/durable-cluster/SKILL.md +43 -23
- package/skills/durable-reliability/SKILL.md +13 -7
- package/dist/assets/spa/assets/index-70hGzOnT.css +0 -1
- package/dist/assets/spa/assets/index-CJjMAUau.js +0 -16
- package/dist/assets/spa/assets/index-CJjMAUau.js.map +0 -1
- package/dist/commands/retry.d.ts +0 -16
- package/dist/commands/retry.d.ts.map +0 -1
- package/dist/commands/retry.js +0 -34
- package/dist/commands/retry.js.map +0 -1
- package/dist/src/dashboard/auth.d.ts +0 -134
- package/dist/src/dashboard/auth.d.ts.map +0 -1
- package/dist/src/dashboard/auth.js +0 -156
- package/dist/src/dashboard/auth.js.map +0 -1
- package/dist/src/dashboard/login_page.d.ts +0 -36
- package/dist/src/dashboard/login_page.d.ts.map +0 -1
- package/dist/src/dashboard/login_page.js +0 -158
- package/dist/src/dashboard/login_page.js.map +0 -1
- package/dist/src/dashboard/session_cookie.d.ts +0 -45
- package/dist/src/dashboard/session_cookie.d.ts.map +0 -1
- package/dist/src/dashboard/session_cookie.js +0 -97
- package/dist/src/dashboard/session_cookie.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
+
import { assertSchemaSupported, ensureSchemaExists, hasColumn, mysqlLockName, qualify, schemaBuilder, schemaLockKey, validateSchemaName, whereSchema, } from '../sql-schema.js';
|
|
2
3
|
/**
|
|
3
4
|
* The canonical durable table names. They match the cross-adapter snake_case contract the other
|
|
4
5
|
* Agora/aviary stores use (Drizzle is the reference), so a dashboard or migration can be pointed at
|
|
@@ -27,7 +28,7 @@ export const DURABLE_SCHEMA_META_TABLE = 'durable_schema_meta';
|
|
|
27
28
|
* once on its next boot and then goes back to the one-row read. A test pins the SQLite DDL to this
|
|
28
29
|
* number, so a schema change without a bump fails CI.
|
|
29
30
|
*/
|
|
30
|
-
export const DURABLE_SCHEMA_REVISION =
|
|
31
|
+
export const DURABLE_SCHEMA_REVISION = 6;
|
|
31
32
|
const SCHEMA_META_ROW = 'durable';
|
|
32
33
|
/** Advisory-lock key for the Postgres heal (`pg_advisory_xact_lock`): "dura" "ble" as a bigint. */
|
|
33
34
|
const PG_SCHEMA_LOCK_KEY = 7_310_315_633_779_045;
|
|
@@ -65,12 +66,12 @@ function schemaFingerprint(collation) {
|
|
|
65
66
|
.update(`rev=${DURABLE_SCHEMA_REVISION}|collation=${collation ?? ''}`)
|
|
66
67
|
.digest('hex');
|
|
67
68
|
}
|
|
68
|
-
async function readSchemaFingerprint(client) {
|
|
69
|
-
if (!(await client
|
|
69
|
+
async function readSchemaFingerprint(client, schema) {
|
|
70
|
+
if (!(await schemaBuilder(client, schema).hasTable(DURABLE_SCHEMA_META_TABLE)))
|
|
70
71
|
return undefined;
|
|
71
72
|
const q = client
|
|
72
73
|
.query()
|
|
73
|
-
.from(DURABLE_SCHEMA_META_TABLE)
|
|
74
|
+
.from(qualify(schema, DURABLE_SCHEMA_META_TABLE))
|
|
74
75
|
.select('fingerprint')
|
|
75
76
|
.where('id', SCHEMA_META_ROW);
|
|
76
77
|
// A locking read on MySQL: under REPEATABLE READ a plain read could answer from a snapshot older
|
|
@@ -80,9 +81,9 @@ async function readSchemaFingerprint(client) {
|
|
|
80
81
|
const row = (await q.first());
|
|
81
82
|
return row?.fingerprint ?? undefined;
|
|
82
83
|
}
|
|
83
|
-
async function writeSchemaFingerprint(client, fingerprint) {
|
|
84
|
-
if (!(await client
|
|
85
|
-
await client
|
|
84
|
+
async function writeSchemaFingerprint(client, schema, fingerprint) {
|
|
85
|
+
if (!(await schemaBuilder(client, schema).hasTable(DURABLE_SCHEMA_META_TABLE))) {
|
|
86
|
+
await schemaBuilder(client, schema).createTable(DURABLE_SCHEMA_META_TABLE, (table) => {
|
|
86
87
|
table.string('id', 32).primary();
|
|
87
88
|
table.string('fingerprint', 64).notNullable();
|
|
88
89
|
table.bigInteger('applied_at').notNullable();
|
|
@@ -90,7 +91,7 @@ async function writeSchemaFingerprint(client, fingerprint) {
|
|
|
90
91
|
}
|
|
91
92
|
await client
|
|
92
93
|
.insertQuery()
|
|
93
|
-
.table(DURABLE_SCHEMA_META_TABLE)
|
|
94
|
+
.table(qualify(schema, DURABLE_SCHEMA_META_TABLE))
|
|
94
95
|
.knexQuery.insert({ id: SCHEMA_META_ROW, fingerprint, applied_at: Date.now() })
|
|
95
96
|
.onConflict('id')
|
|
96
97
|
.merge();
|
|
@@ -102,17 +103,29 @@ async function writeSchemaFingerprint(client, fingerprint) {
|
|
|
102
103
|
* (its DDL commits implicitly, the lock is the session's) and releases it after. SQLite, and any
|
|
103
104
|
* other dialect, runs `work` without a lock.
|
|
104
105
|
*/
|
|
105
|
-
async function withSchemaLock(connection, logger, work) {
|
|
106
|
+
async function withSchemaLock(connection, schema, logger, work) {
|
|
107
|
+
// With a schema, the lock is that schema's: two installs in two schemas of one database heal
|
|
108
|
+
// independently. Without one, the keys are unchanged.
|
|
106
109
|
switch (connection.dialect.name) {
|
|
107
110
|
case 'postgres':
|
|
108
111
|
await connection.transaction(async (trx) => {
|
|
109
|
-
await trx.rawQuery('select pg_advisory_xact_lock(?)', [
|
|
112
|
+
await trx.rawQuery('select pg_advisory_xact_lock(?)', [
|
|
113
|
+
schemaLockKey(PG_SCHEMA_LOCK_KEY, schema),
|
|
114
|
+
]);
|
|
110
115
|
await work(trx);
|
|
111
116
|
});
|
|
112
117
|
return;
|
|
113
118
|
case 'mysql':
|
|
114
119
|
await connection.transaction(async (trx) => {
|
|
115
|
-
|
|
120
|
+
// The lock is named after the database the tables are in: the configured one, else the
|
|
121
|
+
// connection's.
|
|
122
|
+
const lockName = schema
|
|
123
|
+
? { sql: '?', bindings: [mysqlLockName('durable_schema:', schema)] }
|
|
124
|
+
: { sql: "concat('durable_schema:', database())", bindings: [] };
|
|
125
|
+
const result = (await trx.rawQuery(`select get_lock(${lockName.sql}, ?) as got`, [
|
|
126
|
+
...lockName.bindings,
|
|
127
|
+
MYSQL_SCHEMA_LOCK_TIMEOUT_S,
|
|
128
|
+
]));
|
|
116
129
|
const got = Number(result[0]?.[0]?.got) === 1;
|
|
117
130
|
if (!got) {
|
|
118
131
|
logger.warn(`@adonis-agora/durable: waited ${MYSQL_SCHEMA_LOCK_TIMEOUT_S}s for the durable schema lock; checking the schema without it.`);
|
|
@@ -123,7 +136,7 @@ async function withSchemaLock(connection, logger, work) {
|
|
|
123
136
|
finally {
|
|
124
137
|
if (got) {
|
|
125
138
|
await trx
|
|
126
|
-
.rawQuery(
|
|
139
|
+
.rawQuery(`select release_lock(${lockName.sql})`, lockName.bindings)
|
|
127
140
|
.catch(() => undefined);
|
|
128
141
|
}
|
|
129
142
|
}
|
|
@@ -155,7 +168,7 @@ function repairWarning(repairs) {
|
|
|
155
168
|
].join(' ');
|
|
156
169
|
}
|
|
157
170
|
/**
|
|
158
|
-
* Does an index with this name exist in the connection's current schema? Returns `null` for
|
|
171
|
+
* Does an index with this name exist in `schema` (the connection's current schema when unset)? Returns `null` for
|
|
159
172
|
* dialects outside the store's three declared targets (SQLite / Postgres / MySQL), which the
|
|
160
173
|
* caller handles by falling back to the legacy best-effort create.
|
|
161
174
|
*
|
|
@@ -167,15 +180,11 @@ function repairWarning(repairs) {
|
|
|
167
180
|
* catalog `SELECT` can never fail that way, so the repair never touches the database unless the
|
|
168
181
|
* index is genuinely missing.
|
|
169
182
|
*/
|
|
170
|
-
async function indexExists(connection, indexName) {
|
|
183
|
+
async function indexExists(connection, schema, indexName) {
|
|
171
184
|
switch (connection.dialect.name) {
|
|
172
185
|
case 'postgres': {
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
.from('pg_indexes')
|
|
176
|
-
.where('indexname', indexName)
|
|
177
|
-
.andWhereRaw('schemaname = current_schema()')
|
|
178
|
-
.limit(1);
|
|
186
|
+
const q = connection.query().from('pg_indexes').where('indexname', indexName);
|
|
187
|
+
const rows = await whereSchema(q, connection, 'schemaname', schema).limit(1);
|
|
179
188
|
return rows.length > 0;
|
|
180
189
|
}
|
|
181
190
|
case 'sqlite3':
|
|
@@ -190,12 +199,11 @@ async function indexExists(connection, indexName) {
|
|
|
190
199
|
return rows.length > 0;
|
|
191
200
|
}
|
|
192
201
|
case 'mysql': {
|
|
193
|
-
const
|
|
202
|
+
const q = connection
|
|
194
203
|
.query()
|
|
195
204
|
.from('information_schema.statistics')
|
|
196
|
-
.where('index_name', indexName)
|
|
197
|
-
|
|
198
|
-
.limit(1);
|
|
205
|
+
.where('index_name', indexName);
|
|
206
|
+
const rows = await whereSchema(q, connection, 'table_schema', schema).limit(1);
|
|
199
207
|
return rows.length > 0;
|
|
200
208
|
}
|
|
201
209
|
default:
|
|
@@ -222,6 +230,9 @@ async function indexExists(connection, indexName) {
|
|
|
222
230
|
* prefer the published migration (`node ace configure @adonis-agora/durable`); this helper is for standalone
|
|
223
231
|
* use, tests, and `ensureSchema`.
|
|
224
232
|
*
|
|
233
|
+
* Pass `options.schema` to put the tables in their own database schema (created when missing): every
|
|
234
|
+
* statement names it, on any connection. It must match the store's `schema`.
|
|
235
|
+
*
|
|
225
236
|
* Pass `connectionName` to provision the tables on a dedicated Lucid connection — it must match the
|
|
226
237
|
* connection the store reads/writes on, or `ensureSchema` would create the tables where the store
|
|
227
238
|
* never looks. Omit it to use the `Database` default connection.
|
|
@@ -233,26 +244,31 @@ async function indexExists(connection, indexName) {
|
|
|
233
244
|
*/
|
|
234
245
|
export async function createDurableTables(db, connectionName, options = {}) {
|
|
235
246
|
const connection = db.connection(connectionName);
|
|
247
|
+
const schema = validateSchemaName(options.schema, 'createDurableTables');
|
|
248
|
+
assertSchemaSupported(connection, schema, 'createDurableTables');
|
|
236
249
|
const logger = options.logger ?? console;
|
|
237
250
|
const collation = connection.dialect.name === 'mysql' ? configuredCollation(connection, options) : undefined;
|
|
238
251
|
const expected = schemaFingerprint(collation);
|
|
239
252
|
// The steady-state boot: one catalog probe and one PK read, no per-table checks.
|
|
240
|
-
if (!options.force && (await readSchemaFingerprint(connection)) === expected)
|
|
253
|
+
if (!options.force && (await readSchemaFingerprint(connection, schema)) === expected)
|
|
241
254
|
return;
|
|
242
|
-
|
|
255
|
+
// Outside the lock's transaction: a failed CREATE SCHEMA would abort it.
|
|
256
|
+
await ensureSchemaExists(connection, schema);
|
|
257
|
+
await withSchemaLock(connection, schema, logger, async (client) => {
|
|
243
258
|
// A sibling may have healed while this process waited for the lock.
|
|
244
|
-
if (!options.force && (await readSchemaFingerprint(client)) === expected)
|
|
259
|
+
if (!options.force && (await readSchemaFingerprint(client, schema)) === expected)
|
|
245
260
|
return;
|
|
246
|
-
await healDurableTables(client, collation, logger);
|
|
247
|
-
await writeSchemaFingerprint(client, expected);
|
|
261
|
+
await healDurableTables(client, schema, collation, logger);
|
|
262
|
+
await writeSchemaFingerprint(client, schema, expected);
|
|
248
263
|
});
|
|
249
264
|
}
|
|
250
265
|
/** The additive check-and-repair behind {@link createDurableTables}, on one client (or transaction). */
|
|
251
|
-
async function healDurableTables(client, collation, logger) {
|
|
266
|
+
async function healDurableTables(client, schema, collation, logger) {
|
|
252
267
|
// Knex's schema builder is stateful — operations chained on one instance run together. Take a FRESH
|
|
253
268
|
// `client.schema` for every hasTable/createTable so each DDL statement executes exactly once, all on
|
|
254
|
-
// the store's own connection (or the lock-holding transaction).
|
|
255
|
-
const conn = () => client
|
|
269
|
+
// the store's own connection (or the lock-holding transaction), scoped to the configured schema.
|
|
270
|
+
const conn = () => schemaBuilder(client, schema);
|
|
271
|
+
const columnExists = (table, column) => hasColumn(client, schema, table, column);
|
|
256
272
|
const isMysql = client.dialect.name === 'mysql';
|
|
257
273
|
// MySQL: create new tables with the configured collation (CONVERT below aligns existing ones).
|
|
258
274
|
const charset = collation?.split('_')[0];
|
|
@@ -271,7 +287,7 @@ async function healDurableTables(client, collation, logger) {
|
|
|
271
287
|
// best-effort path stays — still transaction-unsafe, but only outside the store's declared
|
|
272
288
|
// targets.
|
|
273
289
|
const ensureIndex = async (table, columns, indexName) => {
|
|
274
|
-
const known = await indexExists(client, indexName);
|
|
290
|
+
const known = await indexExists(client, schema, indexName);
|
|
275
291
|
if (known === true)
|
|
276
292
|
return;
|
|
277
293
|
if (known === null) {
|
|
@@ -307,9 +323,13 @@ async function healDurableTables(client, collation, logger) {
|
|
|
307
323
|
table.integer('priority');
|
|
308
324
|
table.text('awaiting_decision_task_id');
|
|
309
325
|
table.bigInteger('wake_requested_at');
|
|
326
|
+
table.string('tenant_id');
|
|
327
|
+
table.string('tenant_kind');
|
|
310
328
|
table.bigInteger('created_at').notNullable();
|
|
311
329
|
table.bigInteger('updated_at').notNullable();
|
|
312
330
|
table.index(['status'], 'durable_runs_status_idx');
|
|
331
|
+
// Tenancy: a tenant's runs, newest first.
|
|
332
|
+
table.index(['tenant_id', 'created_at'], 'durable_runs_tenant_idx');
|
|
313
333
|
table.index(['status', 'wake_at'], 'durable_runs_due_idx');
|
|
314
334
|
table.index(['status', 'wake_requested_at'], 'durable_runs_wake_requested_idx');
|
|
315
335
|
// Worker-pool partition: scopes the poll/recovery queries (namespace + status + createdAt).
|
|
@@ -323,14 +343,14 @@ async function healDurableTables(client, collation, logger) {
|
|
|
323
343
|
// Auto-migrate an older runs table by adding any columns introduced after its creation. Each is
|
|
324
344
|
// applied independently so a table missing several catches up. Mirrors the in-place pattern other
|
|
325
345
|
// adapters use; new columns are nullable / carry a DEFAULT so existing rows read back unchanged.
|
|
326
|
-
if (!(await
|
|
346
|
+
if (!(await columnExists(DURABLE_TABLES.runs, 'priority'))) {
|
|
327
347
|
// Nullable (no default) so existing rows read back as "unprioritised" and the FIFO path is unchanged.
|
|
328
348
|
await conn().alterTable(DURABLE_TABLES.runs, (table) => {
|
|
329
349
|
table.integer('priority');
|
|
330
350
|
});
|
|
331
351
|
repairs.push(`${DURABLE_TABLES.runs}.priority`);
|
|
332
352
|
}
|
|
333
|
-
if (!(await
|
|
353
|
+
if (!(await columnExists(DURABLE_TABLES.runs, 'namespace'))) {
|
|
334
354
|
// DEFAULT 'default' so every pre-namespace row reads back in the reserved 'default' partition —
|
|
335
355
|
// byte-identical behavior for a single-pool deploy that adds the column.
|
|
336
356
|
await conn().alterTable(DURABLE_TABLES.runs, (table) => {
|
|
@@ -339,14 +359,14 @@ async function healDurableTables(client, collation, logger) {
|
|
|
339
359
|
});
|
|
340
360
|
repairs.push(`${DURABLE_TABLES.runs}.namespace`);
|
|
341
361
|
}
|
|
342
|
-
if (!(await
|
|
362
|
+
if (!(await columnExists(DURABLE_TABLES.runs, 'origin'))) {
|
|
343
363
|
// Origin attribution wave: nullable, so an app-own/legacy run reads back with no origin.
|
|
344
364
|
await conn().alterTable(DURABLE_TABLES.runs, (table) => {
|
|
345
365
|
table.string('origin');
|
|
346
366
|
});
|
|
347
367
|
repairs.push(`${DURABLE_TABLES.runs}.origin`);
|
|
348
368
|
}
|
|
349
|
-
if (!(await
|
|
369
|
+
if (!(await columnExists(DURABLE_TABLES.runs, 'awaiting_decision_task_id'))) {
|
|
350
370
|
// Remote-turn decision marker (multi-instance decisions): nullable, so an existing run reads back
|
|
351
371
|
// as "not awaiting a dispatched turn". TEXT: it embeds the run id plus a UUID.
|
|
352
372
|
await conn().alterTable(DURABLE_TABLES.runs, (table) => {
|
|
@@ -354,7 +374,7 @@ async function healDurableTables(client, collation, logger) {
|
|
|
354
374
|
});
|
|
355
375
|
repairs.push(`${DURABLE_TABLES.runs}.awaiting_decision_task_id`);
|
|
356
376
|
}
|
|
357
|
-
if (!(await
|
|
377
|
+
if (!(await columnExists(DURABLE_TABLES.runs, 'wake_requested_at'))) {
|
|
358
378
|
// Refused-wake marker (a wake that found another instance's lease): nullable, so an existing
|
|
359
379
|
// run reads back as "no turn requested".
|
|
360
380
|
await conn().alterTable(DURABLE_TABLES.runs, (table) => {
|
|
@@ -363,6 +383,15 @@ async function healDurableTables(client, collation, logger) {
|
|
|
363
383
|
});
|
|
364
384
|
repairs.push(`${DURABLE_TABLES.runs}.wake_requested_at`);
|
|
365
385
|
}
|
|
386
|
+
if (!(await columnExists(DURABLE_TABLES.runs, 'tenant_id'))) {
|
|
387
|
+
// Tenancy: nullable, so an existing run reads back with no tenant.
|
|
388
|
+
await conn().alterTable(DURABLE_TABLES.runs, (table) => {
|
|
389
|
+
table.string('tenant_id');
|
|
390
|
+
table.string('tenant_kind');
|
|
391
|
+
table.index(['tenant_id', 'created_at'], 'durable_runs_tenant_idx');
|
|
392
|
+
});
|
|
393
|
+
repairs.push(`${DURABLE_TABLES.runs}.tenant_id`);
|
|
394
|
+
}
|
|
366
395
|
// Index-only repair: the dashboard's default (unfiltered) listing orders by created_at DESC —
|
|
367
396
|
// without this a page load over a large table is a full sort.
|
|
368
397
|
await ensureIndex(DURABLE_TABLES.runs, ['created_at'], 'durable_runs_created_idx');
|
|
@@ -397,7 +426,7 @@ async function healDurableTables(client, collation, logger) {
|
|
|
397
426
|
});
|
|
398
427
|
}
|
|
399
428
|
else {
|
|
400
|
-
if (!(await
|
|
429
|
+
if (!(await columnExists(DURABLE_TABLES.checkpoints, 'parallel_group'))) {
|
|
401
430
|
// Auto-migrate an older checkpoints table: add the nullable `parallel_group` column in place.
|
|
402
431
|
// Nullable (no default) so a legacy (non-parallel) checkpoint reads back untagged.
|
|
403
432
|
await conn().alterTable(DURABLE_TABLES.checkpoints, (table) => {
|
|
@@ -405,7 +434,7 @@ async function healDurableTables(client, collation, logger) {
|
|
|
405
434
|
});
|
|
406
435
|
repairs.push(`${DURABLE_TABLES.checkpoints}.parallel_group`);
|
|
407
436
|
}
|
|
408
|
-
if (!(await
|
|
437
|
+
if (!(await columnExists(DURABLE_TABLES.checkpoints, 'last_heartbeat_at'))) {
|
|
409
438
|
// Heartbeat-persistence wave: nullable, so a step whose handler never beats reads back with
|
|
410
439
|
// no liveness claim (absent ≠ silent-since-epoch).
|
|
411
440
|
await conn().alterTable(DURABLE_TABLES.checkpoints, (table) => {
|
|
@@ -416,7 +445,7 @@ async function healDurableTables(client, collation, logger) {
|
|
|
416
445
|
// not the statement count.
|
|
417
446
|
repairs.push(`${DURABLE_TABLES.checkpoints}.last_heartbeat_at`, `${DURABLE_TABLES.checkpoints}.heartbeat_progress`);
|
|
418
447
|
}
|
|
419
|
-
if (!(await
|
|
448
|
+
if (!(await columnExists(DURABLE_TABLES.checkpoints, 'queue'))) {
|
|
420
449
|
// Durable flow-control release: the admitted queue is persisted on the pending checkpoint so
|
|
421
450
|
// ANY instance receiving the result can free the slot. Nullable — a non-queued step reads back
|
|
422
451
|
// with no slot to release.
|
|
@@ -456,7 +485,7 @@ async function healDurableTables(client, collation, logger) {
|
|
|
456
485
|
});
|
|
457
486
|
}
|
|
458
487
|
else {
|
|
459
|
-
if (!(await
|
|
488
|
+
if (!(await columnExists(DURABLE_TABLES.signalWaiters, 'parallel_group'))) {
|
|
460
489
|
// Auto-migrate an older signal_waiters table: add the nullable `parallel_group` column in
|
|
461
490
|
// place. Nullable (no default) so a legacy (non-fan) waiter reads back untagged and the await
|
|
462
491
|
// is unchanged.
|
|
@@ -486,11 +515,12 @@ async function healDurableTables(client, collation, logger) {
|
|
|
486
515
|
[DURABLE_TABLES.signalWaiters, 'durable_signal_waiters_token_prefix_idx'],
|
|
487
516
|
[DURABLE_TABLES.bufferedSignals, 'durable_buffered_signals_token_prefix_idx'],
|
|
488
517
|
]) {
|
|
489
|
-
if (await indexExists(client, indexName))
|
|
518
|
+
if (await indexExists(client, schema, indexName))
|
|
490
519
|
continue;
|
|
520
|
+
// The index lands in its table's schema: `create index "i" on "s"."t"`.
|
|
491
521
|
await client.rawQuery('create index ?? on ?? (?? varchar_pattern_ops)', [
|
|
492
522
|
indexName,
|
|
493
|
-
table,
|
|
523
|
+
qualify(schema, table),
|
|
494
524
|
'token',
|
|
495
525
|
]);
|
|
496
526
|
if (!created.has(table))
|
|
@@ -525,19 +555,29 @@ async function healDurableTables(client, collation, logger) {
|
|
|
525
555
|
table.text('tags', 'longtext');
|
|
526
556
|
table.text('spec', 'longtext').notNullable();
|
|
527
557
|
table.text('state', 'longtext').notNullable();
|
|
558
|
+
table.string('tenant_id');
|
|
559
|
+
table.string('tenant_kind');
|
|
528
560
|
table.bigInteger('created_at').notNullable();
|
|
529
561
|
table.bigInteger('updated_at').notNullable();
|
|
530
562
|
// The worker tick's "due by T" scan: `paused = false AND next_fire_at <= T`.
|
|
531
563
|
table.index(['paused', 'next_fire_at'], 'durable_schedules_due_idx');
|
|
532
564
|
});
|
|
533
565
|
}
|
|
566
|
+
else if (!(await columnExists(DURABLE_TABLES.schedules, 'tenant_id'))) {
|
|
567
|
+
// Tenancy: nullable, so an existing schedule (and every run it fires) has no tenant.
|
|
568
|
+
await conn().alterTable(DURABLE_TABLES.schedules, (table) => {
|
|
569
|
+
table.string('tenant_id');
|
|
570
|
+
table.string('tenant_kind');
|
|
571
|
+
});
|
|
572
|
+
repairs.push(`${DURABLE_TABLES.schedules}.tenant_id`);
|
|
573
|
+
}
|
|
534
574
|
// ONE warning for the whole call, listing every column added, or none at all. Not one per ALTER:
|
|
535
575
|
// an operator needs to know their schema was behind and by what, and a burst of lines is easier to
|
|
536
576
|
// lose than a single one.
|
|
537
577
|
if (isMysql) {
|
|
538
|
-
repairs.push(...(await widenMysqlJsonColumns(client)));
|
|
578
|
+
repairs.push(...(await widenMysqlJsonColumns(client, schema)));
|
|
539
579
|
if (collation && charset) {
|
|
540
|
-
repairs.push(...(await alignMysqlCollation(client, charset, collation, logger)));
|
|
580
|
+
repairs.push(...(await alignMysqlCollation(client, schema, charset, collation, logger)));
|
|
541
581
|
}
|
|
542
582
|
}
|
|
543
583
|
if (repairs.length > 0) {
|
|
@@ -550,22 +590,22 @@ async function healDurableTables(client, collation, logger) {
|
|
|
550
590
|
* since MySQL rebuilds the table for each; a table already widened is not touched. Returns the
|
|
551
591
|
* columns it changed.
|
|
552
592
|
*/
|
|
553
|
-
async function widenMysqlJsonColumns(client) {
|
|
554
|
-
return widenMysqlLongtextColumns(client, DURABLE_JSON_COLUMNS);
|
|
593
|
+
async function widenMysqlJsonColumns(client, schema) {
|
|
594
|
+
return widenMysqlLongtextColumns(client, DURABLE_JSON_COLUMNS, schema);
|
|
555
595
|
}
|
|
556
596
|
/**
|
|
557
597
|
* MySQL: `MODIFY` to `longtext` every column of `spec` that exists and isn't `longtext` yet, one
|
|
558
598
|
* `ALTER` per table. Shared by the store schema and the db transport's (`createDurableTransportTables`).
|
|
559
599
|
* Returns the columns it changed.
|
|
560
600
|
*/
|
|
561
|
-
export async function widenMysqlLongtextColumns(client, spec) {
|
|
601
|
+
export async function widenMysqlLongtextColumns(client, spec, schema) {
|
|
562
602
|
const tables = Object.keys(spec);
|
|
563
|
-
const
|
|
603
|
+
const q = client
|
|
564
604
|
.query()
|
|
565
605
|
.from('information_schema.columns')
|
|
566
606
|
.select('table_name as t', 'column_name as c', 'data_type as d')
|
|
567
|
-
.
|
|
568
|
-
|
|
607
|
+
.whereIn('table_name', tables);
|
|
608
|
+
const rows = (await whereSchema(q, client, 'table_schema', schema));
|
|
569
609
|
const widened = [];
|
|
570
610
|
for (const [table, columns] of Object.entries(spec)) {
|
|
571
611
|
const narrow = columns.columns.filter((column) => {
|
|
@@ -577,7 +617,7 @@ export async function widenMysqlLongtextColumns(client, spec) {
|
|
|
577
617
|
const modify = narrow
|
|
578
618
|
.map((column) => `modify \`${column}\` longtext ${columns.notNull?.includes(column) ? 'not null' : 'null'}`)
|
|
579
619
|
.join(', ');
|
|
580
|
-
await client.rawQuery(`alter table
|
|
620
|
+
await client.rawQuery(`alter table ?? ${modify}`, [qualify(schema, table)]);
|
|
581
621
|
widened.push(...narrow.map((column) => `${table}.${column} (longtext)`));
|
|
582
622
|
}
|
|
583
623
|
return widened;
|
|
@@ -587,20 +627,20 @@ export async function widenMysqlLongtextColumns(client, spec) {
|
|
|
587
627
|
* version, or before the option was set, carry the server default). A failed `CONVERT` is warned and
|
|
588
628
|
* left for the next forced check rather than failing the boot. Returns the tables it converted.
|
|
589
629
|
*/
|
|
590
|
-
async function alignMysqlCollation(client, charset, collation, logger) {
|
|
630
|
+
async function alignMysqlCollation(client, schema, charset, collation, logger) {
|
|
591
631
|
const tables = [...Object.values(DURABLE_TABLES), DURABLE_SCHEMA_META_TABLE];
|
|
592
|
-
const
|
|
632
|
+
const q = client
|
|
593
633
|
.query()
|
|
594
634
|
.from('information_schema.tables')
|
|
595
635
|
.select('table_name as t', 'table_collation as c')
|
|
596
|
-
.
|
|
597
|
-
|
|
636
|
+
.whereIn('table_name', tables);
|
|
637
|
+
const rows = (await whereSchema(q, client, 'table_schema', schema));
|
|
598
638
|
const converted = [];
|
|
599
639
|
for (const row of rows) {
|
|
600
640
|
if (row.c == null || row.c === collation)
|
|
601
641
|
continue;
|
|
602
642
|
try {
|
|
603
|
-
await client.rawQuery(`alter table
|
|
643
|
+
await client.rawQuery(`alter table ?? convert to character set ${charset} collate ${collation}`, [qualify(schema, row.t)]);
|
|
604
644
|
converted.push(`${row.t} (collation ${collation})`);
|
|
605
645
|
}
|
|
606
646
|
catch (err) {
|
|
@@ -609,9 +649,14 @@ async function alignMysqlCollation(client, charset, collation, logger) {
|
|
|
609
649
|
}
|
|
610
650
|
return converted;
|
|
611
651
|
}
|
|
612
|
-
/**
|
|
613
|
-
|
|
614
|
-
|
|
652
|
+
/**
|
|
653
|
+
* Drop every durable table (reverse FK order), in `options.schema` when set (the schema itself is
|
|
654
|
+
* left). Used by tests and migration `down`.
|
|
655
|
+
*/
|
|
656
|
+
export async function dropDurableTables(db, connectionName, options = {}) {
|
|
657
|
+
const schema = validateSchemaName(options.schema, 'dropDurableTables');
|
|
658
|
+
assertSchemaSupported(db.connection(connectionName), schema, 'dropDurableTables');
|
|
659
|
+
const conn = () => schemaBuilder(db.connection(connectionName), schema);
|
|
615
660
|
await conn().dropTableIfExists(DURABLE_SCHEMA_META_TABLE);
|
|
616
661
|
await conn().dropTableIfExists(DURABLE_TABLES.schedules);
|
|
617
662
|
await conn().dropTableIfExists(DURABLE_TABLES.bufferedEvents);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucid-schema.js","sourceRoot":"","sources":["../../../src/stores/lucid-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucid-schema.js","sourceRoot":"","sources":["../../../src/stores/lucid-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,12 @@ export interface LucidStateStoreOptions {
|
|
|
27
27
|
* Default off. Ignored on other dialects.
|
|
28
28
|
*/
|
|
29
29
|
preparedStatements?: boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The database schema the durable tables live in (a database on MySQL). Every statement the store
|
|
32
|
+
* issues names it, so the connection's own default is left alone; `ensureSchema` creates it. Omit
|
|
33
|
+
* for the connection's current schema. Not supported on SQLite (the constructor throws).
|
|
34
|
+
*/
|
|
35
|
+
schema?: string | undefined;
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
32
38
|
* A production-grade, persistent `StateStore` backed by AdonisJS **Lucid** (Knex). Runs, checkpoints,
|
|
@@ -45,6 +51,12 @@ export declare class LucidStateStore implements StateStore {
|
|
|
45
51
|
private readonly options;
|
|
46
52
|
/** The namespace run reads are fenced to, or undefined for the operator view. */
|
|
47
53
|
private readonly scopeNamespace;
|
|
54
|
+
/** The schema the tables live in, or undefined for the connection's current one. */
|
|
55
|
+
private readonly schema;
|
|
56
|
+
/** The durable table names, qualified with {@link schema}, for the query builder. */
|
|
57
|
+
private readonly t;
|
|
58
|
+
/** The Postgres hot path's statements over {@link t}. */
|
|
59
|
+
private readonly sql;
|
|
48
60
|
constructor(db: Database, options?: LucidStateStoreOptions);
|
|
49
61
|
/**
|
|
50
62
|
* A store over the same `Database` whose run reads are confined to `scope.namespace` (see
|
|
@@ -59,12 +71,40 @@ export declare class LucidStateStore implements StateStore {
|
|
|
59
71
|
private client;
|
|
60
72
|
/**
|
|
61
73
|
* The Postgres hot path (see `lucid-pg-hot-path.ts`): the statements a turn and a step result run
|
|
62
|
-
* on every step, as constant SQL. `undefined` on any other dialect,
|
|
63
|
-
* Resolved per call, like {@link client}
|
|
74
|
+
* on every step, as constant SQL. `undefined` on any other dialect, with Lucid's `debug` on, or
|
|
75
|
+
* under a (global) transaction. Resolved per call, like {@link client}.
|
|
64
76
|
*/
|
|
65
77
|
private hot;
|
|
78
|
+
/**
|
|
79
|
+
* The hot reads with explicit column lists: each table's base columns plus the later-wave ones it
|
|
80
|
+
* has, probed once (an older schema without them keeps working) and again after this store's own
|
|
81
|
+
* {@link ensureSchema}. A column another process adds later is not read until the next probe, and a
|
|
82
|
+
* statement already prepared keeps its shape.
|
|
83
|
+
*/
|
|
84
|
+
private hotReadStatements;
|
|
85
|
+
private hotReads;
|
|
66
86
|
/** Idempotently provision the durable tables (called on boot when `autoSchema` is on). */
|
|
67
87
|
ensureSchema(): Promise<void>;
|
|
88
|
+
/** The database schema the store's tables live in, or `undefined` for the connection's current one. */
|
|
89
|
+
get schemaName(): string | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* What `agora:doctor` reports for a store with a `schema`: whether the schema exists, which durable
|
|
92
|
+
* tables are missing from it, which of `optionalTables` (tables other pieces create when they first
|
|
93
|
+
* run, like the db transport's) are in it, and whether the connection can write there (a probe row
|
|
94
|
+
* inserted into the schema marker table, in a transaction that is rolled back).
|
|
95
|
+
*/
|
|
96
|
+
inspectSchema(optionalTables?: string[]): Promise<{
|
|
97
|
+
schema: string | undefined;
|
|
98
|
+
schemaExists: boolean;
|
|
99
|
+
missingTables: string[];
|
|
100
|
+
optionalPresent: string[];
|
|
101
|
+
writeError: string | undefined;
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* Insert the run, or reject with {@link RunAlreadyExistsError} when its id is taken. The insert
|
|
105
|
+
* writes nothing on a conflict instead of failing, so a run that already exists never aborts a
|
|
106
|
+
* surrounding transaction (an app's test `wrapInGlobalTransaction`, on Postgres).
|
|
107
|
+
*/
|
|
68
108
|
createRun(run: WorkflowRun): Promise<void>;
|
|
69
109
|
/**
|
|
70
110
|
* Run `write` in a transaction only when `patch` needs one: a terminal settle reads the run's tags
|