@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,132 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { resolveDashboardAuth, } from './auth.js';
|
|
1
|
+
import { normalizeConsoleDecision, resolveConsoleAuthorize, } from './console_authorize.js';
|
|
3
2
|
/**
|
|
4
3
|
* Collapse an {@link AuthorizeResult} into a decision. Only `true` or an object with
|
|
5
|
-
* `allowed === true` allows
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* `allowed === true` allows; `{ redirectTo }` is an unauthenticated denial carrying the redirect
|
|
5
|
+
* target; anything else — `false`, `{ allowed: false }`, a truthy non-boolean, a missing value —
|
|
6
|
+
* denies with `403`.
|
|
8
7
|
*/
|
|
9
8
|
export function normalizeAuthorizeResult(result) {
|
|
10
|
-
|
|
11
|
-
return { allowed: true };
|
|
12
|
-
if (typeof result === 'object' &&
|
|
13
|
-
result !== null &&
|
|
14
|
-
result.allowed === true) {
|
|
15
|
-
return { allowed: true };
|
|
16
|
-
}
|
|
17
|
-
const reason = typeof result === 'object' && result !== null
|
|
18
|
-
? result.reason
|
|
19
|
-
: undefined;
|
|
20
|
-
return { allowed: false, reason: reason === 'unauthenticated' ? 'unauthenticated' : 'forbidden' };
|
|
9
|
+
return normalizeConsoleDecision(result);
|
|
21
10
|
}
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* cookie hardening defaults.
|
|
27
|
-
*/
|
|
28
|
-
export function isProduction() {
|
|
29
|
-
return (process.env.NODE_ENV ?? '').toLowerCase() === 'production';
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Extract a bearer token from an `Authorization: Bearer <token>` header, a
|
|
33
|
-
* `token` query-string param, or an `x-durable-token` header — whichever is
|
|
34
|
-
* present. Returns `undefined` when none is supplied.
|
|
35
|
-
*/
|
|
36
|
-
function readToken(ctx) {
|
|
37
|
-
const header = ctx.request.header('authorization');
|
|
38
|
-
if (header) {
|
|
39
|
-
const match = /^Bearer\s+(.+)$/i.exec(header);
|
|
40
|
-
if (match?.[1])
|
|
41
|
-
return match[1].trim();
|
|
42
|
-
}
|
|
43
|
-
const xHeader = ctx.request.header('x-durable-token');
|
|
44
|
-
if (xHeader)
|
|
45
|
-
return xHeader.trim();
|
|
46
|
-
// The query-string channel exists ONLY because EventSource (the SSE live-tail) cannot set
|
|
47
|
-
// headers. Restricted to read methods: a `?token=` that authorized POSTs turned any leaked/logged
|
|
48
|
-
// URL (access logs, Referer, browser history) into a destructive-capable magic link.
|
|
49
|
-
const method = ctx.request.method().toUpperCase();
|
|
50
|
-
if (method === 'GET' || method === 'HEAD') {
|
|
51
|
-
const qs = ctx.request.qs().token;
|
|
52
|
-
if (typeof qs === 'string' && qs.length > 0)
|
|
53
|
-
return qs;
|
|
54
|
-
}
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Compare two secrets in constant time (guarding for equal byte-length first,
|
|
59
|
-
* since {@link timingSafeEqual} throws on a length mismatch). Returns `false`
|
|
60
|
-
* for any length difference, otherwise the timing-safe equality — so the token
|
|
61
|
-
* check leaks neither a match nor the token's length via response time.
|
|
62
|
-
*/
|
|
63
|
-
function secretsMatch(a, b) {
|
|
64
|
-
const bufA = Buffer.from(a);
|
|
65
|
-
const bufB = Buffer.from(b);
|
|
66
|
-
if (bufA.length !== bufB.length)
|
|
67
|
-
return false;
|
|
68
|
-
return timingSafeEqual(bufA, bufB);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* The default guard: FAIL CLOSED in every environment — require a bearer token equal to
|
|
72
|
-
* `DURABLE_DASHBOARD_TOKEN`, denying everything when that env var is unset. There is no
|
|
73
|
-
* NODE_ENV branch anymore: "not production" is exactly the set of deployments (dev boxes,
|
|
74
|
-
* staging, misspelled envs) that used to ship an open console. Opt out explicitly with
|
|
75
|
-
* `allowUnauthenticated: true`, or configure `dashboardAuth`/your own `authorize`.
|
|
76
|
-
*/
|
|
77
|
-
export function defaultAuthorize(ctx) {
|
|
78
|
-
const expected = process.env.DURABLE_DASHBOARD_TOKEN;
|
|
79
|
-
if (!expected)
|
|
80
|
-
return false;
|
|
81
|
-
const provided = readToken(ctx);
|
|
82
|
-
if (provided === undefined)
|
|
83
|
-
return false;
|
|
84
|
-
// Constant-time compare to remove the timing side-channel from the token check.
|
|
85
|
-
return secretsMatch(provided, expected);
|
|
86
|
-
}
|
|
87
|
-
/** The explicit `allowUnauthenticated: true` guard — allow everything, by conscious opt-in only. */
|
|
88
|
-
const allowAll = () => true;
|
|
89
|
-
let warnedOpenDashboard = false;
|
|
11
|
+
/** The warning logged once at boot when `authorize` is omitted. */
|
|
12
|
+
export const NO_AUTHORIZE_WARNING = '[@adonis-agora/durable] console has no `authorize` configured: it is open outside production and denies every request in production. Set `authorize` in config/durable_dashboard.ts.';
|
|
13
|
+
const allowAll = async () => ({ allowed: true });
|
|
14
|
+
const denyAll = async () => ({ allowed: false, reason: 'forbidden' });
|
|
90
15
|
/** Apply defaults to a partial config, producing a fully-resolved one. */
|
|
91
|
-
export function resolveConfig(config = {}) {
|
|
16
|
+
export function resolveConfig(config = {}, options = {}) {
|
|
92
17
|
const rawPath = config.path ?? '/durable';
|
|
93
18
|
// Normalize: ensure a single leading slash and no trailing slash (root stays '/').
|
|
94
19
|
const trimmed = `/${rawPath.replace(/^\/+/, '').replace(/\/+$/, '')}`;
|
|
95
|
-
|
|
96
|
-
// 1. a host `authorize` hook wins;
|
|
97
|
-
// 2. `dashboardAuth` configured -> the session guard IS the gate (the default token guard would
|
|
98
|
-
// otherwise 403 every login flow that never set DURABLE_DASHBOARD_TOKEN);
|
|
99
|
-
// 3. `allowUnauthenticated: true` -> consciously open (warned once at resolve time);
|
|
100
|
-
// 4. else the fail-closed token guard.
|
|
101
|
-
const hasDashboardAuth = config.dashboardAuth !== undefined;
|
|
20
|
+
const authorizeConfigured = config.authorize !== undefined;
|
|
102
21
|
let authorize;
|
|
103
|
-
if (config.authorize)
|
|
104
|
-
authorize = config.authorize;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
authorize = allowAll;
|
|
108
|
-
}
|
|
109
|
-
else if (config.allowUnauthenticated === true) {
|
|
110
|
-
if (!warnedOpenDashboard) {
|
|
111
|
-
warnedOpenDashboard = true;
|
|
112
|
-
console.warn('[durable_dashboard] allowUnauthenticated: true — the console (including destructive ' +
|
|
113
|
-
'endpoints) is served with NO authentication. Never ship this to a reachable network.');
|
|
114
|
-
}
|
|
115
|
-
authorize = allowAll;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
authorize = defaultAuthorize;
|
|
119
|
-
}
|
|
22
|
+
if (config.authorize !== undefined)
|
|
23
|
+
authorize = resolveConsoleAuthorize(config.authorize);
|
|
24
|
+
else
|
|
25
|
+
authorize = options.inProduction === false ? allowAll : denyAll;
|
|
120
26
|
return {
|
|
121
27
|
enabled: config.enabled ?? true,
|
|
122
28
|
path: trimmed === '/' ? '' : trimmed,
|
|
123
29
|
authorize,
|
|
124
|
-
|
|
125
|
-
// not on the first login attempt. `null` when `dashboardAuth` is omitted.
|
|
126
|
-
dashboardAuth: resolveDashboardAuth(config.dashboardAuth),
|
|
30
|
+
authorizeConfigured,
|
|
127
31
|
accessDenied: config.accessDenied ?? null,
|
|
128
32
|
audit: config.audit ?? null,
|
|
129
33
|
redact: config.redact ?? null,
|
|
34
|
+
viewer: config.viewer ?? null,
|
|
35
|
+
signOut: config.signOut ?? null,
|
|
130
36
|
};
|
|
131
37
|
}
|
|
132
38
|
/** Identity helper giving `config/durable_dashboard.ts` full type-checking. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/dashboard/define_config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/dashboard/define_config.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAqChC;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAe;IACtD,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAoHD,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAC/B,sLAAsL,CAAC;AAEzL,MAAM,QAAQ,GAAyB,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACvE,MAAM,OAAO,GAAyB,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AAW5F,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAC3B,MAAM,GAA2B,EAAE,EACnC,OAAO,GAAyB,EAAE;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC;IAC1C,mFAAmF;IACnF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IACtE,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;IAC3D,IAAI,SAA+B,CAAC;IACpC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;;QACrF,SAAS,GAAG,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACrE,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,IAAI,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;QACpC,SAAS;QACT,mBAAmB;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;QACzC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;KAChC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,MAAM,GAA2B,EAAE;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { HttpContext } from '@adonisjs/core/http';
|
|
2
|
+
import type { ConsoleDecision } from './console_authorize.js';
|
|
3
|
+
import { type Deps } from './handlers.js';
|
|
4
|
+
/** The container binding the dev-tools hub lives at. */
|
|
5
|
+
export declare const DEV_TOOLS_BINDING = "agora.devTools";
|
|
6
|
+
/** The hub a lib registers its developer tools into. */
|
|
7
|
+
export interface DevToolsHub {
|
|
8
|
+
readonly version: 1;
|
|
9
|
+
register(lib: DevToolsLib): void;
|
|
10
|
+
}
|
|
11
|
+
/** One lib's tools and the gate that decides who may use them. */
|
|
12
|
+
export interface DevToolsLib {
|
|
13
|
+
lib: string;
|
|
14
|
+
title: string;
|
|
15
|
+
authorize(ctx: HttpContext): Promise<DevToolsDecision>;
|
|
16
|
+
tools: DevTool[];
|
|
17
|
+
}
|
|
18
|
+
/** What a lib's `authorize` answers: the console decision. */
|
|
19
|
+
export type DevToolsDecision = ConsoleDecision;
|
|
20
|
+
/** One developer tool. */
|
|
21
|
+
export interface DevTool {
|
|
22
|
+
name: string;
|
|
23
|
+
kind: 'read' | 'action';
|
|
24
|
+
description: string;
|
|
25
|
+
input: DevToolInputSchema;
|
|
26
|
+
destructive?: boolean;
|
|
27
|
+
available?(): boolean | Promise<boolean>;
|
|
28
|
+
run(input: Record<string, unknown>, call: DevToolCall): Promise<unknown>;
|
|
29
|
+
}
|
|
30
|
+
/** What a tool's `run` receives besides its input. */
|
|
31
|
+
export interface DevToolCall {
|
|
32
|
+
ctx: HttpContext;
|
|
33
|
+
caller: DevToolsCaller;
|
|
34
|
+
limits: {
|
|
35
|
+
maxRows: number;
|
|
36
|
+
maxBytes: number;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** Who is calling. Never a token value. */
|
|
40
|
+
export interface DevToolsCaller {
|
|
41
|
+
id: string;
|
|
42
|
+
via: 'token' | 'session' | 'open';
|
|
43
|
+
}
|
|
44
|
+
/** One property of a {@link DevToolInputSchema}. */
|
|
45
|
+
export interface DevToolInputProperty {
|
|
46
|
+
type: 'string' | 'number' | 'integer' | 'boolean' | 'array';
|
|
47
|
+
description?: string;
|
|
48
|
+
enum?: readonly string[];
|
|
49
|
+
items?: {
|
|
50
|
+
type: 'string';
|
|
51
|
+
};
|
|
52
|
+
minimum?: number;
|
|
53
|
+
maximum?: number;
|
|
54
|
+
}
|
|
55
|
+
/** An object of scalar / enum / array-of-string properties. */
|
|
56
|
+
export interface DevToolInputSchema {
|
|
57
|
+
type: 'object';
|
|
58
|
+
properties: Record<string, DevToolInputProperty>;
|
|
59
|
+
required?: string[];
|
|
60
|
+
}
|
|
61
|
+
/** One console action performed through a dev tool, for the console's audit sink. */
|
|
62
|
+
export interface DevToolAuditEntry {
|
|
63
|
+
/** `mcp:<caller id>`. */
|
|
64
|
+
actor: string;
|
|
65
|
+
/** The tool name, e.g. `durable_cancel_run`. */
|
|
66
|
+
tool: string;
|
|
67
|
+
/** The run id or schedule key the action targets. */
|
|
68
|
+
target: string;
|
|
69
|
+
}
|
|
70
|
+
/** What {@link durableDevTools} needs from the console. */
|
|
71
|
+
export interface DurableDevToolsOptions {
|
|
72
|
+
/**
|
|
73
|
+
* The console's read/control port, resolved per call (the same `Deps` the console routes use), for
|
|
74
|
+
* the MCP request's context when there is one (so the console's tenant scope applies).
|
|
75
|
+
*/
|
|
76
|
+
deps: (ctx?: HttpContext) => Promise<Deps>;
|
|
77
|
+
/** Records an action (retry, cancel, …) before it runs, like a console POST. */
|
|
78
|
+
audit?: (entry: DevToolAuditEntry) => void;
|
|
79
|
+
/** The fleet compatibility panel's body, when the console can build it (`GET /api/compat`). */
|
|
80
|
+
compat?: () => Promise<unknown>;
|
|
81
|
+
}
|
|
82
|
+
/** A blob field (run input/output/error, a step's input/output/error) is cut to this many bytes. */
|
|
83
|
+
export declare const DEV_TOOL_FIELD_BYTES: number;
|
|
84
|
+
/** Cut one value to {@link DEV_TOOL_FIELD_BYTES} of JSON, ending with `…(truncated, N bytes)`. */
|
|
85
|
+
export declare function truncateBlob(value: unknown, maxBytes?: number): unknown;
|
|
86
|
+
/**
|
|
87
|
+
* The durable console's developer tools: the same handlers (and so the same `redact` hooks) the
|
|
88
|
+
* console's JSON API runs, under `durable_*` names. Reads are listed by default; the actions (retry,
|
|
89
|
+
* cancel, continue, signal, schedule control) only when the app opts in on the dev endpoint.
|
|
90
|
+
*/
|
|
91
|
+
export declare function durableDevTools(options: DurableDevToolsOptions): DevTool[];
|
|
92
|
+
/**
|
|
93
|
+
* Register the durable console's tools into the app's dev-tools hub, when one is bound (the app
|
|
94
|
+
* registered `@adonis-agora/agent/mcp_provider`). Returns whether it registered.
|
|
95
|
+
*/
|
|
96
|
+
export declare function registerDurableDevTools(container: {
|
|
97
|
+
hasBinding(binding: string): boolean;
|
|
98
|
+
make(binding: string): Promise<unknown>;
|
|
99
|
+
}, options: DurableDevToolsOptions & {
|
|
100
|
+
authorize: (ctx: HttpContext) => Promise<DevToolsDecision>;
|
|
101
|
+
}): Promise<boolean>;
|
|
102
|
+
//# sourceMappingURL=dev_tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev_tools.d.ts","sourceRoot":"","sources":["../../../src/dashboard/dev_tools.ts"],"names":[],"mappings":"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"}
|