@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-adapter.js","sourceRoot":"","sources":["../../../src/dashboard/gateway-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gateway-adapter.js","sourceRoot":"","sources":["../../../src/dashboard/gateway-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,19 +16,15 @@ import { type FanPage, type FanPageQuery, type RunDetail, type RunDetailOptions
|
|
|
16
16
|
* with no HTTP server. The provider adapts an AdonisJS `HttpContext` to these
|
|
17
17
|
* shapes.
|
|
18
18
|
*
|
|
19
|
-
* `
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* `workers`, `topology`, `retryWithInputRun`, `continueRun`, `runValues`, and `bulkAction` are
|
|
23
|
-
* additions that give the new `@adonis-agora/durable-dashboard` React SPA parity with
|
|
24
|
-
* `@dudousxd/nestjs-durable-dashboard`'s `DurableApiController` (fix-and-replay, bulk retry/cancel,
|
|
25
|
-
* breakpoint continue, full worker heartbeats, topology badge, value pickers). The SSE `runs/:id/stream` route is wired directly in
|
|
19
|
+
* The list routes (`GET /runs`, `/runs/:id/fans/:group`, `/schedules`) speak the
|
|
20
|
+
* `@adonis-agora/filter` wire format: `filter[...]`, `sort`, `page`/`size`, and a
|
|
21
|
+
* `{ data, meta }` answer. The SSE `runs/:id/stream` route is wired directly in
|
|
26
22
|
* `providers/dashboard_provider.ts` since streaming needs the raw HTTP response, not a JSON `ApiResponse`.
|
|
27
23
|
*/
|
|
28
24
|
/**
|
|
29
25
|
* The bounded read/control surface the JSON handlers drive — declared STRUCTURALLY (a port), not by
|
|
30
26
|
* importing the concrete `WorkflowEngine` class, so the same handlers serve BOTH durable topologies
|
|
31
|
-
* (design §8): a store
|
|
27
|
+
* (design §8): a store topology passes an adapter over the real {@link
|
|
32
28
|
* import('../engine.js').WorkflowEngine} (`storeDashboardEngine`); a store-less `tenant` pod passes an
|
|
33
29
|
* adapter over its {@link import('../run-gateway/interface.js').RunGateway} (`gatewayDashboardEngine`).
|
|
34
30
|
* Store presence is therefore invisible to the handlers. Mirrors the `RunGatewayEngine` port pattern
|
|
@@ -143,8 +139,8 @@ export interface Deps {
|
|
|
143
139
|
export interface ApiRequest {
|
|
144
140
|
/** Route params, e.g. `{ id: 'run-1' }`. */
|
|
145
141
|
params: Record<string, string | undefined>;
|
|
146
|
-
/** Decoded query string
|
|
147
|
-
*
|
|
142
|
+
/** Decoded query string, nested for the filter envelope (`filter[status]=failed` arrives as
|
|
143
|
+
* `{ filter: { status: 'failed' } }`). */
|
|
148
144
|
query: Record<string, unknown>;
|
|
149
145
|
/** Parsed JSON body (for POST actions). */
|
|
150
146
|
body?: unknown;
|
|
@@ -164,26 +160,20 @@ export declare const ok: (body: unknown) => ApiResponse;
|
|
|
164
160
|
* `GET /runs/values` — the distinct values one filter axis takes across the runs matching every
|
|
165
161
|
* OTHER active predicate, with counts — what the console's pickers list instead of asking an
|
|
166
162
|
* operator to type a value blind. Served through the filter lib's `groupByCountFromRequest` with
|
|
167
|
-
* the console's adapter: the scope rides the same
|
|
168
|
-
*
|
|
163
|
+
* the console's adapter: the scope rides the same `filter[...]` envelope as `listRuns`, and the
|
|
164
|
+
* axis rides `groupByCount[field]` (`limit`/`offset`/`search` likewise, or top-level).
|
|
169
165
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
* Note this endpoint keeps `limit`/`offset` while `GET /runs` moved to `page`/`size`: it is not a
|
|
174
|
-
* listing of runs but filter's own group-by-count aggregation, and `limit`/`offset` IS that
|
|
175
|
-
* feature's shape in `@adonis-agora/filter` (`groupByCount[limit]`/`groupByCount[offset]`,
|
|
176
|
-
* `GroupByCountFromRequestOptions`). Matching the lib per surface is the point — respelling this
|
|
177
|
-
* one as `page`/`size` would diverge from it, not align with it.
|
|
166
|
+
* It keeps `limit`/`offset`: it is filter's own group-by-count aggregation, not a listing, and
|
|
167
|
+
* that is the aggregation's wire format.
|
|
178
168
|
*/
|
|
179
169
|
export declare function runValues(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
180
170
|
/**
|
|
181
|
-
* `GET /runs` —
|
|
171
|
+
* `GET /runs` — runs matching the `filter[...]` envelope (status, workflow, tag, namespace, origin,
|
|
172
|
+
* created range, search attributes), newest first, offset-paged (`page`, 1-based, and `size`).
|
|
182
173
|
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* 0-based offset it resolves to never appears on the wire; the store computes it (`runPageWindow`).
|
|
174
|
+
* Answers `{ data, meta: { total, perPage, currentPage, lastPage, firstPage }, statuses }`:
|
|
175
|
+
* `statuses` is every run status, for the console's chips. `sort` accepts `-createdAt` only (the
|
|
176
|
+
* stores' one order); anything else, and any refused filter, is a `400`.
|
|
187
177
|
*/
|
|
188
178
|
export declare function listRuns(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
189
179
|
/** A fan wider than this comes back from `GET /runs/:id` as one summary, unless `?full=true`. */
|
|
@@ -195,8 +185,9 @@ export declare const SUMMARIZE_FANS_OVER = 50;
|
|
|
195
185
|
*/
|
|
196
186
|
export declare function getRun(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
197
187
|
/**
|
|
198
|
-
* `GET /runs/:id/fans/:group` — one page of a summarized fan's members, in seq order,
|
|
199
|
-
*
|
|
188
|
+
* `GET /runs/:id/fans/:group` — one page of a summarized fan's members, in seq order,
|
|
189
|
+
* offset-paged (`page`, `size` up to 500, default 100). `filter[status]=failed` keeps the failed
|
|
190
|
+
* members only; `sort` accepts `seq` only. Answers `{ data, meta }`.
|
|
200
191
|
*/
|
|
201
192
|
export declare function getFanMembers(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
202
193
|
/**
|
|
@@ -264,29 +255,47 @@ export declare function updateRun(deps: Deps, req: ApiRequest): Promise<ApiRespo
|
|
|
264
255
|
export declare function completeTaskRun(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
265
256
|
/** `POST /runs/:id/tasks/:name/fail` — fail a `ctx.task` from the console with `{ error }`. */
|
|
266
257
|
export declare function failTaskRun(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
267
|
-
/**
|
|
268
|
-
|
|
258
|
+
/**
|
|
259
|
+
* `GET /schedules` — the ticked schedules with live control state and fire windows, offset-paged
|
|
260
|
+
* (`page`, `size`). Filters: `filter[workflow]`, `filter[namespace]`, `filter[paused]`. Sort by
|
|
261
|
+
* `key` (default), `workflow`, `nextFireAt` or `lastFireAt`. Answers `{ data, meta }`.
|
|
262
|
+
*/
|
|
263
|
+
export declare function listSchedules(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
269
264
|
/** `POST /schedules/:key/:action` — `pause` / `resume` / `trigger` a schedule at runtime. */
|
|
270
265
|
export declare function scheduleAction(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
271
266
|
/**
|
|
272
267
|
* `POST /bulk/:action` (`action` = `retry`|`cancel`) — apply an action to every run matching the same
|
|
273
|
-
* filter `listRuns` accepts
|
|
268
|
+
* `filter[...]` envelope `listRuns` accepts, capped at 500 matches. Skips (does
|
|
274
269
|
* not abort on) a run that can't take the action (e.g. already terminal). Mirrors
|
|
275
270
|
* `@dudousxd/nestjs-durable-dashboard`'s `DashboardService.bulk`.
|
|
276
271
|
*/
|
|
277
272
|
export declare function bulkAction(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
278
|
-
/** `GET /health` — per-group worker health (queue backlog + live worker
|
|
279
|
-
* compact shape
|
|
273
|
+
/** `GET /health` — per-group worker health (queue backlog + live worker count), reduced to a
|
|
274
|
+
* compact shape: `{ data: [{ group, depth, liveWorkers, stalled }] }`. */
|
|
280
275
|
export declare function health(deps: Deps): Promise<ApiResponse>;
|
|
276
|
+
/** What {@link fleetHealth} answers. */
|
|
277
|
+
export interface FleetHealth {
|
|
278
|
+
/** Per worker group: queue backlog, live workers, and `stalled` (backlog with no worker). */
|
|
279
|
+
groups: Array<{
|
|
280
|
+
group: string;
|
|
281
|
+
depth: number;
|
|
282
|
+
liveWorkers: number;
|
|
283
|
+
stalled: boolean;
|
|
284
|
+
}>;
|
|
285
|
+
/** How many runs are pending, dead and blocked, when the port can count runs. */
|
|
286
|
+
runs?: Record<'pending' | 'dead' | 'blocked', number>;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* The fleet health the `durable_get_health` developer tool and `node ace durable:health` report: the
|
|
290
|
+
* {@link health} groups plus the pending / dead / blocked run counts.
|
|
291
|
+
*/
|
|
292
|
+
export declare function fleetHealth(deps: Deps): Promise<FleetHealth>;
|
|
281
293
|
/** `GET /workers` — full per-group worker health (every live worker's heartbeat, not just a count),
|
|
282
|
-
* for the
|
|
283
|
-
* `instanceId`/`lastBeatAt`). Raw `GroupHealth[]`, unwrapped — matches
|
|
284
|
-
* `@dudousxd/nestjs-durable-dashboard`'s `GET /workers` shape byte for byte (minus the `status`
|
|
285
|
-
* telemetry field, which the AdonisJS engine's heartbeat doesn't carry — see `durable-client.ts`). */
|
|
294
|
+
* for the console's Workers panel: `{ data: GroupHealth[] }`, one entry per routing token. */
|
|
286
295
|
export declare function workers(deps: Deps): Promise<ApiResponse>;
|
|
287
|
-
/** `GET /topology` — this deployment's durable
|
|
288
|
-
* round-trip):
|
|
289
|
-
export declare function topology(
|
|
296
|
+
/** `GET /topology` — this deployment's durable topology, for the header badge. Pure/local (no engine
|
|
297
|
+
* round-trip): it is already known by `dashboard_provider.ts` from `config/durable.ts`. */
|
|
298
|
+
export declare function topology(durableTopology: 'standalone' | 'control-plane' | 'tenant', tenant?: string): ApiResponse;
|
|
290
299
|
/**
|
|
291
300
|
* `GET /metrics` — Prometheus text exposition: this process's event counters (runs and steps by
|
|
292
301
|
* outcome, per-workflow counts, step durations; see `collectMetrics`) plus gauges read at scrape
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/dashboard/handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/dashboard/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { applyCustomFilter, groupByCountFromRequest, InvalidColumnFilterError, } from '@adonis-agora/filter';
|
|
1
|
+
import { applyCustomFilter, groupByCountFromRequest, InvalidColumnFilterError, offsetPage, parsePageParams, resolveSort, } from '@adonis-agora/filter';
|
|
2
2
|
import { lifecycleKindOf, } from '../lifecycle-events.js';
|
|
3
3
|
import { loadFanMembers, loadRunDetail, } from '../run-detail-summary.js';
|
|
4
4
|
import { RUN_VALUE_FACET_LIMIT } from '../run-value-facets.js';
|
|
5
5
|
import { indexWaitersByRun, resolveRunWaiting } from '../run-waiting.js';
|
|
6
|
-
import {
|
|
6
|
+
import { FanMemberDraft, FanMemberFilter, ScheduleDraft, ScheduleFilter } from './list-filters.js';
|
|
7
|
+
import { RUN_FILTER_FIELDS, RUN_STATUSES, RunFilter } from './run-filter.js';
|
|
7
8
|
import { RunQueryDraft } from './run-query-draft.js';
|
|
8
9
|
import { runValueAdapter } from './run-values.js';
|
|
9
10
|
/** Apply the host's redaction hook to a serialized shape (identity when unconfigured). */
|
|
@@ -131,25 +132,52 @@ function readFlag(req, key) {
|
|
|
131
132
|
const fromQuery = parseFlag(firstQuery(req.query[key]));
|
|
132
133
|
return fromQuery ?? false;
|
|
133
134
|
}
|
|
134
|
-
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Refuse a filter field sent bare (`?status=failed`, `?attr.tier=pro`) instead of inside
|
|
137
|
+
* `filter[...]`. The filter lib would otherwise dispatch it to the same-named method; refusing it
|
|
138
|
+
* keeps one spelling on the wire, and a stale client that would have scoped a bulk action by it
|
|
139
|
+
* gets a `400` instead of acting on everything.
|
|
140
|
+
*/
|
|
141
|
+
function assertNoBareFilterFields(query, fields) {
|
|
142
|
+
for (const key of Object.keys(query)) {
|
|
143
|
+
const head = key.split('.')[0] ?? key;
|
|
144
|
+
if (fields.includes(head)) {
|
|
145
|
+
throw new InvalidColumnFilterError(`Send "${key}" as filter[${key}].`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** Run `cls` over the request's `filter[...]` envelope onto `draft`, refusing bare filter fields. */
|
|
150
|
+
async function applyListFilter(draft, cls, query, fields) {
|
|
151
|
+
assertNoBareFilterFields(query, fields);
|
|
152
|
+
await applyCustomFilter(draft, cls, { request: { qs: () => ({ ...query }) } });
|
|
153
|
+
return draft;
|
|
154
|
+
}
|
|
155
|
+
/** Build a {@link RunQuery} from the `filter[...]` envelope `listRuns`, `bulkAction` and the
|
|
156
|
+
* `runValues` scope share, by running the console's {@link RunFilter} class over it. A refused
|
|
157
|
+
* filter (`InvalidColumnFilterError`: unknown field, unsupported operator, an `OR` group, a bare
|
|
158
|
+
* filter field) throws, and every caller maps it to `400`. */
|
|
148
159
|
async function runFilterQuery(query) {
|
|
149
|
-
const draft = new RunQueryDraft();
|
|
150
|
-
await applyCustomFilter(draft, RunFilter, { request: { qs: () => ({ ...query }) } });
|
|
160
|
+
const draft = await applyListFilter(new RunQueryDraft(), RunFilter, query, RUN_FILTER_FIELDS);
|
|
151
161
|
return draft.query;
|
|
152
162
|
}
|
|
163
|
+
/** The one order the run stores list in: newest first. */
|
|
164
|
+
const RUN_SORT = [{ field: 'createdAt', direction: 'desc' }];
|
|
165
|
+
/**
|
|
166
|
+
* Check `sort` against an endpoint whose store lists in one fixed order: absent, or exactly that
|
|
167
|
+
* order, else `InvalidColumnFilterError`.
|
|
168
|
+
*/
|
|
169
|
+
function assertFixedSort(sort, fixed) {
|
|
170
|
+
const fields = [...new Set(fixed.map((item) => item.field))];
|
|
171
|
+
const items = resolveSort(sort, { sortable: fields });
|
|
172
|
+
if (items.length === 0)
|
|
173
|
+
return;
|
|
174
|
+
const same = items.length === fixed.length &&
|
|
175
|
+
items.every((item, i) => item.field === fixed[i]?.field && item.direction === fixed[i]?.direction);
|
|
176
|
+
if (!same) {
|
|
177
|
+
const spelled = fixed.map((s) => (s.direction === 'desc' ? `-${s.field}` : s.field)).join(',');
|
|
178
|
+
throw new InvalidColumnFilterError(`This list is sorted by "${spelled}" only.`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
153
181
|
/** Map a refused run filter to `400` (see {@link runFilterQuery}); rethrow anything else. */
|
|
154
182
|
function filterRejection(error) {
|
|
155
183
|
if (error instanceof InvalidColumnFilterError)
|
|
@@ -160,23 +188,18 @@ function filterRejection(error) {
|
|
|
160
188
|
* `GET /runs/values` — the distinct values one filter axis takes across the runs matching every
|
|
161
189
|
* OTHER active predicate, with counts — what the console's pickers list instead of asking an
|
|
162
190
|
* operator to type a value blind. Served through the filter lib's `groupByCountFromRequest` with
|
|
163
|
-
* the console's adapter: the scope rides the same
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* A picker pages as it scrolls and narrows as the operator types, both against the whole matching
|
|
167
|
-
* set rather than the fetched page.
|
|
191
|
+
* the console's adapter: the scope rides the same `filter[...]` envelope as `listRuns`, and the
|
|
192
|
+
* axis rides `groupByCount[field]` (`limit`/`offset`/`search` likewise, or top-level).
|
|
168
193
|
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
* feature's shape in `@adonis-agora/filter` (`groupByCount[limit]`/`groupByCount[offset]`,
|
|
172
|
-
* `GroupByCountFromRequestOptions`). Matching the lib per surface is the point — respelling this
|
|
173
|
-
* one as `page`/`size` would diverge from it, not align with it.
|
|
194
|
+
* It keeps `limit`/`offset`: it is filter's own group-by-count aggregation, not a listing, and
|
|
195
|
+
* that is the aggregation's wire format.
|
|
174
196
|
*/
|
|
175
197
|
export async function runValues(deps, req) {
|
|
176
198
|
const qs = req.query;
|
|
177
199
|
const field = firstQuery(qs.field);
|
|
178
200
|
const search = firstQuery(qs.search)?.trim();
|
|
179
201
|
try {
|
|
202
|
+
assertNoBareFilterFields(qs, RUN_FILTER_FIELDS);
|
|
180
203
|
return ok(await groupByCountFromRequest(new RunQueryDraft(), RunFilter, { request: { qs: () => ({ ...qs }) } }, {
|
|
181
204
|
adapter: runValueAdapter(deps.engine),
|
|
182
205
|
...(field !== undefined && { field }),
|
|
@@ -189,40 +212,57 @@ export async function runValues(deps, req) {
|
|
|
189
212
|
return filterRejection(error);
|
|
190
213
|
}
|
|
191
214
|
}
|
|
215
|
+
/** `GET /runs` page sizes: 50 by default, at most 200. */
|
|
216
|
+
const RUNS_PAGE = { defaultSize: 50, maxSize: 200 };
|
|
192
217
|
/**
|
|
193
|
-
* `GET /runs` —
|
|
218
|
+
* `GET /runs` — runs matching the `filter[...]` envelope (status, workflow, tag, namespace, origin,
|
|
219
|
+
* created range, search attributes), newest first, offset-paged (`page`, 1-based, and `size`).
|
|
194
220
|
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
* 0-based offset it resolves to never appears on the wire; the store computes it (`runPageWindow`).
|
|
221
|
+
* Answers `{ data, meta: { total, perPage, currentPage, lastPage, firstPage }, statuses }`:
|
|
222
|
+
* `statuses` is every run status, for the console's chips. `sort` accepts `-createdAt` only (the
|
|
223
|
+
* stores' one order); anything else, and any refused filter, is a `400`.
|
|
199
224
|
*/
|
|
200
225
|
export async function listRuns(deps, req) {
|
|
201
226
|
const { engine } = deps;
|
|
202
|
-
const size =
|
|
203
|
-
// A page below 1 reads as the first page rather than 400ing — same tolerance the other params get.
|
|
204
|
-
const page = Math.max(1, intQuery(req.query.page, 1));
|
|
227
|
+
const { page, size } = parsePageParams(req.query, RUNS_PAGE);
|
|
205
228
|
let filter;
|
|
206
229
|
try {
|
|
230
|
+
assertFixedSort(req.query.sort, RUN_SORT);
|
|
207
231
|
filter = await runFilterQuery(req.query);
|
|
208
232
|
}
|
|
209
233
|
catch (error) {
|
|
210
234
|
return filterRejection(error);
|
|
211
235
|
}
|
|
212
|
-
const
|
|
213
|
-
|
|
236
|
+
const [runs, total] = await Promise.all([
|
|
237
|
+
engine.listRuns({ ...filter, page, size }),
|
|
238
|
+
countMatching(engine, filter),
|
|
239
|
+
]);
|
|
214
240
|
// Resolve what each suspended run on THIS page is parked on — signal / webhook / child /
|
|
215
241
|
// breakpoint — with no per-run timeline fetch. Prefers the targeted per-page lookup (`run_id IN
|
|
216
|
-
// (...)`, indexed) over the
|
|
217
|
-
//
|
|
218
|
-
// simply skipped, same as `@dudousxd/nestjs-durable-dashboard`.
|
|
242
|
+
// (...)`, indexed) over the full waiter scan; absent on a topology that can't do either, where
|
|
243
|
+
// the `waiting` stamp is simply skipped.
|
|
219
244
|
const waitingOf = await waitingResolver(engine, runs);
|
|
220
245
|
return ok({
|
|
221
|
-
runs
|
|
222
|
-
meta: { page, size, count: runs.length },
|
|
246
|
+
...offsetPage(runs.map((run) => redacted(deps.redact?.run, summarizeRun(run, waitingOf))), { total, page, size }),
|
|
223
247
|
statuses: RUN_STATUSES,
|
|
224
248
|
});
|
|
225
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* How many runs match `filter`: the port's `countRuns`, else (no count on the port, or a tenant
|
|
252
|
+
* pod's control plane too old to answer one) the length of the full listing.
|
|
253
|
+
*/
|
|
254
|
+
async function countMatching(engine, filter) {
|
|
255
|
+
if (engine.countRuns) {
|
|
256
|
+
try {
|
|
257
|
+
return await engine.countRuns(filter);
|
|
258
|
+
}
|
|
259
|
+
catch (err) {
|
|
260
|
+
if (err?.code !== 'unsupported-request')
|
|
261
|
+
throw err;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return (await engine.listRuns(filter)).length;
|
|
265
|
+
}
|
|
226
266
|
/** A fan wider than this comes back from `GET /runs/:id` as one summary, unless `?full=true`. */
|
|
227
267
|
export const SUMMARIZE_FANS_OVER = 50;
|
|
228
268
|
/**
|
|
@@ -250,9 +290,12 @@ export async function getRun(deps, req) {
|
|
|
250
290
|
if (detail.etag && detail.notModified)
|
|
251
291
|
return notModified(detail.etag);
|
|
252
292
|
const checkpoint = (cp) => redacted(deps.redact?.checkpoint, summarizeCheckpoint(cp));
|
|
293
|
+
// What a suspended run is parked on (a signal, an update, a task, a child), as the list rows carry
|
|
294
|
+
// it, so the console offers the matching action from the run itself.
|
|
295
|
+
const waitingOf = detail.run.status === 'suspended' ? await waitingResolver(engine, [detail.run]) : undefined;
|
|
253
296
|
return {
|
|
254
297
|
...ok({
|
|
255
|
-
run: redacted(deps.redact?.run, detailRun(detail.run)),
|
|
298
|
+
run: redacted(deps.redact?.run, detailRun(detail.run, waitingOf)),
|
|
256
299
|
timeline: detail.timeline.map(checkpoint),
|
|
257
300
|
children: detail.children,
|
|
258
301
|
...(detail.fans ? { fans: detail.fans.map((fan) => serializeFan(fan, checkpoint)) } : {}),
|
|
@@ -268,9 +311,12 @@ export async function getRun(deps, req) {
|
|
|
268
311
|
...(detail.etag ? { headers: etagHeaders(detail.etag) } : {}),
|
|
269
312
|
};
|
|
270
313
|
}
|
|
314
|
+
/** `GET /runs/:id/fans/:group` page sizes: 100 by default, at most 500. */
|
|
315
|
+
const FAN_PAGE = { defaultSize: 100, maxSize: 500 };
|
|
271
316
|
/**
|
|
272
|
-
* `GET /runs/:id/fans/:group` — one page of a summarized fan's members, in seq order,
|
|
273
|
-
*
|
|
317
|
+
* `GET /runs/:id/fans/:group` — one page of a summarized fan's members, in seq order,
|
|
318
|
+
* offset-paged (`page`, `size` up to 500, default 100). `filter[status]=failed` keeps the failed
|
|
319
|
+
* members only; `sort` accepts `seq` only. Answers `{ data, meta }`.
|
|
274
320
|
*/
|
|
275
321
|
export async function getFanMembers(deps, req) {
|
|
276
322
|
const { engine } = deps;
|
|
@@ -278,33 +324,34 @@ export async function getFanMembers(deps, req) {
|
|
|
278
324
|
const group = req.params.group;
|
|
279
325
|
if (!id || !group)
|
|
280
326
|
return notFound('run id and fan group are required');
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
327
|
+
const { page, size } = parsePageParams(req.query, FAN_PAGE);
|
|
328
|
+
let failedOnly;
|
|
329
|
+
try {
|
|
330
|
+
assertFixedSort(req.query.sort, [{ field: 'seq', direction: 'asc' }]);
|
|
331
|
+
({ failedOnly } = await applyListFilter(new FanMemberDraft(), FanMemberFilter, req.query, [
|
|
332
|
+
'status',
|
|
333
|
+
]));
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
return filterRejection(error);
|
|
337
|
+
}
|
|
288
338
|
const ifNoneMatch = req.headers?.['if-none-match'];
|
|
289
339
|
const query = {
|
|
290
|
-
offset:
|
|
291
|
-
limit:
|
|
292
|
-
failedOnly
|
|
340
|
+
offset: (page - 1) * size,
|
|
341
|
+
limit: size,
|
|
342
|
+
failedOnly,
|
|
293
343
|
...(ifNoneMatch ? { ifNoneMatch } : {}),
|
|
294
344
|
};
|
|
295
|
-
const
|
|
345
|
+
const members = engine.getFanMembers
|
|
296
346
|
? await engine.getFanMembers(id, group, query)
|
|
297
347
|
: await loadFanMembers(engine, id, group, query);
|
|
298
|
-
if (!
|
|
348
|
+
if (!members)
|
|
299
349
|
return notFound(`run ${id} not found`);
|
|
300
|
-
if (
|
|
301
|
-
return notModified(
|
|
350
|
+
if (members.etag && members.notModified)
|
|
351
|
+
return notModified(members.etag);
|
|
302
352
|
return {
|
|
303
|
-
...ok({
|
|
304
|
-
|
|
305
|
-
total: page.total,
|
|
306
|
-
}),
|
|
307
|
-
...(page.etag ? { headers: etagHeaders(page.etag) } : {}),
|
|
353
|
+
...ok(offsetPage(members.items.map((cp) => redacted(deps.redact?.checkpoint, summarizeCheckpoint(cp))), { total: members.total, page, size })),
|
|
354
|
+
...(members.etag ? { headers: etagHeaders(members.etag) } : {}),
|
|
308
355
|
};
|
|
309
356
|
}
|
|
310
357
|
/** A {@link FanSummary} on the wire: ISO dates, and its failure sample shaped like timeline steps. */
|
|
@@ -578,12 +625,49 @@ export async function failTaskRun(deps, req) {
|
|
|
578
625
|
// Null = buffered (no live waiter yet) — same reliable-delivery semantics as completeTaskRun.
|
|
579
626
|
return ok({ result, delivered: result != null });
|
|
580
627
|
}
|
|
581
|
-
/** `GET /schedules`
|
|
582
|
-
|
|
628
|
+
/** `GET /schedules` page sizes: 100 by default, at most 200. */
|
|
629
|
+
const SCHEDULES_PAGE = { defaultSize: 100, maxSize: 200 };
|
|
630
|
+
/** The fields `GET /schedules` sorts by. */
|
|
631
|
+
const SCHEDULE_SORTABLE = ['key', 'workflow', 'nextFireAt', 'lastFireAt'];
|
|
632
|
+
/**
|
|
633
|
+
* `GET /schedules` — the ticked schedules with live control state and fire windows, offset-paged
|
|
634
|
+
* (`page`, `size`). Filters: `filter[workflow]`, `filter[namespace]`, `filter[paused]`. Sort by
|
|
635
|
+
* `key` (default), `workflow`, `nextFireAt` or `lastFireAt`. Answers `{ data, meta }`.
|
|
636
|
+
*/
|
|
637
|
+
export async function listSchedules(deps, req) {
|
|
583
638
|
const { engine } = deps;
|
|
584
639
|
if (!engine.listSchedules)
|
|
585
640
|
return notFound('schedules are not available on this topology yet');
|
|
586
|
-
|
|
641
|
+
const { page, size } = parsePageParams(req.query, SCHEDULES_PAGE);
|
|
642
|
+
let draft;
|
|
643
|
+
let sort;
|
|
644
|
+
try {
|
|
645
|
+
sort = resolveSort(req.query.sort, {
|
|
646
|
+
sortable: SCHEDULE_SORTABLE,
|
|
647
|
+
default: 'key',
|
|
648
|
+
});
|
|
649
|
+
draft = await applyListFilter(new ScheduleDraft(), ScheduleFilter, req.query, [
|
|
650
|
+
'workflow',
|
|
651
|
+
'namespace',
|
|
652
|
+
'paused',
|
|
653
|
+
]);
|
|
654
|
+
}
|
|
655
|
+
catch (error) {
|
|
656
|
+
return filterRejection(error);
|
|
657
|
+
}
|
|
658
|
+
const rows = (await engine.listSchedules()).filter((s) => draft.matches(s));
|
|
659
|
+
rows.sort((a, b) => {
|
|
660
|
+
for (const { field, direction } of sort) {
|
|
661
|
+
const x = a[field];
|
|
662
|
+
const y = b[field];
|
|
663
|
+
const order = x < y ? -1 : x > y ? 1 : 0;
|
|
664
|
+
if (order !== 0)
|
|
665
|
+
return direction === 'desc' ? -order : order;
|
|
666
|
+
}
|
|
667
|
+
return a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
|
|
668
|
+
});
|
|
669
|
+
const start = (page - 1) * size;
|
|
670
|
+
return ok(offsetPage(rows.slice(start, start + size), { total: rows.length, page, size }));
|
|
587
671
|
}
|
|
588
672
|
/** `POST /schedules/:key/:action` — `pause` / `resume` / `trigger` a schedule at runtime. */
|
|
589
673
|
export async function scheduleAction(deps, req) {
|
|
@@ -614,7 +698,7 @@ export async function scheduleAction(deps, req) {
|
|
|
614
698
|
}
|
|
615
699
|
/**
|
|
616
700
|
* `POST /bulk/:action` (`action` = `retry`|`cancel`) — apply an action to every run matching the same
|
|
617
|
-
* filter `listRuns` accepts
|
|
701
|
+
* `filter[...]` envelope `listRuns` accepts, capped at 500 matches. Skips (does
|
|
618
702
|
* not abort on) a run that can't take the action (e.g. already terminal). Mirrors
|
|
619
703
|
* `@dudousxd/nestjs-durable-dashboard`'s `DashboardService.bulk`.
|
|
620
704
|
*/
|
|
@@ -654,12 +738,12 @@ export async function bulkAction(deps, req) {
|
|
|
654
738
|
}
|
|
655
739
|
return ok({ matched: runs.length, applied });
|
|
656
740
|
}
|
|
657
|
-
/** `GET /health` — per-group worker health (queue backlog + live worker
|
|
658
|
-
* compact shape
|
|
741
|
+
/** `GET /health` — per-group worker health (queue backlog + live worker count), reduced to a
|
|
742
|
+
* compact shape: `{ data: [{ group, depth, liveWorkers, stalled }] }`. */
|
|
659
743
|
export async function health(deps) {
|
|
660
744
|
const groups = await deps.engine.workerHealth();
|
|
661
745
|
return ok({
|
|
662
|
-
|
|
746
|
+
data: groups.map((g) => ({
|
|
663
747
|
group: g.group,
|
|
664
748
|
depth: g.depth,
|
|
665
749
|
liveWorkers: g.liveWorkers.length,
|
|
@@ -668,19 +752,31 @@ export async function health(deps) {
|
|
|
668
752
|
})),
|
|
669
753
|
});
|
|
670
754
|
}
|
|
755
|
+
/**
|
|
756
|
+
* The fleet health the `durable_get_health` developer tool and `node ace durable:health` report: the
|
|
757
|
+
* {@link health} groups plus the pending / dead / blocked run counts.
|
|
758
|
+
*/
|
|
759
|
+
export async function fleetHealth(deps) {
|
|
760
|
+
const groups = (await health(deps)).body.data;
|
|
761
|
+
if (!deps.engine.countRuns)
|
|
762
|
+
return { groups };
|
|
763
|
+
const runs = { pending: 0, dead: 0, blocked: 0 };
|
|
764
|
+
for (const status of ['pending', 'dead', 'blocked']) {
|
|
765
|
+
runs[status] = await deps.engine.countRuns({ status });
|
|
766
|
+
}
|
|
767
|
+
return { groups, runs };
|
|
768
|
+
}
|
|
671
769
|
/** `GET /workers` — full per-group worker health (every live worker's heartbeat, not just a count),
|
|
672
|
-
* for the
|
|
673
|
-
* `instanceId`/`lastBeatAt`). Raw `GroupHealth[]`, unwrapped — matches
|
|
674
|
-
* `@dudousxd/nestjs-durable-dashboard`'s `GET /workers` shape byte for byte (minus the `status`
|
|
675
|
-
* telemetry field, which the AdonisJS engine's heartbeat doesn't carry — see `durable-client.ts`). */
|
|
770
|
+
* for the console's Workers panel: `{ data: GroupHealth[] }`, one entry per routing token. */
|
|
676
771
|
export async function workers(deps) {
|
|
677
772
|
const groups = await deps.engine.workerHealth();
|
|
678
|
-
return ok(groups);
|
|
773
|
+
return ok({ data: groups });
|
|
679
774
|
}
|
|
680
|
-
/** `GET /topology` — this deployment's durable
|
|
681
|
-
* round-trip):
|
|
682
|
-
export function topology(
|
|
683
|
-
|
|
775
|
+
/** `GET /topology` — this deployment's durable topology, for the header badge. Pure/local (no engine
|
|
776
|
+
* round-trip): it is already known by `dashboard_provider.ts` from `config/durable.ts`. */
|
|
777
|
+
export function topology(durableTopology, tenant) {
|
|
778
|
+
// The body keeps aviary's `DurableTopology` wire shape (`{ role, tenant? }`).
|
|
779
|
+
return ok(tenant !== undefined ? { role: durableTopology, tenant } : { role: durableTopology });
|
|
684
780
|
}
|
|
685
781
|
/**
|
|
686
782
|
* How `listRuns` names what each run on a page is parked on: from the store's waiter rows (the
|
|
@@ -714,6 +810,8 @@ function summarizeRun(run, waitingOf) {
|
|
|
714
810
|
status: run.status,
|
|
715
811
|
namespace: run.namespace,
|
|
716
812
|
origin: run.origin,
|
|
813
|
+
...(run.tenantId !== undefined ? { tenantId: run.tenantId } : {}),
|
|
814
|
+
...(run.tenantKind !== undefined ? { tenantKind: run.tenantKind } : {}),
|
|
717
815
|
tags: run.tags ?? [],
|
|
718
816
|
createdAt: run.createdAt.toISOString(),
|
|
719
817
|
updatedAt: run.updatedAt.toISOString(),
|
|
@@ -729,10 +827,10 @@ function summarizeRun(run, waitingOf) {
|
|
|
729
827
|
};
|
|
730
828
|
}
|
|
731
829
|
/** Fuller run shape for the detail view. */
|
|
732
|
-
function detailRun(run) {
|
|
830
|
+
function detailRun(run, waitingOf) {
|
|
733
831
|
return {
|
|
734
832
|
// recoveryAttempts already comes through from summarizeRun.
|
|
735
|
-
...summarizeRun(run),
|
|
833
|
+
...summarizeRun(run, waitingOf),
|
|
736
834
|
input: run.input,
|
|
737
835
|
output: run.output,
|
|
738
836
|
error: run.error,
|