@omnitron-dev/omnitron 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BUILD.json +5 -0
- package/dist/cli/omnitron.js +351 -29
- package/dist/cli/omnitron.js.map +1 -1
- package/dist/cluster/cluster.rpc-service.d.ts +40 -0
- package/dist/cluster/cluster.rpc-service.d.ts.map +1 -1
- package/dist/cluster/cluster.rpc-service.js +49 -3
- package/dist/cluster/cluster.rpc-service.js.map +1 -1
- package/dist/cluster/config-sync.d.ts.map +1 -1
- package/dist/cluster/config-sync.js.map +1 -1
- package/dist/cluster/leader-election.d.ts +90 -2
- package/dist/cluster/leader-election.d.ts.map +1 -1
- package/dist/cluster/leader-election.js +176 -22
- package/dist/cluster/leader-election.js.map +1 -1
- package/dist/cluster/mesh-link.d.ts +136 -0
- package/dist/cluster/mesh-link.d.ts.map +1 -0
- package/dist/cluster/mesh-link.js +212 -0
- package/dist/cluster/mesh-link.js.map +1 -0
- package/dist/cluster/mesh.d.ts +59 -0
- package/dist/cluster/mesh.d.ts.map +1 -0
- package/dist/cluster/mesh.js +117 -0
- package/dist/cluster/mesh.js.map +1 -0
- package/dist/cluster/slave-connector.d.ts +193 -9
- package/dist/cluster/slave-connector.d.ts.map +1 -1
- package/dist/cluster/slave-connector.js +409 -37
- package/dist/cluster/slave-connector.js.map +1 -1
- package/dist/commands/audit.d.ts +65 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +233 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/backup.d.ts +4 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +255 -33
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/cluster.d.ts.map +1 -1
- package/dist/commands/cluster.js +78 -47
- package/dist/commands/cluster.js.map +1 -1
- package/dist/commands/daemon-cmd.d.ts +7 -1
- package/dist/commands/daemon-cmd.d.ts.map +1 -1
- package/dist/commands/daemon-cmd.js +87 -21
- package/dist/commands/daemon-cmd.js.map +1 -1
- package/dist/commands/daemon-required.d.ts +34 -0
- package/dist/commands/daemon-required.d.ts.map +1 -0
- package/dist/commands/daemon-required.js +92 -0
- package/dist/commands/daemon-required.js.map +1 -0
- package/dist/commands/deploy.d.ts +70 -8
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +99 -64
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/discover.d.ts +25 -4
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +155 -102
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.d.ts +293 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +1706 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/env.d.ts +8 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +13 -8
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +3 -2
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/fleet-asking.d.ts +87 -0
- package/dist/commands/fleet-asking.d.ts.map +1 -0
- package/dist/commands/fleet-asking.js +176 -0
- package/dist/commands/fleet-asking.js.map +1 -0
- package/dist/commands/fleet.d.ts +18 -0
- package/dist/commands/fleet.d.ts.map +1 -1
- package/dist/commands/fleet.js +314 -74
- package/dist/commands/fleet.js.map +1 -1
- package/dist/commands/health-check.d.ts +8 -6
- package/dist/commands/health-check.d.ts.map +1 -1
- package/dist/commands/health-check.js +26 -23
- package/dist/commands/health-check.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +22 -8
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/infra.d.ts +42 -1
- package/dist/commands/infra.d.ts.map +1 -1
- package/dist/commands/infra.js +418 -49
- package/dist/commands/infra.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +21 -36
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/inspect-graph.d.ts.map +1 -1
- package/dist/commands/inspect-graph.js +2 -6
- package/dist/commands/inspect-graph.js.map +1 -1
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +110 -14
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/k8s.d.ts.map +1 -1
- package/dist/commands/k8s.js +23 -18
- package/dist/commands/k8s.js.map +1 -1
- package/dist/commands/kb.d.ts.map +1 -1
- package/dist/commands/kb.js +88 -29
- package/dist/commands/kb.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +21 -9
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/log-health.d.ts +120 -0
- package/dist/commands/log-health.d.ts.map +1 -0
- package/dist/commands/log-health.js +212 -0
- package/dist/commands/log-health.js.map +1 -0
- package/dist/commands/logs.d.ts +96 -2
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +522 -196
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +35 -17
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/monit.d.ts.map +1 -1
- package/dist/commands/monit.js +3 -2
- package/dist/commands/monit.js.map +1 -1
- package/dist/commands/node.d.ts +68 -0
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +285 -68
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/output.d.ts +10 -0
- package/dist/commands/output.d.ts.map +1 -1
- package/dist/commands/output.js +41 -1
- package/dist/commands/output.js.map +1 -1
- package/dist/commands/pipeline.d.ts.map +1 -1
- package/dist/commands/pipeline.js +26 -19
- package/dist/commands/pipeline.js.map +1 -1
- package/dist/commands/project.d.ts +19 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +125 -27
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/release-store.d.ts +28 -0
- package/dist/commands/release-store.d.ts.map +1 -0
- package/dist/commands/release-store.js +158 -0
- package/dist/commands/release-store.js.map +1 -0
- package/dist/commands/release.d.ts +61 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +555 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/reload.d.ts +16 -0
- package/dist/commands/reload.d.ts.map +1 -1
- package/dist/commands/reload.js +21 -5
- package/dist/commands/reload.js.map +1 -1
- package/dist/commands/remote.d.ts +40 -0
- package/dist/commands/remote.d.ts.map +1 -1
- package/dist/commands/remote.js +146 -35
- package/dist/commands/remote.js.map +1 -1
- package/dist/commands/restart.d.ts +16 -0
- package/dist/commands/restart.d.ts.map +1 -1
- package/dist/commands/restart.js +21 -5
- package/dist/commands/restart.js.map +1 -1
- package/dist/commands/scale.d.ts.map +1 -1
- package/dist/commands/scale.js +4 -3
- package/dist/commands/scale.js.map +1 -1
- package/dist/commands/secret.d.ts +54 -0
- package/dist/commands/secret.d.ts.map +1 -1
- package/dist/commands/secret.js +236 -34
- package/dist/commands/secret.js.map +1 -1
- package/dist/commands/service-units.d.ts +181 -0
- package/dist/commands/service-units.d.ts.map +1 -0
- package/dist/commands/service-units.js +291 -0
- package/dist/commands/service-units.js.map +1 -0
- package/dist/commands/service.d.ts +39 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +370 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/spinner.d.ts +29 -0
- package/dist/commands/spinner.d.ts.map +1 -0
- package/dist/commands/spinner.js +44 -0
- package/dist/commands/spinner.js.map +1 -0
- package/dist/commands/stack.d.ts +49 -1
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +325 -12
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/start.d.ts +16 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +20 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +45 -29
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts +16 -0
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +34 -6
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tor.d.ts +14 -7
- package/dist/commands/tor.d.ts.map +1 -1
- package/dist/commands/tor.js +113 -33
- package/dist/commands/tor.js.map +1 -1
- package/dist/commands/up.d.ts +85 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +180 -32
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/webapp.d.ts.map +1 -1
- package/dist/commands/webapp.js +2 -1
- package/dist/commands/webapp.js.map +1 -1
- package/dist/config/defaults.d.ts +16 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +26 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/define-ecosystem.d.ts.map +1 -1
- package/dist/config/define-ecosystem.js +2 -0
- package/dist/config/define-ecosystem.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts +45 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +64 -6
- package/dist/config/loader.js.map +1 -1
- package/dist/config/omnitron-config.schema.d.ts.map +1 -1
- package/dist/config/omnitron-config.schema.js +16 -0
- package/dist/config/omnitron-config.schema.js.map +1 -1
- package/dist/config/types.d.ts +411 -42
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/config-reload.d.ts +27 -0
- package/dist/daemon/config-reload.d.ts.map +1 -0
- package/dist/daemon/config-reload.js +42 -0
- package/dist/daemon/config-reload.js.map +1 -0
- package/dist/daemon/daemon-client.d.ts +136 -2
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +307 -21
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon-entry.js +90 -30
- package/dist/daemon/daemon-entry.js.map +1 -1
- package/dist/daemon/daemon-scheduler.d.ts +4 -0
- package/dist/daemon/daemon-scheduler.d.ts.map +1 -1
- package/dist/daemon/daemon-scheduler.js +137 -7
- package/dist/daemon/daemon-scheduler.js.map +1 -1
- package/dist/daemon/daemon-state-store.service.d.ts +263 -0
- package/dist/daemon/daemon-state-store.service.d.ts.map +1 -0
- package/dist/daemon/daemon-state-store.service.js +446 -0
- package/dist/daemon/daemon-state-store.service.js.map +1 -0
- package/dist/daemon/daemon.d.ts +205 -1
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +1139 -139
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.module.d.ts.map +1 -1
- package/dist/daemon/daemon.module.js +163 -83
- package/dist/daemon/daemon.module.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +90 -1
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +438 -96
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/pid-manager.d.ts +16 -3
- package/dist/daemon/pid-manager.d.ts.map +1 -1
- package/dist/daemon/pid-manager.js +31 -4
- package/dist/daemon/pid-manager.js.map +1 -1
- package/dist/daemon/spawn-daemon.d.ts +73 -0
- package/dist/daemon/spawn-daemon.d.ts.map +1 -0
- package/dist/daemon/spawn-daemon.js +101 -0
- package/dist/daemon/spawn-daemon.js.map +1 -0
- package/dist/daemon/state-store.d.ts +65 -3
- package/dist/daemon/state-store.d.ts.map +1 -1
- package/dist/daemon/state-store.js +100 -58
- package/dist/daemon/state-store.js.map +1 -1
- package/dist/database/connection.d.ts +71 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +129 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/dialect.d.ts +60 -0
- package/dist/database/dialect.d.ts.map +1 -0
- package/dist/database/dialect.js +80 -0
- package/dist/database/dialect.js.map +1 -0
- package/dist/database/migrate.d.ts +5 -2
- package/dist/database/migrate.d.ts.map +1 -1
- package/dist/database/migrate.js +23 -33
- package/dist/database/migrate.js.map +1 -1
- package/dist/database/migration-runner.d.ts +50 -0
- package/dist/database/migration-runner.d.ts.map +1 -0
- package/dist/database/migration-runner.js +143 -0
- package/dist/database/migration-runner.js.map +1 -0
- package/dist/database/migrations/006_login_throttle.d.ts +17 -0
- package/dist/database/migrations/006_login_throttle.d.ts.map +1 -0
- package/dist/database/migrations/006_login_throttle.js +33 -0
- package/dist/database/migrations/006_login_throttle.js.map +1 -0
- package/dist/database/migrations/007_sync_ingested.d.ts +21 -0
- package/dist/database/migrations/007_sync_ingested.d.ts.map +1 -0
- package/dist/database/migrations/007_sync_ingested.js +39 -0
- package/dist/database/migrations/007_sync_ingested.js.map +1 -0
- package/dist/database/migrations/008_node_health_version_text.d.ts +24 -0
- package/dist/database/migrations/008_node_health_version_text.d.ts.map +1 -0
- package/dist/database/migrations/008_node_health_version_text.js +35 -0
- package/dist/database/migrations/008_node_health_version_text.js.map +1 -0
- package/dist/database/migrations/009_node_health_unmeasured.d.ts +40 -0
- package/dist/database/migrations/009_node_health_unmeasured.d.ts.map +1 -0
- package/dist/database/migrations/009_node_health_unmeasured.js +63 -0
- package/dist/database/migrations/009_node_health_unmeasured.js.map +1 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.d.ts +22 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.d.ts.map +1 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.js +26 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.js.map +1 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.d.ts +56 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.d.ts.map +1 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.js +79 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.js.map +1 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.d.ts +26 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.d.ts.map +1 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.js +40 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.js.map +1 -0
- package/dist/database/migrations/013_an_alarm_delivered.d.ts +14 -0
- package/dist/database/migrations/013_an_alarm_delivered.d.ts.map +1 -0
- package/dist/database/migrations/013_an_alarm_delivered.js +28 -0
- package/dist/database/migrations/013_an_alarm_delivered.js.map +1 -0
- package/dist/database/migrations/index.d.ts +21 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/migrations/index.js +47 -0
- package/dist/database/migrations/index.js.map +1 -0
- package/dist/database/schema.d.ts +27 -11
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/sqlite-date-binding.d.ts +71 -0
- package/dist/database/sqlite-date-binding.d.ts.map +1 -0
- package/dist/database/sqlite-date-binding.js +174 -0
- package/dist/database/sqlite-date-binding.js.map +1 -0
- package/dist/execution/data-channel.d.ts +48 -0
- package/dist/execution/data-channel.d.ts.map +1 -0
- package/dist/execution/data-channel.js +55 -0
- package/dist/execution/data-channel.js.map +1 -0
- package/dist/execution/execution.service.d.ts +139 -0
- package/dist/execution/execution.service.d.ts.map +1 -1
- package/dist/execution/execution.service.js +273 -10
- package/dist/execution/execution.service.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/infrastructure/bare-metal-plan.d.ts +208 -0
- package/dist/infrastructure/bare-metal-plan.d.ts.map +1 -0
- package/dist/infrastructure/bare-metal-plan.js +363 -0
- package/dist/infrastructure/bare-metal-plan.js.map +1 -0
- package/dist/infrastructure/bare-metal-runner.d.ts +65 -0
- package/dist/infrastructure/bare-metal-runner.d.ts.map +1 -0
- package/dist/infrastructure/bare-metal-runner.js +354 -0
- package/dist/infrastructure/bare-metal-runner.js.map +1 -0
- package/dist/infrastructure/config-payload.d.ts +149 -0
- package/dist/infrastructure/config-payload.d.ts.map +1 -0
- package/dist/infrastructure/config-payload.js +235 -0
- package/dist/infrastructure/config-payload.js.map +1 -0
- package/dist/infrastructure/container-runtime.d.ts +169 -1
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +525 -33
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/gateway-reachability.d.ts +85 -0
- package/dist/infrastructure/gateway-reachability.d.ts.map +1 -0
- package/dist/infrastructure/gateway-reachability.js +116 -0
- package/dist/infrastructure/gateway-reachability.js.map +1 -0
- package/dist/infrastructure/gateway-redis-db.d.ts +29 -0
- package/dist/infrastructure/gateway-redis-db.d.ts.map +1 -0
- package/dist/infrastructure/gateway-redis-db.js +32 -0
- package/dist/infrastructure/gateway-redis-db.js.map +1 -0
- package/dist/infrastructure/host-inspection.d.ts +223 -0
- package/dist/infrastructure/host-inspection.d.ts.map +1 -0
- package/dist/infrastructure/host-inspection.js +501 -0
- package/dist/infrastructure/host-inspection.js.map +1 -0
- package/dist/infrastructure/infrastructure-gate.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.d.ts +206 -6
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +415 -89
- package/dist/infrastructure/infrastructure.service.js.map +1 -1
- package/dist/infrastructure/known-machines.d.ts +76 -0
- package/dist/infrastructure/known-machines.d.ts.map +1 -0
- package/dist/infrastructure/known-machines.js +94 -0
- package/dist/infrastructure/known-machines.js.map +1 -0
- package/dist/infrastructure/node-credentials.d.ts +45 -0
- package/dist/infrastructure/node-credentials.d.ts.map +1 -0
- package/dist/infrastructure/node-credentials.js +80 -0
- package/dist/infrastructure/node-credentials.js.map +1 -0
- package/dist/infrastructure/orphan-containers.d.ts +99 -0
- package/dist/infrastructure/orphan-containers.d.ts.map +1 -0
- package/dist/infrastructure/orphan-containers.js +106 -0
- package/dist/infrastructure/orphan-containers.js.map +1 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts +20 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -1
- package/dist/infrastructure/phantom-endpoint-janitor.js +56 -6
- package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -1
- package/dist/infrastructure/presets/gateway-openresty.d.ts.map +1 -1
- package/dist/infrastructure/presets/gateway-openresty.js +29 -3
- package/dist/infrastructure/presets/gateway-openresty.js.map +1 -1
- package/dist/infrastructure/presets/minio.d.ts.map +1 -1
- package/dist/infrastructure/presets/minio.js +36 -3
- package/dist/infrastructure/presets/minio.js.map +1 -1
- package/dist/infrastructure/presets/postgres.d.ts.map +1 -1
- package/dist/infrastructure/presets/postgres.js +69 -2
- package/dist/infrastructure/presets/postgres.js.map +1 -1
- package/dist/infrastructure/presets/redis.d.ts.map +1 -1
- package/dist/infrastructure/presets/redis.js +13 -0
- package/dist/infrastructure/presets/redis.js.map +1 -1
- package/dist/infrastructure/presets/registry.d.ts.map +1 -1
- package/dist/infrastructure/presets/registry.js +81 -12
- package/dist/infrastructure/presets/registry.js.map +1 -1
- package/dist/infrastructure/presets/tor.d.ts +38 -0
- package/dist/infrastructure/presets/tor.d.ts.map +1 -1
- package/dist/infrastructure/presets/tor.js +78 -69
- package/dist/infrastructure/presets/tor.js.map +1 -1
- package/dist/infrastructure/presets/torrc.d.ts +54 -0
- package/dist/infrastructure/presets/torrc.d.ts.map +1 -0
- package/dist/infrastructure/presets/torrc.js +153 -0
- package/dist/infrastructure/presets/torrc.js.map +1 -0
- package/dist/infrastructure/presets/types.d.ts +17 -0
- package/dist/infrastructure/presets/types.d.ts.map +1 -1
- package/dist/infrastructure/provisioning-outcome.d.ts +85 -0
- package/dist/infrastructure/provisioning-outcome.d.ts.map +1 -0
- package/dist/infrastructure/provisioning-outcome.js +122 -0
- package/dist/infrastructure/provisioning-outcome.js.map +1 -0
- package/dist/infrastructure/server-registry.d.ts +27 -0
- package/dist/infrastructure/server-registry.d.ts.map +1 -1
- package/dist/infrastructure/server-registry.js +60 -5
- package/dist/infrastructure/server-registry.js.map +1 -1
- package/dist/infrastructure/service-binding.d.ts +60 -0
- package/dist/infrastructure/service-binding.d.ts.map +1 -0
- package/dist/infrastructure/service-binding.js +90 -0
- package/dist/infrastructure/service-binding.js.map +1 -0
- package/dist/infrastructure/service-credentials.d.ts +105 -0
- package/dist/infrastructure/service-credentials.d.ts.map +1 -0
- package/dist/infrastructure/service-credentials.js +141 -0
- package/dist/infrastructure/service-credentials.js.map +1 -0
- package/dist/infrastructure/service-resolver.d.ts +160 -12
- package/dist/infrastructure/service-resolver.d.ts.map +1 -1
- package/dist/infrastructure/service-resolver.js +463 -53
- package/dist/infrastructure/service-resolver.js.map +1 -1
- package/dist/infrastructure/shipped-config.d.ts +43 -0
- package/dist/infrastructure/shipped-config.d.ts.map +1 -0
- package/dist/infrastructure/shipped-config.js +159 -0
- package/dist/infrastructure/shipped-config.js.map +1 -0
- package/dist/infrastructure/stack-infra-manager.d.ts +6 -0
- package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
- package/dist/infrastructure/stack-infra-manager.js +31 -13
- package/dist/infrastructure/stack-infra-manager.js.map +1 -1
- package/dist/infrastructure/types.d.ts +261 -6
- package/dist/infrastructure/types.d.ts.map +1 -1
- package/dist/mcp/mcp-bridge.d.ts.map +1 -1
- package/dist/mcp/mcp-bridge.js.map +1 -1
- package/dist/mcp/tool-groups/apps.tools.d.ts +2 -1
- package/dist/mcp/tool-groups/apps.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/apps.tools.js +2 -2
- package/dist/mcp/tool-groups/apps.tools.js.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.d.ts +16 -2
- package/dist/mcp/tool-groups/infra.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.js +51 -41
- package/dist/mcp/tool-groups/infra.tools.js.map +1 -1
- package/dist/mcp/tool-groups/kb.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/kb.tools.js +4 -6
- package/dist/mcp/tool-groups/kb.tools.js.map +1 -1
- package/dist/mcp/tool-groups/management.tools.d.ts +20 -3
- package/dist/mcp/tool-groups/management.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/management.tools.js +158 -125
- package/dist/mcp/tool-groups/management.tools.js.map +1 -1
- package/dist/mcp/tool-groups/monitoring.tools.d.ts +10 -1
- package/dist/mcp/tool-groups/monitoring.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/monitoring.tools.js +65 -18
- package/dist/mcp/tool-groups/monitoring.tools.js.map +1 -1
- package/dist/mcp/unavailable-tools.d.ts +35 -0
- package/dist/mcp/unavailable-tools.d.ts.map +1 -0
- package/dist/mcp/unavailable-tools.js +59 -0
- package/dist/mcp/unavailable-tools.js.map +1 -0
- package/dist/monitoring/app-health.indicator.d.ts.map +1 -1
- package/dist/monitoring/app-health.indicator.js +12 -0
- package/dist/monitoring/app-health.indicator.js.map +1 -1
- package/dist/monitoring/desktop-notifier.d.ts +26 -0
- package/dist/monitoring/desktop-notifier.d.ts.map +1 -0
- package/dist/monitoring/desktop-notifier.js +49 -0
- package/dist/monitoring/desktop-notifier.js.map +1 -0
- package/dist/monitoring/docker-health.indicator.d.ts +17 -1
- package/dist/monitoring/docker-health.indicator.d.ts.map +1 -1
- package/dist/monitoring/docker-health.indicator.js +38 -8
- package/dist/monitoring/docker-health.indicator.js.map +1 -1
- package/dist/monitoring/event-loop-stall.indicator.d.ts +26 -0
- package/dist/monitoring/event-loop-stall.indicator.d.ts.map +1 -0
- package/dist/monitoring/event-loop-stall.indicator.js +47 -0
- package/dist/monitoring/event-loop-stall.indicator.js.map +1 -0
- package/dist/monitoring/event-loop-watch.d.ts +124 -0
- package/dist/monitoring/event-loop-watch.d.ts.map +1 -0
- package/dist/monitoring/event-loop-watch.js +179 -0
- package/dist/monitoring/event-loop-watch.js.map +1 -0
- package/dist/monitoring/host-disk.d.ts +6 -0
- package/dist/monitoring/host-disk.d.ts.map +1 -0
- package/dist/monitoring/host-disk.js +26 -0
- package/dist/monitoring/host-disk.js.map +1 -0
- package/dist/monitoring/log-line.d.ts +188 -0
- package/dist/monitoring/log-line.d.ts.map +1 -0
- package/dist/monitoring/log-line.js +458 -0
- package/dist/monitoring/log-line.js.map +1 -0
- package/dist/monitoring/log-manager.d.ts +89 -8
- package/dist/monitoring/log-manager.d.ts.map +1 -1
- package/dist/monitoring/log-manager.js +246 -77
- package/dist/monitoring/log-manager.js.map +1 -1
- package/dist/observability/metrics-bridge.d.ts.map +1 -1
- package/dist/observability/metrics-server.d.ts.map +1 -1
- package/dist/orchestrator/app-handle.d.ts +157 -2
- package/dist/orchestrator/app-handle.d.ts.map +1 -1
- package/dist/orchestrator/app-handle.js +165 -3
- package/dist/orchestrator/app-handle.js.map +1 -1
- package/dist/orchestrator/app-health.d.ts +33 -0
- package/dist/orchestrator/app-health.d.ts.map +1 -0
- package/dist/orchestrator/app-health.js +74 -0
- package/dist/orchestrator/app-health.js.map +1 -0
- package/dist/orchestrator/app-traffic.d.ts +14 -0
- package/dist/orchestrator/app-traffic.d.ts.map +1 -0
- package/dist/orchestrator/app-traffic.js +33 -0
- package/dist/orchestrator/app-traffic.js.map +1 -0
- package/dist/orchestrator/bootstrap-loader-child.d.ts +19 -0
- package/dist/orchestrator/bootstrap-loader-child.d.ts.map +1 -0
- package/dist/orchestrator/bootstrap-loader-child.js +43 -0
- package/dist/orchestrator/bootstrap-loader-child.js.map +1 -0
- package/dist/orchestrator/bootstrap-loader.d.ts +72 -0
- package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-loader.js +350 -5
- package/dist/orchestrator/bootstrap-loader.js.map +1 -1
- package/dist/orchestrator/bootstrap-process.d.ts +99 -4
- package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-process.js +330 -19
- package/dist/orchestrator/bootstrap-process.js.map +1 -1
- package/dist/orchestrator/build-service.d.ts.map +1 -1
- package/dist/orchestrator/build-service.js.map +1 -1
- package/dist/orchestrator/call-exposed-service.d.ts +7 -0
- package/dist/orchestrator/call-exposed-service.d.ts.map +1 -0
- package/dist/orchestrator/call-exposed-service.js +50 -0
- package/dist/orchestrator/call-exposed-service.js.map +1 -0
- package/dist/orchestrator/classic-launcher.d.ts +1 -0
- package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
- package/dist/orchestrator/classic-launcher.js +34 -3
- package/dist/orchestrator/classic-launcher.js.map +1 -1
- package/dist/orchestrator/file-watcher.d.ts +78 -1
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +181 -6
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/module-worker-process.d.ts.map +1 -1
- package/dist/orchestrator/module-worker-process.js +10 -0
- package/dist/orchestrator/module-worker-process.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +371 -11
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +1602 -269
- package/dist/orchestrator/orchestrator.service.js.map +1 -1
- package/dist/orchestrator/owned-pids.d.ts +83 -0
- package/dist/orchestrator/owned-pids.d.ts.map +1 -0
- package/dist/orchestrator/owned-pids.js +93 -0
- package/dist/orchestrator/owned-pids.js.map +1 -0
- package/dist/orchestrator/port-conflict.d.ts +102 -0
- package/dist/orchestrator/port-conflict.d.ts.map +1 -0
- package/dist/orchestrator/port-conflict.js +131 -0
- package/dist/orchestrator/port-conflict.js.map +1 -0
- package/dist/orchestrator/process-janitor.d.ts +78 -4
- package/dist/orchestrator/process-janitor.d.ts.map +1 -1
- package/dist/orchestrator/process-janitor.js +246 -30
- package/dist/orchestrator/process-janitor.js.map +1 -1
- package/dist/orchestrator/ps-metrics.d.ts +37 -0
- package/dist/orchestrator/ps-metrics.d.ts.map +1 -0
- package/dist/orchestrator/ps-metrics.js +60 -0
- package/dist/orchestrator/ps-metrics.js.map +1 -0
- package/dist/orchestrator/service-router.d.ts +58 -2
- package/dist/orchestrator/service-router.d.ts.map +1 -1
- package/dist/orchestrator/service-router.js +157 -25
- package/dist/orchestrator/service-router.js.map +1 -1
- package/dist/orchestrator/topology-query.d.ts +49 -0
- package/dist/orchestrator/topology-query.d.ts.map +1 -0
- package/dist/orchestrator/topology-query.js +54 -0
- package/dist/orchestrator/topology-query.js.map +1 -0
- package/dist/project/artifact-builder.d.ts +174 -3
- package/dist/project/artifact-builder.d.ts.map +1 -1
- package/dist/project/artifact-builder.js +454 -42
- package/dist/project/artifact-builder.js.map +1 -1
- package/dist/project/build-decision.d.ts +58 -0
- package/dist/project/build-decision.d.ts.map +1 -0
- package/dist/project/build-decision.js +59 -0
- package/dist/project/build-decision.js.map +1 -0
- package/dist/project/config-resolver.d.ts +6 -4
- package/dist/project/config-resolver.d.ts.map +1 -1
- package/dist/project/config-resolver.js +128 -74
- package/dist/project/config-resolver.js.map +1 -1
- package/dist/project/declared-config.d.ts +42 -0
- package/dist/project/declared-config.d.ts.map +1 -0
- package/dist/project/declared-config.js +60 -0
- package/dist/project/declared-config.js.map +1 -0
- package/dist/project/dependency-analyzer.d.ts.map +1 -1
- package/dist/project/dependency-analyzer.js.map +1 -1
- package/dist/project/deploy-phases.d.ts +35 -0
- package/dist/project/deploy-phases.d.ts.map +1 -0
- package/dist/project/deploy-phases.js +75 -0
- package/dist/project/deploy-phases.js.map +1 -0
- package/dist/project/exec-in-group.d.ts +49 -0
- package/dist/project/exec-in-group.d.ts.map +1 -0
- package/dist/project/exec-in-group.js +100 -0
- package/dist/project/exec-in-group.js.map +1 -0
- package/dist/project/node-app-config.d.ts +101 -0
- package/dist/project/node-app-config.d.ts.map +1 -0
- package/dist/project/node-app-config.js +134 -0
- package/dist/project/node-app-config.js.map +1 -0
- package/dist/project/node-app-health.d.ts +76 -0
- package/dist/project/node-app-health.d.ts.map +1 -0
- package/dist/project/node-app-health.js +119 -0
- package/dist/project/node-app-health.js.map +1 -0
- package/dist/project/operator-account.d.ts +287 -0
- package/dist/project/operator-account.d.ts.map +1 -0
- package/dist/project/operator-account.js +373 -0
- package/dist/project/operator-account.js.map +1 -0
- package/dist/project/registry.d.ts +45 -8
- package/dist/project/registry.d.ts.map +1 -1
- package/dist/project/registry.js +217 -49
- package/dist/project/registry.js.map +1 -1
- package/dist/project/requirements-scanner.d.ts +1 -0
- package/dist/project/requirements-scanner.d.ts.map +1 -1
- package/dist/project/requirements-scanner.js +28 -3
- package/dist/project/requirements-scanner.js.map +1 -1
- package/dist/project/stack-env.d.ts +37 -0
- package/dist/project/stack-env.d.ts.map +1 -0
- package/dist/project/stack-env.js +85 -0
- package/dist/project/stack-env.js.map +1 -0
- package/dist/project/stand-containers.d.ts +4 -0
- package/dist/project/stand-containers.d.ts.map +1 -0
- package/dist/project/stand-containers.js +27 -0
- package/dist/project/stand-containers.js.map +1 -0
- package/dist/project/working-tree.d.ts +62 -0
- package/dist/project/working-tree.d.ts.map +1 -0
- package/dist/project/working-tree.js +101 -0
- package/dist/project/working-tree.js.map +1 -0
- package/dist/release/artifact-store.d.ts +360 -0
- package/dist/release/artifact-store.d.ts.map +1 -0
- package/dist/release/artifact-store.js +1040 -0
- package/dist/release/artifact-store.js.map +1 -0
- package/dist/release/attest-on-node.d.ts +92 -0
- package/dist/release/attest-on-node.d.ts.map +1 -0
- package/dist/release/attest-on-node.js +207 -0
- package/dist/release/attest-on-node.js.map +1 -0
- package/dist/release/attest.d.ts +135 -0
- package/dist/release/attest.d.ts.map +1 -0
- package/dist/release/attest.js +199 -0
- package/dist/release/attest.js.map +1 -0
- package/dist/release/build-run.d.ts +151 -0
- package/dist/release/build-run.d.ts.map +1 -0
- package/dist/release/build-run.js +609 -0
- package/dist/release/build-run.js.map +1 -0
- package/dist/release/builder.d.ts +57 -0
- package/dist/release/builder.d.ts.map +1 -0
- package/dist/release/builder.js +120 -0
- package/dist/release/builder.js.map +1 -0
- package/dist/release/daemon-omni.d.ts +41 -0
- package/dist/release/daemon-omni.d.ts.map +1 -0
- package/dist/release/daemon-omni.js +59 -0
- package/dist/release/daemon-omni.js.map +1 -0
- package/dist/release/definition-inputs.d.ts +34 -0
- package/dist/release/definition-inputs.d.ts.map +1 -0
- package/dist/release/definition-inputs.js +90 -0
- package/dist/release/definition-inputs.js.map +1 -0
- package/dist/release/delivered.d.ts +53 -0
- package/dist/release/delivered.d.ts.map +1 -0
- package/dist/release/delivered.js +81 -0
- package/dist/release/delivered.js.map +1 -0
- package/dist/release/layout.d.ts +61 -0
- package/dist/release/layout.d.ts.map +1 -0
- package/dist/release/layout.js +114 -0
- package/dist/release/layout.js.map +1 -0
- package/dist/release/load.d.ts +44 -0
- package/dist/release/load.d.ts.map +1 -0
- package/dist/release/load.js +84 -0
- package/dist/release/load.js.map +1 -0
- package/dist/release/manifest.d.ts +299 -0
- package/dist/release/manifest.d.ts.map +1 -0
- package/dist/release/manifest.js +176 -0
- package/dist/release/manifest.js.map +1 -0
- package/dist/release/migrations.d.ts +32 -0
- package/dist/release/migrations.d.ts.map +1 -0
- package/dist/release/migrations.js +51 -0
- package/dist/release/migrations.js.map +1 -0
- package/dist/release/publish.d.ts +71 -0
- package/dist/release/publish.d.ts.map +1 -0
- package/dist/release/publish.js +102 -0
- package/dist/release/publish.js.map +1 -0
- package/dist/release/store.d.ts +174 -0
- package/dist/release/store.d.ts.map +1 -0
- package/dist/release/store.js +257 -0
- package/dist/release/store.js.map +1 -0
- package/dist/services/alert.rpc-service.d.ts +11 -15
- package/dist/services/alert.rpc-service.d.ts.map +1 -1
- package/dist/services/alert.rpc-service.js +29 -14
- package/dist/services/alert.rpc-service.js.map +1 -1
- package/dist/services/alert.service.d.ts +96 -59
- package/dist/services/alert.service.d.ts.map +1 -1
- package/dist/services/alert.service.js +455 -70
- package/dist/services/alert.service.js.map +1 -1
- package/dist/services/anonymous-input.d.ts +26 -0
- package/dist/services/anonymous-input.d.ts.map +1 -0
- package/dist/services/anonymous-input.js +44 -0
- package/dist/services/anonymous-input.js.map +1 -0
- package/dist/services/audit.rpc-service.d.ts +27 -0
- package/dist/services/audit.rpc-service.d.ts.map +1 -0
- package/dist/services/audit.rpc-service.js +57 -0
- package/dist/services/audit.rpc-service.js.map +1 -0
- package/dist/services/audit.service.d.ts +165 -0
- package/dist/services/audit.service.d.ts.map +1 -0
- package/dist/services/audit.service.js +242 -0
- package/dist/services/audit.service.js.map +1 -0
- package/dist/services/auth-context.d.ts +21 -1
- package/dist/services/auth-context.d.ts.map +1 -1
- package/dist/services/auth-context.js +51 -5
- package/dist/services/auth-context.js.map +1 -1
- package/dist/services/auth.rpc-service.d.ts +0 -1
- package/dist/services/auth.rpc-service.d.ts.map +1 -1
- package/dist/services/auth.rpc-service.js +23 -9
- package/dist/services/auth.rpc-service.js.map +1 -1
- package/dist/services/auth.service.d.ts +47 -33
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +155 -23
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/backup-pipeline.d.ts +97 -0
- package/dist/services/backup-pipeline.d.ts.map +1 -0
- package/dist/services/backup-pipeline.js +286 -0
- package/dist/services/backup-pipeline.js.map +1 -0
- package/dist/services/backup-schedule.d.ts +69 -0
- package/dist/services/backup-schedule.d.ts.map +1 -0
- package/dist/services/backup-schedule.js +132 -0
- package/dist/services/backup-schedule.js.map +1 -0
- package/dist/services/backup.rpc-service.d.ts +31 -2
- package/dist/services/backup.rpc-service.d.ts.map +1 -1
- package/dist/services/backup.rpc-service.js +53 -0
- package/dist/services/backup.rpc-service.js.map +1 -1
- package/dist/services/backup.service.d.ts +458 -14
- package/dist/services/backup.service.d.ts.map +1 -1
- package/dist/services/backup.service.js +1368 -170
- package/dist/services/backup.service.js.map +1 -1
- package/dist/services/bundle-build-worker.d.ts +19 -0
- package/dist/services/bundle-build-worker.d.ts.map +1 -0
- package/dist/services/bundle-build-worker.js +40 -0
- package/dist/services/bundle-build-worker.js.map +1 -0
- package/dist/services/bundle-builder.d.ts +487 -0
- package/dist/services/bundle-builder.d.ts.map +1 -0
- package/dist/services/bundle-builder.js +1083 -0
- package/dist/services/bundle-builder.js.map +1 -0
- package/dist/services/bundle-worker-protocol.d.ts +19 -0
- package/dist/services/bundle-worker-protocol.d.ts.map +1 -0
- package/dist/services/bundle-worker-protocol.js +32 -0
- package/dist/services/bundle-worker-protocol.js.map +1 -0
- package/dist/services/deploy.rpc-service.d.ts +4 -1
- package/dist/services/deploy.rpc-service.d.ts.map +1 -1
- package/dist/services/deploy.rpc-service.js +10 -0
- package/dist/services/deploy.rpc-service.js.map +1 -1
- package/dist/services/deploy.service.d.ts +14 -24
- package/dist/services/deploy.service.d.ts.map +1 -1
- package/dist/services/deploy.service.js +46 -5
- package/dist/services/deploy.service.js.map +1 -1
- package/dist/services/discovery.rpc-service.d.ts +2 -1
- package/dist/services/discovery.rpc-service.d.ts.map +1 -1
- package/dist/services/discovery.rpc-service.js.map +1 -1
- package/dist/services/discovery.service.d.ts +32 -28
- package/dist/services/discovery.service.d.ts.map +1 -1
- package/dist/services/discovery.service.js +108 -133
- package/dist/services/discovery.service.js.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.d.ts +36 -23
- package/dist/services/event-broadcaster.rpc-service.d.ts.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.js +70 -32
- package/dist/services/event-broadcaster.rpc-service.js.map +1 -1
- package/dist/services/event-broadcaster.service.d.ts.map +1 -1
- package/dist/services/event-broadcaster.service.js.map +1 -1
- package/dist/services/fleet.rpc-service.d.ts +2 -1
- package/dist/services/fleet.rpc-service.d.ts.map +1 -1
- package/dist/services/fleet.rpc-service.js +3 -1
- package/dist/services/fleet.rpc-service.js.map +1 -1
- package/dist/services/fleet.service.d.ts +32 -34
- package/dist/services/fleet.service.d.ts.map +1 -1
- package/dist/services/fleet.service.js +66 -10
- package/dist/services/fleet.service.js.map +1 -1
- package/dist/services/health-check.rpc-service.d.ts +2 -1
- package/dist/services/health-check.rpc-service.d.ts.map +1 -1
- package/dist/services/health-check.rpc-service.js.map +1 -1
- package/dist/services/health-check.service.d.ts +50 -36
- package/dist/services/health-check.service.d.ts.map +1 -1
- package/dist/services/health-check.service.js +179 -182
- package/dist/services/health-check.service.js.map +1 -1
- package/dist/services/infrastructure.rpc-service.d.ts +297 -2
- package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
- package/dist/services/infrastructure.rpc-service.js +523 -11
- package/dist/services/infrastructure.rpc-service.js.map +1 -1
- package/dist/services/kubernetes.rpc-service.d.ts +2 -1
- package/dist/services/kubernetes.rpc-service.d.ts.map +1 -1
- package/dist/services/kubernetes.rpc-service.js.map +1 -1
- package/dist/services/kubernetes.service.d.ts +5 -39
- package/dist/services/kubernetes.service.d.ts.map +1 -1
- package/dist/services/kubernetes.service.js +29 -5
- package/dist/services/kubernetes.service.js.map +1 -1
- package/dist/services/local-bundle.d.ts +151 -0
- package/dist/services/local-bundle.d.ts.map +1 -0
- package/dist/services/local-bundle.js +233 -0
- package/dist/services/local-bundle.js.map +1 -0
- package/dist/services/lockout.d.ts +28 -0
- package/dist/services/lockout.d.ts.map +1 -0
- package/dist/services/lockout.js +41 -0
- package/dist/services/lockout.js.map +1 -0
- package/dist/services/log-collector.rpc-service.d.ts +16 -0
- package/dist/services/log-collector.rpc-service.d.ts.map +1 -1
- package/dist/services/log-collector.rpc-service.js +16 -0
- package/dist/services/log-collector.rpc-service.js.map +1 -1
- package/dist/services/log-collector.service.d.ts +172 -54
- package/dist/services/log-collector.service.d.ts.map +1 -1
- package/dist/services/log-collector.service.js +492 -102
- package/dist/services/log-collector.service.js.map +1 -1
- package/dist/services/log-retention.d.ts +50 -0
- package/dist/services/log-retention.d.ts.map +1 -0
- package/dist/services/log-retention.js +52 -0
- package/dist/services/log-retention.js.map +1 -0
- package/dist/services/maintenance-lock.d.ts +162 -0
- package/dist/services/maintenance-lock.d.ts.map +1 -0
- package/dist/services/maintenance-lock.js +316 -0
- package/dist/services/maintenance-lock.js.map +1 -0
- package/dist/services/master-address.d.ts +107 -0
- package/dist/services/master-address.d.ts.map +1 -0
- package/dist/services/master-address.js +154 -0
- package/dist/services/master-address.js.map +1 -0
- package/dist/services/migration-output.d.ts +16 -0
- package/dist/services/migration-output.d.ts.map +1 -0
- package/dist/services/migration-output.js +22 -0
- package/dist/services/migration-output.js.map +1 -0
- package/dist/services/netron-telemetry-transport.d.ts.map +1 -1
- package/dist/services/netron-telemetry-transport.js.map +1 -1
- package/dist/services/node-deploy-lease.d.ts +154 -0
- package/dist/services/node-deploy-lease.d.ts.map +1 -0
- package/dist/services/node-deploy-lease.js +386 -0
- package/dist/services/node-deploy-lease.js.map +1 -0
- package/dist/services/node-health.repository.d.ts +63 -4
- package/dist/services/node-health.repository.d.ts.map +1 -1
- package/dist/services/node-health.repository.js +108 -67
- package/dist/services/node-health.repository.js.map +1 -1
- package/dist/services/node-manager.rpc-service.d.ts +355 -10
- package/dist/services/node-manager.rpc-service.d.ts.map +1 -1
- package/dist/services/node-manager.rpc-service.js +730 -34
- package/dist/services/node-manager.rpc-service.js.map +1 -1
- package/dist/services/node-manager.service.d.ts +267 -95
- package/dist/services/node-manager.service.d.ts.map +1 -1
- package/dist/services/node-manager.service.js +805 -103
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/node-upgrade.d.ts +129 -0
- package/dist/services/node-upgrade.d.ts.map +1 -0
- package/dist/services/node-upgrade.js +161 -0
- package/dist/services/node-upgrade.js.map +1 -0
- package/dist/services/node-upgrade.service.d.ts +232 -0
- package/dist/services/node-upgrade.service.d.ts.map +1 -0
- package/dist/services/node-upgrade.service.js +468 -0
- package/dist/services/node-upgrade.service.js.map +1 -0
- package/dist/services/pipeline.rpc-service.d.ts +2 -1
- package/dist/services/pipeline.rpc-service.d.ts.map +1 -1
- package/dist/services/pipeline.rpc-service.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +15 -46
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +72 -9
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +133 -5
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +249 -22
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +677 -15
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +2798 -304
- package/dist/services/project.service.js.map +1 -1
- package/dist/services/redeploy-decision.d.ts +176 -0
- package/dist/services/redeploy-decision.d.ts.map +1 -0
- package/dist/services/redeploy-decision.js +142 -0
- package/dist/services/redeploy-decision.js.map +1 -0
- package/dist/services/release.rpc-service.d.ts +159 -0
- package/dist/services/release.rpc-service.d.ts.map +1 -0
- package/dist/services/release.rpc-service.js +395 -0
- package/dist/services/release.rpc-service.js.map +1 -0
- package/dist/services/release.service.d.ts +114 -0
- package/dist/services/release.service.d.ts.map +1 -0
- package/dist/services/release.service.js +208 -0
- package/dist/services/release.service.js.map +1 -0
- package/dist/services/remote-deployer.service.d.ts +569 -8
- package/dist/services/remote-deployer.service.d.ts.map +1 -1
- package/dist/services/remote-deployer.service.js +1618 -169
- package/dist/services/remote-deployer.service.js.map +1 -1
- package/dist/services/remote-ops.service.d.ts +51 -9
- package/dist/services/remote-ops.service.d.ts.map +1 -1
- package/dist/services/remote-ops.service.js +235 -39
- package/dist/services/remote-ops.service.js.map +1 -1
- package/dist/services/remote-provisioner.d.ts +122 -0
- package/dist/services/remote-provisioner.d.ts.map +1 -0
- package/dist/services/remote-provisioner.js +258 -0
- package/dist/services/remote-provisioner.js.map +1 -0
- package/dist/services/secrets.rpc-service.d.ts +51 -2
- package/dist/services/secrets.rpc-service.d.ts.map +1 -1
- package/dist/services/secrets.rpc-service.js +81 -2
- package/dist/services/secrets.rpc-service.js.map +1 -1
- package/dist/services/secrets.service.d.ts +108 -9
- package/dist/services/secrets.service.d.ts.map +1 -1
- package/dist/services/secrets.service.js +313 -48
- package/dist/services/secrets.service.js.map +1 -1
- package/dist/services/slave-storage.service.d.ts +107 -0
- package/dist/services/slave-storage.service.d.ts.map +1 -1
- package/dist/services/slave-storage.service.js +171 -2
- package/dist/services/slave-storage.service.js.map +1 -1
- package/dist/services/static-carry-forward.d.ts +85 -0
- package/dist/services/static-carry-forward.d.ts.map +1 -0
- package/dist/services/static-carry-forward.js +159 -0
- package/dist/services/static-carry-forward.js.map +1 -0
- package/dist/services/sync-policy.d.ts +167 -0
- package/dist/services/sync-policy.d.ts.map +1 -0
- package/dist/services/sync-policy.js +161 -0
- package/dist/services/sync-policy.js.map +1 -0
- package/dist/services/sync-summary.d.ts +39 -0
- package/dist/services/sync-summary.d.ts.map +1 -0
- package/dist/services/sync-summary.js +62 -0
- package/dist/services/sync-summary.js.map +1 -0
- package/dist/services/sync.rpc-service.d.ts +19 -7
- package/dist/services/sync.rpc-service.d.ts.map +1 -1
- package/dist/services/sync.rpc-service.js +36 -5
- package/dist/services/sync.rpc-service.js.map +1 -1
- package/dist/services/sync.service.d.ts +350 -18
- package/dist/services/sync.service.d.ts.map +1 -1
- package/dist/services/sync.service.js +864 -116
- package/dist/services/sync.service.js.map +1 -1
- package/dist/services/system-info.rpc-service.d.ts +2 -1
- package/dist/services/system-info.rpc-service.d.ts.map +1 -1
- package/dist/services/system-info.rpc-service.js.map +1 -1
- package/dist/services/system-info.service.d.ts +56 -68
- package/dist/services/system-info.service.d.ts.map +1 -1
- package/dist/services/system-info.service.js +240 -127
- package/dist/services/system-info.service.js.map +1 -1
- package/dist/services/telemetry.rpc-service.d.ts.map +1 -1
- package/dist/services/telemetry.rpc-service.js +9 -3
- package/dist/services/telemetry.rpc-service.js.map +1 -1
- package/dist/services/telemetry.service.d.ts +4 -2
- package/dist/services/telemetry.service.d.ts.map +1 -1
- package/dist/services/telemetry.service.js +4 -2
- package/dist/services/telemetry.service.js.map +1 -1
- package/dist/services/trace-collector.rpc-service.d.ts +2 -1
- package/dist/services/trace-collector.rpc-service.d.ts.map +1 -1
- package/dist/services/trace-collector.rpc-service.js.map +1 -1
- package/dist/services/trace-collector.service.d.ts +2 -41
- package/dist/services/trace-collector.service.d.ts.map +1 -1
- package/dist/services/trace-collector.service.js +27 -7
- package/dist/services/trace-collector.service.js.map +1 -1
- package/dist/services/wait-for-postgres.d.ts +28 -0
- package/dist/services/wait-for-postgres.d.ts.map +1 -0
- package/dist/services/wait-for-postgres.js +77 -0
- package/dist/services/wait-for-postgres.js.map +1 -0
- package/dist/shared/alert-expression.d.ts +60 -0
- package/dist/shared/alert-expression.d.ts.map +1 -0
- package/dist/shared/alert-expression.js +124 -0
- package/dist/shared/alert-expression.js.map +1 -0
- package/dist/shared/audit-outcome.d.ts +39 -0
- package/dist/shared/audit-outcome.d.ts.map +1 -0
- package/dist/shared/audit-outcome.js +45 -0
- package/dist/shared/audit-outcome.js.map +1 -0
- package/dist/shared/build-freshness.d.ts +59 -0
- package/dist/shared/build-freshness.d.ts.map +1 -0
- package/dist/shared/build-freshness.js +113 -0
- package/dist/shared/build-freshness.js.map +1 -0
- package/dist/shared/build-stamp.d.ts +26 -0
- package/dist/shared/build-stamp.d.ts.map +1 -0
- package/dist/shared/build-stamp.js +36 -0
- package/dist/shared/build-stamp.js.map +1 -0
- package/dist/shared/describe-error.d.ts +22 -0
- package/dist/shared/describe-error.d.ts.map +1 -0
- package/dist/shared/describe-error.js +39 -0
- package/dist/shared/describe-error.js.map +1 -0
- package/dist/shared/dto/alerts.d.ts +101 -0
- package/dist/shared/dto/alerts.d.ts.map +1 -0
- package/dist/shared/dto/alerts.js +9 -0
- package/dist/shared/dto/alerts.js.map +1 -0
- package/dist/shared/dto/auth.d.ts +49 -0
- package/dist/shared/dto/auth.d.ts.map +1 -0
- package/dist/shared/dto/auth.js +14 -0
- package/dist/shared/dto/auth.js.map +1 -0
- package/dist/shared/dto/backups.d.ts +16 -0
- package/dist/shared/dto/backups.d.ts.map +1 -0
- package/dist/shared/dto/backups.js +9 -0
- package/dist/shared/dto/backups.js.map +1 -0
- package/dist/shared/dto/deploy.d.ts +28 -0
- package/dist/shared/dto/deploy.d.ts.map +1 -0
- package/dist/shared/dto/deploy.js +8 -0
- package/dist/shared/dto/deploy.js.map +1 -0
- package/dist/shared/dto/discovery.d.ts +24 -0
- package/dist/shared/dto/discovery.d.ts.map +1 -0
- package/dist/shared/dto/discovery.js +9 -0
- package/dist/shared/dto/discovery.js.map +1 -0
- package/dist/shared/dto/fleet.d.ts +35 -0
- package/dist/shared/dto/fleet.d.ts.map +1 -0
- package/dist/shared/dto/fleet.js +8 -0
- package/dist/shared/dto/fleet.js.map +1 -0
- package/dist/shared/dto/health.d.ts +26 -0
- package/dist/shared/dto/health.d.ts.map +1 -0
- package/dist/shared/dto/health.js +9 -0
- package/dist/shared/dto/health.js.map +1 -0
- package/dist/shared/dto/kubernetes.d.ts +44 -0
- package/dist/shared/dto/kubernetes.d.ts.map +1 -0
- package/dist/shared/dto/kubernetes.js +9 -0
- package/dist/shared/dto/kubernetes.js.map +1 -0
- package/dist/shared/dto/logs.d.ts +77 -0
- package/dist/shared/dto/logs.d.ts.map +1 -0
- package/dist/shared/dto/logs.js +10 -0
- package/dist/shared/dto/logs.js.map +1 -0
- package/dist/shared/dto/metrics.d.ts +65 -0
- package/dist/shared/dto/metrics.d.ts.map +1 -0
- package/dist/shared/dto/metrics.js +17 -0
- package/dist/shared/dto/metrics.js.map +1 -0
- package/dist/shared/dto/nodes.d.ts +347 -0
- package/dist/shared/dto/nodes.d.ts.map +1 -0
- package/dist/shared/dto/nodes.js +8 -0
- package/dist/shared/dto/nodes.js.map +1 -0
- package/dist/shared/dto/pipelines.d.ts +53 -0
- package/dist/shared/dto/pipelines.d.ts.map +1 -0
- package/dist/shared/dto/pipelines.js +9 -0
- package/dist/shared/dto/pipelines.js.map +1 -0
- package/dist/shared/dto/project.d.ts +142 -8
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/services.d.ts +831 -7
- package/dist/shared/dto/services.d.ts.map +1 -1
- package/dist/shared/dto/system-info.d.ts +93 -0
- package/dist/shared/dto/system-info.d.ts.map +1 -0
- package/dist/shared/dto/system-info.js +9 -0
- package/dist/shared/dto/system-info.js.map +1 -0
- package/dist/shared/dto/traces.d.ts +49 -0
- package/dist/shared/dto/traces.d.ts.map +1 -0
- package/dist/shared/dto/traces.js +9 -0
- package/dist/shared/dto/traces.js.map +1 -0
- package/dist/shared/env-config.d.ts +74 -0
- package/dist/shared/env-config.d.ts.map +1 -0
- package/dist/shared/env-config.js +99 -0
- package/dist/shared/env-config.js.map +1 -0
- package/dist/shared/events.d.ts +45 -39
- package/dist/shared/events.d.ts.map +1 -1
- package/dist/shared/events.js +6 -0
- package/dist/shared/events.js.map +1 -1
- package/dist/shared/format.d.ts +1 -1
- package/dist/shared/format.d.ts.map +1 -1
- package/dist/shared/format.js +4 -0
- package/dist/shared/format.js.map +1 -1
- package/dist/shared/local-infra-host.d.ts +28 -0
- package/dist/shared/local-infra-host.d.ts.map +1 -0
- package/dist/shared/local-infra-host.js +28 -0
- package/dist/shared/local-infra-host.js.map +1 -0
- package/dist/shared/node-check.d.ts +37 -0
- package/dist/shared/node-check.d.ts.map +1 -0
- package/dist/shared/node-check.js +41 -0
- package/dist/shared/node-check.js.map +1 -0
- package/dist/shared/paths.d.ts +29 -0
- package/dist/shared/paths.d.ts.map +1 -0
- package/dist/shared/paths.js +54 -0
- package/dist/shared/paths.js.map +1 -0
- package/dist/shared/pnpm.d.ts +29 -0
- package/dist/shared/pnpm.d.ts.map +1 -0
- package/dist/shared/pnpm.js +57 -0
- package/dist/shared/pnpm.js.map +1 -0
- package/dist/shared/private-files.d.ts +29 -0
- package/dist/shared/private-files.d.ts.map +1 -0
- package/dist/shared/private-files.js +109 -0
- package/dist/shared/private-files.js.map +1 -0
- package/dist/shared/redact-env.d.ts +24 -0
- package/dist/shared/redact-env.d.ts.map +1 -0
- package/dist/shared/redact-env.js +36 -0
- package/dist/shared/redact-env.js.map +1 -0
- package/dist/shared/release-reading.d.ts +85 -0
- package/dist/shared/release-reading.d.ts.map +1 -0
- package/dist/shared/release-reading.js +81 -0
- package/dist/shared/release-reading.js.map +1 -0
- package/dist/shared/roles.d.ts +58 -3
- package/dist/shared/roles.d.ts.map +1 -1
- package/dist/shared/roles.js +55 -0
- package/dist/shared/roles.js.map +1 -1
- package/dist/shared/rpcauth.d.ts +13 -0
- package/dist/shared/rpcauth.d.ts.map +1 -0
- package/dist/shared/rpcauth.js +23 -0
- package/dist/shared/rpcauth.js.map +1 -0
- package/dist/shared/shell-escape.d.ts +9 -0
- package/dist/shared/shell-escape.d.ts.map +1 -0
- package/dist/shared/shell-escape.js +11 -0
- package/dist/shared/shell-escape.js.map +1 -0
- package/dist/shared/sync-reading.d.ts +45 -0
- package/dist/shared/sync-reading.d.ts.map +1 -0
- package/dist/shared/sync-reading.js +42 -0
- package/dist/shared/sync-reading.js.map +1 -0
- package/dist/shared/tokens.d.ts +19 -0
- package/dist/shared/tokens.d.ts.map +1 -1
- package/dist/shared/tokens.js +28 -0
- package/dist/shared/tokens.js.map +1 -1
- package/dist/webapp/webapp.service.d.ts +33 -2
- package/dist/webapp/webapp.service.d.ts.map +1 -1
- package/dist/webapp/webapp.service.js +143 -31
- package/dist/webapp/webapp.service.js.map +1 -1
- package/dist/workers/health-monitor-process.d.ts.map +1 -1
- package/dist/workers/health-monitor-process.js +10 -0
- package/dist/workers/health-monitor-process.js.map +1 -1
- package/dist/workers/health-monitor.service.d.ts +45 -3
- package/dist/workers/health-monitor.service.d.ts.map +1 -1
- package/dist/workers/health-monitor.service.js +152 -25
- package/dist/workers/health-monitor.service.js.map +1 -1
- package/dist/workers/system-worker-manager.d.ts +43 -0
- package/dist/workers/system-worker-manager.d.ts.map +1 -1
- package/dist/workers/system-worker-manager.js +150 -3
- package/dist/workers/system-worker-manager.js.map +1 -1
- package/dist/workers/types.d.ts +8 -2
- package/dist/workers/types.d.ts.map +1 -1
- package/package.json +64 -30
- package/webapp/dist/BUILD.json +5 -0
- package/webapp/dist/assets/FormControlLabel-BrH2diyl.js +1 -0
- package/webapp/dist/assets/Grid-BZ7xhoHQ.js +1 -0
- package/webapp/dist/assets/Switch-DGSAxQPM.js +1 -0
- package/webapp/dist/assets/alerts-sXqHJbsa.js +1 -0
- package/webapp/dist/assets/apps-B_Ah8Flh.js +1 -0
- package/webapp/dist/assets/audit-YXihwyui.js +1 -0
- package/webapp/dist/assets/client-CGbBvy9k.js +1 -0
- package/webapp/dist/assets/constants-veKGFkC6.js +1 -0
- package/webapp/dist/assets/containers-Di4NOTLf.js +2 -0
- package/webapp/dist/assets/daemon-memory-CCPZ4cV_.js +1 -0
- package/webapp/dist/assets/dashboard-Cfuf95N3.js +1 -0
- package/webapp/dist/assets/dashboard-builder-CowaYb-M.js +1 -0
- package/webapp/dist/assets/deploy-release-dialog-D6C-XcKY.js +1 -0
- package/webapp/dist/assets/deployments-ChTq5kCw.js +1 -0
- package/webapp/dist/assets/detail-BsGWv7Dj.js +1 -0
- package/webapp/dist/assets/detail-CyVf_cw5.js +2 -0
- package/webapp/dist/assets/detail-D027j6aO.js +8 -0
- package/webapp/dist/assets/formatters-BqjL73N3.js +1 -0
- package/webapp/dist/assets/index-B8AHIPc-.css +1 -0
- package/webapp/dist/assets/index-DiZbrwxT.js +414 -0
- package/webapp/dist/assets/logs-L2b8Oqmo.js +12 -0
- package/webapp/dist/assets/maplibre-gl-MlmG2kbn.js +801 -0
- package/webapp/dist/assets/metrics-CQgjz2Lz.js +2 -0
- package/webapp/dist/assets/nodes-Nwia2Ty6.js +7 -0
- package/webapp/dist/assets/pipelines-DCu_rXOr.js +4 -0
- package/webapp/dist/assets/projects-Bb4aV76h.js +1 -0
- package/webapp/dist/assets/react-CwJFpaho.js +1 -0
- package/webapp/dist/assets/react-apexcharts.esm-Dy0Fez42.js +1956 -0
- package/webapp/dist/assets/release-bits-Dj4EOhhb.js +1 -0
- package/webapp/dist/assets/release-build-panel-D6OCVlhT.js +1 -0
- package/webapp/dist/assets/releases-CnAt3yO6.js +2 -0
- package/webapp/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/webapp/dist/assets/settings-DU-mjiwb.js +1 -0
- package/webapp/dist/assets/settled-pair-C7SjZuns.js +1 -0
- package/webapp/dist/assets/sign-in-Bcvjrr4C.js +1 -0
- package/webapp/dist/assets/stacks-B-e8p50I.js +1 -0
- package/webapp/dist/assets/sync-reading-C3PnJ7AX.js +1 -0
- package/webapp/dist/assets/system-info-BtE3dgfw.js +1 -0
- package/webapp/dist/assets/topology-Cwch-uF1.js +12 -0
- package/webapp/dist/assets/topology-DLioOiRN.css +1 -0
- package/webapp/dist/assets/traces-BbShR-4P.js +1 -0
- package/webapp/dist/assets/use-stack-context-CZUgPq88.js +1 -0
- package/webapp/dist/index.html +6 -6
- package/dist/commands/dev.d.ts +0 -23
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -76
- package/dist/commands/dev.js.map +0 -1
- package/dist/config/define-app.d.ts +0 -6
- package/dist/config/define-app.d.ts.map +0 -1
- package/dist/config/define-app.js +0 -38
- package/dist/config/define-app.js.map +0 -1
- package/dist/infrastructure/gateway-generator.d.ts +0 -63
- package/dist/infrastructure/gateway-generator.d.ts.map +0 -1
- package/dist/infrastructure/gateway-generator.js +0 -253
- package/dist/infrastructure/gateway-generator.js.map +0 -1
- package/dist/monitoring/health.service.d.ts +0 -14
- package/dist/monitoring/health.service.d.ts.map +0 -1
- package/dist/monitoring/health.service.js +0 -50
- package/dist/monitoring/health.service.js.map +0 -1
- package/dist/monitoring/metrics.service.d.ts +0 -14
- package/dist/monitoring/metrics.service.d.ts.map +0 -1
- package/dist/monitoring/metrics.service.js +0 -40
- package/dist/monitoring/metrics.service.js.map +0 -1
- package/dist/orchestrator/bootstrap-runner.d.ts +0 -15
- package/dist/orchestrator/bootstrap-runner.d.ts.map +0 -1
- package/dist/orchestrator/bootstrap-runner.js +0 -152
- package/dist/orchestrator/bootstrap-runner.js.map +0 -1
- package/dist/orchestrator/topology-proxy.d.ts +0 -65
- package/dist/orchestrator/topology-proxy.d.ts.map +0 -1
- package/dist/orchestrator/topology-proxy.js +0 -209
- package/dist/orchestrator/topology-proxy.js.map +0 -1
- package/dist/orchestrator/topology-relay.d.ts +0 -111
- package/dist/orchestrator/topology-relay.d.ts.map +0 -1
- package/dist/orchestrator/topology-relay.js +0 -255
- package/dist/orchestrator/topology-relay.js.map +0 -1
- package/dist/services/auth-middleware.d.ts +0 -47
- package/dist/services/auth-middleware.d.ts.map +0 -1
- package/dist/services/auth-middleware.js +0 -158
- package/dist/services/auth-middleware.js.map +0 -1
- package/dist/services/environment.rpc-service.d.ts +0 -22
- package/dist/services/environment.rpc-service.d.ts.map +0 -1
- package/dist/services/environment.rpc-service.js +0 -65
- package/dist/services/environment.rpc-service.js.map +0 -1
- package/dist/services/environment.service.d.ts +0 -87
- package/dist/services/environment.service.d.ts.map +0 -1
- package/dist/services/environment.service.js +0 -220
- package/dist/services/environment.service.js.map +0 -1
- package/dist/services/metrics-collector.service.d.ts +0 -103
- package/dist/services/metrics-collector.service.d.ts.map +0 -1
- package/dist/services/metrics-collector.service.js +0 -235
- package/dist/services/metrics-collector.service.js.map +0 -1
- package/dist/services/metrics.rpc-service.d.ts +0 -41
- package/dist/services/metrics.rpc-service.d.ts.map +0 -1
- package/dist/services/metrics.rpc-service.js +0 -90
- package/dist/services/metrics.rpc-service.js.map +0 -1
- package/dist/services/metrics.service.d.ts +0 -72
- package/dist/services/metrics.service.d.ts.map +0 -1
- package/dist/services/metrics.service.js +0 -185
- package/dist/services/metrics.service.js.map +0 -1
- package/dist/supervisor/omnitron-supervisor.d.ts +0 -21
- package/dist/supervisor/omnitron-supervisor.d.ts.map +0 -1
- package/dist/supervisor/omnitron-supervisor.js +0 -43
- package/dist/supervisor/omnitron-supervisor.js.map +0 -1
- package/dist/webapp/static-server.d.ts +0 -24
- package/dist/webapp/static-server.d.ts.map +0 -1
- package/dist/webapp/static-server.js +0 -152
- package/dist/webapp/static-server.js.map +0 -1
- package/webapp/dist/assets/Badge-D2ZBP5iK.js +0 -1
- package/webapp/dist/assets/Card-vO88g06B.js +0 -1
- package/webapp/dist/assets/CardActions-C9h7Q2wW.js +0 -1
- package/webapp/dist/assets/CardContent-BA_Xmmhk.js +0 -1
- package/webapp/dist/assets/CardHeader-ceIs__6x.js +0 -1
- package/webapp/dist/assets/Chip-Ckk0xUhK.js +0 -1
- package/webapp/dist/assets/DialogActions-BhHM7hov.js +0 -1
- package/webapp/dist/assets/DialogContentText-BT2JQRmK.js +0 -1
- package/webapp/dist/assets/FormControlLabel-CcQByVS8.js +0 -1
- package/webapp/dist/assets/Grid-14PETRQW.js +0 -1
- package/webapp/dist/assets/InputAdornment-B8aHIsQ7.js +0 -1
- package/webapp/dist/assets/Skeleton-B74-Ds6O.js +0 -37
- package/webapp/dist/assets/Switch-DvWD2wh4.js +0 -1
- package/webapp/dist/assets/SwitchBase-CDU4nY8O.js +0 -1
- package/webapp/dist/assets/Tab-DcCOYYp5.js +0 -1
- package/webapp/dist/assets/TableContainer-CzTh4mu-.js +0 -1
- package/webapp/dist/assets/TableRow-BySEreZR.js +0 -2
- package/webapp/dist/assets/TextField-BLf-BHz2.js +0 -1
- package/webapp/dist/assets/alerts-DnRbT41C.js +0 -1
- package/webapp/dist/assets/apps-CdR0VH2d.js +0 -1
- package/webapp/dist/assets/chunk-DtcAfS_W.js +0 -1
- package/webapp/dist/assets/client-DU8I_lDc.js +0 -2
- package/webapp/dist/assets/constants-BgnT-Xdy.js +0 -1
- package/webapp/dist/assets/containers-Dw-rRXV1.js +0 -1
- package/webapp/dist/assets/dashboard-CzgB0uZz.js +0 -1
- package/webapp/dist/assets/dashboard-builder-DsA0yg33.js +0 -1
- package/webapp/dist/assets/deployments-DtQAoIcQ.js +0 -1
- package/webapp/dist/assets/detail-BJR-G7JG.js +0 -1
- package/webapp/dist/assets/detail-nlCeSltl.js +0 -8
- package/webapp/dist/assets/formatters-Do41SRmE.js +0 -1
- package/webapp/dist/assets/index-ByQDwp2r.js +0 -566
- package/webapp/dist/assets/index-CHVXOsTS.css +0 -1
- package/webapp/dist/assets/isMuiElement-DwF2naaF.js +0 -1
- package/webapp/dist/assets/logs-Kn8o4H7k.js +0 -11
- package/webapp/dist/assets/metrics-DN8Zu5wT.js +0 -2
- package/webapp/dist/assets/nodes-Bgch7AtN.js +0 -7
- package/webapp/dist/assets/pipelines-Cry3qm-S.js +0 -4
- package/webapp/dist/assets/popper-BJFSj6rc.js +0 -1
- package/webapp/dist/assets/preload-helper-DSXbuxSR.js +0 -1
- package/webapp/dist/assets/projects-Dym2GI1U.js +0 -1
- package/webapp/dist/assets/react-apexcharts.esm-CSGK5Cxn.js +0 -958
- package/webapp/dist/assets/react-apexcharts.esm-DEAWOwx5.js +0 -1003
- package/webapp/dist/assets/settings-va3zTcow.js +0 -1
- package/webapp/dist/assets/sign-in-ik35umbp.js +0 -1
- package/webapp/dist/assets/stacks-CVFOnxbF.js +0 -1
- package/webapp/dist/assets/system-info-npIXAjX2.js +0 -1
- package/webapp/dist/assets/topology-CHpVij2M.css +0 -1
- package/webapp/dist/assets/topology-bDe70vLs.js +0 -12
- package/webapp/dist/assets/traces-DIIcT8DF.js +0 -1
- package/webapp/dist/assets/use-stack-context-DHLwZv1r.js +0 -1
- /package/webapp/dist/assets/{fs-CgZLtHiQ.js → fs-Ccl3sAcp.js} +0 -0
|
@@ -15,23 +15,88 @@
|
|
|
15
15
|
* ResolvedContainer[] → ContainerRuntime → Docker CLI
|
|
16
16
|
* Health Loop → detect failure → auto-restart (exponential backoff)
|
|
17
17
|
*/
|
|
18
|
+
import { computeBackoff } from '@omnitron-dev/titan/utils';
|
|
18
19
|
import { resolveInfrastructure, resolveOmnitronPg, getManagedNetwork } from './service-resolver.js';
|
|
19
20
|
import { PhantomEndpointJanitor } from './phantom-endpoint-janitor.js';
|
|
20
|
-
import {
|
|
21
|
+
import { LOCAL_INFRA_HOST } from '../shared/local-infra-host.js';
|
|
22
|
+
import { isDockerAvailable, getContainerState, createContainer, startContainer, removeContainer, ensureImage, waitForHealthy, createVolume, containerSpecHash, } from './container-runtime.js';
|
|
23
|
+
import { summariseProvisioning, describeProvisioning } from './provisioning-outcome.js';
|
|
24
|
+
import { OMNITRON_PG_PORT, OMNITRON_PG_USER, OMNITRON_PG_PASSWORD, OMNITRON_PG_DATABASE, } from '../database/connection.js';
|
|
21
25
|
const RECONCILE_INTERVAL = 30_000; // 30s health sweep
|
|
22
26
|
const STARTUP_TIMEOUT = 120_000; // 2min max per service
|
|
23
27
|
/** Consecutive 'unhealthy' ticks before recreate. 2 ticks @ 30s = 60s grace. */
|
|
24
28
|
const UNHEALTHY_RESTART_THRESHOLD = 2;
|
|
25
|
-
/**
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
29
|
+
/** Restart circuit-breaker: first failed-restart backoff, doubled each failure. */
|
|
30
|
+
const RESTART_BACKOFF_BASE = 30_000; // 30s
|
|
31
|
+
/** Restart circuit-breaker: backoff ceiling (30s → 1m → 2m … capped here). */
|
|
32
|
+
const RESTART_BACKOFF_MAX = 15 * 60_000; // 15min
|
|
33
|
+
/**
|
|
34
|
+
* Restart-circuit-breaker backoff schedule: the delay (ms) to wait before the
|
|
35
|
+
* next restart attempt after `failures` consecutive failed (re)creates.
|
|
36
|
+
* Exponential from RESTART_BACKOFF_BASE, capped at RESTART_BACKOFF_MAX so a
|
|
37
|
+
* permanently-broken service settles into an occasional retry instead of
|
|
38
|
+
* hammering the supervisor every 30s.
|
|
39
|
+
*
|
|
40
|
+
* Delegates to the shared titan `computeBackoff` (the same helper the downstream
|
|
41
|
+
* backends and the titan packages use) so the exponential shape lives in ONE
|
|
42
|
+
* place. Exported for tests.
|
|
43
|
+
*/
|
|
44
|
+
export function restartBackoffMs(failures) {
|
|
45
|
+
if (failures < 1)
|
|
46
|
+
return 0;
|
|
47
|
+
return computeBackoff({ attempt: failures - 1, baseMs: RESTART_BACKOFF_BASE, maxMs: RESTART_BACKOFF_MAX });
|
|
48
|
+
}
|
|
49
|
+
// Omnitron internal PG connection defaults live in `database/connection.ts`
|
|
50
|
+
// so the container spec below and every client that connects to it are
|
|
51
|
+
// derived from the same values (see the import above).
|
|
52
|
+
/**
|
|
53
|
+
* What to do about the control plane's own database.
|
|
54
|
+
*
|
|
55
|
+
* Three cases that look alike and are not:
|
|
56
|
+
*
|
|
57
|
+
* - a node's daemon keeps its state in SQLite and needs no database at all;
|
|
58
|
+
* - one is running, so it gets the same reconcile — and so the same
|
|
59
|
+
* `containerSpecHash` drift check — as every app service;
|
|
60
|
+
* - nothing is running, so provision.
|
|
61
|
+
*
|
|
62
|
+
* The middle case is the one that was missing. "Already running" was read as
|
|
63
|
+
* "configured as declared", and the database was adopted exactly as it stood.
|
|
64
|
+
* Measured: `omnitron-pg`, created before published ports were bound to
|
|
65
|
+
* loopback, survived on 0.0.0.0:5480 through the fix that reached all eleven
|
|
66
|
+
* other managed containers, and still answered `nc -vz <lan-address> 5480`
|
|
67
|
+
* from another machine months later, while `daos-dev-postgres` beside it in
|
|
68
|
+
* `docker ps` was correctly on 127.0.0.1.
|
|
69
|
+
*
|
|
70
|
+
* `reconcileName` is the subtlety. The control-plane database is ONE
|
|
71
|
+
* container per host — it owns port 5480 — but each daemon resolves a name
|
|
72
|
+
* carrying its own project prefix, so a daemon on the `daos/dev` stack
|
|
73
|
+
* computes `daos-dev-pg` while the container that exists is `omnitron-pg`.
|
|
74
|
+
* Reconciling the running container against a spec under the OTHER name
|
|
75
|
+
* creates a second one and collides on the port; the first version of this
|
|
76
|
+
* did exactly that and corrected nothing. The name to reconcile is therefore
|
|
77
|
+
* the name of the container that is actually there, and the spec is
|
|
78
|
+
* everything else. `containerSpecHash` does not cover the name, so the drift
|
|
79
|
+
* comparison is unaffected either way.
|
|
80
|
+
*
|
|
81
|
+
* A differing name is not evidence of another owner: only omnitron creates
|
|
82
|
+
* this container, and it carries omnitron's own `omnitron.internal` label.
|
|
83
|
+
*/
|
|
84
|
+
export function decideControlPlaneDatabase(input) {
|
|
85
|
+
if (!input.needsControlPlaneDatabase)
|
|
86
|
+
return { action: 'skip' };
|
|
87
|
+
if (input.running?.status !== 'running')
|
|
88
|
+
return { action: 'provision' };
|
|
89
|
+
return { action: 'reconcile', reconcileName: input.running.name ?? input.desiredName };
|
|
90
|
+
}
|
|
30
91
|
export class InfrastructureService {
|
|
31
92
|
logger;
|
|
32
93
|
config;
|
|
33
94
|
presetRegistry;
|
|
95
|
+
serviceOverrides;
|
|
96
|
+
needsControlPlaneDatabase;
|
|
34
97
|
desiredContainers = [];
|
|
98
|
+
/** What the most recent reconcile did to each service. */
|
|
99
|
+
lastActions = new Map();
|
|
35
100
|
omnitronPgContainer;
|
|
36
101
|
usingGlobalOmnitronPg = false;
|
|
37
102
|
healthTimer = null;
|
|
@@ -46,17 +111,45 @@ export class InfrastructureService {
|
|
|
46
111
|
* making transient pressure look like outages.
|
|
47
112
|
*/
|
|
48
113
|
unhealthyTicks = new Map();
|
|
114
|
+
/**
|
|
115
|
+
* Per-service restart circuit-breaker. A container whose (re)create keeps
|
|
116
|
+
* failing — an image that won't pull, or infra stuck on an unrecoverable
|
|
117
|
+
* error — must NOT be retried every 30s forever: that churn (docker calls +
|
|
118
|
+
* error logging) is what wedged the daemon's event loop and let an external
|
|
119
|
+
* "socket unreachable → SIGTERM" kill the whole daemon during the 2026-05
|
|
120
|
+
* outage. After each failed restart we back off exponentially (30s → 1m →
|
|
121
|
+
* 2m … capped at 15m); a successful restart or an externally-recovered
|
|
122
|
+
* 'running' observation resets it.
|
|
123
|
+
*/
|
|
124
|
+
restartBackoff = new Map();
|
|
49
125
|
/**
|
|
50
126
|
* T#75: phantom-endpoint janitor instance. Created in `provision()`
|
|
51
127
|
* once we know Docker is reachable; torn down in `teardown()`.
|
|
52
128
|
*/
|
|
53
129
|
phantomJanitor = null;
|
|
54
|
-
constructor(logger, config, normalizedServices, presetRegistry
|
|
130
|
+
constructor(logger, config, normalizedServices, presetRegistry,
|
|
131
|
+
/**
|
|
132
|
+
* Stack overrides. A service marked `disabled` here is not provisioned,
|
|
133
|
+
* and one pointed at an `external` address is not provisioned either —
|
|
134
|
+
* there is nothing to create, and the address reaches the application
|
|
135
|
+
* through its environment instead.
|
|
136
|
+
*/
|
|
137
|
+
serviceOverrides,
|
|
138
|
+
/**
|
|
139
|
+
* Whether this daemon stores its own state in Postgres.
|
|
140
|
+
*
|
|
141
|
+
* True for a master, which is where projects, nodes, metrics and logs
|
|
142
|
+
* live. False for a node: its daemon keeps that in SQLite and reads a
|
|
143
|
+
* Postgres never.
|
|
144
|
+
*/
|
|
145
|
+
needsControlPlaneDatabase = true) {
|
|
55
146
|
this.logger = logger;
|
|
56
147
|
this.config = config;
|
|
57
148
|
this.presetRegistry = presetRegistry;
|
|
149
|
+
this.serviceOverrides = serviceOverrides;
|
|
150
|
+
this.needsControlPlaneDatabase = needsControlPlaneDatabase;
|
|
58
151
|
this.normalizedServices = normalizedServices ?? {};
|
|
59
|
-
this.desiredContainers = resolveInfrastructure(config, normalizedServices);
|
|
152
|
+
this.desiredContainers = resolveInfrastructure(config, normalizedServices, serviceOverrides);
|
|
60
153
|
this.omnitronPgContainer = resolveOmnitronPg();
|
|
61
154
|
}
|
|
62
155
|
/**
|
|
@@ -111,26 +204,52 @@ export class InfrastructureService {
|
|
|
111
204
|
// The stack-prefixed container (e.g. omni-dev-pg) shares the same port,
|
|
112
205
|
// so we must not create/start it when the global one is active.
|
|
113
206
|
const globalOmnitronPg = await getContainerState('omnitron-pg');
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
207
|
+
const decision = decideControlPlaneDatabase({
|
|
208
|
+
needsControlPlaneDatabase: this.needsControlPlaneDatabase,
|
|
209
|
+
running: globalOmnitronPg,
|
|
210
|
+
desiredName: this.omnitronPgContainer.name,
|
|
211
|
+
});
|
|
212
|
+
if (decision.action === 'skip') {
|
|
213
|
+
// A node's daemon keeps its own state in SQLite — `SlaveStorageService`,
|
|
214
|
+
// `~/.omnitron/data/slave.db` — and reads this database never. Creating
|
|
215
|
+
// it anyway gave every provisioned node a Postgres nobody queries, on
|
|
216
|
+
// default credentials, and until published ports were bound to
|
|
217
|
+
// loopback it was reachable from the internet: measured answering on
|
|
218
|
+
// 0.0.0.0:5480 on a host whose firewall allows only SSH.
|
|
219
|
+
//
|
|
220
|
+
// The control plane's database belongs to the control plane.
|
|
221
|
+
this.logger.debug('This daemon keeps its own state in SQLite — not provisioning a control-plane database');
|
|
222
|
+
}
|
|
223
|
+
else if (decision.action === 'reconcile') {
|
|
119
224
|
this.usingGlobalOmnitronPg = true;
|
|
120
|
-
|
|
121
|
-
//
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
225
|
+
// A stack-prefixed leftover cannot run beside the global one — they
|
|
226
|
+
// share port 5480 — so it goes before anything else touches that port.
|
|
227
|
+
if (this.omnitronPgContainer.name !== decision.reconcileName) {
|
|
228
|
+
const stalePg = await getContainerState(this.omnitronPgContainer.name);
|
|
229
|
+
if (stalePg) {
|
|
230
|
+
try {
|
|
231
|
+
await removeContainer(this.omnitronPgContainer.name);
|
|
232
|
+
this.logger.info({ service: this.omnitronPgContainer.name }, 'Removed stale stack-prefixed PG container');
|
|
233
|
+
}
|
|
234
|
+
catch { /* already gone */ }
|
|
127
235
|
}
|
|
128
|
-
catch { /* already gone */ }
|
|
129
236
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
237
|
+
// The same reconcile, and so the same drift check, as every app
|
|
238
|
+
// service — under the name the container actually has. Its data lives
|
|
239
|
+
// in the `omnitron-pg-data` volume and outlives the container it is
|
|
240
|
+
// recreated into.
|
|
241
|
+
// Name AND volume, not one of them. `resolveOmnitronPg` derives both
|
|
242
|
+
// from the container prefix, so overriding only the name produced a
|
|
243
|
+
// container called `omnitron-pg` mounting `daos-dev-pg-data` — the
|
|
244
|
+
// global identity on a stack-scoped volume, and the stack's own
|
|
245
|
+
// `omnitron-pg-data` left dangling where a `docker volume prune` would
|
|
246
|
+
// take it silently. The two names are one decision and must move
|
|
247
|
+
// together.
|
|
248
|
+
const reconciled = { ...this.omnitronPgContainer, name: decision.reconcileName };
|
|
249
|
+
if (decision.reconcileName !== this.omnitronPgContainer.name) {
|
|
250
|
+
reconciled.volumes = this.omnitronPgContainer.volumes.map((v) => v.target === '/var/lib/postgresql/data' ? { ...v, source: `${decision.reconcileName}-data` } : v);
|
|
251
|
+
}
|
|
252
|
+
await this.reconcileService(reconciled);
|
|
134
253
|
}
|
|
135
254
|
else {
|
|
136
255
|
try {
|
|
@@ -147,8 +266,25 @@ export class InfrastructureService {
|
|
|
147
266
|
}
|
|
148
267
|
}
|
|
149
268
|
this.logger.info({ services: this.desiredContainers.map((c) => c.name) }, 'Provisioning app infrastructure');
|
|
150
|
-
// 3. Reconcile
|
|
151
|
-
|
|
269
|
+
// 3. Reconcile every app service in parallel.
|
|
270
|
+
//
|
|
271
|
+
// Pre-fix this was a serial `for await` loop over up to a dozen
|
|
272
|
+
// containers. For an already-healthy stack (the common cold-boot
|
|
273
|
+
// case where Docker preserved containers across a daemon
|
|
274
|
+
// restart) each reconcileService is a single `docker inspect`
|
|
275
|
+
// round-trip — but doing nine of them serially still costs
|
|
276
|
+
// multiple seconds of latency on the critical path before
|
|
277
|
+
// apps can even start spawning.
|
|
278
|
+
//
|
|
279
|
+
// Safety: `reconcileService` holds a per-name lock
|
|
280
|
+
// (`this.reconciling`), so parallel calls for the SAME
|
|
281
|
+
// container still serialise. Cross-container ordering (e.g.
|
|
282
|
+
// monero-wallet-rpc must talk to monero-daemon) is enforced
|
|
283
|
+
// by each container's own healthcheck loop — the wallet's
|
|
284
|
+
// health probe retries until the daemon's RPC accepts
|
|
285
|
+
// connections, so launching them in parallel just extends the
|
|
286
|
+
// wallet's first-try wait, not its end state.
|
|
287
|
+
await Promise.all(this.desiredContainers.map(async (desired) => {
|
|
152
288
|
try {
|
|
153
289
|
await this.reconcileService(desired);
|
|
154
290
|
}
|
|
@@ -161,7 +297,7 @@ export class InfrastructureService {
|
|
|
161
297
|
error: err.message,
|
|
162
298
|
};
|
|
163
299
|
}
|
|
164
|
-
}
|
|
300
|
+
}));
|
|
165
301
|
// 4. Post-provisioning setup (create databases, buckets, etc.)
|
|
166
302
|
await this.postProvision();
|
|
167
303
|
// 4. Start health monitor
|
|
@@ -177,11 +313,50 @@ export class InfrastructureService {
|
|
|
177
313
|
logger: this.logger,
|
|
178
314
|
});
|
|
179
315
|
this.phantomJanitor.start();
|
|
180
|
-
|
|
316
|
+
// Readiness is measured, not announced.
|
|
317
|
+
//
|
|
318
|
+
// These two lines were `ready = true` and "Infrastructure provisioned
|
|
319
|
+
// and healthy", unconditionally — and every service reconciles inside a
|
|
320
|
+
// `Promise.all` whose per-service catch records `exited` and continues.
|
|
321
|
+
// So a run where every container failed ended exactly like a run where
|
|
322
|
+
// all of them came up, and the gate below this waits on a flag that
|
|
323
|
+
// could not say no. See `summariseProvisioning`.
|
|
324
|
+
const outcome = summariseProvisioning(this.desiredContainers, this.state.services);
|
|
325
|
+
this.state.ready = outcome.ready;
|
|
181
326
|
this.state.lastReconciled = new Date().toISOString();
|
|
182
|
-
|
|
327
|
+
if (outcome.ready) {
|
|
328
|
+
this.logger.info(describeProvisioning(outcome));
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
this.logger.error({
|
|
332
|
+
missing: outcome.missing.map((s) => s.name),
|
|
333
|
+
failed: outcome.failed.map((s) => ({ name: s.name, status: s.status, error: s.error })),
|
|
334
|
+
running: outcome.running.length,
|
|
335
|
+
}, describeProvisioning(outcome));
|
|
336
|
+
}
|
|
183
337
|
return this.state;
|
|
184
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* What this service was asked to provide.
|
|
341
|
+
*
|
|
342
|
+
* Exposed because a caller cannot tell "present and fine" from "never
|
|
343
|
+
* attempted" by reading `state.services` alone: the second leaves no entry,
|
|
344
|
+
* and an absent entry is indistinguishable from an absent problem.
|
|
345
|
+
*/
|
|
346
|
+
getDesiredServices() {
|
|
347
|
+
return this.desiredContainers.map((c) => ({ name: c.name, image: c.image }));
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Services whose socket is new since this reconcile began.
|
|
351
|
+
*
|
|
352
|
+
* `noop` is the only action that leaves an existing connection usable.
|
|
353
|
+
* Everything else means anything already connected is holding a dead pool.
|
|
354
|
+
*/
|
|
355
|
+
getRestartedServices() {
|
|
356
|
+
return [...this.lastActions.entries()]
|
|
357
|
+
.filter(([, action]) => action === 'create' || action === 'start' || action === 'recreate')
|
|
358
|
+
.map(([name]) => name);
|
|
359
|
+
}
|
|
185
360
|
/**
|
|
186
361
|
* Stop all managed infrastructure containers.
|
|
187
362
|
*/
|
|
@@ -194,11 +369,9 @@ export class InfrastructureService {
|
|
|
194
369
|
this.phantomJanitor.stop();
|
|
195
370
|
this.phantomJanitor = null;
|
|
196
371
|
}
|
|
197
|
-
// Remove all containers in parallel for fast shutdown
|
|
198
|
-
//
|
|
199
|
-
const allContainers = this.
|
|
200
|
-
? [...this.desiredContainers].reverse()
|
|
201
|
-
: [...[...this.desiredContainers].reverse(), this.omnitronPgContainer];
|
|
372
|
+
// Remove all containers in parallel for fast shutdown — the control-plane
|
|
373
|
+
// database only where this service keeps one (`controlPlaneContainers`).
|
|
374
|
+
const allContainers = [...[...this.desiredContainers].reverse(), ...this.controlPlaneContainers()];
|
|
202
375
|
await Promise.allSettled(allContainers.map(async (c) => {
|
|
203
376
|
try {
|
|
204
377
|
await removeContainer(c.name);
|
|
@@ -216,6 +389,25 @@ export class InfrastructureService {
|
|
|
216
389
|
getState() {
|
|
217
390
|
return this.state;
|
|
218
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Serve the stack's definition as it is now.
|
|
394
|
+
*
|
|
395
|
+
* A node's daemon builds this service on its first `provisionStack` and
|
|
396
|
+
* reuses it for every later one — rightly: a second service would be a
|
|
397
|
+
* second janitor and a second health monitor over one set of containers.
|
|
398
|
+
* But the definition it was built with stayed its definition. A later
|
|
399
|
+
* deployment that enabled a service, changed an image or dropped a
|
|
400
|
+
* `disabled` reached the node's host services — `reconcileHostServices`
|
|
401
|
+
* reads each call's own — and not its containers, until something restarted
|
|
402
|
+
* the daemon. Replaced whole, as the constructor sets it; `setConfigRoots`
|
|
403
|
+
* and `addAppContainers` then work on this set, as on a first call.
|
|
404
|
+
*/
|
|
405
|
+
redefine(config, normalizedServices, serviceOverrides) {
|
|
406
|
+
this.config = config;
|
|
407
|
+
this.normalizedServices = normalizedServices;
|
|
408
|
+
this.serviceOverrides = serviceOverrides;
|
|
409
|
+
this.desiredContainers = resolveInfrastructure(config, normalizedServices, serviceOverrides);
|
|
410
|
+
}
|
|
219
411
|
/**
|
|
220
412
|
* Get normalized services (from preset system).
|
|
221
413
|
* Used by config-resolver for generic address resolution.
|
|
@@ -223,6 +415,28 @@ export class InfrastructureService {
|
|
|
223
415
|
getNormalizedServices() {
|
|
224
416
|
return this.normalizedServices;
|
|
225
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* Databases declared for this stack's postgres (e.g. main, storage, geo).
|
|
420
|
+
* Source of truth for "which DBs must be backed up" — read straight from
|
|
421
|
+
* the same `infrastructure.postgres.databases` block omnitron provisions
|
|
422
|
+
* from, so the backup set can never drift from the provisioned set.
|
|
423
|
+
*/
|
|
424
|
+
getPostgresDatabases() {
|
|
425
|
+
const pg = this.config.postgres;
|
|
426
|
+
if (!pg || !pg.databases)
|
|
427
|
+
return [];
|
|
428
|
+
return Object.keys(pg.databases);
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Resolved container name for an infra service (e.g. 'postgres' →
|
|
432
|
+
* 'acme-dev-postgres'). Taken from the already-resolved desired containers
|
|
433
|
+
* so it reflects the real container prefix rather than re-deriving it from
|
|
434
|
+
* the mutable module-global. Returns null if the stack has no such service.
|
|
435
|
+
*/
|
|
436
|
+
getResolvedContainerName(service) {
|
|
437
|
+
const match = this.desiredContainers.find((d) => d.name.endsWith(`-${service}`));
|
|
438
|
+
return match?.name ?? null;
|
|
439
|
+
}
|
|
226
440
|
/**
|
|
227
441
|
* Get connection info for an infrastructure service.
|
|
228
442
|
* Used by config generator to resolve { infra: 'postgres', database: 'main' }.
|
|
@@ -234,7 +448,7 @@ export class InfrastructureService {
|
|
|
234
448
|
if (!pg)
|
|
235
449
|
return null;
|
|
236
450
|
return {
|
|
237
|
-
host:
|
|
451
|
+
host: LOCAL_INFRA_HOST,
|
|
238
452
|
port: pg.port ?? 5432,
|
|
239
453
|
user: pg.user ?? 'postgres',
|
|
240
454
|
password: typeof pg.password === 'string' ? pg.password : 'postgres',
|
|
@@ -245,7 +459,7 @@ export class InfrastructureService {
|
|
|
245
459
|
if (!redis)
|
|
246
460
|
return null;
|
|
247
461
|
return {
|
|
248
|
-
host:
|
|
462
|
+
host: LOCAL_INFRA_HOST,
|
|
249
463
|
port: redis.port ?? 6379,
|
|
250
464
|
password: typeof redis.password === 'string' ? redis.password : undefined,
|
|
251
465
|
databases: redis.databases ?? {},
|
|
@@ -256,7 +470,7 @@ export class InfrastructureService {
|
|
|
256
470
|
if (!minio)
|
|
257
471
|
return null;
|
|
258
472
|
return {
|
|
259
|
-
endpoint: `http
|
|
473
|
+
endpoint: `http://${LOCAL_INFRA_HOST}:${minio.ports?.api ?? 9000}`,
|
|
260
474
|
accessKey: minio.accessKey ?? 'minioadmin',
|
|
261
475
|
secretKey: typeof minio.secretKey === 'string' ? minio.secretKey : 'minioadmin',
|
|
262
476
|
forcePathStyle: true,
|
|
@@ -264,7 +478,7 @@ export class InfrastructureService {
|
|
|
264
478
|
}
|
|
265
479
|
case 'omnitron-pg':
|
|
266
480
|
return {
|
|
267
|
-
host:
|
|
481
|
+
host: LOCAL_INFRA_HOST,
|
|
268
482
|
port: OMNITRON_PG_PORT,
|
|
269
483
|
user: OMNITRON_PG_USER,
|
|
270
484
|
password: OMNITRON_PG_PASSWORD,
|
|
@@ -288,6 +502,38 @@ export class InfrastructureService {
|
|
|
288
502
|
* own restart-policy in the mix) occasional duplicate containers.
|
|
289
503
|
*/
|
|
290
504
|
reconciling = new Set();
|
|
505
|
+
/**
|
|
506
|
+
* Where this node keeps each service's config files, once a master sent them.
|
|
507
|
+
*
|
|
508
|
+
* The gateway is not an ordinary preset container — it needs four bind
|
|
509
|
+
* mounts, an entrypoint and fifteen upstream variables, and `resolveGateway`
|
|
510
|
+
* is the only thing that produces them. The constructor resolved everything
|
|
511
|
+
* through the generic preset path, because at construction time this node
|
|
512
|
+
* had no files and no local path to mount from.
|
|
513
|
+
*
|
|
514
|
+
* So this RE-RESOLVES rather than patching the volumes of a container built
|
|
515
|
+
* without them. A spec assembled by the wrong resolver is missing more than
|
|
516
|
+
* paths, and rewriting one field of it would produce a container that looks
|
|
517
|
+
* configured and is not — which is the failure that was already shipping,
|
|
518
|
+
* one level down.
|
|
519
|
+
*
|
|
520
|
+
* Called before `provision()`, so the recreation the changed spec hash
|
|
521
|
+
* implies happens on the first pass rather than the second.
|
|
522
|
+
*/
|
|
523
|
+
setConfigRoots(roots, staticRoots, redis,
|
|
524
|
+
/**
|
|
525
|
+
* The static ROOT per service, when the delivery made a
|
|
526
|
+
* `current-<project>-<stack>` link inside it. Given, the gateway mounts
|
|
527
|
+
* the root and serves through the link — a path that does not change from
|
|
528
|
+
* one release to the next, so the container is not recreated and the
|
|
529
|
+
* second of 000 a deployment cost goes with it. Empty, everything below
|
|
530
|
+
* resolves exactly as before.
|
|
531
|
+
*/
|
|
532
|
+
staticLinkRoots) {
|
|
533
|
+
if (roots.size === 0)
|
|
534
|
+
return;
|
|
535
|
+
this.desiredContainers = resolveInfrastructure(this.config, this.normalizedServices, this.serviceOverrides, roots, { redis, staticRoots, ...(staticLinkRoots && { staticLinkRoots }) });
|
|
536
|
+
}
|
|
291
537
|
async reconcileService(desired) {
|
|
292
538
|
// T#58: per-name lock around the whole inspect→decide→act loop.
|
|
293
539
|
if (this.reconciling.has(desired.name)) {
|
|
@@ -305,6 +551,13 @@ export class InfrastructureService {
|
|
|
305
551
|
async reconcileServiceLocked(desired) {
|
|
306
552
|
const actual = await getContainerState(desired.name);
|
|
307
553
|
const action = this.computeAction(desired, actual);
|
|
554
|
+
// A container that was created, started or recreated is listening on a
|
|
555
|
+
// NEW socket. Applications already running hold pools pointing at the
|
|
556
|
+
// old one, and a titan liveness probe does not notice — the app answers
|
|
557
|
+
// `/health` 200 while every request it serves fails with "Connection
|
|
558
|
+
// terminated unexpectedly". Whoever asked for this reconcile is the only
|
|
559
|
+
// one in a position to restart them, so it has to be told.
|
|
560
|
+
this.lastActions.set(desired.name, action.type);
|
|
308
561
|
switch (action.type) {
|
|
309
562
|
case 'noop':
|
|
310
563
|
this.logger.debug({ service: desired.name }, 'Service already running');
|
|
@@ -340,6 +593,17 @@ export class InfrastructureService {
|
|
|
340
593
|
return { type: 'create', service: desired.name, config: desired };
|
|
341
594
|
}
|
|
342
595
|
if (actual.status === 'running') {
|
|
596
|
+
// Running but detached from all networks (OrbStack/dockerd-restart
|
|
597
|
+
// artifact): the container is unreachable and its published ports are
|
|
598
|
+
// gone. 'running' is a lie here — recreate to re-attach + re-publish.
|
|
599
|
+
if (actual.networkAttached === false) {
|
|
600
|
+
return {
|
|
601
|
+
type: 'recreate',
|
|
602
|
+
service: desired.name,
|
|
603
|
+
config: desired,
|
|
604
|
+
reason: 'network-detached (running but on no network)',
|
|
605
|
+
};
|
|
606
|
+
}
|
|
343
607
|
// Check if image changed
|
|
344
608
|
if (actual.image !== desired.image && !actual.image.startsWith(desired.image)) {
|
|
345
609
|
return {
|
|
@@ -349,9 +613,55 @@ export class InfrastructureService {
|
|
|
349
613
|
reason: `image changed: ${actual.image} → ${desired.image}`,
|
|
350
614
|
};
|
|
351
615
|
}
|
|
616
|
+
// Config drift: image unchanged but the desired spec (env, ports,
|
|
617
|
+
// volumes, command, extraHosts) differs from what the running container
|
|
618
|
+
// was created with. Without this, an omnitron.config.ts edit that only
|
|
619
|
+
// touches env — e.g. the Tor hidden-service target — is silently ignored
|
|
620
|
+
// because the container is "running and healthy". Only fires when the
|
|
621
|
+
// running container carries a spec-hash label; pre-upgrade containers
|
|
622
|
+
// (no label) are left alone until they recreate for another reason, so
|
|
623
|
+
// upgrading omnitron never churns an otherwise-healthy stack.
|
|
624
|
+
if (actual.specHash) {
|
|
625
|
+
const desiredHash = containerSpecHash(desired);
|
|
626
|
+
if (actual.specHash !== desiredHash) {
|
|
627
|
+
return {
|
|
628
|
+
type: 'recreate',
|
|
629
|
+
service: desired.name,
|
|
630
|
+
config: desired,
|
|
631
|
+
reason: `config drift (spec ${actual.specHash} → ${desiredHash})`,
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
}
|
|
352
635
|
return { type: 'noop', service: desired.name };
|
|
353
636
|
}
|
|
354
637
|
if (actual.status === 'exited' || actual.status === 'created') {
|
|
638
|
+
// A container that is not running still carries the spec it was created
|
|
639
|
+
// with, and `start` runs THAT spec. The drift checks above were only
|
|
640
|
+
// asked of a running container, so one created wrong was started wrong
|
|
641
|
+
// for as long as it existed: Nominatim on daos/test, created at 05:37
|
|
642
|
+
// with a mount the master had not rewritten, was «started» by every
|
|
643
|
+
// reconcile after the fix that corrected its desired spec — «exec:
|
|
644
|
+
// /opt/nominatim-tools/cis-entrypoint.sh: no such file» each time
|
|
645
|
+
// (2026-09-25). Same questions, same answers, before it is started.
|
|
646
|
+
if (actual.image !== desired.image && !actual.image.startsWith(desired.image)) {
|
|
647
|
+
return {
|
|
648
|
+
type: 'recreate',
|
|
649
|
+
service: desired.name,
|
|
650
|
+
config: desired,
|
|
651
|
+
reason: `image changed while stopped: ${actual.image} → ${desired.image}`,
|
|
652
|
+
};
|
|
653
|
+
}
|
|
654
|
+
if (actual.specHash) {
|
|
655
|
+
const desiredHash = containerSpecHash(desired);
|
|
656
|
+
if (actual.specHash !== desiredHash) {
|
|
657
|
+
return {
|
|
658
|
+
type: 'recreate',
|
|
659
|
+
service: desired.name,
|
|
660
|
+
config: desired,
|
|
661
|
+
reason: `config drift while ${actual.status} (spec ${actual.specHash} → ${desiredHash})`,
|
|
662
|
+
};
|
|
663
|
+
}
|
|
664
|
+
}
|
|
355
665
|
return { type: 'start', service: desired.name, containerId: actual.containerId ?? desired.name };
|
|
356
666
|
}
|
|
357
667
|
// Dead or other — recreate
|
|
@@ -432,6 +742,26 @@ export class InfrastructureService {
|
|
|
432
742
|
const { execFile } = await import('node:child_process');
|
|
433
743
|
const { promisify } = await import('node:util');
|
|
434
744
|
const execFileAsync = promisify(execFile);
|
|
745
|
+
// A preset hook is what creates the databases inside Postgres and the
|
|
746
|
+
// buckets inside MinIO — the containers are running either way, so a
|
|
747
|
+
// failure here is invisible until an application cannot find its
|
|
748
|
+
// database.
|
|
749
|
+
//
|
|
750
|
+
// `this.presetRegistry!` asserted a dependency the constructor declares
|
|
751
|
+
// OPTIONAL, so a caller that did not pass one — which the type permits —
|
|
752
|
+
// got `Cannot read properties of undefined (reading 'get')` from a line
|
|
753
|
+
// that reads as internal, after every container was already up.
|
|
754
|
+
// Measured on a node provisioning a stack, where the containers stayed
|
|
755
|
+
// and the databases were never made.
|
|
756
|
+
if (!this.presetRegistry) {
|
|
757
|
+
const withPresets = Object.entries(this.normalizedServices)
|
|
758
|
+
.filter(([, r]) => r._preset)
|
|
759
|
+
.map(([name]) => name);
|
|
760
|
+
if (withPresets.length > 0) {
|
|
761
|
+
this.logger.error({ services: withPresets }, 'No preset registry, so post-provision steps were skipped — these services are running but their databases and buckets were not created');
|
|
762
|
+
}
|
|
763
|
+
return;
|
|
764
|
+
}
|
|
435
765
|
for (const [serviceName, requirement] of Object.entries(this.normalizedServices)) {
|
|
436
766
|
if (!requirement._preset)
|
|
437
767
|
continue;
|
|
@@ -489,51 +819,20 @@ export class InfrastructureService {
|
|
|
489
819
|
this.logger.info('Omnitron internal database provisioned and migrated');
|
|
490
820
|
}
|
|
491
821
|
/**
|
|
492
|
-
*
|
|
493
|
-
*
|
|
822
|
+
* Apply the internal-database schema through the shared runner.
|
|
823
|
+
*
|
|
824
|
+
* This used to be a second, independently-maintained copy of the daemon's
|
|
825
|
+
* migration code that only knew migrations 001–002 — and, like the
|
|
826
|
+
* daemon's copy, it constructed `Migrator` from the `kysely` package root
|
|
827
|
+
* where that export does not exist, so it threw on every run. Both are now
|
|
828
|
+
* one call into `database/migration-runner.ts`.
|
|
829
|
+
*
|
|
830
|
+
* Errors propagate to `provisionOmnitronDatabase`'s caller: provisioning
|
|
831
|
+
* that ends with an unmigrated database has not succeeded.
|
|
494
832
|
*/
|
|
495
833
|
async runOmnitronMigrations() {
|
|
496
|
-
const {
|
|
497
|
-
|
|
498
|
-
const m001 = await import('../database/migrations/001_initial_schema.js');
|
|
499
|
-
const m002 = await import('../database/migrations/002_metrics_raw.js');
|
|
500
|
-
const pool = new pg.default.Pool({
|
|
501
|
-
host: 'localhost',
|
|
502
|
-
port: OMNITRON_PG_PORT,
|
|
503
|
-
database: OMNITRON_PG_DATABASE,
|
|
504
|
-
user: OMNITRON_PG_USER,
|
|
505
|
-
password: OMNITRON_PG_PASSWORD,
|
|
506
|
-
});
|
|
507
|
-
const db = new Kysely({
|
|
508
|
-
dialect: new PostgresDialect({ pool }),
|
|
509
|
-
});
|
|
510
|
-
try {
|
|
511
|
-
const migrator = new Migrator({
|
|
512
|
-
db,
|
|
513
|
-
provider: {
|
|
514
|
-
async getMigrations() {
|
|
515
|
-
return {
|
|
516
|
-
'001_initial_schema': { up: m001.up, down: m001.down },
|
|
517
|
-
'002_metrics_raw': { up: m002.up, down: m002.down },
|
|
518
|
-
};
|
|
519
|
-
},
|
|
520
|
-
},
|
|
521
|
-
});
|
|
522
|
-
const { results, error } = await migrator.migrateToLatest();
|
|
523
|
-
const applied = results?.filter((r) => r.status === 'Success') ?? [];
|
|
524
|
-
if (applied.length > 0) {
|
|
525
|
-
this.logger.info({ migrations: applied.map((r) => r.migrationName) }, `Applied ${applied.length} Omnitron migration(s)`);
|
|
526
|
-
}
|
|
527
|
-
else {
|
|
528
|
-
this.logger.debug('Omnitron database schema is up to date');
|
|
529
|
-
}
|
|
530
|
-
if (error) {
|
|
531
|
-
this.logger.error({ error: String(error) }, 'Migration error');
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
finally {
|
|
535
|
-
await db.destroy();
|
|
536
|
-
}
|
|
834
|
+
const { runOmnitronMigrations } = await import('../database/migration-runner.js');
|
|
835
|
+
await runOmnitronMigrations(this.logger);
|
|
537
836
|
}
|
|
538
837
|
// ===========================================================================
|
|
539
838
|
// Private — Health Monitor (Self-Healing)
|
|
@@ -552,12 +851,24 @@ export class InfrastructureService {
|
|
|
552
851
|
this.healthTimer = null;
|
|
553
852
|
}
|
|
554
853
|
}
|
|
854
|
+
/**
|
|
855
|
+
* The control-plane database container this service keeps, if any: none on
|
|
856
|
+
* a node — it keeps its own state in SQLite (`decideControlPlaneDatabase`) —
|
|
857
|
+
* and none where the global `omnitron-pg` serves.
|
|
858
|
+
*
|
|
859
|
+
* `provision()` asked `needsControlPlaneDatabase`; the health sweep and the
|
|
860
|
+
* teardown asked only `usingGlobalOmnitronPg`. So on a node the sweep found
|
|
861
|
+
* `<prefix>-pg` «not running» every 30 s and created it: daos/test got one on
|
|
862
|
+
* 2026-09-20, and again on 2026-09-25 forty seconds after it was removed —
|
|
863
|
+
* on the default credentials, for a database nothing reads.
|
|
864
|
+
*/
|
|
865
|
+
controlPlaneContainers() {
|
|
866
|
+
return this.needsControlPlaneDatabase && !this.usingGlobalOmnitronPg ? [this.omnitronPgContainer] : [];
|
|
867
|
+
}
|
|
555
868
|
async healthSweep() {
|
|
556
|
-
//
|
|
557
|
-
//
|
|
558
|
-
const allContainers = this.
|
|
559
|
-
? [...this.desiredContainers]
|
|
560
|
-
: [this.omnitronPgContainer, ...this.desiredContainers];
|
|
869
|
+
// The control-plane database alongside the app containers, where this
|
|
870
|
+
// service keeps one.
|
|
871
|
+
const allContainers = [...this.controlPlaneContainers(), ...this.desiredContainers];
|
|
561
872
|
for (const desired of allContainers) {
|
|
562
873
|
const actual = await getContainerState(desired.name);
|
|
563
874
|
// T#58: Docker's own `--restart=always` / `--restart=on-failure`
|
|
@@ -573,12 +884,24 @@ export class InfrastructureService {
|
|
|
573
884
|
}
|
|
574
885
|
if (!actual || actual.status !== 'running') {
|
|
575
886
|
this.unhealthyTicks.delete(desired.name);
|
|
887
|
+
// Circuit-breaker: while a service is inside its backoff window, skip
|
|
888
|
+
// the restart so a permanently-failing container can't hammer the
|
|
889
|
+
// supervisor every tick and starve the daemon's event loop.
|
|
890
|
+
const backoff = this.restartBackoff.get(desired.name);
|
|
891
|
+
if (backoff && Date.now() < backoff.nextAttemptAt) {
|
|
892
|
+
this.logger.debug({ service: desired.name, failures: backoff.failures, retryInMs: backoff.nextAttemptAt - Date.now() }, 'Service not running — in restart backoff, skipping tick');
|
|
893
|
+
continue;
|
|
894
|
+
}
|
|
576
895
|
this.logger.warn({ service: desired.name, status: actual?.status ?? 'not_found' }, 'Service not running — auto-restarting');
|
|
577
896
|
try {
|
|
578
897
|
await this.reconcileService(desired);
|
|
898
|
+
this.restartBackoff.delete(desired.name);
|
|
579
899
|
}
|
|
580
900
|
catch (err) {
|
|
581
|
-
this.
|
|
901
|
+
const failures = (this.restartBackoff.get(desired.name)?.failures ?? 0) + 1;
|
|
902
|
+
const backoffMs = restartBackoffMs(failures);
|
|
903
|
+
this.restartBackoff.set(desired.name, { failures, nextAttemptAt: Date.now() + backoffMs });
|
|
904
|
+
this.logger.error({ service: desired.name, error: err.message, failures, backoffMs }, 'Auto-restart failed');
|
|
582
905
|
}
|
|
583
906
|
}
|
|
584
907
|
else if (actual.health === 'unhealthy') {
|
|
@@ -600,8 +923,11 @@ export class InfrastructureService {
|
|
|
600
923
|
}
|
|
601
924
|
}
|
|
602
925
|
else {
|
|
603
|
-
// Healthy or starting — clear any accumulated unhealthy ticks
|
|
926
|
+
// Healthy or starting — clear any accumulated unhealthy ticks and
|
|
927
|
+
// reset the restart circuit-breaker (it may have recovered on its own
|
|
928
|
+
// via Docker's restart policy).
|
|
604
929
|
this.unhealthyTicks.delete(desired.name);
|
|
930
|
+
this.restartBackoff.delete(desired.name);
|
|
605
931
|
}
|
|
606
932
|
// Update state
|
|
607
933
|
const newState = await getContainerState(desired.name);
|