@omnitron-dev/omnitron 0.2.0 → 0.3.1
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/README.md +4 -0
- package/dist/BUILD.json +5 -0
- package/dist/cli/omnitron.js +375 -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-recover.d.ts +2 -0
- package/dist/commands/fleet-recover.d.ts.map +1 -0
- package/dist/commands/fleet-recover.js +30 -0
- package/dist/commands/fleet-recover.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/host-ingress.d.ts +3 -0
- package/dist/commands/host-ingress.d.ts.map +1 -0
- package/dist/commands/host-ingress.js +31 -0
- package/dist/commands/host-ingress.js.map +1 -0
- 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 +56 -0
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +297 -69
- 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 +33 -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 +416 -44
- 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 +194 -4
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +1160 -157
- 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 -85
- 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 +439 -97
- 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 +146 -0
- package/dist/execution/execution.service.d.ts.map +1 -1
- package/dist/execution/execution.service.js +330 -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 +170 -10
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +565 -52
- 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-ingress-config.d.ts +12 -0
- package/dist/infrastructure/host-ingress-config.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-config.js +197 -0
- package/dist/infrastructure/host-ingress-config.js.map +1 -0
- package/dist/infrastructure/host-ingress-lock.d.ts +4 -0
- package/dist/infrastructure/host-ingress-lock.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-lock.js +36 -0
- package/dist/infrastructure/host-ingress-lock.js.map +1 -0
- package/dist/infrastructure/host-ingress-runtime.d.ts +25 -0
- package/dist/infrastructure/host-ingress-runtime.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-runtime.js +114 -0
- package/dist/infrastructure/host-ingress-runtime.js.map +1 -0
- package/dist/infrastructure/host-ingress-takeover.d.ts +18 -0
- package/dist/infrastructure/host-ingress-takeover.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-takeover.js +142 -0
- package/dist/infrastructure/host-ingress-takeover.js.map +1 -0
- package/dist/infrastructure/host-ingress-types.d.ts +173 -0
- package/dist/infrastructure/host-ingress-types.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-types.js +2 -0
- package/dist/infrastructure/host-ingress-types.js.map +1 -0
- package/dist/infrastructure/host-ingress.service.d.ts +47 -0
- package/dist/infrastructure/host-ingress.service.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress.service.js +514 -0
- package/dist/infrastructure/host-ingress.service.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 +223 -7
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +500 -93
- 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 +166 -12
- package/dist/infrastructure/service-resolver.d.ts.map +1 -1
- package/dist/infrastructure/service-resolver.js +535 -82
- 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 +16 -1
- package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
- package/dist/infrastructure/stack-infra-manager.js +81 -53
- package/dist/infrastructure/stack-infra-manager.js.map +1 -1
- package/dist/infrastructure/types.d.ts +263 -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/operations.d.ts +16 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +13 -0
- package/dist/operations.js.map +1 -0
- 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 +332 -20
- package/dist/orchestrator/bootstrap-process.js.map +1 -1
- package/dist/orchestrator/build-service.d.ts +6 -12
- package/dist/orchestrator/build-service.d.ts.map +1 -1
- package/dist/orchestrator/build-service.js +120 -83
- 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 +40 -4
- package/dist/orchestrator/classic-launcher.js.map +1 -1
- package/dist/orchestrator/file-watcher.d.ts +79 -1
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +193 -7
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/http-routes.d.ts +4 -0
- package/dist/orchestrator/http-routes.d.ts.map +1 -0
- package/dist/orchestrator/http-routes.js +19 -0
- package/dist/orchestrator/http-routes.js.map +1 -0
- 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 +385 -11
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +1738 -364
- 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 +293 -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 +214 -64
- 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 +11 -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 +93 -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 +490 -0
- package/dist/services/bundle-builder.d.ts.map +1 -0
- package/dist/services/bundle-builder.js +1159 -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/host-operation-barrier.d.ts +8 -0
- package/dist/services/host-operation-barrier.d.ts.map +1 -0
- package/dist/services/host-operation-barrier.js +44 -0
- package/dist/services/host-operation-barrier.js.map +1 -0
- package/dist/services/host-upgrade.d.ts +129 -0
- package/dist/services/host-upgrade.d.ts.map +1 -0
- package/dist/services/host-upgrade.js +352 -0
- package/dist/services/host-upgrade.js.map +1 -0
- package/dist/services/infrastructure.rpc-service.d.ts +312 -2
- package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
- package/dist/services/infrastructure.rpc-service.js +584 -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 +160 -0
- package/dist/services/local-bundle.d.ts.map +1 -0
- package/dist/services/local-bundle.js +242 -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 +171 -0
- package/dist/services/node-deploy-lease.d.ts.map +1 -0
- package/dist/services/node-deploy-lease.js +460 -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 +360 -10
- package/dist/services/node-manager.rpc-service.d.ts.map +1 -1
- package/dist/services/node-manager.rpc-service.js +754 -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 +6 -1
- package/dist/services/pipeline.rpc-service.d.ts.map +1 -1
- package/dist/services/pipeline.rpc-service.js +9 -0
- package/dist/services/pipeline.rpc-service.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +17 -46
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +84 -9
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +140 -5
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +260 -22
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +687 -15
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +2846 -337
- 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 +580 -8
- package/dist/services/remote-deployer.service.d.ts.map +1 -1
- package/dist/services/remote-deployer.service.js +1786 -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 +124 -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 +110 -0
- package/dist/services/static-carry-forward.d.ts.map +1 -0
- package/dist/services/static-carry-forward.js +433 -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 +858 -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 +68 -30
- package/webapp/dist/BUILD.json +5 -0
- package/webapp/dist/assets/FormControlLabel-BbSxpQwN.js +1 -0
- package/webapp/dist/assets/Grid-DizFZYue.js +1 -0
- package/webapp/dist/assets/Switch-Bfiqzx8l.js +1 -0
- package/webapp/dist/assets/alerts-DH_RVRS3.js +1 -0
- package/webapp/dist/assets/apps-B96355sz.js +1 -0
- package/webapp/dist/assets/audit-CYGtbi4k.js +1 -0
- package/webapp/dist/assets/client-BmqFExWT.js +1 -0
- package/webapp/dist/assets/constants-veKGFkC6.js +1 -0
- package/webapp/dist/assets/containers-B_TpThln.js +2 -0
- package/webapp/dist/assets/daemon-memory-CCPZ4cV_.js +1 -0
- package/webapp/dist/assets/dashboard-DHf2_65N.js +1 -0
- package/webapp/dist/assets/dashboard-builder-CWY2pjeG.js +1 -0
- package/webapp/dist/assets/deploy-release-dialog-Dp-zpSAd.js +1 -0
- package/webapp/dist/assets/deployments-tJI6O3fK.js +1 -0
- package/webapp/dist/assets/detail-B2zP1Hto.js +8 -0
- package/webapp/dist/assets/detail-CoIrwmsy.js +1 -0
- package/webapp/dist/assets/detail-DWaGaOtL.js +2 -0
- package/webapp/dist/assets/formatters-BqjL73N3.js +1 -0
- package/webapp/dist/assets/index-Dvo0iprx.css +1 -0
- package/webapp/dist/assets/index-vMnY_4jR.js +412 -0
- package/webapp/dist/assets/logs-DTRjOfX8.js +12 -0
- package/webapp/dist/assets/maplibre-gl-DowHoZAx.js +814 -0
- package/webapp/dist/assets/metrics-UCajtdox.js +2 -0
- package/webapp/dist/assets/nodes-DuTVU0f6.js +7 -0
- package/webapp/dist/assets/pipelines-C8BeDcAl.js +4 -0
- package/webapp/dist/assets/projects-Dp_zFfLY.js +1 -0
- package/webapp/dist/assets/react-DlmbjZJV.js +1 -0
- package/webapp/dist/assets/react-apexcharts.esm-C8pn45ml.js +97 -0
- package/webapp/dist/assets/release-bits-BzTKz5fM.js +1 -0
- package/webapp/dist/assets/release-build-panel-DcW9YcXQ.js +1 -0
- package/webapp/dist/assets/releases-B4hcr1bE.js +2 -0
- package/webapp/dist/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/webapp/dist/assets/settings-DIteZTbe.js +1 -0
- package/webapp/dist/assets/settled-pair-C7SjZuns.js +1 -0
- package/webapp/dist/assets/sign-in-D4kMBOHp.js +1 -0
- package/webapp/dist/assets/stacks-Brnf-EB7.js +1 -0
- package/webapp/dist/assets/sync-reading-C3PnJ7AX.js +1 -0
- package/webapp/dist/assets/system-info-CFDNVKkU.js +1 -0
- package/webapp/dist/assets/topology-7WeTUsDN.js +12 -0
- package/webapp/dist/assets/topology-DLioOiRN.css +1 -0
- package/webapp/dist/assets/traces-9c3gwCN-.js +1 -0
- package/webapp/dist/assets/use-stack-context-CnA5FTHu.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
|
@@ -7,6 +7,64 @@
|
|
|
7
7
|
*
|
|
8
8
|
* All Omnitron-managed containers are labeled with `omnitron.managed=true`.
|
|
9
9
|
*/
|
|
10
|
+
import { createHash } from 'node:crypto';
|
|
11
|
+
import { CONFIG_ROOT_PREFIX } from './shipped-config.js';
|
|
12
|
+
/** Label carrying the desired-spec fingerprint, used for config-drift detection. */
|
|
13
|
+
export const SPEC_HASH_LABEL = 'omnitron.spec-hash';
|
|
14
|
+
/**
|
|
15
|
+
* Stable fingerprint of a container's *desired* spec. Covers the fields that a
|
|
16
|
+
* config edit can change and that require a recreate to apply (image, env,
|
|
17
|
+
* ports, volumes, command/entrypoint, extraHosts). Deliberately EXCLUDES
|
|
18
|
+
* labels — the spec-hash label is derived from this, and docker-compose adds
|
|
19
|
+
* label noise — so the hash is stable across recreations of an unchanged spec.
|
|
20
|
+
*
|
|
21
|
+
* Stamped as a label at create time and compared on reconcile so that an env
|
|
22
|
+
* change (e.g. the Tor hidden-service target) triggers a recreate instead of
|
|
23
|
+
* being silently ignored because the image is unchanged.
|
|
24
|
+
*/
|
|
25
|
+
export function containerSpecHash(config) {
|
|
26
|
+
const sortedEnv = Object.keys(config.environment)
|
|
27
|
+
.sort()
|
|
28
|
+
.map((k) => [k, config.environment[k]]);
|
|
29
|
+
const normalized = JSON.stringify({
|
|
30
|
+
image: config.image,
|
|
31
|
+
env: sortedEnv,
|
|
32
|
+
// `bindHost` is part of what a port IS. Without it, changing a container
|
|
33
|
+
// from every-interface to loopback leaves the hash identical and the
|
|
34
|
+
// container published exactly as before.
|
|
35
|
+
ports: [...config.ports]
|
|
36
|
+
.map((p) => ({ h: p.host, c: p.container, b: p.bindHost ?? null }))
|
|
37
|
+
.sort((a, b) => a.h - b.h || a.c - b.c),
|
|
38
|
+
volumes: [...config.volumes]
|
|
39
|
+
.map((v) => ({ s: v.source, t: v.target, ro: !!v.readonly }))
|
|
40
|
+
.sort((a, b) => (a.t < b.t ? -1 : a.t > b.t ? 1 : 0)),
|
|
41
|
+
command: config.command ?? null,
|
|
42
|
+
entrypoint: config.entrypoint ?? null,
|
|
43
|
+
extraHosts: [...(config.extraHosts ?? [])].sort(),
|
|
44
|
+
// A health check is baked into the container at creation: docker reads
|
|
45
|
+
// `HEALTHCHECK` once and never again. Leaving it out of the hash means a
|
|
46
|
+
// corrected check never reaches anything already running — the fix lands
|
|
47
|
+
// in the code, the reconciler sees no difference, and the container goes
|
|
48
|
+
// on answering the old question forever.
|
|
49
|
+
//
|
|
50
|
+
// Measured: the gateway's probe was corrected from `curl` (absent from
|
|
51
|
+
// its image) to one that also tries wget, the node was reprovisioned,
|
|
52
|
+
// and the container kept the curl-only check and kept reporting
|
|
53
|
+
// unhealthy.
|
|
54
|
+
healthCheck: config.healthCheck ?? null,
|
|
55
|
+
// The network a container is on is not a detail of how it runs but of
|
|
56
|
+
// what it can reach. A service moved between networks and not recreated
|
|
57
|
+
// is on the old one, and its name resolves for nobody.
|
|
58
|
+
network: config.network ?? null,
|
|
59
|
+
restart: config.restart,
|
|
60
|
+
// What the mounted config files SAY, which the volume paths above cannot:
|
|
61
|
+
// an nginx.conf rewritten in place has the same path. Only when present,
|
|
62
|
+
// so a container with no config files keeps the hash it was created
|
|
63
|
+
// with and an upgrade of omnitron recreates nothing on its account.
|
|
64
|
+
...(config.configDigest ? { configDigest: config.configDigest } : {}),
|
|
65
|
+
});
|
|
66
|
+
return createHash('sha1').update(normalized).digest('hex').slice(0, 16);
|
|
67
|
+
}
|
|
10
68
|
// =============================================================================
|
|
11
69
|
// Singleton DockerAdapter (lazy-loaded, self-healing)
|
|
12
70
|
// =============================================================================
|
|
@@ -54,6 +112,36 @@ async function withAdapter(op) {
|
|
|
54
112
|
// =============================================================================
|
|
55
113
|
// Public API
|
|
56
114
|
// =============================================================================
|
|
115
|
+
/**
|
|
116
|
+
* How many containers this host's Docker holds, by state — every container,
|
|
117
|
+
* not only omnitron's.
|
|
118
|
+
*
|
|
119
|
+
* One `docker ps`, the CLI the rest of this file speaks, with a timeout that
|
|
120
|
+
* ends it. The system snapshot asked Docker through systeminformation's
|
|
121
|
+
* socket client instead, which sends `GET /info HTTP/1.0` and waits for the
|
|
122
|
+
* connection to close; OrbStack answers `HTTP/1.1 200` and keeps it open, so
|
|
123
|
+
* every question hung until the library's own timeout — measured 2026-09-23:
|
|
124
|
+
* no answer in 20 s where `curl` on the same socket took 0.055 s — and left
|
|
125
|
+
* its socket open behind it.
|
|
126
|
+
*/
|
|
127
|
+
export async function countContainersByState(timeoutMs = 10_000) {
|
|
128
|
+
const { execFile } = await import('node:child_process');
|
|
129
|
+
const { promisify } = await import('node:util');
|
|
130
|
+
const { stdout } = await promisify(execFile)('docker', ['ps', '-a', '--format', '{{.State}}'], {
|
|
131
|
+
encoding: 'utf-8',
|
|
132
|
+
timeout: timeoutMs,
|
|
133
|
+
});
|
|
134
|
+
const counts = { running: 0, paused: 0, stopped: 0 };
|
|
135
|
+
for (const state of String(stdout).split('\n').map((line) => line.trim()).filter(Boolean)) {
|
|
136
|
+
if (state === 'running')
|
|
137
|
+
counts.running++;
|
|
138
|
+
else if (state === 'paused')
|
|
139
|
+
counts.paused++;
|
|
140
|
+
else
|
|
141
|
+
counts.stopped++;
|
|
142
|
+
}
|
|
143
|
+
return counts;
|
|
144
|
+
}
|
|
57
145
|
/**
|
|
58
146
|
* Check if Docker daemon is available.
|
|
59
147
|
*/
|
|
@@ -67,37 +155,125 @@ export async function isDockerAvailable() {
|
|
|
67
155
|
}
|
|
68
156
|
/**
|
|
69
157
|
* List all Omnitron-managed containers.
|
|
158
|
+
*
|
|
159
|
+
* `[]` when Docker cannot be asked, which is right for a listing and wrong for
|
|
160
|
+
* a health check: «nothing is running» and «Docker did not answer» are
|
|
161
|
+
* different states. `orThrow` keeps them apart.
|
|
70
162
|
*/
|
|
71
|
-
export async function listManagedContainers() {
|
|
163
|
+
export async function listManagedContainers(options = {}) {
|
|
72
164
|
try {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
165
|
+
const names = await withAdapter((adapter) => adapter.listContainers(true));
|
|
166
|
+
if (names.length === 0)
|
|
167
|
+
return [];
|
|
168
|
+
// One `docker inspect` for every container, not one per container.
|
|
169
|
+
//
|
|
170
|
+
// The per-container loop this replaces issued a subprocess each: on a host
|
|
171
|
+
// with 28 containers that is 28 spawns, and the console polls this every
|
|
172
|
+
// ten seconds. Measured on that host: 0.042s for one inspect, 0.225s for
|
|
173
|
+
// all 28 in a single call — so the loop cost roughly 1.2s of process
|
|
174
|
+
// churn per poll when it was working, and under load it stopped returning
|
|
175
|
+
// at all, leaving the containers page in its loading state indefinitely.
|
|
176
|
+
const inspected = await inspectContainers(names);
|
|
177
|
+
// Named and then not described: `inspectContainers` swallows its own
|
|
178
|
+
// failure, and an empty answer here is Docker going away mid-question.
|
|
179
|
+
if (options.orThrow && inspected.length === 0) {
|
|
180
|
+
throw new Error(`docker listed ${names.length} container(s) and then described none of them`);
|
|
181
|
+
}
|
|
182
|
+
const managed = [];
|
|
183
|
+
for (const info of inspected) {
|
|
184
|
+
if (info?.Config?.Labels?.['omnitron.managed'] !== 'true')
|
|
185
|
+
continue;
|
|
186
|
+
const failure = describeContainerFailure(info.State);
|
|
187
|
+
managed.push({
|
|
188
|
+
name: (info.Name ?? '').replace(/^\//, ''),
|
|
189
|
+
image: info.Config?.Image ?? '',
|
|
190
|
+
status: mapInspectStatus(info.State?.Status),
|
|
191
|
+
containerId: info.Id?.slice(0, 12),
|
|
192
|
+
health: mapInspectHealth(info.State?.Health?.Status),
|
|
193
|
+
startedAt: info.State?.StartedAt,
|
|
194
|
+
ports: publishedPorts(info),
|
|
195
|
+
service: info.Config?.Labels?.['omnitron.service'],
|
|
196
|
+
project: info.Config?.Labels?.['omnitron.project'],
|
|
197
|
+
stack: info.Config?.Labels?.['omnitron.stack'],
|
|
198
|
+
app: info.Config?.Labels?.['omnitron.app'],
|
|
199
|
+
...(failure && { error: failure }),
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
return managed;
|
|
96
203
|
}
|
|
97
|
-
catch {
|
|
204
|
+
catch (err) {
|
|
205
|
+
if (options.orThrow)
|
|
206
|
+
throw err;
|
|
98
207
|
return [];
|
|
99
208
|
}
|
|
100
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Published ports, as `"80/tcp" -> 9800`.
|
|
212
|
+
*
|
|
213
|
+
* `ContainerState.ports` was declared, documented as a name→port map, and
|
|
214
|
+
* assigned by nothing — so the console's Ports column showed `--` for every
|
|
215
|
+
* container on a host where all twelve publish ports. The data was already in
|
|
216
|
+
* hand: `docker inspect` returns it, and this reads it out of the response
|
|
217
|
+
* both call sites already have.
|
|
218
|
+
*
|
|
219
|
+
* The keys are container ports rather than the logical names a service config
|
|
220
|
+
* uses (`main`, `rpc`), because that is what Docker knows. A container that
|
|
221
|
+
* exposes a port without publishing it has a null binding and is left out —
|
|
222
|
+
* it is not reachable from the host, so listing it would overstate what is
|
|
223
|
+
* available.
|
|
224
|
+
*/
|
|
225
|
+
function publishedPorts(info) {
|
|
226
|
+
const raw = info.NetworkSettings?.Ports;
|
|
227
|
+
if (!raw)
|
|
228
|
+
return undefined;
|
|
229
|
+
const out = {};
|
|
230
|
+
for (const [containerPort, bindings] of Object.entries(raw)) {
|
|
231
|
+
// Docker lists both the IPv4 and IPv6 binding for the same publish; they
|
|
232
|
+
// carry the same host port, so the first usable one is the answer.
|
|
233
|
+
const hostPort = bindings?.find((b) => b?.HostPort)?.HostPort;
|
|
234
|
+
if (!hostPort)
|
|
235
|
+
continue;
|
|
236
|
+
const port = Number(hostPort);
|
|
237
|
+
if (Number.isInteger(port) && port > 0)
|
|
238
|
+
out[containerPort] = port;
|
|
239
|
+
}
|
|
240
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Inspect many containers in one call.
|
|
244
|
+
*
|
|
245
|
+
* `docker inspect` takes any number of names and returns a JSON array. Names
|
|
246
|
+
* that no longer exist are reported on stderr and simply absent from the
|
|
247
|
+
* array — which is the behaviour wanted here, since a container can be
|
|
248
|
+
* removed between listing and inspecting.
|
|
249
|
+
*/
|
|
250
|
+
async function inspectContainers(names) {
|
|
251
|
+
const { execFile } = await import('node:child_process');
|
|
252
|
+
const { promisify } = await import('node:util');
|
|
253
|
+
const execFileAsync = promisify(execFile);
|
|
254
|
+
try {
|
|
255
|
+
const { stdout } = await execFileAsync('docker', ['inspect', ...names], {
|
|
256
|
+
timeout: 15_000,
|
|
257
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
258
|
+
});
|
|
259
|
+
const parsed = JSON.parse(stdout || '[]');
|
|
260
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
// A non-zero exit means SOME name was unknown; docker still prints the
|
|
264
|
+
// ones it found, so the output is worth parsing rather than discarding.
|
|
265
|
+
const stdout = err.stdout;
|
|
266
|
+
if (!stdout)
|
|
267
|
+
return [];
|
|
268
|
+
try {
|
|
269
|
+
const parsed = JSON.parse(stdout);
|
|
270
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
return [];
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
101
277
|
/**
|
|
102
278
|
* Get state of a specific container by name.
|
|
103
279
|
*/
|
|
@@ -108,12 +284,25 @@ export async function getContainerState(name) {
|
|
|
108
284
|
if (!exists)
|
|
109
285
|
return null;
|
|
110
286
|
const info = await adapter.inspectContainer(name);
|
|
287
|
+
// Network attachment: an OrbStack/dockerd restart can leave a container
|
|
288
|
+
// 'running' but detached from every network (empty Networks) with its
|
|
289
|
+
// published ports gone — reachable by nothing. Surface it so callers can
|
|
290
|
+
// recreate instead of trusting the 'running' status.
|
|
291
|
+
const networkAttached = Object.keys(info.NetworkSettings?.Networks ?? {}).length > 0;
|
|
292
|
+
const failure = describeContainerFailure(info.State);
|
|
111
293
|
return {
|
|
112
294
|
name: (info.Name ?? name).replace(/^\//, ''),
|
|
113
295
|
image: info.Config?.Image ?? '',
|
|
114
296
|
status: mapInspectStatus(info.State?.Status),
|
|
115
297
|
containerId: info.Id?.slice(0, 12),
|
|
116
298
|
health: mapInspectHealth(info.State?.Health?.Status),
|
|
299
|
+
startedAt: info.State?.StartedAt,
|
|
300
|
+
ports: publishedPorts(info),
|
|
301
|
+
specHash: info.Config?.Labels?.[SPEC_HASH_LABEL],
|
|
302
|
+
labels: info.Config?.Labels,
|
|
303
|
+
service: info.Config?.Labels?.['omnitron.service'],
|
|
304
|
+
networkAttached,
|
|
305
|
+
...(failure && { error: failure }),
|
|
117
306
|
};
|
|
118
307
|
});
|
|
119
308
|
}
|
|
@@ -121,6 +310,118 @@ export async function getContainerState(name) {
|
|
|
121
310
|
return null;
|
|
122
311
|
}
|
|
123
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* One `-p` value.
|
|
315
|
+
*
|
|
316
|
+
* `9800:80` publishes on every INTERFACE — Docker's default, and Docker's
|
|
317
|
+
* iptables rules are inserted ahead of the host firewall's, so such a port is
|
|
318
|
+
* reachable from the network no matter what `ufw status` says.
|
|
319
|
+
*
|
|
320
|
+
* An omission therefore used to mean the widest possible answer. This is the
|
|
321
|
+
* single place a published port becomes a docker argument, and it now reads an
|
|
322
|
+
* absent `bindHost` as loopback: a container that must be reachable says so,
|
|
323
|
+
* with `bindHost: '0.0.0.0'`, in a line someone can see in a diff.
|
|
324
|
+
*
|
|
325
|
+
* `applyManagedDefaults` fills the same field in the resolver, and should —
|
|
326
|
+
* that is what puts the binding into `containerSpecHash`, so changing it
|
|
327
|
+
* recreates the container instead of leaving the old one published. But a
|
|
328
|
+
* default that every resolver must remember is a default that one of them
|
|
329
|
+
* will not: `resolveGateway` was the one return of four that did not call it,
|
|
330
|
+
* and the gateway is the container that faces outward. Measured on the dev
|
|
331
|
+
* stand: `sample-dev-gateway` published on 0.0.0.0:80 while the other ten
|
|
332
|
+
* managed containers were all on 127.0.0.1, and a browser on the LAN could
|
|
333
|
+
* sign in. Defence in depth, because the resolver-side default is the one
|
|
334
|
+
* that can be forgotten and this one cannot.
|
|
335
|
+
*/
|
|
336
|
+
export function portArg(p) {
|
|
337
|
+
const bindHost = p.bindHost ?? '127.0.0.1';
|
|
338
|
+
return `${bindHost}:${p.host}:${p.container}`;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Docker state left over from a container that is gone.
|
|
342
|
+
*
|
|
343
|
+
* An orphaned libnetwork endpoint, or a `Created` husk holding the name.
|
|
344
|
+
* Both are scrubbed and the run retried.
|
|
345
|
+
*/
|
|
346
|
+
export function isStaleContainerState(message) {
|
|
347
|
+
return /endpoint with name .* already exists|is already in use by container/i.test(message);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* A port whose previous holder has not let go yet.
|
|
351
|
+
*
|
|
352
|
+
* `docker rm` returns before the kernel releases the bind its docker-proxy
|
|
353
|
+
* held, so removing a container and immediately recreating it races that
|
|
354
|
+
* release. Measured on a node recreating postgres, redis and minio at once:
|
|
355
|
+
* all three failed this way, each left in `Created`, and `docker start` by
|
|
356
|
+
* hand a second later worked — which is what makes it a race rather than a
|
|
357
|
+
* conflict, and a retry the right answer rather than a louder error.
|
|
358
|
+
*
|
|
359
|
+
* Narrow on purpose. A missing image, a bad flag, or a port genuinely held
|
|
360
|
+
* by something else is permanent, and retrying it turns one clear error into
|
|
361
|
+
* several identical ones separated by delays.
|
|
362
|
+
*/
|
|
363
|
+
export function isPortNotYetReleased(message) {
|
|
364
|
+
return /port is already allocated|failed to set up container networking/i.test(message);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Which container holds a host port, if any.
|
|
368
|
+
*
|
|
369
|
+
* `port is already allocated` is true and useless: it names the port and
|
|
370
|
+
* withholds the only thing an operator can act on. Measured on a node where
|
|
371
|
+
* three services would not start —
|
|
372
|
+
*
|
|
373
|
+
* Bind for 127.0.0.1:5432 failed: port is already allocated
|
|
374
|
+
*
|
|
375
|
+
* — and the holder was `omnitron-postgres`, a container from an earlier
|
|
376
|
+
* naming of the same stack that the reconciler had stopped recognising and
|
|
377
|
+
* therefore stopped managing. Nothing in the failure said that, and nothing
|
|
378
|
+
* else would: the reconciler converges the containers it can name, and a
|
|
379
|
+
* container it no longer names is invisible to it while remaining very
|
|
380
|
+
* visible to the kernel.
|
|
381
|
+
*
|
|
382
|
+
* Answers null when nothing holds it, which is its own information: the
|
|
383
|
+
* bind failed for another reason.
|
|
384
|
+
*/
|
|
385
|
+
export async function containerHoldingPort(hostPort) {
|
|
386
|
+
const { execFile } = await import('node:child_process');
|
|
387
|
+
const { promisify } = await import('node:util');
|
|
388
|
+
try {
|
|
389
|
+
const { stdout } = await promisify(execFile)('docker', ['ps', '-a', '--format', '{{.Names}}\t{{.Ports}}'], { encoding: 'utf-8', timeout: 20_000 });
|
|
390
|
+
for (const line of String(stdout).split('\n')) {
|
|
391
|
+
const [name, ports] = line.split('\t');
|
|
392
|
+
if (!name || !ports)
|
|
393
|
+
continue;
|
|
394
|
+
// `127.0.0.1:5432->5432/tcp` and `0.0.0.0:5480->5432/tcp`: the host
|
|
395
|
+
// port is the one before the arrow, and it is the one that collides.
|
|
396
|
+
if (new RegExp(`:${hostPort}->`).test(ports))
|
|
397
|
+
return name;
|
|
398
|
+
}
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
catch {
|
|
402
|
+
return null;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Explain a bind failure by naming what is holding the port.
|
|
407
|
+
*
|
|
408
|
+
* Kept separate from the retry because it answers a different question:
|
|
409
|
+
* the retry asks "will this resolve on its own", and this asks "if not,
|
|
410
|
+
* what do I tell the operator".
|
|
411
|
+
*/
|
|
412
|
+
export async function describeBindFailure(config, original,
|
|
413
|
+
/** The lookup, as a parameter so this is answerable without a docker. */
|
|
414
|
+
lookup = containerHoldingPort) {
|
|
415
|
+
for (const port of config.ports) {
|
|
416
|
+
const holder = await lookup(port.host);
|
|
417
|
+
if (!holder || holder === config.name)
|
|
418
|
+
continue;
|
|
419
|
+
return (`${config.name} cannot take ${port.bindHost ?? '0.0.0.0'}:${port.host} — the container ` +
|
|
420
|
+
`\`${holder}\` is holding it. If that is a leftover from an earlier naming of this stack, ` +
|
|
421
|
+
`\`docker rm -f ${holder}\` releases the port and keeps its volume.`);
|
|
422
|
+
}
|
|
423
|
+
return original;
|
|
424
|
+
}
|
|
124
425
|
/**
|
|
125
426
|
* Create and start a container from a resolved config.
|
|
126
427
|
*/
|
|
@@ -136,9 +437,11 @@ export async function createContainer(config) {
|
|
|
136
437
|
if (config.network) {
|
|
137
438
|
await ensureNetwork(config.network);
|
|
138
439
|
}
|
|
139
|
-
// Ensure volumes exist
|
|
440
|
+
// Ensure volumes exist. A `configroot:` source is a shipped directory this
|
|
441
|
+
// node has no copy of (`shipped-config.ts`), not a volume to create: it
|
|
442
|
+
// reaches `docker run`, which refuses it by name.
|
|
140
443
|
for (const vol of config.volumes) {
|
|
141
|
-
if (!vol.source.startsWith('/') && !vol.source.startsWith('.')) {
|
|
444
|
+
if (!vol.source.startsWith('/') && !vol.source.startsWith('.') && !vol.source.startsWith(CONFIG_ROOT_PREFIX)) {
|
|
142
445
|
await createVolume(vol.source);
|
|
143
446
|
}
|
|
144
447
|
}
|
|
@@ -154,9 +457,8 @@ export async function createContainer(config) {
|
|
|
154
457
|
if (config.network) {
|
|
155
458
|
args.push('--network', config.network);
|
|
156
459
|
}
|
|
157
|
-
// Port mappings
|
|
158
460
|
for (const p of config.ports) {
|
|
159
|
-
args.push('-p',
|
|
461
|
+
args.push('-p', portArg(p));
|
|
160
462
|
}
|
|
161
463
|
// Environment variables
|
|
162
464
|
for (const [key, value] of Object.entries(config.environment)) {
|
|
@@ -166,8 +468,11 @@ export async function createContainer(config) {
|
|
|
166
468
|
for (const v of config.volumes) {
|
|
167
469
|
args.push('-v', `${v.source}:${v.target}${v.readonly ? ':ro' : ''}`);
|
|
168
470
|
}
|
|
169
|
-
// Labels
|
|
170
|
-
|
|
471
|
+
// Labels — stamp the desired-spec fingerprint so a later reconcile can
|
|
472
|
+
// detect config drift (env/ports/volumes/cmd change under the same image)
|
|
473
|
+
// and recreate instead of silently no-op'ing.
|
|
474
|
+
const labels = { ...(config.labels ?? {}), [SPEC_HASH_LABEL]: containerSpecHash(config) };
|
|
475
|
+
for (const [key, value] of Object.entries(labels)) {
|
|
171
476
|
args.push('--label', `${key}=${value}`);
|
|
172
477
|
}
|
|
173
478
|
// Restart policy
|
|
@@ -212,12 +517,131 @@ export async function createContainer(config) {
|
|
|
212
517
|
if (config.command) {
|
|
213
518
|
args.push(...config.command);
|
|
214
519
|
}
|
|
215
|
-
// Execute docker run — use async execFile to avoid blocking event loop
|
|
216
|
-
|
|
520
|
+
// Execute docker run — use async execFile to avoid blocking event loop.
|
|
521
|
+
//
|
|
522
|
+
// Self-heal the two stale-state failures that otherwise wedge a managed
|
|
523
|
+
// container into an unstartable state (both seen in production on
|
|
524
|
+
// macOS/OrbStack after dockerd restarts under disk pressure):
|
|
525
|
+
// 1. "endpoint with name X already exists in network N" — an orphaned
|
|
526
|
+
// libnetwork endpoint outlived its container; docker run then leaves a
|
|
527
|
+
// half-created container with PortBindings set but NO published host
|
|
528
|
+
// port, so clients get ECONNREFUSED while inspect says "running".
|
|
529
|
+
// 2. "Conflict. The container name X is already in use" — a leftover
|
|
530
|
+
// Created-state container from a previously failed run.
|
|
531
|
+
// 3. "Bind for 127.0.0.1:5432 failed: port is already allocated" — the
|
|
532
|
+
// docker-proxy of a container `docker rm` has already returned for
|
|
533
|
+
// has not released its bind yet. A reconciler that removes and
|
|
534
|
+
// immediately recreates races that release. Measured on a node
|
|
535
|
+
// recreating three services at once: all three failed this way and
|
|
536
|
+
// were left in `Created`, and `docker start` by hand a second later
|
|
537
|
+
// worked — which is what makes it a race rather than a conflict.
|
|
538
|
+
//
|
|
539
|
+
// The first two are scrubbed; the third only needs a moment. Both are
|
|
540
|
+
// retried, with a short wait, up to three times.
|
|
541
|
+
//
|
|
542
|
+
// Deliberately narrow. A missing image, a bad flag, or a port genuinely
|
|
543
|
+
// held by something else is permanent, and retrying it turns one clear
|
|
544
|
+
// error into several identical ones separated by delays.
|
|
545
|
+
const runDocker = () => execFileAsync('docker', args.slice(1), { encoding: 'utf-8', timeout: 60_000 });
|
|
546
|
+
let stdout;
|
|
547
|
+
let lastError;
|
|
548
|
+
for (let attempt = 1; attempt <= 3; attempt += 1) {
|
|
549
|
+
try {
|
|
550
|
+
({ stdout } = await runDocker());
|
|
551
|
+
lastError = undefined;
|
|
552
|
+
break;
|
|
553
|
+
}
|
|
554
|
+
catch (err) {
|
|
555
|
+
lastError = err;
|
|
556
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
557
|
+
if (isStaleContainerState(msg)) {
|
|
558
|
+
await scrubStaleContainerState(config.name, config.network);
|
|
559
|
+
continue;
|
|
560
|
+
}
|
|
561
|
+
if (isPortNotYetReleased(msg)) {
|
|
562
|
+
// The failed run leaves the container in `Created` holding the name,
|
|
563
|
+
// so the next attempt would hit the name conflict instead of the
|
|
564
|
+
// port. Remove it, then wait for the bind to go.
|
|
565
|
+
await removeContainer(config.name).catch(() => undefined);
|
|
566
|
+
await new Promise((resolve) => setTimeout(resolve, attempt * 1_000));
|
|
567
|
+
continue;
|
|
568
|
+
}
|
|
569
|
+
throw err;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
if (lastError || stdout === undefined) {
|
|
573
|
+
const message = lastError instanceof Error ? lastError.message : String(lastError ?? '');
|
|
574
|
+
if (isPortNotYetReleased(message)) {
|
|
575
|
+
// Waiting did not help, so something is holding the port rather than
|
|
576
|
+
// letting go of it. Name it: the docker error names the port and
|
|
577
|
+
// withholds the one thing an operator can act on.
|
|
578
|
+
throw new Error(await describeBindFailure(config, message));
|
|
579
|
+
}
|
|
580
|
+
throw lastError ?? new Error(`docker run produced no container id for ${config.name}`);
|
|
581
|
+
}
|
|
582
|
+
// Post-create guard: a container can report "running" yet have its declared
|
|
583
|
+
// host ports UNpublished when it silently reused an orphaned endpoint
|
|
584
|
+
// (PortBindings present but never wired by dockerd) — the exact failure that
|
|
585
|
+
// took Redis offline and cascaded to a login outage. Detect the mismatch and
|
|
586
|
+
// rebuild once from clean state so a successful return always means the
|
|
587
|
+
// declared ports are actually reachable.
|
|
588
|
+
if (config.ports.length > 0 && !(await arePortsPublished(config.name, config.ports))) {
|
|
589
|
+
await scrubStaleContainerState(config.name, config.network);
|
|
590
|
+
({ stdout } = await runDocker());
|
|
591
|
+
}
|
|
217
592
|
const output = (stdout ?? '').trim();
|
|
218
593
|
// Return container ID from docker run output (first line is container ID)
|
|
219
594
|
return (output || config.name).slice(0, 12);
|
|
220
595
|
}
|
|
596
|
+
/**
|
|
597
|
+
* Clear stale Docker state that blocks (re)creating a managed container: a
|
|
598
|
+
* leftover container holding the name, and an orphaned libnetwork endpoint
|
|
599
|
+
* holding the name on the managed network. Best-effort — every step may
|
|
600
|
+
* legitimately find nothing to remove.
|
|
601
|
+
*/
|
|
602
|
+
async function scrubStaleContainerState(name, network) {
|
|
603
|
+
const { execFile } = await import('node:child_process');
|
|
604
|
+
const { promisify } = await import('node:util');
|
|
605
|
+
const execFileAsync = promisify(execFile);
|
|
606
|
+
try {
|
|
607
|
+
await execFileAsync('docker', ['rm', '-f', name], { encoding: 'utf-8', timeout: 15_000 });
|
|
608
|
+
}
|
|
609
|
+
catch {
|
|
610
|
+
// No leftover container.
|
|
611
|
+
}
|
|
612
|
+
if (network) {
|
|
613
|
+
try {
|
|
614
|
+
await execFileAsync('docker', ['network', 'disconnect', '-f', network, name], {
|
|
615
|
+
encoding: 'utf-8',
|
|
616
|
+
timeout: 15_000,
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
catch {
|
|
620
|
+
// No orphaned endpoint for this name.
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* True if every declared host port shows up in `docker port <name>` (i.e.
|
|
626
|
+
* dockerd actually published it). Returns true when the check itself fails,
|
|
627
|
+
* so a transient docker hiccup never triggers a needless rebuild of a
|
|
628
|
+
* container that is in fact fine.
|
|
629
|
+
*/
|
|
630
|
+
async function arePortsPublished(name, ports) {
|
|
631
|
+
const { execFile } = await import('node:child_process');
|
|
632
|
+
const { promisify } = await import('node:util');
|
|
633
|
+
const execFileAsync = promisify(execFile);
|
|
634
|
+
try {
|
|
635
|
+
// `docker port` prints one line per published port, e.g.
|
|
636
|
+
// "6379/tcp -> 0.0.0.0:6379"; an unpublished container prints nothing.
|
|
637
|
+
const { stdout } = await execFileAsync('docker', ['port', name], { encoding: 'utf-8', timeout: 10_000 });
|
|
638
|
+
const mapped = stdout ?? '';
|
|
639
|
+
return ports.every((p) => mapped.includes(`:${p.host}`));
|
|
640
|
+
}
|
|
641
|
+
catch {
|
|
642
|
+
return true;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
221
645
|
/**
|
|
222
646
|
* Start an existing stopped container.
|
|
223
647
|
*/
|
|
@@ -248,6 +672,21 @@ export async function removeContainer(nameOrId) {
|
|
|
248
672
|
* Pull an image if not present locally.
|
|
249
673
|
*/
|
|
250
674
|
export async function ensureImage(image) {
|
|
675
|
+
// A local content ID is not a registry reference. Never turn it into a
|
|
676
|
+
// pull of a repository named "sha256", or accept a missing local object.
|
|
677
|
+
if (image.startsWith('sha256:')) {
|
|
678
|
+
if (!/^sha256:[a-f0-9]{64}$/.test(image))
|
|
679
|
+
throw new Error('Invalid local image ID');
|
|
680
|
+
const { execFile } = await import('node:child_process');
|
|
681
|
+
const { promisify } = await import('node:util');
|
|
682
|
+
const { stdout } = await promisify(execFile)('docker', ['image', 'inspect', image, '--format', '{{.Id}}'], {
|
|
683
|
+
timeout: 15_000,
|
|
684
|
+
maxBuffer: 4096,
|
|
685
|
+
});
|
|
686
|
+
if (stdout.trim() !== image)
|
|
687
|
+
throw new Error('Local image identity mismatch');
|
|
688
|
+
return;
|
|
689
|
+
}
|
|
251
690
|
const adapter = await getAdapter();
|
|
252
691
|
try {
|
|
253
692
|
// Check if image exists locally via listImages
|
|
@@ -290,30 +729,35 @@ export async function waitForHealthy(name, timeoutMs = 60_000) {
|
|
|
290
729
|
return false;
|
|
291
730
|
}
|
|
292
731
|
}
|
|
293
|
-
/**
|
|
294
|
-
* Create a Docker bridge network if it doesn't exist.
|
|
295
|
-
*
|
|
296
|
-
* Idempotent — `docker network create` exits non-zero with a recognisable
|
|
297
|
-
* "already exists" message when the network is present; we swallow that
|
|
298
|
-
* specific case and propagate everything else. Done via execFile rather
|
|
299
|
-
* than the adapter because the adapter doesn't expose network APIs and
|
|
300
|
-
* the call is rare (once per daemon startup per network).
|
|
301
|
-
*/
|
|
732
|
+
/** Reuse existing Docker networks; create only an explicitly absent named bridge. */
|
|
302
733
|
export async function ensureNetwork(name) {
|
|
734
|
+
// Sharing another container's namespace is a runtime mode, not a network object.
|
|
735
|
+
if (name.startsWith('container:') && name.length > 'container:'.length)
|
|
736
|
+
return;
|
|
303
737
|
const { execFile } = await import('node:child_process');
|
|
304
738
|
const { promisify } = await import('node:util');
|
|
305
|
-
const
|
|
739
|
+
const run = promisify(execFile);
|
|
740
|
+
const options = { encoding: 'utf-8', timeout: 15_000 };
|
|
741
|
+
const inspect = () => run('docker', ['network', 'inspect', name], options);
|
|
306
742
|
try {
|
|
307
|
-
await
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
});
|
|
743
|
+
await inspect();
|
|
744
|
+
// In particular, host/none/bridge are Docker-owned and must never be created.
|
|
745
|
+
return;
|
|
311
746
|
}
|
|
312
|
-
catch (
|
|
313
|
-
const
|
|
314
|
-
if (
|
|
315
|
-
|
|
316
|
-
|
|
747
|
+
catch (error) {
|
|
748
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
749
|
+
if (!/no such network|network .+ not found/i.test(message))
|
|
750
|
+
throw error;
|
|
751
|
+
}
|
|
752
|
+
try {
|
|
753
|
+
await run('docker', ['network', 'create', name, '--driver', 'bridge'], options);
|
|
754
|
+
}
|
|
755
|
+
catch (error) {
|
|
756
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
757
|
+
if (!/already exists/i.test(message))
|
|
758
|
+
throw error;
|
|
759
|
+
// A concurrent creator won. Verify its result rather than trusting error prose.
|
|
760
|
+
await inspect();
|
|
317
761
|
}
|
|
318
762
|
}
|
|
319
763
|
/**
|
|
@@ -328,6 +772,38 @@ export async function createVolume(name) {
|
|
|
328
772
|
// Volume may already exist
|
|
329
773
|
}
|
|
330
774
|
}
|
|
775
|
+
/**
|
|
776
|
+
* Does a Docker volume exist?
|
|
777
|
+
*
|
|
778
|
+
* The question behind this one is "does this service already hold state
|
|
779
|
+
* initialised with some other password" — a Postgres data directory keeps
|
|
780
|
+
* the password it was created with and ignores `POSTGRES_PASSWORD`
|
|
781
|
+
* thereafter, so a volume is the difference between a first provision and
|
|
782
|
+
* one that would lock an application out of its own database.
|
|
783
|
+
*
|
|
784
|
+
* `docker volume inspect` rather than listing and filtering: the answer is
|
|
785
|
+
* about one name, and a list is a different question that happens to
|
|
786
|
+
* contain it.
|
|
787
|
+
*/
|
|
788
|
+
export async function volumeExists(name) {
|
|
789
|
+
const { execFile } = await import('node:child_process');
|
|
790
|
+
const { promisify } = await import('node:util');
|
|
791
|
+
try {
|
|
792
|
+
await promisify(execFile)('docker', ['volume', 'inspect', name], { timeout: 15_000 });
|
|
793
|
+
return true;
|
|
794
|
+
}
|
|
795
|
+
catch (err) {
|
|
796
|
+
// "No such volume" is an answer. Anything else — docker unreachable, a
|
|
797
|
+
// timeout, a permission error — is NOT, and the two must not be
|
|
798
|
+
// collapsed: the caller generates a credential when this says false, and
|
|
799
|
+
// generating one for a volume that does exist locks an application out
|
|
800
|
+
// of its own database. So only the message that means absence answers
|
|
801
|
+
// absence; everything else answers "assume there is state", which
|
|
802
|
+
// leaves a service on a default loudly rather than breaking it quietly.
|
|
803
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
804
|
+
return !/no such volume/i.test(message);
|
|
805
|
+
}
|
|
806
|
+
}
|
|
331
807
|
/**
|
|
332
808
|
* Get container logs.
|
|
333
809
|
*/
|
|
@@ -347,6 +823,35 @@ export async function disposeEngine() {
|
|
|
347
823
|
// =============================================================================
|
|
348
824
|
// Helpers
|
|
349
825
|
// =============================================================================
|
|
826
|
+
/**
|
|
827
|
+
* Why a container is not running, in the words Docker already has.
|
|
828
|
+
*
|
|
829
|
+
* `ContainerState.error` has been part of the type all along and nothing ever
|
|
830
|
+
* filled it, while `docker inspect` carries both the exit code and a
|
|
831
|
+
* human-readable reason. So `omnitron doctor` could say "Container
|
|
832
|
+
* omnitron-nginx is created" and no more, when the answer was sitting one
|
|
833
|
+
* field away: "Bind for 0.0.0.0:9800 failed: port is already allocated".
|
|
834
|
+
*
|
|
835
|
+
* A container that is running, or that exited cleanly because it was asked
|
|
836
|
+
* to, has nothing to report — returning something there would turn a normal
|
|
837
|
+
* stop into a finding.
|
|
838
|
+
*/
|
|
839
|
+
function describeContainerFailure(state) {
|
|
840
|
+
if (!state)
|
|
841
|
+
return undefined;
|
|
842
|
+
if (state.Status?.toLowerCase() === 'running')
|
|
843
|
+
return undefined;
|
|
844
|
+
const parts = [];
|
|
845
|
+
if (state.Error)
|
|
846
|
+
parts.push(state.Error);
|
|
847
|
+
if (state.OOMKilled)
|
|
848
|
+
parts.push('killed by the OOM killer');
|
|
849
|
+
// Exit 0 is a clean stop; only a non-zero code is worth carrying.
|
|
850
|
+
if (typeof state.ExitCode === 'number' && state.ExitCode !== 0) {
|
|
851
|
+
parts.push(`exit code ${state.ExitCode}`);
|
|
852
|
+
}
|
|
853
|
+
return parts.length > 0 ? parts.join(' — ') : undefined;
|
|
854
|
+
}
|
|
350
855
|
function mapInspectStatus(status) {
|
|
351
856
|
if (!status)
|
|
352
857
|
return 'not_found';
|
|
@@ -376,4 +881,12 @@ function mapInspectHealth(health) {
|
|
|
376
881
|
return 'starting';
|
|
377
882
|
return 'none';
|
|
378
883
|
}
|
|
884
|
+
/**
|
|
885
|
+
* Exported for tests only.
|
|
886
|
+
*
|
|
887
|
+
* `describeContainerFailure` is a pure function over an inspect payload, and
|
|
888
|
+
* the payloads worth testing are the ones a live Docker will not produce on
|
|
889
|
+
* demand — a refused port bind, an OOM kill.
|
|
890
|
+
*/
|
|
891
|
+
export const __test__ = { describeContainerFailure, portArg };
|
|
379
892
|
//# sourceMappingURL=container-runtime.js.map
|