@omnitron-dev/omnitron 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BUILD.json +5 -0
- package/dist/cli/omnitron.js +378 -25
- 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 -24
- 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 +18 -5
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +3 -2
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/fleet-asking.d.ts +87 -0
- package/dist/commands/fleet-asking.d.ts.map +1 -0
- package/dist/commands/fleet-asking.js +176 -0
- package/dist/commands/fleet-asking.js.map +1 -0
- package/dist/commands/fleet.d.ts +18 -0
- package/dist/commands/fleet.d.ts.map +1 -1
- package/dist/commands/fleet.js +314 -74
- package/dist/commands/fleet.js.map +1 -1
- package/dist/commands/health-check.d.ts +8 -6
- package/dist/commands/health-check.d.ts.map +1 -1
- package/dist/commands/health-check.js +26 -23
- package/dist/commands/health-check.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +26 -4
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/infra.d.ts +42 -1
- package/dist/commands/infra.d.ts.map +1 -1
- package/dist/commands/infra.js +418 -49
- package/dist/commands/infra.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +21 -36
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/inspect-graph.d.ts +20 -0
- package/dist/commands/inspect-graph.d.ts.map +1 -0
- package/dist/commands/inspect-graph.js +74 -0
- package/dist/commands/inspect-graph.js.map +1 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +115 -11
- 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 +25 -3
- 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 +532 -192
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +40 -14
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/monit.d.ts.map +1 -1
- package/dist/commands/monit.js +12 -2
- package/dist/commands/monit.js.map +1 -1
- package/dist/commands/node.d.ts +68 -0
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +285 -68
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/output.d.ts +45 -0
- package/dist/commands/output.d.ts.map +1 -0
- package/dist/commands/output.js +103 -0
- package/dist/commands/output.js.map +1 -0
- package/dist/commands/pipeline.d.ts.map +1 -1
- package/dist/commands/pipeline.js +26 -19
- package/dist/commands/pipeline.js.map +1 -1
- package/dist/commands/project.d.ts +19 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +125 -27
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/release-store.d.ts +28 -0
- package/dist/commands/release-store.d.ts.map +1 -0
- package/dist/commands/release-store.js +158 -0
- package/dist/commands/release-store.js.map +1 -0
- package/dist/commands/release.d.ts +61 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +555 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/reload.d.ts +16 -0
- package/dist/commands/reload.d.ts.map +1 -1
- package/dist/commands/reload.js +21 -5
- package/dist/commands/reload.js.map +1 -1
- package/dist/commands/remote.d.ts +40 -0
- package/dist/commands/remote.d.ts.map +1 -1
- package/dist/commands/remote.js +146 -35
- package/dist/commands/remote.js.map +1 -1
- package/dist/commands/restart.d.ts +16 -0
- package/dist/commands/restart.d.ts.map +1 -1
- package/dist/commands/restart.js +21 -5
- package/dist/commands/restart.js.map +1 -1
- package/dist/commands/scale.d.ts.map +1 -1
- package/dist/commands/scale.js +4 -3
- package/dist/commands/scale.js.map +1 -1
- package/dist/commands/secret.d.ts +54 -0
- package/dist/commands/secret.d.ts.map +1 -1
- package/dist/commands/secret.js +236 -34
- package/dist/commands/secret.js.map +1 -1
- package/dist/commands/service-units.d.ts +181 -0
- package/dist/commands/service-units.d.ts.map +1 -0
- package/dist/commands/service-units.js +291 -0
- package/dist/commands/service-units.js.map +1 -0
- package/dist/commands/service.d.ts +39 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +370 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/spinner.d.ts +29 -0
- package/dist/commands/spinner.d.ts.map +1 -0
- package/dist/commands/spinner.js +44 -0
- package/dist/commands/spinner.js.map +1 -0
- package/dist/commands/stack.d.ts +49 -1
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +341 -13
- 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 +62 -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 +20 -0
- package/dist/commands/tor.d.ts.map +1 -0
- package/dist/commands/tor.js +180 -0
- package/dist/commands/tor.js.map +1 -0
- package/dist/commands/up.d.ts +85 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +181 -33
- 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 +93 -11
- 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 +425 -42
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/config-reload.d.ts +27 -0
- package/dist/daemon/config-reload.d.ts.map +1 -0
- package/dist/daemon/config-reload.js +42 -0
- package/dist/daemon/config-reload.js.map +1 -0
- package/dist/daemon/daemon-client.d.ts +150 -2
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +311 -21
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon-entry.js +92 -38
- 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 +207 -1
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +1254 -143
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.module.d.ts.map +1 -1
- package/dist/daemon/daemon.module.js +186 -79
- package/dist/daemon/daemon.module.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +109 -1
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +451 -95
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/pid-manager.d.ts +69 -5
- package/dist/daemon/pid-manager.d.ts.map +1 -1
- package/dist/daemon/pid-manager.js +151 -17
- 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 +103 -19
- package/dist/daemon/state-store.js.map +1 -1
- package/dist/database/connection.d.ts +71 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +129 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/dialect.d.ts +60 -0
- package/dist/database/dialect.d.ts.map +1 -0
- package/dist/database/dialect.js +80 -0
- package/dist/database/dialect.js.map +1 -0
- package/dist/database/migrate.d.ts +5 -2
- package/dist/database/migrate.d.ts.map +1 -1
- package/dist/database/migrate.js +23 -33
- package/dist/database/migrate.js.map +1 -1
- package/dist/database/migration-runner.d.ts +50 -0
- package/dist/database/migration-runner.d.ts.map +1 -0
- package/dist/database/migration-runner.js +143 -0
- package/dist/database/migration-runner.js.map +1 -0
- package/dist/database/migrations/006_login_throttle.d.ts +17 -0
- package/dist/database/migrations/006_login_throttle.d.ts.map +1 -0
- package/dist/database/migrations/006_login_throttle.js +33 -0
- package/dist/database/migrations/006_login_throttle.js.map +1 -0
- package/dist/database/migrations/007_sync_ingested.d.ts +21 -0
- package/dist/database/migrations/007_sync_ingested.d.ts.map +1 -0
- package/dist/database/migrations/007_sync_ingested.js +39 -0
- package/dist/database/migrations/007_sync_ingested.js.map +1 -0
- package/dist/database/migrations/008_node_health_version_text.d.ts +24 -0
- package/dist/database/migrations/008_node_health_version_text.d.ts.map +1 -0
- package/dist/database/migrations/008_node_health_version_text.js +35 -0
- package/dist/database/migrations/008_node_health_version_text.js.map +1 -0
- package/dist/database/migrations/009_node_health_unmeasured.d.ts +40 -0
- package/dist/database/migrations/009_node_health_unmeasured.d.ts.map +1 -0
- package/dist/database/migrations/009_node_health_unmeasured.js +63 -0
- package/dist/database/migrations/009_node_health_unmeasured.js.map +1 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.d.ts +22 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.d.ts.map +1 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.js +26 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.js.map +1 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.d.ts +56 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.d.ts.map +1 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.js +79 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.js.map +1 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.d.ts +26 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.d.ts.map +1 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.js +40 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.js.map +1 -0
- package/dist/database/migrations/013_an_alarm_delivered.d.ts +14 -0
- package/dist/database/migrations/013_an_alarm_delivered.d.ts.map +1 -0
- package/dist/database/migrations/013_an_alarm_delivered.js +28 -0
- package/dist/database/migrations/013_an_alarm_delivered.js.map +1 -0
- package/dist/database/migrations/index.d.ts +21 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/migrations/index.js +47 -0
- package/dist/database/migrations/index.js.map +1 -0
- package/dist/database/schema.d.ts +27 -11
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/sqlite-date-binding.d.ts +71 -0
- package/dist/database/sqlite-date-binding.d.ts.map +1 -0
- package/dist/database/sqlite-date-binding.js +174 -0
- package/dist/database/sqlite-date-binding.js.map +1 -0
- package/dist/execution/data-channel.d.ts +48 -0
- package/dist/execution/data-channel.d.ts.map +1 -0
- package/dist/execution/data-channel.js +55 -0
- package/dist/execution/data-channel.js.map +1 -0
- package/dist/execution/execution.service.d.ts +139 -0
- package/dist/execution/execution.service.d.ts.map +1 -1
- package/dist/execution/execution.service.js +273 -10
- package/dist/execution/execution.service.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/infrastructure/bare-metal-plan.d.ts +208 -0
- package/dist/infrastructure/bare-metal-plan.d.ts.map +1 -0
- package/dist/infrastructure/bare-metal-plan.js +363 -0
- package/dist/infrastructure/bare-metal-plan.js.map +1 -0
- package/dist/infrastructure/bare-metal-runner.d.ts +65 -0
- package/dist/infrastructure/bare-metal-runner.d.ts.map +1 -0
- package/dist/infrastructure/bare-metal-runner.js +354 -0
- package/dist/infrastructure/bare-metal-runner.js.map +1 -0
- package/dist/infrastructure/config-payload.d.ts +149 -0
- package/dist/infrastructure/config-payload.d.ts.map +1 -0
- package/dist/infrastructure/config-payload.js +235 -0
- package/dist/infrastructure/config-payload.js.map +1 -0
- package/dist/infrastructure/container-runtime.d.ts +179 -1
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +612 -45
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/gateway-reachability.d.ts +85 -0
- package/dist/infrastructure/gateway-reachability.d.ts.map +1 -0
- package/dist/infrastructure/gateway-reachability.js +116 -0
- package/dist/infrastructure/gateway-reachability.js.map +1 -0
- package/dist/infrastructure/gateway-redis-db.d.ts +29 -0
- package/dist/infrastructure/gateway-redis-db.d.ts.map +1 -0
- package/dist/infrastructure/gateway-redis-db.js +32 -0
- package/dist/infrastructure/gateway-redis-db.js.map +1 -0
- package/dist/infrastructure/host-inspection.d.ts +223 -0
- package/dist/infrastructure/host-inspection.d.ts.map +1 -0
- package/dist/infrastructure/host-inspection.js +501 -0
- package/dist/infrastructure/host-inspection.js.map +1 -0
- package/dist/infrastructure/infrastructure-gate.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.d.ts +247 -6
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +571 -96
- 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 +92 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -0
- package/dist/infrastructure/phantom-endpoint-janitor.js +199 -0
- package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -0
- 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/index.d.ts.map +1 -1
- package/dist/infrastructure/presets/index.js +2 -0
- package/dist/infrastructure/presets/index.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 +78 -5
- 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 +23 -4
- 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 +85 -4
- package/dist/infrastructure/presets/registry.js.map +1 -1
- package/dist/infrastructure/presets/tor.d.ts +112 -0
- package/dist/infrastructure/presets/tor.d.ts.map +1 -0
- package/dist/infrastructure/presets/tor.js +185 -0
- package/dist/infrastructure/presets/tor.js.map +1 -0
- 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 +191 -12
- package/dist/infrastructure/service-resolver.d.ts.map +1 -1
- package/dist/infrastructure/service-resolver.js +521 -60
- 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 +7 -1
- package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
- package/dist/infrastructure/stack-infra-manager.js +32 -14
- package/dist/infrastructure/stack-infra-manager.js.map +1 -1
- package/dist/infrastructure/types.d.ts +278 -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/index.d.ts +4 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +3 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics-bridge.d.ts +87 -0
- package/dist/observability/metrics-bridge.d.ts.map +1 -0
- package/dist/observability/metrics-bridge.js +295 -0
- package/dist/observability/metrics-bridge.js.map +1 -0
- package/dist/observability/metrics-server.d.ts +68 -0
- package/dist/observability/metrics-server.d.ts.map +1 -0
- package/dist/observability/metrics-server.js +146 -0
- package/dist/observability/metrics-server.js.map +1 -0
- package/dist/orchestrator/app-handle.d.ts +170 -3
- package/dist/orchestrator/app-handle.d.ts.map +1 -1
- package/dist/orchestrator/app-handle.js +177 -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 +148 -4
- package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-process.js +496 -18
- package/dist/orchestrator/bootstrap-process.js.map +1 -1
- package/dist/orchestrator/build-service.d.ts +50 -3
- package/dist/orchestrator/build-service.d.ts.map +1 -1
- package/dist/orchestrator/build-service.js +357 -85
- package/dist/orchestrator/build-service.js.map +1 -1
- package/dist/orchestrator/call-exposed-service.d.ts +7 -0
- package/dist/orchestrator/call-exposed-service.d.ts.map +1 -0
- package/dist/orchestrator/call-exposed-service.js +50 -0
- package/dist/orchestrator/call-exposed-service.js.map +1 -0
- package/dist/orchestrator/classic-launcher.d.ts +1 -0
- package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
- package/dist/orchestrator/classic-launcher.js +34 -3
- package/dist/orchestrator/classic-launcher.js.map +1 -1
- package/dist/orchestrator/file-watcher.d.ts +78 -1
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +240 -43
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/module-worker-process.d.ts.map +1 -1
- package/dist/orchestrator/module-worker-process.js +10 -0
- package/dist/orchestrator/module-worker-process.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +540 -7
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +2106 -242
- 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 +227 -0
- package/dist/orchestrator/process-janitor.d.ts.map +1 -0
- package/dist/orchestrator/process-janitor.js +495 -0
- package/dist/orchestrator/process-janitor.js.map +1 -0
- 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 +158 -78
- package/dist/project/config-resolver.js.map +1 -1
- package/dist/project/declared-config.d.ts +42 -0
- package/dist/project/declared-config.d.ts.map +1 -0
- package/dist/project/declared-config.js +60 -0
- package/dist/project/declared-config.js.map +1 -0
- package/dist/project/dependency-analyzer.d.ts.map +1 -1
- package/dist/project/dependency-analyzer.js.map +1 -1
- package/dist/project/deploy-phases.d.ts +35 -0
- package/dist/project/deploy-phases.d.ts.map +1 -0
- package/dist/project/deploy-phases.js +75 -0
- package/dist/project/deploy-phases.js.map +1 -0
- package/dist/project/exec-in-group.d.ts +49 -0
- package/dist/project/exec-in-group.d.ts.map +1 -0
- package/dist/project/exec-in-group.js +100 -0
- package/dist/project/exec-in-group.js.map +1 -0
- package/dist/project/node-app-config.d.ts +101 -0
- package/dist/project/node-app-config.d.ts.map +1 -0
- package/dist/project/node-app-config.js +134 -0
- package/dist/project/node-app-config.js.map +1 -0
- package/dist/project/node-app-health.d.ts +76 -0
- package/dist/project/node-app-health.d.ts.map +1 -0
- package/dist/project/node-app-health.js +119 -0
- package/dist/project/node-app-health.js.map +1 -0
- package/dist/project/operator-account.d.ts +287 -0
- package/dist/project/operator-account.d.ts.map +1 -0
- package/dist/project/operator-account.js +373 -0
- package/dist/project/operator-account.js.map +1 -0
- package/dist/project/registry.d.ts +46 -8
- package/dist/project/registry.d.ts.map +1 -1
- package/dist/project/registry.js +238 -40
- package/dist/project/registry.js.map +1 -1
- package/dist/project/requirements-scanner.d.ts +1 -0
- package/dist/project/requirements-scanner.d.ts.map +1 -1
- package/dist/project/requirements-scanner.js +28 -3
- package/dist/project/requirements-scanner.js.map +1 -1
- package/dist/project/stack-env.d.ts +37 -0
- package/dist/project/stack-env.d.ts.map +1 -0
- package/dist/project/stack-env.js +85 -0
- package/dist/project/stack-env.js.map +1 -0
- package/dist/project/stand-containers.d.ts +4 -0
- package/dist/project/stand-containers.d.ts.map +1 -0
- package/dist/project/stand-containers.js +27 -0
- package/dist/project/stand-containers.js.map +1 -0
- package/dist/project/working-tree.d.ts +62 -0
- package/dist/project/working-tree.d.ts.map +1 -0
- package/dist/project/working-tree.js +101 -0
- package/dist/project/working-tree.js.map +1 -0
- package/dist/release/artifact-store.d.ts +360 -0
- package/dist/release/artifact-store.d.ts.map +1 -0
- package/dist/release/artifact-store.js +1040 -0
- package/dist/release/artifact-store.js.map +1 -0
- package/dist/release/attest-on-node.d.ts +92 -0
- package/dist/release/attest-on-node.d.ts.map +1 -0
- package/dist/release/attest-on-node.js +207 -0
- package/dist/release/attest-on-node.js.map +1 -0
- package/dist/release/attest.d.ts +135 -0
- package/dist/release/attest.d.ts.map +1 -0
- package/dist/release/attest.js +199 -0
- package/dist/release/attest.js.map +1 -0
- package/dist/release/build-run.d.ts +151 -0
- package/dist/release/build-run.d.ts.map +1 -0
- package/dist/release/build-run.js +609 -0
- package/dist/release/build-run.js.map +1 -0
- package/dist/release/builder.d.ts +57 -0
- package/dist/release/builder.d.ts.map +1 -0
- package/dist/release/builder.js +120 -0
- package/dist/release/builder.js.map +1 -0
- package/dist/release/daemon-omni.d.ts +41 -0
- package/dist/release/daemon-omni.d.ts.map +1 -0
- package/dist/release/daemon-omni.js +59 -0
- package/dist/release/daemon-omni.js.map +1 -0
- package/dist/release/definition-inputs.d.ts +34 -0
- package/dist/release/definition-inputs.d.ts.map +1 -0
- package/dist/release/definition-inputs.js +90 -0
- package/dist/release/definition-inputs.js.map +1 -0
- package/dist/release/delivered.d.ts +53 -0
- package/dist/release/delivered.d.ts.map +1 -0
- package/dist/release/delivered.js +81 -0
- package/dist/release/delivered.js.map +1 -0
- package/dist/release/layout.d.ts +61 -0
- package/dist/release/layout.d.ts.map +1 -0
- package/dist/release/layout.js +114 -0
- package/dist/release/layout.js.map +1 -0
- package/dist/release/load.d.ts +44 -0
- package/dist/release/load.d.ts.map +1 -0
- package/dist/release/load.js +84 -0
- package/dist/release/load.js.map +1 -0
- package/dist/release/manifest.d.ts +299 -0
- package/dist/release/manifest.d.ts.map +1 -0
- package/dist/release/manifest.js +176 -0
- package/dist/release/manifest.js.map +1 -0
- package/dist/release/migrations.d.ts +32 -0
- package/dist/release/migrations.d.ts.map +1 -0
- package/dist/release/migrations.js +51 -0
- package/dist/release/migrations.js.map +1 -0
- package/dist/release/publish.d.ts +71 -0
- package/dist/release/publish.d.ts.map +1 -0
- package/dist/release/publish.js +102 -0
- package/dist/release/publish.js.map +1 -0
- package/dist/release/store.d.ts +174 -0
- package/dist/release/store.d.ts.map +1 -0
- package/dist/release/store.js +257 -0
- package/dist/release/store.js.map +1 -0
- package/dist/services/alert.rpc-service.d.ts +11 -15
- package/dist/services/alert.rpc-service.d.ts.map +1 -1
- package/dist/services/alert.rpc-service.js +29 -14
- package/dist/services/alert.rpc-service.js.map +1 -1
- package/dist/services/alert.service.d.ts +96 -59
- package/dist/services/alert.service.d.ts.map +1 -1
- package/dist/services/alert.service.js +455 -70
- package/dist/services/alert.service.js.map +1 -1
- package/dist/services/anonymous-input.d.ts +26 -0
- package/dist/services/anonymous-input.d.ts.map +1 -0
- package/dist/services/anonymous-input.js +44 -0
- package/dist/services/anonymous-input.js.map +1 -0
- package/dist/services/audit.rpc-service.d.ts +27 -0
- package/dist/services/audit.rpc-service.d.ts.map +1 -0
- package/dist/services/audit.rpc-service.js +57 -0
- package/dist/services/audit.rpc-service.js.map +1 -0
- package/dist/services/audit.service.d.ts +165 -0
- package/dist/services/audit.service.d.ts.map +1 -0
- package/dist/services/audit.service.js +242 -0
- package/dist/services/audit.service.js.map +1 -0
- package/dist/services/auth-context.d.ts +21 -1
- package/dist/services/auth-context.d.ts.map +1 -1
- package/dist/services/auth-context.js +51 -5
- package/dist/services/auth-context.js.map +1 -1
- package/dist/services/auth.rpc-service.d.ts +0 -1
- package/dist/services/auth.rpc-service.d.ts.map +1 -1
- package/dist/services/auth.rpc-service.js +23 -9
- package/dist/services/auth.rpc-service.js.map +1 -1
- package/dist/services/auth.service.d.ts +47 -33
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +163 -24
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/backup-pipeline.d.ts +97 -0
- package/dist/services/backup-pipeline.d.ts.map +1 -0
- package/dist/services/backup-pipeline.js +286 -0
- package/dist/services/backup-pipeline.js.map +1 -0
- package/dist/services/backup-schedule.d.ts +69 -0
- package/dist/services/backup-schedule.d.ts.map +1 -0
- package/dist/services/backup-schedule.js +132 -0
- package/dist/services/backup-schedule.js.map +1 -0
- package/dist/services/backup.rpc-service.d.ts +31 -2
- package/dist/services/backup.rpc-service.d.ts.map +1 -1
- package/dist/services/backup.rpc-service.js +53 -0
- package/dist/services/backup.rpc-service.js.map +1 -1
- package/dist/services/backup.service.d.ts +458 -14
- package/dist/services/backup.service.d.ts.map +1 -1
- package/dist/services/backup.service.js +1368 -170
- package/dist/services/backup.service.js.map +1 -1
- package/dist/services/bundle-build-worker.d.ts +19 -0
- package/dist/services/bundle-build-worker.d.ts.map +1 -0
- package/dist/services/bundle-build-worker.js +40 -0
- package/dist/services/bundle-build-worker.js.map +1 -0
- package/dist/services/bundle-builder.d.ts +487 -0
- package/dist/services/bundle-builder.d.ts.map +1 -0
- package/dist/services/bundle-builder.js +1083 -0
- package/dist/services/bundle-builder.js.map +1 -0
- package/dist/services/bundle-worker-protocol.d.ts +19 -0
- package/dist/services/bundle-worker-protocol.d.ts.map +1 -0
- package/dist/services/bundle-worker-protocol.js +32 -0
- package/dist/services/bundle-worker-protocol.js.map +1 -0
- package/dist/services/deploy.rpc-service.d.ts +4 -1
- package/dist/services/deploy.rpc-service.d.ts.map +1 -1
- package/dist/services/deploy.rpc-service.js +10 -0
- package/dist/services/deploy.rpc-service.js.map +1 -1
- package/dist/services/deploy.service.d.ts +14 -24
- package/dist/services/deploy.service.d.ts.map +1 -1
- package/dist/services/deploy.service.js +46 -5
- package/dist/services/deploy.service.js.map +1 -1
- package/dist/services/discovery.rpc-service.d.ts +2 -1
- package/dist/services/discovery.rpc-service.d.ts.map +1 -1
- package/dist/services/discovery.rpc-service.js.map +1 -1
- package/dist/services/discovery.service.d.ts +32 -28
- package/dist/services/discovery.service.d.ts.map +1 -1
- package/dist/services/discovery.service.js +108 -133
- package/dist/services/discovery.service.js.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.d.ts +36 -23
- package/dist/services/event-broadcaster.rpc-service.d.ts.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.js +70 -32
- package/dist/services/event-broadcaster.rpc-service.js.map +1 -1
- package/dist/services/event-broadcaster.service.d.ts.map +1 -1
- package/dist/services/event-broadcaster.service.js.map +1 -1
- package/dist/services/fleet.rpc-service.d.ts +2 -1
- package/dist/services/fleet.rpc-service.d.ts.map +1 -1
- package/dist/services/fleet.rpc-service.js +3 -1
- package/dist/services/fleet.rpc-service.js.map +1 -1
- package/dist/services/fleet.service.d.ts +32 -34
- package/dist/services/fleet.service.d.ts.map +1 -1
- package/dist/services/fleet.service.js +66 -10
- package/dist/services/fleet.service.js.map +1 -1
- package/dist/services/health-check.rpc-service.d.ts +2 -1
- package/dist/services/health-check.rpc-service.d.ts.map +1 -1
- package/dist/services/health-check.rpc-service.js.map +1 -1
- package/dist/services/health-check.service.d.ts +50 -36
- package/dist/services/health-check.service.d.ts.map +1 -1
- package/dist/services/health-check.service.js +179 -182
- package/dist/services/health-check.service.js.map +1 -1
- package/dist/services/infrastructure.rpc-service.d.ts +297 -2
- package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
- package/dist/services/infrastructure.rpc-service.js +523 -11
- package/dist/services/infrastructure.rpc-service.js.map +1 -1
- package/dist/services/kubernetes.rpc-service.d.ts +2 -1
- package/dist/services/kubernetes.rpc-service.d.ts.map +1 -1
- package/dist/services/kubernetes.rpc-service.js.map +1 -1
- package/dist/services/kubernetes.service.d.ts +5 -39
- package/dist/services/kubernetes.service.d.ts.map +1 -1
- package/dist/services/kubernetes.service.js +29 -5
- package/dist/services/kubernetes.service.js.map +1 -1
- package/dist/services/local-bundle.d.ts +151 -0
- package/dist/services/local-bundle.d.ts.map +1 -0
- package/dist/services/local-bundle.js +233 -0
- package/dist/services/local-bundle.js.map +1 -0
- package/dist/services/lockout.d.ts +28 -0
- package/dist/services/lockout.d.ts.map +1 -0
- package/dist/services/lockout.js +41 -0
- package/dist/services/lockout.js.map +1 -0
- package/dist/services/log-collector.rpc-service.d.ts +16 -0
- package/dist/services/log-collector.rpc-service.d.ts.map +1 -1
- package/dist/services/log-collector.rpc-service.js +16 -0
- package/dist/services/log-collector.rpc-service.js.map +1 -1
- package/dist/services/log-collector.service.d.ts +172 -54
- package/dist/services/log-collector.service.d.ts.map +1 -1
- package/dist/services/log-collector.service.js +492 -102
- package/dist/services/log-collector.service.js.map +1 -1
- package/dist/services/log-retention.d.ts +50 -0
- package/dist/services/log-retention.d.ts.map +1 -0
- package/dist/services/log-retention.js +52 -0
- package/dist/services/log-retention.js.map +1 -0
- package/dist/services/maintenance-lock.d.ts +162 -0
- package/dist/services/maintenance-lock.d.ts.map +1 -0
- package/dist/services/maintenance-lock.js +316 -0
- package/dist/services/maintenance-lock.js.map +1 -0
- package/dist/services/master-address.d.ts +107 -0
- package/dist/services/master-address.d.ts.map +1 -0
- package/dist/services/master-address.js +154 -0
- package/dist/services/master-address.js.map +1 -0
- package/dist/services/migration-output.d.ts +16 -0
- package/dist/services/migration-output.d.ts.map +1 -0
- package/dist/services/migration-output.js +22 -0
- package/dist/services/migration-output.js.map +1 -0
- package/dist/services/netron-telemetry-transport.d.ts.map +1 -1
- package/dist/services/netron-telemetry-transport.js +0 -4
- package/dist/services/netron-telemetry-transport.js.map +1 -1
- package/dist/services/node-deploy-lease.d.ts +154 -0
- package/dist/services/node-deploy-lease.d.ts.map +1 -0
- package/dist/services/node-deploy-lease.js +386 -0
- package/dist/services/node-deploy-lease.js.map +1 -0
- package/dist/services/node-health.repository.d.ts +63 -4
- package/dist/services/node-health.repository.d.ts.map +1 -1
- package/dist/services/node-health.repository.js +108 -67
- package/dist/services/node-health.repository.js.map +1 -1
- package/dist/services/node-manager.rpc-service.d.ts +355 -10
- package/dist/services/node-manager.rpc-service.d.ts.map +1 -1
- package/dist/services/node-manager.rpc-service.js +730 -34
- package/dist/services/node-manager.rpc-service.js.map +1 -1
- package/dist/services/node-manager.service.d.ts +267 -95
- package/dist/services/node-manager.service.d.ts.map +1 -1
- package/dist/services/node-manager.service.js +806 -104
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/node-upgrade.d.ts +129 -0
- package/dist/services/node-upgrade.d.ts.map +1 -0
- package/dist/services/node-upgrade.js +161 -0
- package/dist/services/node-upgrade.js.map +1 -0
- package/dist/services/node-upgrade.service.d.ts +232 -0
- package/dist/services/node-upgrade.service.d.ts.map +1 -0
- package/dist/services/node-upgrade.service.js +468 -0
- package/dist/services/node-upgrade.service.js.map +1 -0
- package/dist/services/pipeline.rpc-service.d.ts +2 -1
- package/dist/services/pipeline.rpc-service.d.ts.map +1 -1
- package/dist/services/pipeline.rpc-service.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +30 -46
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +125 -11
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +137 -5
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +258 -22
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +680 -9
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +2914 -293
- package/dist/services/project.service.js.map +1 -1
- package/dist/services/redeploy-decision.d.ts +176 -0
- package/dist/services/redeploy-decision.d.ts.map +1 -0
- package/dist/services/redeploy-decision.js +142 -0
- package/dist/services/redeploy-decision.js.map +1 -0
- package/dist/services/release.rpc-service.d.ts +159 -0
- package/dist/services/release.rpc-service.d.ts.map +1 -0
- package/dist/services/release.rpc-service.js +395 -0
- package/dist/services/release.rpc-service.js.map +1 -0
- package/dist/services/release.service.d.ts +114 -0
- package/dist/services/release.service.d.ts.map +1 -0
- package/dist/services/release.service.js +208 -0
- package/dist/services/release.service.js.map +1 -0
- package/dist/services/remote-deployer.service.d.ts +569 -8
- package/dist/services/remote-deployer.service.d.ts.map +1 -1
- package/dist/services/remote-deployer.service.js +1618 -169
- package/dist/services/remote-deployer.service.js.map +1 -1
- package/dist/services/remote-ops.service.d.ts +51 -9
- package/dist/services/remote-ops.service.d.ts.map +1 -1
- package/dist/services/remote-ops.service.js +235 -39
- package/dist/services/remote-ops.service.js.map +1 -1
- package/dist/services/remote-provisioner.d.ts +122 -0
- package/dist/services/remote-provisioner.d.ts.map +1 -0
- package/dist/services/remote-provisioner.js +258 -0
- package/dist/services/remote-provisioner.js.map +1 -0
- package/dist/services/secrets.rpc-service.d.ts +51 -2
- package/dist/services/secrets.rpc-service.d.ts.map +1 -1
- package/dist/services/secrets.rpc-service.js +81 -2
- package/dist/services/secrets.rpc-service.js.map +1 -1
- package/dist/services/secrets.service.d.ts +108 -9
- package/dist/services/secrets.service.d.ts.map +1 -1
- package/dist/services/secrets.service.js +313 -48
- package/dist/services/secrets.service.js.map +1 -1
- package/dist/services/slave-storage.service.d.ts +107 -0
- package/dist/services/slave-storage.service.d.ts.map +1 -1
- package/dist/services/slave-storage.service.js +171 -2
- package/dist/services/slave-storage.service.js.map +1 -1
- package/dist/services/static-carry-forward.d.ts +85 -0
- package/dist/services/static-carry-forward.d.ts.map +1 -0
- package/dist/services/static-carry-forward.js +159 -0
- package/dist/services/static-carry-forward.js.map +1 -0
- package/dist/services/sync-policy.d.ts +167 -0
- package/dist/services/sync-policy.d.ts.map +1 -0
- package/dist/services/sync-policy.js +161 -0
- package/dist/services/sync-policy.js.map +1 -0
- package/dist/services/sync-summary.d.ts +39 -0
- package/dist/services/sync-summary.d.ts.map +1 -0
- package/dist/services/sync-summary.js +62 -0
- package/dist/services/sync-summary.js.map +1 -0
- package/dist/services/sync.rpc-service.d.ts +19 -7
- package/dist/services/sync.rpc-service.d.ts.map +1 -1
- package/dist/services/sync.rpc-service.js +36 -5
- package/dist/services/sync.rpc-service.js.map +1 -1
- package/dist/services/sync.service.d.ts +350 -18
- package/dist/services/sync.service.d.ts.map +1 -1
- package/dist/services/sync.service.js +864 -116
- package/dist/services/sync.service.js.map +1 -1
- package/dist/services/system-info.rpc-service.d.ts +2 -1
- package/dist/services/system-info.rpc-service.d.ts.map +1 -1
- package/dist/services/system-info.rpc-service.js.map +1 -1
- package/dist/services/system-info.service.d.ts +56 -68
- package/dist/services/system-info.service.d.ts.map +1 -1
- package/dist/services/system-info.service.js +240 -127
- package/dist/services/system-info.service.js.map +1 -1
- package/dist/services/telemetry.rpc-service.d.ts.map +1 -1
- package/dist/services/telemetry.rpc-service.js +9 -3
- package/dist/services/telemetry.rpc-service.js.map +1 -1
- package/dist/services/telemetry.service.d.ts +4 -2
- package/dist/services/telemetry.service.d.ts.map +1 -1
- package/dist/services/telemetry.service.js +4 -2
- package/dist/services/telemetry.service.js.map +1 -1
- package/dist/services/trace-collector.rpc-service.d.ts +2 -1
- package/dist/services/trace-collector.rpc-service.d.ts.map +1 -1
- package/dist/services/trace-collector.rpc-service.js.map +1 -1
- package/dist/services/trace-collector.service.d.ts +2 -41
- package/dist/services/trace-collector.service.d.ts.map +1 -1
- package/dist/services/trace-collector.service.js +27 -7
- package/dist/services/trace-collector.service.js.map +1 -1
- package/dist/services/wait-for-postgres.d.ts +28 -0
- package/dist/services/wait-for-postgres.d.ts.map +1 -0
- package/dist/services/wait-for-postgres.js +77 -0
- package/dist/services/wait-for-postgres.js.map +1 -0
- package/dist/shared/alert-expression.d.ts +60 -0
- package/dist/shared/alert-expression.d.ts.map +1 -0
- package/dist/shared/alert-expression.js +124 -0
- package/dist/shared/alert-expression.js.map +1 -0
- package/dist/shared/audit-outcome.d.ts +39 -0
- package/dist/shared/audit-outcome.d.ts.map +1 -0
- package/dist/shared/audit-outcome.js +45 -0
- package/dist/shared/audit-outcome.js.map +1 -0
- package/dist/shared/build-freshness.d.ts +59 -0
- package/dist/shared/build-freshness.d.ts.map +1 -0
- package/dist/shared/build-freshness.js +113 -0
- package/dist/shared/build-freshness.js.map +1 -0
- package/dist/shared/build-stamp.d.ts +26 -0
- package/dist/shared/build-stamp.d.ts.map +1 -0
- package/dist/shared/build-stamp.js +36 -0
- package/dist/shared/build-stamp.js.map +1 -0
- package/dist/shared/describe-error.d.ts +22 -0
- package/dist/shared/describe-error.d.ts.map +1 -0
- package/dist/shared/describe-error.js +39 -0
- package/dist/shared/describe-error.js.map +1 -0
- package/dist/shared/dto/alerts.d.ts +101 -0
- package/dist/shared/dto/alerts.d.ts.map +1 -0
- package/dist/shared/dto/alerts.js +9 -0
- package/dist/shared/dto/alerts.js.map +1 -0
- package/dist/shared/dto/auth.d.ts +49 -0
- package/dist/shared/dto/auth.d.ts.map +1 -0
- package/dist/shared/dto/auth.js +14 -0
- package/dist/shared/dto/auth.js.map +1 -0
- package/dist/shared/dto/backups.d.ts +16 -0
- package/dist/shared/dto/backups.d.ts.map +1 -0
- package/dist/shared/dto/backups.js +9 -0
- package/dist/shared/dto/backups.js.map +1 -0
- package/dist/shared/dto/deploy.d.ts +28 -0
- package/dist/shared/dto/deploy.d.ts.map +1 -0
- package/dist/shared/dto/deploy.js +8 -0
- package/dist/shared/dto/deploy.js.map +1 -0
- package/dist/shared/dto/discovery.d.ts +24 -0
- package/dist/shared/dto/discovery.d.ts.map +1 -0
- package/dist/shared/dto/discovery.js +9 -0
- package/dist/shared/dto/discovery.js.map +1 -0
- package/dist/shared/dto/fleet.d.ts +35 -0
- package/dist/shared/dto/fleet.d.ts.map +1 -0
- package/dist/shared/dto/fleet.js +8 -0
- package/dist/shared/dto/fleet.js.map +1 -0
- package/dist/shared/dto/health.d.ts +26 -0
- package/dist/shared/dto/health.d.ts.map +1 -0
- package/dist/shared/dto/health.js +9 -0
- package/dist/shared/dto/health.js.map +1 -0
- package/dist/shared/dto/kubernetes.d.ts +44 -0
- package/dist/shared/dto/kubernetes.d.ts.map +1 -0
- package/dist/shared/dto/kubernetes.js +9 -0
- package/dist/shared/dto/kubernetes.js.map +1 -0
- package/dist/shared/dto/logs.d.ts +77 -0
- package/dist/shared/dto/logs.d.ts.map +1 -0
- package/dist/shared/dto/logs.js +10 -0
- package/dist/shared/dto/logs.js.map +1 -0
- package/dist/shared/dto/metrics.d.ts +65 -0
- package/dist/shared/dto/metrics.d.ts.map +1 -0
- package/dist/shared/dto/metrics.js +17 -0
- package/dist/shared/dto/metrics.js.map +1 -0
- package/dist/shared/dto/nodes.d.ts +347 -0
- package/dist/shared/dto/nodes.d.ts.map +1 -0
- package/dist/shared/dto/nodes.js +8 -0
- package/dist/shared/dto/nodes.js.map +1 -0
- package/dist/shared/dto/pipelines.d.ts +53 -0
- package/dist/shared/dto/pipelines.d.ts.map +1 -0
- package/dist/shared/dto/pipelines.js +9 -0
- package/dist/shared/dto/pipelines.js.map +1 -0
- package/dist/shared/dto/project.d.ts +143 -9
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/services.d.ts +855 -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 +156 -26
- 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 +11 -2
- package/dist/workers/types.d.ts.map +1 -1
- package/package.json +64 -29
- package/webapp/dist/BUILD.json +5 -0
- package/webapp/dist/assets/FormControlLabel-BrH2diyl.js +1 -0
- package/webapp/dist/assets/Grid-BZ7xhoHQ.js +1 -0
- package/webapp/dist/assets/Switch-DGSAxQPM.js +1 -0
- package/webapp/dist/assets/alerts-sXqHJbsa.js +1 -0
- package/webapp/dist/assets/apps-B_Ah8Flh.js +1 -0
- package/webapp/dist/assets/audit-YXihwyui.js +1 -0
- package/webapp/dist/assets/client-CGbBvy9k.js +1 -0
- package/webapp/dist/assets/constants-veKGFkC6.js +1 -0
- package/webapp/dist/assets/containers-Di4NOTLf.js +2 -0
- package/webapp/dist/assets/daemon-memory-CCPZ4cV_.js +1 -0
- package/webapp/dist/assets/dashboard-Cfuf95N3.js +1 -0
- package/webapp/dist/assets/dashboard-builder-CowaYb-M.js +1 -0
- package/webapp/dist/assets/deploy-release-dialog-D6C-XcKY.js +1 -0
- package/webapp/dist/assets/deployments-ChTq5kCw.js +1 -0
- package/webapp/dist/assets/detail-BsGWv7Dj.js +1 -0
- package/webapp/dist/assets/detail-CyVf_cw5.js +2 -0
- package/webapp/dist/assets/detail-D027j6aO.js +8 -0
- package/webapp/dist/assets/formatters-BqjL73N3.js +1 -0
- package/webapp/dist/assets/index-B8AHIPc-.css +1 -0
- package/webapp/dist/assets/index-DiZbrwxT.js +414 -0
- package/webapp/dist/assets/logs-L2b8Oqmo.js +12 -0
- package/webapp/dist/assets/maplibre-gl-MlmG2kbn.js +801 -0
- package/webapp/dist/assets/metrics-CQgjz2Lz.js +2 -0
- package/webapp/dist/assets/nodes-Nwia2Ty6.js +7 -0
- package/webapp/dist/assets/pipelines-DCu_rXOr.js +4 -0
- package/webapp/dist/assets/projects-Bb4aV76h.js +1 -0
- package/webapp/dist/assets/react-CwJFpaho.js +1 -0
- package/webapp/dist/assets/react-apexcharts.esm-Dy0Fez42.js +1956 -0
- package/webapp/dist/assets/release-bits-Dj4EOhhb.js +1 -0
- package/webapp/dist/assets/release-build-panel-D6OCVlhT.js +1 -0
- package/webapp/dist/assets/releases-CnAt3yO6.js +2 -0
- package/webapp/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/webapp/dist/assets/settings-DU-mjiwb.js +1 -0
- package/webapp/dist/assets/settled-pair-C7SjZuns.js +1 -0
- package/webapp/dist/assets/sign-in-Bcvjrr4C.js +1 -0
- package/webapp/dist/assets/stacks-B-e8p50I.js +1 -0
- package/webapp/dist/assets/sync-reading-C3PnJ7AX.js +1 -0
- package/webapp/dist/assets/system-info-BtE3dgfw.js +1 -0
- package/webapp/dist/assets/topology-Cwch-uF1.js +12 -0
- package/webapp/dist/assets/topology-DLioOiRN.css +1 -0
- package/webapp/dist/assets/traces-BbShR-4P.js +1 -0
- package/webapp/dist/assets/use-stack-context-CZUgPq88.js +1 -0
- package/webapp/dist/index.html +6 -7
- 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/Chip-BySxTjyN.js +0 -1
- package/webapp/dist/assets/DialogContentText-YQWiAVrU.js +0 -1
- package/webapp/dist/assets/DialogTitle-CDkgUIwp.js +0 -1
- package/webapp/dist/assets/FormControlLabel-Bu3CCsBM.js +0 -1
- package/webapp/dist/assets/Grid-BFY8hAzL.js +0 -1
- package/webapp/dist/assets/InputAdornment-_Dayk-3y.js +0 -3
- package/webapp/dist/assets/Skeleton-BGj6Sw8m.js +0 -37
- package/webapp/dist/assets/Switch-CA6682vv.js +0 -1
- package/webapp/dist/assets/TableContainer-4epq10KJ.js +0 -1
- package/webapp/dist/assets/TextField-C73KHMVN.js +0 -1
- package/webapp/dist/assets/alerts-JEQALS7Y.js +0 -1
- package/webapp/dist/assets/apps-DMPysEKB.js +0 -1
- package/webapp/dist/assets/client-DlGPter5.js +0 -110
- package/webapp/dist/assets/constants-DqFQJ27U.js +0 -1
- package/webapp/dist/assets/containers-CvkC7do8.js +0 -1
- package/webapp/dist/assets/dashboard-C0Fre9pC.js +0 -1
- package/webapp/dist/assets/dashboard-builder-DAghqdpE.js +0 -1
- package/webapp/dist/assets/deployments-Cg1lI1uT.js +0 -1
- package/webapp/dist/assets/detail-CyFtEson.js +0 -1
- package/webapp/dist/assets/detail-DqoSGKT1.js +0 -8
- package/webapp/dist/assets/formatters-J3Xqn6BQ.js +0 -1
- package/webapp/dist/assets/icons-ynIWYfBP.js +0 -3
- package/webapp/dist/assets/index-CHVXOsTS.css +0 -1
- package/webapp/dist/assets/index-vKrDmEA_.js +0 -259
- package/webapp/dist/assets/isMuiElement-BRL3YuCT.js +0 -1
- package/webapp/dist/assets/logs-IovIij1C.js +0 -11
- package/webapp/dist/assets/metrics-Dufwtwjq.js +0 -1
- package/webapp/dist/assets/nodes-Brvu8W3j.js +0 -7
- package/webapp/dist/assets/pipelines-t40X4MuC.js +0 -4
- package/webapp/dist/assets/prop-types-CvVtHxp4.js +0 -1
- package/webapp/dist/assets/react-apexcharts.esm-CLO6gala.js +0 -954
- package/webapp/dist/assets/settings-DTAIST3v.js +0 -1
- package/webapp/dist/assets/sign-in-DQEAkJum.js +0 -1
- package/webapp/dist/assets/stacks-BjM1f45N.js +0 -1
- package/webapp/dist/assets/system-info-BQSbSEK-.js +0 -1
- package/webapp/dist/assets/topology-6N8-Az_Z.js +0 -12
- package/webapp/dist/assets/topology-CHpVij2M.css +0 -1
- package/webapp/dist/assets/traces-DVXyb-4m.js +0 -1
- package/webapp/dist/assets/use-stack-context-CbE8fxBA.js +0 -1
- /package/webapp/dist/assets/{fs-uP8eiZAR.js → fs-Ccl3sAcp.js} +0 -0
|
@@ -7,9 +7,14 @@
|
|
|
7
7
|
* Into concrete Docker container definitions:
|
|
8
8
|
* { name: 'omnitron-postgres', image: 'postgres:17-alpine', ports: [...], env: [...] }
|
|
9
9
|
*/
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
import { configFilesHash } from './config-payload.js';
|
|
12
|
+
import { gatewayStaticLinkName } from '../services/static-carry-forward.js';
|
|
13
|
+
import { CONFIG_ROOT_PREFIX, shippedMountPath } from './shipped-config.js';
|
|
14
|
+
import { bindService } from './service-binding.js';
|
|
10
15
|
/**
|
|
11
16
|
* Container naming: {project}-{stack}-{service}
|
|
12
|
-
* Examples:
|
|
17
|
+
* Examples: myproj-dev-postgres, myproj-dev-redis, myproj-test-minio
|
|
13
18
|
* Omnitron's own containers: omnitron-pg, omnitron-nginx (no project/stack prefix)
|
|
14
19
|
*
|
|
15
20
|
* Docker labels for stack grouping (Docker Desktop groups containers visually):
|
|
@@ -27,9 +32,164 @@ export function setContainerPrefix(project, env) {
|
|
|
27
32
|
export function getContainerPrefix() {
|
|
28
33
|
return CONTAINER_PREFIX;
|
|
29
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* A named volume two services of one stack mount by the same name:
|
|
37
|
+
* `source: 'shared:gateway-socket'` is `<prefix>-gateway-socket` wherever it
|
|
38
|
+
* is declared.
|
|
39
|
+
*
|
|
40
|
+
* Every other named volume is its service's — `<prefix>-<service>-<key>`,
|
|
41
|
+
* whatever its `source` says — so nothing a stack could write gave two
|
|
42
|
+
* containers one volume. The onion needed exactly that: Tor resolved
|
|
43
|
+
* `daos-test-gateway` once, at start, and on 2026-09-26 a deploy gave the
|
|
44
|
+
* gateway's old address to Nominatim; for ~10 minutes the onion served
|
|
45
|
+
* Nominatim's Apache and nobody could sign in. A unix socket on a volume
|
|
46
|
+
* both containers mount has no address to go stale.
|
|
47
|
+
*/
|
|
48
|
+
export const SHARED_VOLUME_PREFIX = 'shared:';
|
|
49
|
+
/** A declared volume as docker mounts it for `service`: shared, bound, or the service's own. */
|
|
50
|
+
function resolveNamedOrBound(service, key, vol) {
|
|
51
|
+
if (typeof vol === 'string')
|
|
52
|
+
return { source: `${CONTAINER_PREFIX}-${service}-${key}`, target: vol };
|
|
53
|
+
const shared = vol.source.startsWith(SHARED_VOLUME_PREFIX) ? vol.source.slice(SHARED_VOLUME_PREFIX.length) : null;
|
|
54
|
+
if (shared !== null && !/^[a-z0-9][a-z0-9_.-]*$/.test(shared)) {
|
|
55
|
+
// Docker would refuse the name anyway; saying which declaration it was is
|
|
56
|
+
// the useful part.
|
|
57
|
+
throw new Error(`Volume "${key}" of ${service}: "${vol.source}" does not name a shared volume (lower-case letters, digits, «_.-»)`);
|
|
58
|
+
}
|
|
59
|
+
const isBindMount = vol.source.startsWith('/') || vol.source.startsWith('.');
|
|
60
|
+
const entry = {
|
|
61
|
+
source: shared !== null
|
|
62
|
+
? `${CONTAINER_PREFIX}-${shared}`
|
|
63
|
+
: isBindMount
|
|
64
|
+
? vol.source
|
|
65
|
+
: `${CONTAINER_PREFIX}-${service}-${key}`,
|
|
66
|
+
target: vol.target,
|
|
67
|
+
};
|
|
68
|
+
if (vol.readonly)
|
|
69
|
+
entry.readonly = vol.readonly;
|
|
70
|
+
return entry;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Where to PUBLISH the gateway, which is not where it listens.
|
|
74
|
+
*
|
|
75
|
+
* After preset expansion `ports` holds CONTAINER ports — openresty's
|
|
76
|
+
* `defaultPorts.http` is 80, because that is what the image listens on — and
|
|
77
|
+
* a port named in the config becomes a HOST mapping under
|
|
78
|
+
* `docker.portMappings`. Reading `ports.http` takes the first for the second,
|
|
79
|
+
* so a stack asking for 8080 gets a gateway published on 80.
|
|
80
|
+
*
|
|
81
|
+
* Measured on the dev stand: `omnitron.config.ts` declares
|
|
82
|
+
* `gateway.ports.http = 8080` and its own comment says ":8080" three times,
|
|
83
|
+
* while `daos-dev-gateway` published `80/tcp -> 0.0.0.0:80`. The consequence
|
|
84
|
+
* is quiet rather than loud — a browser arriving on :80 sends
|
|
85
|
+
* `Origin: http://localhost` with no port, which is not in the gateway's
|
|
86
|
+
* allow-list, so the portal cannot call the API through it at all. The portal
|
|
87
|
+
* is reachable on 7080, so nothing complained.
|
|
88
|
+
*
|
|
89
|
+
* `resolveServiceRequirement` has read it correctly all along:
|
|
90
|
+
* `host: docker.portMappings?.[name] ?? containerPort`. Same expression here,
|
|
91
|
+
* because it is the same question — and a port the preset does not declare
|
|
92
|
+
* really is a container port, which is why the fallback is not a mistake.
|
|
93
|
+
*/
|
|
94
|
+
export function gatewayHostPort(service, legacy) {
|
|
95
|
+
return service?.docker?.portMappings?.['http'] ?? service?.ports?.['http'] ?? legacy?.port ?? 8080;
|
|
96
|
+
}
|
|
30
97
|
function containerName(service) {
|
|
31
98
|
return `${CONTAINER_PREFIX}-${service}`;
|
|
32
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* How one managed container reaches another.
|
|
102
|
+
*
|
|
103
|
+
* Every container omnitron provisions joins the stack's named network, and
|
|
104
|
+
* the network exists so they can address each other by name — the comment on
|
|
105
|
+
* `networkName` below says exactly that. The gateway did not: it was given
|
|
106
|
+
* `host.docker.internal` and the HOST-published port, and went out to the
|
|
107
|
+
* host and back.
|
|
108
|
+
*
|
|
109
|
+
* That works on a developer's Mac, where `host.docker.internal` reaches the
|
|
110
|
+
* host's loopback. It cannot work on a Linux node, where `host-gateway`
|
|
111
|
+
* resolves to the docker0 bridge address and omnitron publishes every managed
|
|
112
|
+
* port on `127.0.0.1` — deliberately, so a container is not reachable from
|
|
113
|
+
* the LAN. Measured on the test node: the gateway sat on 172.19.0.2, redis on
|
|
114
|
+
* 172.19.0.4 of the same network, and every request the gateway served spent
|
|
115
|
+
* 200ms on `lua tcp socket connect timed out, upstream: 172.17.0.1:6379`
|
|
116
|
+
* before failing open. The hardening that bound the ports closed this path,
|
|
117
|
+
* and the only evidence was a warning nobody was reading.
|
|
118
|
+
*
|
|
119
|
+
* The port is the CONTAINER port for the same reason the host is a container
|
|
120
|
+
* name: a stack whose redis is published on 6380 still listens on 6379
|
|
121
|
+
* inside. Host and port are one decision and are answered here together,
|
|
122
|
+
* because answering half of it is how a correct name ends up on the wrong
|
|
123
|
+
* port.
|
|
124
|
+
*/
|
|
125
|
+
export function containerEndpoint(service, containerPort) {
|
|
126
|
+
return { host: containerName(service), port: containerPort };
|
|
127
|
+
}
|
|
128
|
+
/** Redis, as a container on the stack network sees it. */
|
|
129
|
+
export const REDIS_CONTAINER_PORT = 6379;
|
|
130
|
+
/**
|
|
131
|
+
* Convention-derived managed network name.
|
|
132
|
+
*
|
|
133
|
+
* Every container provisioned by omnitron lives on a named bridge network
|
|
134
|
+
* (instead of docker's default `bridge`). This is the central piece that
|
|
135
|
+
* eliminates a whole class of failures we observed in production:
|
|
136
|
+
*
|
|
137
|
+
* - Docker's default `bridge` accumulates **phantom endpoint records**
|
|
138
|
+
* after dockerd restarts (host sleep/wake on macOS, dockerd crash).
|
|
139
|
+
* Recreating any container by name then fails with
|
|
140
|
+
* `endpoint with name X already exists in network bridge` — and
|
|
141
|
+
* `docker network disconnect -f bridge X` reports "not found" because
|
|
142
|
+
* the endpoint is dangling in dockerd's internal state, not actually
|
|
143
|
+
* attached. A named network has no such global pollution; if it gets
|
|
144
|
+
* corrupted we can blow it away and rebuild it without touching every
|
|
145
|
+
* other container on the host.
|
|
146
|
+
* - Inter-service DNS-by-name only works on named networks, so apps that
|
|
147
|
+
* need to reach `postgres:5432` from another container can do so
|
|
148
|
+
* without leaking host ports.
|
|
149
|
+
*
|
|
150
|
+
* Convention `${project}_default` matches what docker-compose creates by
|
|
151
|
+
* default for `${project}` → seamless coexistence with compose-managed
|
|
152
|
+
* adjacent infrastructure.
|
|
153
|
+
*/
|
|
154
|
+
export function getManagedNetwork() {
|
|
155
|
+
return `${CONTAINER_PREFIX}_default`;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Stamp the managed network onto a container spec when it doesn't already
|
|
159
|
+
* declare one. Centralised so every resolver — preset and built-in alike —
|
|
160
|
+
* gets the same defaults without each having to remember.
|
|
161
|
+
*/
|
|
162
|
+
export function applyManagedDefaults(spec) {
|
|
163
|
+
if (spec.network === undefined)
|
|
164
|
+
spec.network = getManagedNetwork();
|
|
165
|
+
// Published ports bind to loopback unless a container asks otherwise.
|
|
166
|
+
//
|
|
167
|
+
// Docker's default is every interface, and Docker's iptables rules are
|
|
168
|
+
// inserted ahead of ufw's — so a published port is reachable from the
|
|
169
|
+
// internet no matter what the host firewall says. Measured on the test
|
|
170
|
+
// server, whose ufw allows 22/tcp and nothing else:
|
|
171
|
+
//
|
|
172
|
+
// nc -vz 37.27.130.185 9700 → timed out (ufw, as configured)
|
|
173
|
+
// nc -vz 37.27.130.185 5480 → OPEN (docker, straight past it)
|
|
174
|
+
//
|
|
175
|
+
// 5480 is omnitron's own Postgres. An operator who reads their firewall
|
|
176
|
+
// rules and concludes the database is private is reading a control that
|
|
177
|
+
// does not cover it, which is the worst kind of wrong: a check that
|
|
178
|
+
// answers confidently about something it cannot see.
|
|
179
|
+
//
|
|
180
|
+
// The applications that use these containers run on the same host and
|
|
181
|
+
// reach them over loopback. Anything further away comes through
|
|
182
|
+
// omnitron's own transport, which is authenticated. So the default costs
|
|
183
|
+
// nothing and the exposure had no beneficiary.
|
|
184
|
+
//
|
|
185
|
+
// A container that genuinely must be reachable says so by setting
|
|
186
|
+
// `bindHost` — a deliberate line in a config, reviewable in a diff.
|
|
187
|
+
for (const port of spec.ports ?? []) {
|
|
188
|
+
if (port.bindHost === undefined)
|
|
189
|
+
port.bindHost = '127.0.0.1';
|
|
190
|
+
}
|
|
191
|
+
return spec;
|
|
192
|
+
}
|
|
33
193
|
/**
|
|
34
194
|
* Stack ownership labels — injected into every stack-scoped container.
|
|
35
195
|
* Used by orphan reconciliation on daemon startup to identify
|
|
@@ -65,47 +225,108 @@ function stackLabels() {
|
|
|
65
225
|
* - Service is disabled by stack override
|
|
66
226
|
* - Stack override provides an external address
|
|
67
227
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
228
|
+
/**
|
|
229
|
+
* An HTTP probe that works in the image it runs in.
|
|
230
|
+
*
|
|
231
|
+
* `curl -sf` was the generic form, and alpine-based images do not ship curl.
|
|
232
|
+
* Measured on the gateway: `/bin/sh: curl: not found`, exit 1, every ten
|
|
233
|
+
* seconds forever — a container serving traffic correctly (the onion in
|
|
234
|
+
* front of it answered 200) reported `unhealthy` for its whole life, and
|
|
235
|
+
* `provisionStack` reported the stack NOT ready because of it.
|
|
236
|
+
*
|
|
237
|
+
* The lesson was already learned once in this file: `resolveOmnitronNginx`
|
|
238
|
+
* uses wget with a comment saying curl is not in the image. It was learned
|
|
239
|
+
* for one container and not for the generic path every other service takes.
|
|
240
|
+
*
|
|
241
|
+
* Tries curl, then wget, then falls back to failing. Both spellings, because
|
|
242
|
+
* busybox wget and GNU wget disagree about flags but agree about these:
|
|
243
|
+
* `-q` quiet, `-O -` to stdout, `-T` timeout.
|
|
244
|
+
*/
|
|
245
|
+
/**
|
|
246
|
+
* Which port an HTTP health check should knock on.
|
|
247
|
+
*
|
|
248
|
+
* The probe was `http://localhost<path>` — port 80, always. The gateway
|
|
249
|
+
* listens on 8080, so the check connected to nothing:
|
|
250
|
+
*
|
|
251
|
+
* wget: can't connect to remote host: Connection refused
|
|
252
|
+
*
|
|
253
|
+
* on a container that was serving correctly on its own port, through an
|
|
254
|
+
* onion address that answered 200. Every service whose port is not 80 had
|
|
255
|
+
* an unanswerable health check, and an unanswerable check is a permanent
|
|
256
|
+
* negative — `provisionStack` reported the stack not ready because of it.
|
|
257
|
+
*
|
|
258
|
+
* A check may name its port, as the jsonrpc one already does. Otherwise the
|
|
259
|
+
* service's own: `http` by convention, then whatever single port it
|
|
260
|
+
* declares — a service with one port cannot mean another.
|
|
261
|
+
*/
|
|
262
|
+
function healthPort(check, ports) {
|
|
263
|
+
const named = check.port;
|
|
264
|
+
if (named && ports?.[named])
|
|
265
|
+
return ports[named];
|
|
266
|
+
if (ports?.['http'])
|
|
267
|
+
return ports['http'];
|
|
268
|
+
const declared = Object.values(ports ?? {});
|
|
269
|
+
if (declared.length === 1)
|
|
270
|
+
return declared[0];
|
|
271
|
+
// Several ports and no way to choose: 80 is the convention, and saying so
|
|
272
|
+
// here is better than an arbitrary pick that happens to work once.
|
|
273
|
+
return 80;
|
|
274
|
+
}
|
|
275
|
+
function httpProbe(url) {
|
|
276
|
+
return (`curl -sf --max-time 5 ${url} >/dev/null 2>&1 ` +
|
|
277
|
+
`|| wget -q -O /dev/null -T 5 ${url} >/dev/null 2>&1 ` +
|
|
278
|
+
'|| exit 1');
|
|
279
|
+
}
|
|
280
|
+
export function resolveServiceRequirement(serviceName, requirement, override, appName,
|
|
281
|
+
/** Where each service's shipped config directory is on THIS machine — see `shipped-config.ts`. */
|
|
282
|
+
configRoots) {
|
|
283
|
+
// A container only for a service this stack runs as one — not one it
|
|
284
|
+
// disables, reaches elsewhere, or runs on the node as a system service
|
|
285
|
+
// (`bindService`).
|
|
286
|
+
const binding = bindService(requirement, override);
|
|
287
|
+
if (binding.provisioning !== 'docker')
|
|
73
288
|
return null;
|
|
74
289
|
const baseDocker = requirement.docker;
|
|
75
290
|
if (!baseDocker)
|
|
76
|
-
return null;
|
|
291
|
+
return null;
|
|
77
292
|
// Deep-merge: base → networkMode variant → stack override
|
|
78
293
|
let docker = { ...baseDocker };
|
|
79
|
-
|
|
80
|
-
|
|
294
|
+
// The stack's answer first: an application declares the network that is
|
|
295
|
+
// right on a laptop, and a stack is the scope that knows when it is not.
|
|
296
|
+
const networkMode = override?.networkMode ?? requirement.networkMode;
|
|
297
|
+
if (networkMode && baseDocker.variants?.[networkMode]) {
|
|
298
|
+
docker = deepMergeDocker(docker, baseDocker.variants[networkMode]);
|
|
81
299
|
}
|
|
82
300
|
if (override?.docker) {
|
|
83
301
|
docker = deepMergeDocker(docker, override.docker);
|
|
84
302
|
}
|
|
85
303
|
// Resolve image
|
|
86
304
|
const image = docker.image ?? docker.build?.tag ?? `${serviceName}:latest`;
|
|
87
|
-
//
|
|
88
|
-
|
|
305
|
+
// The ports the service listens on in this stack's network are the
|
|
306
|
+
// container's (`bindService`); `docker.portMappings` says where each is published.
|
|
307
|
+
const ports = Object.entries(binding.ports).map(([name, containerPort]) => ({
|
|
89
308
|
host: docker.portMappings?.[name] ?? containerPort,
|
|
90
309
|
container: containerPort,
|
|
91
310
|
}));
|
|
92
311
|
// Resolve volumes
|
|
312
|
+
const shippedRoots = new Set();
|
|
93
313
|
const volumes = Object.entries(docker.volumes ?? {}).map(([name, vol]) => {
|
|
94
|
-
if (typeof vol
|
|
95
|
-
|
|
314
|
+
if (typeof vol !== 'string' && vol.source.startsWith(CONFIG_ROOT_PREFIX)) {
|
|
315
|
+
// The node's copy of a directory the master shipped. Unresolved — no
|
|
316
|
+
// copy arrived — it stays as it is, and docker refuses it by name.
|
|
317
|
+
const local = shippedMountPath(vol.source, configRoots);
|
|
318
|
+
if (local)
|
|
319
|
+
shippedRoots.add(local.root);
|
|
320
|
+
const entry = { source: local?.path ?? vol.source, target: vol.target };
|
|
321
|
+
if (vol.readonly)
|
|
322
|
+
entry.readonly = vol.readonly;
|
|
323
|
+
return entry;
|
|
96
324
|
}
|
|
97
|
-
|
|
98
|
-
const entry = {
|
|
99
|
-
source: isBindMount ? vol.source : `${CONTAINER_PREFIX}-${serviceName}-${name}`,
|
|
100
|
-
target: vol.target,
|
|
101
|
-
};
|
|
102
|
-
if (vol.readonly)
|
|
103
|
-
entry.readonly = vol.readonly;
|
|
104
|
-
return entry;
|
|
325
|
+
return resolveNamedOrBound(serviceName, name, vol);
|
|
105
326
|
});
|
|
106
327
|
// Convert IServiceHealthCheck → ContainerHealthCheck
|
|
107
|
-
const healthCheck = docker.healthCheck ?? convertHealthCheck(requirement.healthCheck,
|
|
108
|
-
|
|
328
|
+
const healthCheck = docker.healthCheck ?? convertHealthCheck(requirement.healthCheck, binding.ports);
|
|
329
|
+
const spec = applyManagedDefaults({
|
|
109
330
|
name: containerName(serviceName),
|
|
110
331
|
image,
|
|
111
332
|
ports,
|
|
@@ -126,13 +347,30 @@ export function resolveServiceRequirement(serviceName, requirement, override, ap
|
|
|
126
347
|
restart: docker.restart ?? 'unless-stopped',
|
|
127
348
|
shmSize: docker.shmSize,
|
|
128
349
|
resources: docker.resources,
|
|
129
|
-
|
|
350
|
+
...(docker.extraHosts && docker.extraHosts.length > 0 ? { extraHosts: docker.extraHosts } : {}),
|
|
351
|
+
// Service requirement can override the managed network when it has
|
|
352
|
+
// a legitimate reason (host-net for low-latency wallet RPC, isolated
|
|
353
|
+
// network for security boundary, etc.). When unset, applyManagedDefaults
|
|
354
|
+
// stamps in the project-wide bridge.
|
|
355
|
+
...(typeof docker.network === 'string' ? { network: docker.network } : {}),
|
|
356
|
+
});
|
|
357
|
+
// The content of what it mounts from shipped directories, so a changed
|
|
358
|
+
// script recreates the container — the same reason as the gateway's.
|
|
359
|
+
for (const root of shippedRoots) {
|
|
360
|
+
const digest = mountedConfigDigest(root, spec.volumes);
|
|
361
|
+
if (digest)
|
|
362
|
+
spec.configDigest = spec.configDigest ? configFilesHash([
|
|
363
|
+
{ path: 'a', content: spec.configDigest, mode: '644' },
|
|
364
|
+
{ path: 'b', content: digest, mode: '644' },
|
|
365
|
+
]) : digest;
|
|
366
|
+
}
|
|
367
|
+
return spec;
|
|
130
368
|
}
|
|
131
369
|
/**
|
|
132
370
|
* Resolve all app-declared infrastructure services into ResolvedContainer[].
|
|
133
371
|
* Respects dependsOn ordering — dependencies come first.
|
|
134
372
|
*/
|
|
135
|
-
export function resolveAppInfrastructure(infrastructure, overrides, appName) {
|
|
373
|
+
export function resolveAppInfrastructure(infrastructure, overrides, appName, configRoots) {
|
|
136
374
|
const containers = [];
|
|
137
375
|
const resolved = new Set();
|
|
138
376
|
const pending = new Map(Object.entries(infrastructure));
|
|
@@ -148,7 +386,7 @@ export function resolveAppInfrastructure(infrastructure, overrides, appName) {
|
|
|
148
386
|
resolve(dep, depReq);
|
|
149
387
|
}
|
|
150
388
|
const override = overrides?.[`${appName}/${name}`] ?? overrides?.[name];
|
|
151
|
-
const container = resolveServiceRequirement(name, req, override, appName);
|
|
389
|
+
const container = resolveServiceRequirement(name, req, override, appName, configRoots);
|
|
152
390
|
if (container)
|
|
153
391
|
containers.push(container);
|
|
154
392
|
};
|
|
@@ -161,44 +399,54 @@ export function resolveAppInfrastructure(infrastructure, overrides, appName) {
|
|
|
161
399
|
function convertHealthCheck(check, ports) {
|
|
162
400
|
if (!check)
|
|
163
401
|
return undefined;
|
|
164
|
-
|
|
402
|
+
// One helper per default, not one helper for every duration field. A
|
|
403
|
+
// single `(s) => s ?? '30s'` used to serve all three, which gave `timeout`
|
|
404
|
+
// the interval's default: probes ran with a 30s deadline where the type
|
|
405
|
+
// and the documentation both promise 10s, so an unresponsive service was
|
|
406
|
+
// marked unhealthy up to three times later than stated — and with the
|
|
407
|
+
// deadline equal to the gap between probes, they can overlap.
|
|
408
|
+
const everyDefault = (s) => s ?? '30s';
|
|
409
|
+
const deadlineDefault = (s) => s ?? '10s';
|
|
165
410
|
switch (check.type) {
|
|
166
411
|
case 'command':
|
|
167
412
|
return {
|
|
168
413
|
test: ['CMD-SHELL', check.target],
|
|
169
|
-
interval:
|
|
170
|
-
timeout:
|
|
414
|
+
interval: everyDefault(check.interval),
|
|
415
|
+
timeout: deadlineDefault(check.timeout),
|
|
171
416
|
retries: check.retries ?? 5,
|
|
172
|
-
startPeriod:
|
|
417
|
+
startPeriod: everyDefault(check.startPeriod),
|
|
173
418
|
};
|
|
174
419
|
case 'tcp':
|
|
175
420
|
return {
|
|
176
421
|
test: ['CMD-SHELL', `nc -z localhost ${check.target} || exit 1`],
|
|
177
|
-
interval:
|
|
178
|
-
timeout:
|
|
422
|
+
interval: everyDefault(check.interval),
|
|
423
|
+
timeout: deadlineDefault(check.timeout),
|
|
179
424
|
retries: check.retries ?? 5,
|
|
180
|
-
startPeriod:
|
|
425
|
+
startPeriod: everyDefault(check.startPeriod),
|
|
181
426
|
};
|
|
182
427
|
case 'http':
|
|
183
428
|
return {
|
|
184
|
-
test: ['CMD-SHELL', `
|
|
185
|
-
interval:
|
|
186
|
-
timeout:
|
|
429
|
+
test: ['CMD-SHELL', httpProbe(`http://localhost:${healthPort(check, ports)}${check.target}`)],
|
|
430
|
+
interval: everyDefault(check.interval),
|
|
431
|
+
timeout: deadlineDefault(check.timeout),
|
|
187
432
|
retries: check.retries ?? 5,
|
|
188
|
-
startPeriod:
|
|
433
|
+
startPeriod: everyDefault(check.startPeriod),
|
|
189
434
|
};
|
|
190
435
|
case 'jsonrpc': {
|
|
191
436
|
const portName = check.jsonrpc?.port ?? 'rpc';
|
|
192
437
|
const port = ports?.[portName] ?? portName;
|
|
193
438
|
const method = check.jsonrpc?.method ?? check.target;
|
|
194
439
|
const auth = check.jsonrpc?.auth;
|
|
195
|
-
const authStr = auth
|
|
440
|
+
const authStr = auth && auth.type !== 'cookie'
|
|
441
|
+
? `-u ${auth.user}:${auth.password} ${auth.type === 'digest' ? '--digest' : ''}`
|
|
442
|
+
: '';
|
|
443
|
+
const rpcPath = check.jsonrpc?.path ?? '/json_rpc';
|
|
196
444
|
return {
|
|
197
|
-
test: ['CMD-SHELL', `curl -sf ${authStr} -X POST http://localhost:${port} -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":"health","method":"${method}"}' || exit 1`],
|
|
198
|
-
interval:
|
|
199
|
-
timeout:
|
|
445
|
+
test: ['CMD-SHELL', `curl -sf ${authStr} -X POST http://localhost:${port}${rpcPath} -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":"health","method":"${method}"}' || exit 1`],
|
|
446
|
+
interval: everyDefault(check.interval),
|
|
447
|
+
timeout: deadlineDefault(check.timeout),
|
|
200
448
|
retries: check.retries ?? 5,
|
|
201
|
-
startPeriod:
|
|
449
|
+
startPeriod: everyDefault(check.startPeriod),
|
|
202
450
|
};
|
|
203
451
|
}
|
|
204
452
|
default:
|
|
@@ -217,8 +465,11 @@ function deepMergeDocker(base, overlay) {
|
|
|
217
465
|
if (base.labels || overlay.labels) {
|
|
218
466
|
merged.labels = { ...base.labels, ...overlay.labels };
|
|
219
467
|
}
|
|
220
|
-
|
|
221
|
-
|
|
468
|
+
// By key, like the environment: an overlay that adds a volume keeps the
|
|
469
|
+
// base's. Replaced wholesale, a stack that gave Tor one more mount would
|
|
470
|
+
// have taken away `/var/lib/tor` — its onion keys, and with them its address.
|
|
471
|
+
if (base.volumes || overlay.volumes) {
|
|
472
|
+
merged.volumes = { ...base.volumes, ...overlay.volumes };
|
|
222
473
|
}
|
|
223
474
|
if (overlay.resources === undefined && base.resources) {
|
|
224
475
|
merged.resources = base.resources;
|
|
@@ -238,7 +489,7 @@ export function resolveOmnitronPg(options) {
|
|
|
238
489
|
const port = options?.port ?? 5480;
|
|
239
490
|
const user = options?.user ?? 'omnitron';
|
|
240
491
|
const password = options?.password ?? 'omnitron';
|
|
241
|
-
return {
|
|
492
|
+
return applyManagedDefaults({
|
|
242
493
|
name: `${CONTAINER_PREFIX}-pg`,
|
|
243
494
|
image,
|
|
244
495
|
ports: [{ host: port, container: 5432 }],
|
|
@@ -270,7 +521,7 @@ export function resolveOmnitronPg(options) {
|
|
|
270
521
|
},
|
|
271
522
|
restart: 'unless-stopped',
|
|
272
523
|
shmSize: '128m',
|
|
273
|
-
};
|
|
524
|
+
});
|
|
274
525
|
}
|
|
275
526
|
// =============================================================================
|
|
276
527
|
// Omnitron Nginx (Webapp + API Gateway)
|
|
@@ -283,6 +534,55 @@ export function resolveOmnitronPg(options) {
|
|
|
283
534
|
*
|
|
284
535
|
* Port 9800 (public) → nginx → port 9801 (internal daemon HTTP)
|
|
285
536
|
*/
|
|
537
|
+
/**
|
|
538
|
+
* A digest of every file a container mounts from under `root`.
|
|
539
|
+
*
|
|
540
|
+
* `configFilesHash` was written for this — its docblock says it is «folded
|
|
541
|
+
* into the container's spec hash by the caller, so a changed template
|
|
542
|
+
* recreates the container» — and had no caller. So a node wrote each new
|
|
543
|
+
* nginx.conf over the old one and kept serving the old one: the gateway
|
|
544
|
+
* renders its template once, at start, and a reconcile that compares volume
|
|
545
|
+
* PATHS saw nothing to do. The test gateway was recreated only when its
|
|
546
|
+
* static bundle changed, which carried the config along by accident.
|
|
547
|
+
*
|
|
548
|
+
* Taken from the volumes themselves rather than a list of file names, so a
|
|
549
|
+
* mount added later is covered without anyone remembering this function.
|
|
550
|
+
* Read from disk on the machine that will run the container: on a node that
|
|
551
|
+
* is the copy just written from the master's payload, on a master the
|
|
552
|
+
* project's own files. Synchronous, because the resolver is — and small: the
|
|
553
|
+
* daos gateway's files are 65 KB, read once per provision.
|
|
554
|
+
*
|
|
555
|
+
* `undefined` when there is nothing under `root` to read, or it cannot be
|
|
556
|
+
* read — the spec hash then stays what it was without this.
|
|
557
|
+
*/
|
|
558
|
+
export function mountedConfigDigest(root, volumes) {
|
|
559
|
+
const prefix = root.endsWith('/') ? root : `${root}/`;
|
|
560
|
+
const files = [];
|
|
561
|
+
const visit = (abs) => {
|
|
562
|
+
const stat = fs.statSync(abs);
|
|
563
|
+
if (stat.isDirectory()) {
|
|
564
|
+
for (const name of fs.readdirSync(abs).sort())
|
|
565
|
+
visit(`${abs}/${name}`);
|
|
566
|
+
}
|
|
567
|
+
else if (stat.isFile()) {
|
|
568
|
+
// latin1 maps bytes to code units one to one, so the digest sees the
|
|
569
|
+
// bytes the container will, text or not.
|
|
570
|
+
files.push({ path: abs.slice(prefix.length), content: fs.readFileSync(abs, 'latin1'), mode: (stat.mode & 0o777).toString(8) });
|
|
571
|
+
}
|
|
572
|
+
};
|
|
573
|
+
try {
|
|
574
|
+
for (const v of volumes) {
|
|
575
|
+
// The root itself too: a service may mount its whole shipped directory
|
|
576
|
+
// (`shipped-config.ts`), where the gateway mounts files inside it.
|
|
577
|
+
if (v.source === root || v.source.startsWith(prefix))
|
|
578
|
+
visit(v.source);
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
catch {
|
|
582
|
+
return undefined;
|
|
583
|
+
}
|
|
584
|
+
return files.length > 0 ? configFilesHash(files) : undefined;
|
|
585
|
+
}
|
|
286
586
|
/**
|
|
287
587
|
* Resolve API gateway container (OpenResty + Lua).
|
|
288
588
|
*
|
|
@@ -293,6 +593,28 @@ export function resolveOmnitronPg(options) {
|
|
|
293
593
|
* @param redisConfig Stack's Redis connection info (host, port, password)
|
|
294
594
|
* @param projectRoot Absolute path to project root (for resolving configDir)
|
|
295
595
|
*/
|
|
596
|
+
/**
|
|
597
|
+
* The gateway's config as the stack declares it: every field `resolveGateway`
|
|
598
|
+
* reads, the preset's block first and the legacy `infrastructure.gateway`
|
|
599
|
+
* after. The stack manager used to hand it two of them — `configDir` and
|
|
600
|
+
* `staticDir` — so `env`, declared on `GatewayServiceConfig` as «passed to the
|
|
601
|
+
* gateway container», reached nothing, and `volumes`, which carries the
|
|
602
|
+
* onion's socket, would have reached nothing either.
|
|
603
|
+
*/
|
|
604
|
+
export function gatewayConfigOf(presetConfig, legacy, port, redisDb) {
|
|
605
|
+
const pick = (key) => presetConfig?.[key] ?? legacy?.[key];
|
|
606
|
+
const staticDir = pick('staticDir');
|
|
607
|
+
const env = pick('env');
|
|
608
|
+
const volumes = pick('volumes');
|
|
609
|
+
return {
|
|
610
|
+
port,
|
|
611
|
+
configDir: pick('configDir') ?? 'infra/nginx',
|
|
612
|
+
redisDb,
|
|
613
|
+
...(staticDir ? { staticDir } : {}),
|
|
614
|
+
...(env ? { env } : {}),
|
|
615
|
+
...(volumes ? { volumes } : {}),
|
|
616
|
+
};
|
|
617
|
+
}
|
|
296
618
|
export function resolveGateway(config, redisConfig, projectRoot) {
|
|
297
619
|
const image = config.image ?? 'openresty/openresty:alpine';
|
|
298
620
|
const port = config.port ?? 8080;
|
|
@@ -301,15 +623,56 @@ export function resolveGateway(config, redisConfig, projectRoot) {
|
|
|
301
623
|
// Resolve absolute path to config directory
|
|
302
624
|
// Use join via string concatenation (ESM-safe, avoids sync require)
|
|
303
625
|
const absConfigDir = projectRoot.endsWith('/') ? projectRoot + configDir : projectRoot + '/' + configDir;
|
|
626
|
+
// The frontend, if this stack serves one. Absolute already means "a path on
|
|
627
|
+
// the machine that will run this", which is how a node names its own copy;
|
|
628
|
+
// a relative path is resolved against the project, like the config is.
|
|
629
|
+
const staticDir = config.staticDir;
|
|
630
|
+
const absStaticDir = !staticDir
|
|
631
|
+
? null
|
|
632
|
+
: staticDir.startsWith('/')
|
|
633
|
+
? staticDir
|
|
634
|
+
: `${projectRoot.replace(/\/$/, '')}/${staticDir.replace(/^\.\//, '')}`;
|
|
635
|
+
/**
|
|
636
|
+
* Mount the ROOT and serve through the link, when the node sent one.
|
|
637
|
+
*
|
|
638
|
+
* The build directory's path changes with every release, and it is the ONLY
|
|
639
|
+
* field of this spec that does — `mountedConfigDigest` is rooted at the
|
|
640
|
+
* config directory and the node's config root
|
|
641
|
+
* (`~/.omnitron/stack-config/<project>/<stack>/<service>`) is stable. So the
|
|
642
|
+
* container was recreated for every deployment, and that cost **1 s of 000**
|
|
643
|
+
* on the gateway, measured on release 4 (81 s of deploy). Mounting the root
|
|
644
|
+
* instead makes the mount a constant, and the swap of
|
|
645
|
+
* `current-<project>-<stack>` inside it is what changes — atomically, with
|
|
646
|
+
* `rename(2)`, picked up with no reload because nginx resolves `root` per
|
|
647
|
+
* request and this config sets no `open_file_cache`.
|
|
648
|
+
*
|
|
649
|
+
* Only when the node says so. On a master `staticDir` is a path inside the
|
|
650
|
+
* project — daos declares `apps/portal/dist` — and mounting ITS parent would
|
|
651
|
+
* put `src/`, `node_modules` and `vite.config.ts` under the web root, while
|
|
652
|
+
* `current-…` would not exist there at all and the entrypoint would fall
|
|
653
|
+
* back to proxying a Vite that is not running.
|
|
654
|
+
*/
|
|
655
|
+
const linkRoot = config.staticLinkRoot;
|
|
656
|
+
const linkName = config.staticLinkName;
|
|
657
|
+
const servesThroughLink = Boolean(linkRoot && linkName);
|
|
658
|
+
const portalMount = servesThroughLink ? linkRoot : absStaticDir;
|
|
659
|
+
const portalRoot = servesThroughLink ? `/var/www/portal/${linkName}` : '/var/www/portal';
|
|
304
660
|
// Default upstream host — host.docker.internal for Docker, overridable for bare-metal/cluster
|
|
305
661
|
const upstreamHost = 'host.docker.internal';
|
|
306
|
-
|
|
662
|
+
const spec = applyManagedDefaults({
|
|
307
663
|
name: containerName('gateway'),
|
|
308
664
|
image,
|
|
309
665
|
ports: [{ host: port, container: 80 }],
|
|
310
666
|
environment: {
|
|
311
|
-
// Redis for maintenance mode + future PoW/rate-limit state
|
|
312
|
-
|
|
667
|
+
// Redis for maintenance mode + future PoW/rate-limit state.
|
|
668
|
+
//
|
|
669
|
+
// `redisConfig.host`, not a literal: this took the host as a parameter
|
|
670
|
+
// alongside the port, the db and the password, and then ignored that
|
|
671
|
+
// one field. Three of the four came from the caller and the fourth was
|
|
672
|
+
// hard-coded to the developer's machine, which is why nothing in the
|
|
673
|
+
// signature hinted that the gateway could not reach its Redis anywhere
|
|
674
|
+
// else.
|
|
675
|
+
REDIS_HOST: redisConfig.host,
|
|
313
676
|
REDIS_PORT: String(redisConfig.port),
|
|
314
677
|
REDIS_DB: String(redisDb),
|
|
315
678
|
...(redisConfig.password ? { REDIS_PASSWORD: redisConfig.password } : {}),
|
|
@@ -318,14 +681,24 @@ export function resolveGateway(config, redisConfig, projectRoot) {
|
|
|
318
681
|
UPSTREAM_MAIN_PORT: '3001',
|
|
319
682
|
UPSTREAM_STORAGE_HOST: upstreamHost,
|
|
320
683
|
UPSTREAM_STORAGE_PORT: '3002',
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
684
|
+
UPSTREAM_PRICING_HOST: upstreamHost,
|
|
685
|
+
UPSTREAM_PRICING_PORT: '3003',
|
|
686
|
+
UPSTREAM_PAYMENTS_HOST: upstreamHost,
|
|
687
|
+
UPSTREAM_PAYMENTS_PORT: '3004',
|
|
325
688
|
UPSTREAM_MESSAGING_HOST: upstreamHost,
|
|
326
689
|
UPSTREAM_MESSAGING_PORT: '3005',
|
|
327
690
|
UPSTREAM_MESSAGING_WS_HOST: upstreamHost,
|
|
328
691
|
UPSTREAM_MESSAGING_WS_PORT: '3006',
|
|
692
|
+
UPSTREAM_GEO_HOST: upstreamHost,
|
|
693
|
+
UPSTREAM_GEO_PORT: '3007',
|
|
694
|
+
// Where the entrypoint serves `/` from. `/var/www/portal` unless the
|
|
695
|
+
// node mounted the root, in which case the link inside it — so the
|
|
696
|
+
// gateway is pointed at a new build by a symlink swap and not by a new
|
|
697
|
+
// container.
|
|
698
|
+
PORTAL_ROOT: portalRoot,
|
|
699
|
+
// User-supplied env overrides/additions (e.g. PORTAL_DEV_UPSTREAM). Merged
|
|
700
|
+
// last so config can override a preset default when intended.
|
|
701
|
+
...(config.env ?? {}),
|
|
329
702
|
},
|
|
330
703
|
volumes: [
|
|
331
704
|
// nginx.conf template — rendered by entrypoint via envsubst
|
|
@@ -336,6 +709,13 @@ export function resolveGateway(config, redisConfig, projectRoot) {
|
|
|
336
709
|
{ source: `${absConfigDir}/lua`, target: '/etc/nginx/lua', readonly: true },
|
|
337
710
|
// Maintenance mode HTML page
|
|
338
711
|
{ source: `${absConfigDir}/maintenance.html`, target: '/etc/nginx/html/maintenance.html', readonly: true },
|
|
712
|
+
// The built frontend, when the stack declares one. `/var/www/portal` is
|
|
713
|
+
// the path nginx.conf serves `/` from whenever `PORTAL_DEV_UPSTREAM` is
|
|
714
|
+
// unset, which is every deployment that has no Vite beside it.
|
|
715
|
+
...(portalMount ? [{ source: portalMount, target: '/var/www/portal', readonly: true }] : []),
|
|
716
|
+
// What the stack adds — the onion's unix socket above all, on a
|
|
717
|
+
// `shared:` volume the Tor container mounts too.
|
|
718
|
+
...Object.entries(config.volumes ?? {}).map(([key, vol]) => resolveNamedOrBound('gateway', key, vol)),
|
|
339
719
|
],
|
|
340
720
|
entrypoint: ['/bin/sh', '/docker-entrypoint.sh'],
|
|
341
721
|
healthCheck: {
|
|
@@ -353,7 +733,11 @@ export function resolveGateway(config, redisConfig, projectRoot) {
|
|
|
353
733
|
restart: 'unless-stopped',
|
|
354
734
|
extraHosts: ['host.docker.internal:host-gateway'],
|
|
355
735
|
resources: config.resources,
|
|
356
|
-
};
|
|
736
|
+
});
|
|
737
|
+
const configDigest = mountedConfigDigest(absConfigDir, spec.volumes);
|
|
738
|
+
if (configDigest)
|
|
739
|
+
spec.configDigest = configDigest;
|
|
740
|
+
return spec;
|
|
357
741
|
}
|
|
358
742
|
// =============================================================================
|
|
359
743
|
// Omnitron Admin Console (separate from API gateway)
|
|
@@ -371,17 +755,29 @@ export function resolveOmnitronNginx(options) {
|
|
|
371
755
|
if (webappDist) {
|
|
372
756
|
volumes.push({ source: webappDist, target: '/usr/share/nginx/html', readonly: true });
|
|
373
757
|
}
|
|
374
|
-
return {
|
|
758
|
+
return applyManagedDefaults({
|
|
375
759
|
name: `${CONTAINER_PREFIX}-nginx`,
|
|
376
760
|
image,
|
|
377
|
-
ports: [{ host: port, container: 80 }],
|
|
761
|
+
ports: [{ host: port, container: 80, bindHost: options?.bindHost ?? '127.0.0.1' }],
|
|
378
762
|
environment: {
|
|
379
763
|
OMNITRON_API_HOST: 'host.docker.internal',
|
|
380
764
|
OMNITRON_API_PORT: String(internalPort),
|
|
381
765
|
},
|
|
382
766
|
volumes,
|
|
767
|
+
// Reach the daemon on the host even when we're on a named bridge —
|
|
768
|
+
// wget/curl health probes inside the container need this too.
|
|
769
|
+
extraHosts: ['host.docker.internal:host-gateway'],
|
|
770
|
+
// Use wget (busybox-shipped in nginx:alpine) — `curl` is not in the
|
|
771
|
+
// base image, so the previous CMD-SHELL test was permanently
|
|
772
|
+
// unhealthy on a vanilla alpine nginx until someone bind-mounted curl
|
|
773
|
+
// in. wget is always present.
|
|
774
|
+
//
|
|
775
|
+
// Probe 127.0.0.1 (not `localhost`): musl resolves `localhost` to ::1
|
|
776
|
+
// first, but nginx only `listen 80;` on IPv4, so an IPv6 probe gets
|
|
777
|
+
// ECONNREFUSED and the container is reported permanently unhealthy even
|
|
778
|
+
// though the console is serving fine over IPv4.
|
|
383
779
|
healthCheck: {
|
|
384
|
-
test: ['CMD-SHELL', '
|
|
780
|
+
test: ['CMD-SHELL', 'wget -q --spider http://127.0.0.1/ || exit 1'],
|
|
385
781
|
interval: '10s',
|
|
386
782
|
timeout: '5s',
|
|
387
783
|
retries: 3,
|
|
@@ -392,7 +788,7 @@ export function resolveOmnitronNginx(options) {
|
|
|
392
788
|
'omnitron.internal': 'true',
|
|
393
789
|
},
|
|
394
790
|
restart: 'unless-stopped',
|
|
395
|
-
};
|
|
791
|
+
});
|
|
396
792
|
}
|
|
397
793
|
// =============================================================================
|
|
398
794
|
// Master Resolver
|
|
@@ -410,10 +806,75 @@ export function resolveOmnitronNginx(options) {
|
|
|
410
806
|
* Resolve an InfrastructureConfig into concrete container specs.
|
|
411
807
|
* Uses preset-normalized services map — all services go through resolveServiceRequirement().
|
|
412
808
|
*/
|
|
413
|
-
export function resolveInfrastructure(_config, normalizedServices
|
|
809
|
+
export function resolveInfrastructure(_config, normalizedServices,
|
|
810
|
+
/**
|
|
811
|
+
* Stack overrides — `disabled`, `external`, per-service docker changes.
|
|
812
|
+
*
|
|
813
|
+
* This did not take them, and `resolveAppInfrastructure` was called
|
|
814
|
+
* without them, so `serviceOverrides` was honoured for services an
|
|
815
|
+
* APPLICATION declares and read by nothing for the ones a stack declares.
|
|
816
|
+
* An operator writing `tiles: { disabled: true }` got tiles.
|
|
817
|
+
*
|
|
818
|
+
* Measured on the test server: a stack that disabled the geocoder and the
|
|
819
|
+
* tile server provisioned both — a geocoding database that can reach tens
|
|
820
|
+
* of gigabytes, on a host chosen for a payment system.
|
|
821
|
+
*/
|
|
822
|
+
overrides,
|
|
823
|
+
/**
|
|
824
|
+
* Where a service's config files live on THIS machine, by service name.
|
|
825
|
+
*
|
|
826
|
+
* The gateway is not an ordinary preset container: it needs four bind
|
|
827
|
+
* mounts, an entrypoint and fifteen upstream variables, and `resolveGateway`
|
|
828
|
+
* is the only thing that produces them. On a master they come from the
|
|
829
|
+
* project root; on a node there is no project, so the files are sent over
|
|
830
|
+
* and written locally, and this names where.
|
|
831
|
+
*
|
|
832
|
+
* Without it a node built its gateway through the generic preset path —
|
|
833
|
+
* whose own `defaultDocker` comment says "Volumes and entrypoint configured
|
|
834
|
+
* by resolveGateway" — and got bare openresty: an empty `Mounts` array, a
|
|
835
|
+
* null entrypoint, zero UPSTREAM variables, and an onion serving
|
|
836
|
+
* `Welcome to OpenResty!`.
|
|
837
|
+
*/
|
|
838
|
+
configRoots, gatewayContext) {
|
|
414
839
|
if (!normalizedServices || Object.keys(normalizedServices).length === 0) {
|
|
415
840
|
return [];
|
|
416
841
|
}
|
|
417
|
-
|
|
842
|
+
const gatewayRoot = configRoots?.get('gateway');
|
|
843
|
+
if (!gatewayRoot || !normalizedServices['gateway'] || !gatewayContext) {
|
|
844
|
+
return resolveAppInfrastructure(normalizedServices, overrides, undefined, configRoots);
|
|
845
|
+
}
|
|
846
|
+
// One resolver for the gateway, wherever it runs. The rest go through the
|
|
847
|
+
// generic path, which is right for them — with the node's copies of what
|
|
848
|
+
// they mount from shipped directories (`shipped-config.ts`).
|
|
849
|
+
const { gateway: _gateway, ...rest } = normalizedServices;
|
|
850
|
+
const containers = resolveAppInfrastructure(rest, overrides, undefined, configRoots);
|
|
851
|
+
const port = gatewayHostPort(normalizedServices['gateway'], undefined);
|
|
852
|
+
// The stack's whole gateway block — its env and its volumes as on a master
|
|
853
|
+
// (`gatewayConfigOf`) — with the two paths a node names for itself. This
|
|
854
|
+
// road passed port, configDir and staticDir only: on 2026-09-26 the node
|
|
855
|
+
// built daos/test's gateway without GATEWAY_UNIX_SOCKET and without the
|
|
856
|
+
// shared socket volume, Tor pointed at a socket nobody listened on, and the
|
|
857
|
+
// onion was down for ~11 minutes. f0e19089 had fixed the master's road.
|
|
858
|
+
const { staticDir: _declaredStaticDir, ...declared } = gatewayConfigOf(normalizedServices['gateway']._presetConfig, undefined, port, gatewayContext.redis.db);
|
|
859
|
+
const staticRoot = gatewayContext.staticRoots?.get('gateway');
|
|
860
|
+
const staticLinkRoot = gatewayContext.staticLinkRoots?.get('gateway');
|
|
861
|
+
containers.push(resolveGateway({
|
|
862
|
+
...declared,
|
|
863
|
+
configDir: '.',
|
|
864
|
+
// Absolute: a node names its own copy, not a path relative to a
|
|
865
|
+
// project it does not have.
|
|
866
|
+
...(staticRoot ? { staticDir: staticRoot } : {}),
|
|
867
|
+
// The project and the stack are not parameters here and do not need
|
|
868
|
+
// to be: `setStackLabels` has already put them where every container
|
|
869
|
+
// of this stack reads them, and the link is spelled by the one
|
|
870
|
+
// function that spells it anywhere.
|
|
871
|
+
...(staticLinkRoot
|
|
872
|
+
? {
|
|
873
|
+
staticLinkRoot,
|
|
874
|
+
staticLinkName: gatewayStaticLinkName(STACK_LABELS['omnitron.project'] ?? '', STACK_LABELS['omnitron.stack'] ?? ''),
|
|
875
|
+
}
|
|
876
|
+
: {}),
|
|
877
|
+
}, gatewayContext.redis, gatewayRoot));
|
|
878
|
+
return containers;
|
|
418
879
|
}
|
|
419
880
|
//# sourceMappingURL=service-resolver.js.map
|