@omnitron-dev/omnitron 0.1.2 → 0.2.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/cli/omnitron.js +32 -1
- package/dist/cli/omnitron.js.map +1 -1
- package/dist/cluster/leader-election.d.ts.map +1 -1
- package/dist/cluster/leader-election.js +0 -2
- package/dist/cluster/leader-election.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +10 -2
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +10 -2
- package/dist/commands/health.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 +78 -0
- package/dist/commands/inspect-graph.js.map +1 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +10 -2
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +11 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +17 -3
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +10 -2
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/monit.d.ts.map +1 -1
- package/dist/commands/monit.js +9 -0
- package/dist/commands/monit.js.map +1 -1
- package/dist/commands/output.d.ts +35 -0
- package/dist/commands/output.d.ts.map +1 -0
- package/dist/commands/output.js +63 -0
- package/dist/commands/output.js.map +1 -0
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +22 -7
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +17 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tor.d.ts +13 -0
- package/dist/commands/tor.d.ts.map +1 -0
- package/dist/commands/tor.js +100 -0
- package/dist/commands/tor.js.map +1 -0
- package/dist/commands/up.js +1 -1
- package/dist/commands/up.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +29 -5
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +14 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/daemon-client.d.ts +14 -0
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +4 -0
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon-entry.js +17 -23
- package/dist/daemon/daemon-entry.js.map +1 -1
- package/dist/daemon/daemon.d.ts +2 -0
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +118 -7
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.module.d.ts.map +1 -1
- package/dist/daemon/daemon.module.js +41 -14
- package/dist/daemon/daemon.module.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +19 -0
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +14 -0
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/pid-manager.d.ts +55 -4
- package/dist/daemon/pid-manager.d.ts.map +1 -1
- package/dist/daemon/pid-manager.js +123 -16
- package/dist/daemon/pid-manager.js.map +1 -1
- package/dist/daemon/state-store.d.ts.map +1 -1
- package/dist/daemon/state-store.js +43 -1
- package/dist/daemon/state-store.js.map +1 -1
- package/dist/infrastructure/container-runtime.d.ts +10 -0
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +111 -36
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/infrastructure.service.d.ts +41 -0
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +157 -8
- package/dist/infrastructure/infrastructure.service.js.map +1 -1
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts +72 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -0
- package/dist/infrastructure/phantom-endpoint-janitor.js +149 -0
- package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -0
- 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/postgres.d.ts.map +1 -1
- package/dist/infrastructure/presets/postgres.js +9 -3
- 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 +10 -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 +12 -0
- package/dist/infrastructure/presets/registry.js.map +1 -1
- package/dist/infrastructure/presets/tor.d.ts +74 -0
- package/dist/infrastructure/presets/tor.d.ts.map +1 -0
- package/dist/infrastructure/presets/tor.js +176 -0
- package/dist/infrastructure/presets/tor.js.map +1 -0
- package/dist/infrastructure/service-resolver.d.ts +31 -0
- package/dist/infrastructure/service-resolver.d.ts.map +1 -1
- package/dist/infrastructure/service-resolver.js +60 -9
- package/dist/infrastructure/service-resolver.js.map +1 -1
- package/dist/infrastructure/stack-infra-manager.d.ts +1 -1
- package/dist/infrastructure/stack-infra-manager.js +1 -1
- package/dist/infrastructure/types.d.ts +17 -0
- package/dist/infrastructure/types.d.ts.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 +13 -1
- package/dist/orchestrator/app-handle.d.ts.map +1 -1
- package/dist/orchestrator/app-handle.js +12 -0
- package/dist/orchestrator/app-handle.js.map +1 -1
- package/dist/orchestrator/bootstrap-process.d.ts +49 -0
- package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-process.js +167 -0
- 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/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +60 -38
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +176 -3
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +587 -56
- package/dist/orchestrator/orchestrator.service.js.map +1 -1
- package/dist/orchestrator/process-janitor.d.ts +153 -0
- package/dist/orchestrator/process-janitor.d.ts.map +1 -0
- package/dist/orchestrator/process-janitor.js +279 -0
- package/dist/orchestrator/process-janitor.js.map +1 -0
- package/dist/project/config-resolver.d.ts.map +1 -1
- package/dist/project/config-resolver.js +38 -12
- package/dist/project/config-resolver.js.map +1 -1
- package/dist/project/registry.d.ts +1 -0
- package/dist/project/registry.d.ts.map +1 -1
- package/dist/project/registry.js +30 -0
- package/dist/project/registry.js.map +1 -1
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +9 -2
- package/dist/services/auth.service.js.map +1 -1
- 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-manager.service.js +1 -1
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +15 -0
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +53 -2
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +4 -0
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +9 -0
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +9 -0
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +148 -21
- package/dist/services/project.service.js.map +1 -1
- package/dist/shared/dto/project.d.ts +1 -1
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/services.d.ts +24 -0
- package/dist/shared/dto/services.d.ts.map +1 -1
- package/dist/workers/health-monitor.service.d.ts.map +1 -1
- package/dist/workers/health-monitor.service.js +4 -1
- package/dist/workers/health-monitor.service.js.map +1 -1
- package/dist/workers/types.d.ts +3 -0
- package/dist/workers/types.d.ts.map +1 -1
- package/package.json +19 -18
- package/webapp/dist/assets/Badge-D2ZBP5iK.js +1 -0
- package/webapp/dist/assets/Card-vO88g06B.js +1 -0
- package/webapp/dist/assets/CardActions-C9h7Q2wW.js +1 -0
- package/webapp/dist/assets/CardContent-BA_Xmmhk.js +1 -0
- package/webapp/dist/assets/CardHeader-ceIs__6x.js +1 -0
- package/webapp/dist/assets/Chip-Ckk0xUhK.js +1 -0
- package/webapp/dist/assets/DialogActions-BhHM7hov.js +1 -0
- package/webapp/dist/assets/DialogContentText-BT2JQRmK.js +1 -0
- package/webapp/dist/assets/FormControlLabel-CcQByVS8.js +1 -0
- package/webapp/dist/assets/Grid-14PETRQW.js +1 -0
- package/webapp/dist/assets/InputAdornment-B8aHIsQ7.js +1 -0
- package/webapp/dist/assets/Skeleton-B74-Ds6O.js +37 -0
- package/webapp/dist/assets/Switch-DvWD2wh4.js +1 -0
- package/webapp/dist/assets/SwitchBase-CDU4nY8O.js +1 -0
- package/webapp/dist/assets/Tab-DcCOYYp5.js +1 -0
- package/webapp/dist/assets/TableContainer-CzTh4mu-.js +1 -0
- package/webapp/dist/assets/TableRow-BySEreZR.js +2 -0
- package/webapp/dist/assets/TextField-BLf-BHz2.js +1 -0
- package/webapp/dist/assets/alerts-DnRbT41C.js +1 -0
- package/webapp/dist/assets/apps-CdR0VH2d.js +1 -0
- package/webapp/dist/assets/chunk-DtcAfS_W.js +1 -0
- package/webapp/dist/assets/client-DU8I_lDc.js +2 -0
- package/webapp/dist/assets/containers-Dw-rRXV1.js +1 -0
- package/webapp/dist/assets/dashboard-CzgB0uZz.js +1 -0
- package/webapp/dist/assets/dashboard-builder-DsA0yg33.js +1 -0
- package/webapp/dist/assets/deployments-DtQAoIcQ.js +1 -0
- package/webapp/dist/assets/detail-BJR-G7JG.js +1 -0
- package/webapp/dist/assets/detail-nlCeSltl.js +8 -0
- package/webapp/dist/assets/index-ByQDwp2r.js +566 -0
- package/webapp/dist/assets/isMuiElement-DwF2naaF.js +1 -0
- package/webapp/dist/assets/logs-Kn8o4H7k.js +11 -0
- package/webapp/dist/assets/metrics-DN8Zu5wT.js +2 -0
- package/webapp/dist/assets/nodes-Bgch7AtN.js +7 -0
- package/webapp/dist/assets/pipelines-Cry3qm-S.js +4 -0
- package/webapp/dist/assets/popper-BJFSj6rc.js +1 -0
- package/webapp/dist/assets/preload-helper-DSXbuxSR.js +1 -0
- package/webapp/dist/assets/projects-Dym2GI1U.js +1 -0
- package/webapp/dist/assets/react-apexcharts.esm-CSGK5Cxn.js +958 -0
- package/webapp/dist/assets/react-apexcharts.esm-DEAWOwx5.js +1003 -0
- package/webapp/dist/assets/settings-va3zTcow.js +1 -0
- package/webapp/dist/assets/sign-in-ik35umbp.js +1 -0
- package/webapp/dist/assets/stacks-CVFOnxbF.js +1 -0
- package/webapp/dist/assets/system-info-npIXAjX2.js +1 -0
- package/webapp/dist/assets/topology-bDe70vLs.js +12 -0
- package/webapp/dist/assets/traces-DIIcT8DF.js +1 -0
- package/webapp/dist/assets/use-stack-context-DHLwZv1r.js +1 -0
- package/webapp/dist/index.html +5 -6
- 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/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/icons-ynIWYfBP.js +0 -3
- 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/traces-DVXyb-4m.js +0 -1
- package/webapp/dist/assets/use-stack-context-CbE8fxBA.js +0 -1
- /package/webapp/dist/assets/{constants-DqFQJ27U.js → constants-BgnT-Xdy.js} +0 -0
- /package/webapp/dist/assets/{formatters-J3Xqn6BQ.js → formatters-Do41SRmE.js} +0 -0
- /package/webapp/dist/assets/{fs-uP8eiZAR.js → fs-CgZLtHiQ.js} +0 -0
|
@@ -205,13 +205,26 @@ export class PipelineService {
|
|
|
205
205
|
this.activeRuns.delete(runId);
|
|
206
206
|
this.logger.info({ runId, status: overallStatus }, 'Pipeline execution completed');
|
|
207
207
|
}
|
|
208
|
-
async executeStep(step,
|
|
208
|
+
async executeStep(step, params, _xec, signal) {
|
|
209
209
|
const start = Date.now();
|
|
210
|
+
// Evaluate step condition before running — skip if condition is false
|
|
211
|
+
if (step.condition) {
|
|
212
|
+
const conditionMet = this.evaluateCondition(step.condition, params ?? {});
|
|
213
|
+
if (!conditionMet) {
|
|
214
|
+
this.logger.debug({ step: step.name, condition: step.condition }, 'Step skipped — condition not met');
|
|
215
|
+
return { name: step.name, status: 'skipped', duration: 0 };
|
|
216
|
+
}
|
|
217
|
+
}
|
|
210
218
|
const timeout = step.timeout ?? 300_000; // 5 min default
|
|
211
219
|
const maxRetries = step.retries ?? 0;
|
|
220
|
+
// Interpolate {{param}} placeholders in the command and env values
|
|
221
|
+
const command = this.interpolateParams(step.run, params ?? {});
|
|
222
|
+
const env = step.env
|
|
223
|
+
? Object.fromEntries(Object.entries(step.env).map(([k, v]) => [k, this.interpolateParams(v, params ?? {})]))
|
|
224
|
+
: undefined;
|
|
212
225
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
213
226
|
try {
|
|
214
|
-
const output = await this.runShellCommand(
|
|
227
|
+
const output = await this.runShellCommand(command, env, timeout, signal);
|
|
215
228
|
return {
|
|
216
229
|
name: step.name,
|
|
217
230
|
status: 'success',
|
|
@@ -234,6 +247,44 @@ export class PipelineService {
|
|
|
234
247
|
// Should not reach here
|
|
235
248
|
return { name: step.name, status: 'failed', duration: Date.now() - start, error: 'Exhausted retries' };
|
|
236
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Substitute {{paramName}} placeholders in a string with values from params.
|
|
252
|
+
* Unknown placeholders are left as-is so they surface clearly in output.
|
|
253
|
+
*/
|
|
254
|
+
interpolateParams(template, params) {
|
|
255
|
+
return template.replace(/\{\{(\w+)\}\}/g, (match, key) => {
|
|
256
|
+
const val = params[key];
|
|
257
|
+
if (val === undefined || val === null)
|
|
258
|
+
return match;
|
|
259
|
+
return String(val);
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Evaluate a simple step condition expression against pipeline params.
|
|
264
|
+
*
|
|
265
|
+
* Supported forms:
|
|
266
|
+
* params.key == 'value' → string equality
|
|
267
|
+
* params.key != 'value' → string inequality
|
|
268
|
+
* params.key → truthy check
|
|
269
|
+
* !params.key → falsy check
|
|
270
|
+
*/
|
|
271
|
+
evaluateCondition(condition, params) {
|
|
272
|
+
const eqMatch = condition.match(/^params\.(\w+)\s*==\s*['"]([^'"]*)['"]\s*$/);
|
|
273
|
+
if (eqMatch)
|
|
274
|
+
return String(params[eqMatch[1]] ?? '') === eqMatch[2];
|
|
275
|
+
const neqMatch = condition.match(/^params\.(\w+)\s*!=\s*['"]([^'"]*)['"]\s*$/);
|
|
276
|
+
if (neqMatch)
|
|
277
|
+
return String(params[neqMatch[1]] ?? '') !== neqMatch[2];
|
|
278
|
+
const notMatch = condition.match(/^!\s*params\.(\w+)\s*$/);
|
|
279
|
+
if (notMatch)
|
|
280
|
+
return !params[notMatch[1]];
|
|
281
|
+
const keyMatch = condition.match(/^params\.(\w+)\s*$/);
|
|
282
|
+
if (keyMatch)
|
|
283
|
+
return Boolean(params[keyMatch[1]]);
|
|
284
|
+
// Unknown syntax — log and allow step to run (fail-open for forward compatibility)
|
|
285
|
+
this.logger.warn({ condition }, 'Pipeline: unrecognized condition syntax — step will run');
|
|
286
|
+
return true;
|
|
287
|
+
}
|
|
237
288
|
async runShellCommand(command, env, timeout = 300_000, signal) {
|
|
238
289
|
const { execFile } = await import('node:child_process');
|
|
239
290
|
const { promisify } = await import('node:util');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.service.js","sourceRoot":"","sources":["../../src/services/pipeline.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.service.js","sourceRoot":"","sources":["../../src/services/pipeline.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.rpc-service.d.ts","sourceRoot":"","sources":["../../src/services/project.rpc-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,qBACa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAOrD,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAKvC,UAAU,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAKzD,gBAAgB,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAS1E,UAAU,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAKvE,aAAa,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAUpE,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAK5D,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAKvE,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrF;;;OAGG;IAEG,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,eAAe,EAAE,CAAC;IAqBxG,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAKzE,SAAS,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IASxE,WAAW,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;QACrC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKjB,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAI3F"}
|
|
1
|
+
{"version":3,"file":"project.rpc-service.d.ts","sourceRoot":"","sources":["../../src/services/project.rpc-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,qBACa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAOrD,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAKvC,UAAU,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAKzD,gBAAgB,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAS1E,UAAU,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAKvE,aAAa,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAK3E,aAAa,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAUpE,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAK5D,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAKvE,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrF;;;OAGG;IAEG,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,eAAe,EAAE,CAAC;IAqBxG,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAKzE,SAAS,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IASxE,WAAW,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;QACrC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKjB,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAI3F"}
|
|
@@ -43,6 +43,9 @@ let ProjectRpcService = class ProjectRpcService {
|
|
|
43
43
|
async addProject(data) {
|
|
44
44
|
return this.projectService.addProject(data.name, data.path);
|
|
45
45
|
}
|
|
46
|
+
async updateProject(data) {
|
|
47
|
+
return this.projectService.updateProject(data.name, data.path ? { path: data.path } : {});
|
|
48
|
+
}
|
|
46
49
|
async removeProject(data) {
|
|
47
50
|
this.projectService.removeProject(data.name);
|
|
48
51
|
return { success: true };
|
|
@@ -122,6 +125,12 @@ __decorate([
|
|
|
122
125
|
__metadata("design:paramtypes", [Object]),
|
|
123
126
|
__metadata("design:returntype", Promise)
|
|
124
127
|
], ProjectRpcService.prototype, "addProject", null);
|
|
128
|
+
__decorate([
|
|
129
|
+
Public({ auth: { roles: ADMIN_ROLES } }),
|
|
130
|
+
__metadata("design:type", Function),
|
|
131
|
+
__metadata("design:paramtypes", [Object]),
|
|
132
|
+
__metadata("design:returntype", Promise)
|
|
133
|
+
], ProjectRpcService.prototype, "updateProject", null);
|
|
125
134
|
__decorate([
|
|
126
135
|
Public({ auth: { roles: ADMIN_ROLES } }),
|
|
127
136
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.rpc-service.js","sourceRoot":"","sources":["../../src/services/project.rpc-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project.rpc-service.js","sourceRoot":"","sources":["../../src/services/project.rpc-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,9 @@ export declare class ProjectService extends EventEmitter {
|
|
|
44
44
|
listProjects(): IProjectInfo[];
|
|
45
45
|
getProject(name: string): IProjectInfo;
|
|
46
46
|
addProject(name: string, projectPath: string): IProjectInfo;
|
|
47
|
+
updateProject(name: string, data: {
|
|
48
|
+
path?: string;
|
|
49
|
+
}): IProjectInfo;
|
|
47
50
|
removeProject(name: string): void;
|
|
48
51
|
scanRequirements(projectName: string): Promise<IProjectRequirements>;
|
|
49
52
|
createStack(project: string, input: {
|
|
@@ -108,6 +111,12 @@ export declare class ProjectService extends EventEmitter {
|
|
|
108
111
|
* localhost:{port}/{dbName} with postgres:postgres — matching the stack's provisioned postgres.
|
|
109
112
|
*/
|
|
110
113
|
private runStackMigrations;
|
|
114
|
+
/**
|
|
115
|
+
* Block until a postgres instance accepts connections, with bounded retries.
|
|
116
|
+
* Used before running migrations to avoid ECONNREFUSED on freshly-provisioned
|
|
117
|
+
* containers.
|
|
118
|
+
*/
|
|
119
|
+
private waitForPostgres;
|
|
111
120
|
/**
|
|
112
121
|
* Resolve stacks from config + user stacks.
|
|
113
122
|
* User-created stacks (from omnitron.stacks.json) are merged with config stacks.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.service.d.ts","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project.service.d.ts","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,28 @@ export class ProjectService extends EventEmitter {
|
|
|
79
79
|
this.emit('project:added', name, projectPath);
|
|
80
80
|
return this.toProjectInfo(project);
|
|
81
81
|
}
|
|
82
|
+
updateProject(name, data) {
|
|
83
|
+
const project = this.registry.get(name);
|
|
84
|
+
if (!project)
|
|
85
|
+
throw new Error(`Project '${name}' not found`);
|
|
86
|
+
if (data.path) {
|
|
87
|
+
// Invalidate cached config so next access reloads from new path
|
|
88
|
+
this.configRegistry.delete(name);
|
|
89
|
+
const updated = this.registry.updatePath(name, data.path);
|
|
90
|
+
// Registry may have renamed the project (basename of new path)
|
|
91
|
+
if (updated.name !== name) {
|
|
92
|
+
this.configRegistry.delete(updated.name);
|
|
93
|
+
this.logger.info({ oldName: name, newName: updated.name, path: data.path }, 'Project renamed and path updated');
|
|
94
|
+
this.emit('project:renamed', name, updated.name);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this.logger.info({ project: name, path: data.path }, 'Project path updated');
|
|
98
|
+
}
|
|
99
|
+
this.emit('project:updated', updated.name, data);
|
|
100
|
+
return this.toProjectInfo(updated);
|
|
101
|
+
}
|
|
102
|
+
return this.toProjectInfo(project);
|
|
103
|
+
}
|
|
82
104
|
removeProject(name) {
|
|
83
105
|
// Stop all running stacks for this project first
|
|
84
106
|
const runningStacks = this.getRunningStacks(name);
|
|
@@ -720,7 +742,35 @@ export class ProjectService extends EventEmitter {
|
|
|
720
742
|
state.infraService = infraService;
|
|
721
743
|
}
|
|
722
744
|
catch (err) {
|
|
723
|
-
|
|
745
|
+
const reason = err.message;
|
|
746
|
+
this.logger.error({ project: projectName, stack: stackName, error: reason }, 'Failed to provision stack infrastructure');
|
|
747
|
+
// Fail-fast by default: apps almost always depend on the
|
|
748
|
+
// stack-provisioned infrastructure (postgres, redis, …) and starting
|
|
749
|
+
// them on top of broken infra produces cascading misleading errors
|
|
750
|
+
// ("Redis client connection timed out", "Container not found", …).
|
|
751
|
+
// Bail out with a clear, structured error so the operator sees the
|
|
752
|
+
// real cause first.
|
|
753
|
+
//
|
|
754
|
+
// Edge case: stacks that intentionally talk to *external* infra and
|
|
755
|
+
// declare nothing in their `infrastructure` section never reach this
|
|
756
|
+
// branch (`effectiveInfra` is falsy). For deliberate degraded-mode
|
|
757
|
+
// operation the stack settings can opt in via
|
|
758
|
+
// `settings.allowDegradedInfra: true` (the field is namespaced under
|
|
759
|
+
// settings to remain forward-compatible with stack schema).
|
|
760
|
+
const allowDegraded = stackConfig.settings?.['allowDegradedInfra'] === true;
|
|
761
|
+
if (!allowDegraded) {
|
|
762
|
+
const cleanMsg = `Stack '${projectName}/${stackName}' infrastructure provisioning failed:\n` +
|
|
763
|
+
` ${reason}\n\n` +
|
|
764
|
+
`Apps were not started. Fix the underlying infrastructure issue (Docker socket, ` +
|
|
765
|
+
`image pull, port conflict, …) and rerun 'omnitron stack start ${projectName} ${stackName}'.\n` +
|
|
766
|
+
`\nIf you intentionally run apps against external infrastructure, set ` +
|
|
767
|
+
`'settings.allowDegradedInfra: true' in your stack config.`;
|
|
768
|
+
const throwable = new Error(cleanMsg);
|
|
769
|
+
throwable.code = 'INFRA_PROVISIONING_FAILED';
|
|
770
|
+
throwable.cause = err;
|
|
771
|
+
throw throwable;
|
|
772
|
+
}
|
|
773
|
+
this.logger.warn({ project: projectName, stack: stackName }, 'allowDegradedInfra=true — proceeding with app start despite infra failure');
|
|
724
774
|
}
|
|
725
775
|
}
|
|
726
776
|
// 2b. Run database migrations for apps that have migrate: true
|
|
@@ -903,6 +953,13 @@ export class ProjectService extends EventEmitter {
|
|
|
903
953
|
const port = pgConfig.port ?? 5432;
|
|
904
954
|
const user = pgConfig.user ?? 'postgres';
|
|
905
955
|
const password = typeof pgConfig.password === 'string' ? pgConfig.password : 'postgres';
|
|
956
|
+
// Wait for postgres to actually accept connections before running ANY migrations.
|
|
957
|
+
// Containers can be reported "running" by Docker before pg_isready would
|
|
958
|
+
// pass, especially right after a fresh provision. Without this we hit
|
|
959
|
+
// ECONNREFUSED on first migration and fail-fast bubbles into the user's
|
|
960
|
+
// face. The probe is cheap (a short TCP connect + readiness query) and
|
|
961
|
+
// bounded.
|
|
962
|
+
await this.waitForPostgres('localhost', port, user, password, 60_000);
|
|
906
963
|
for (const [dbName, dbConfig] of Object.entries(pgConfig.databases)) {
|
|
907
964
|
// Only run if migrate flag is set AND a matching app exists
|
|
908
965
|
if (!dbConfig || typeof dbConfig !== 'object' || !dbConfig.migrate)
|
|
@@ -918,30 +975,100 @@ export class ProjectService extends EventEmitter {
|
|
|
918
975
|
continue;
|
|
919
976
|
}
|
|
920
977
|
this.logger.info({ project: projectName, stack: stackName, database: dbName }, 'Running database migrations');
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
978
|
+
// Retry policy: up to 5 attempts with exponential backoff (1s, 2s, 4s, 8s, 16s).
|
|
979
|
+
// Migration tools are typically idempotent, so retrying after a transient
|
|
980
|
+
// ECONNREFUSED / role-creation race is safe.
|
|
981
|
+
const maxAttempts = 5;
|
|
982
|
+
let attempt = 0;
|
|
983
|
+
let lastErr = null;
|
|
984
|
+
while (attempt < maxAttempts) {
|
|
985
|
+
attempt++;
|
|
986
|
+
try {
|
|
987
|
+
const { execFileSync } = await import('node:child_process');
|
|
988
|
+
execFileSync(process.execPath, ['--import', 'tsx/esm', migrateScript], {
|
|
989
|
+
cwd: path.join(projectPath, 'apps', dbName),
|
|
990
|
+
env: {
|
|
991
|
+
...process.env,
|
|
992
|
+
DATABASE_URL: `postgresql://${user}:${password}@localhost:${port}/${dbName}`,
|
|
993
|
+
// App-specific env vars (various naming conventions)
|
|
994
|
+
[`${dbName.toUpperCase()}__DATABASE__HOST`]: 'localhost',
|
|
995
|
+
[`${dbName.toUpperCase()}__DATABASE__PORT`]: String(port),
|
|
996
|
+
[`${dbName.toUpperCase()}__DATABASE__DATABASE`]: dbName,
|
|
997
|
+
[`${dbName.toUpperCase()}__DATABASE__USER`]: user,
|
|
998
|
+
[`${dbName.toUpperCase()}__DATABASE__PASSWORD`]: password,
|
|
999
|
+
},
|
|
1000
|
+
timeout: 60_000,
|
|
1001
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
1002
|
+
});
|
|
1003
|
+
this.logger.info({ database: dbName, attempts: attempt }, 'Migrations applied');
|
|
1004
|
+
lastErr = null;
|
|
1005
|
+
break;
|
|
1006
|
+
}
|
|
1007
|
+
catch (err) {
|
|
1008
|
+
lastErr = err;
|
|
1009
|
+
const stderr = err.stderr?.toString?.()?.trim?.() ?? '';
|
|
1010
|
+
// Only retry on transient connection errors. Schema / SQL errors
|
|
1011
|
+
// are deterministic and won't go away by trying again.
|
|
1012
|
+
const transient = /ECONNREFUSED|ECONNRESET|ENOTCONN|terminat(ing|ed)|server closing|kysely.*Connection/i.test(stderr) ||
|
|
1013
|
+
/ECONNREFUSED|ECONNRESET/i.test(err.message ?? '');
|
|
1014
|
+
if (!transient || attempt >= maxAttempts) {
|
|
1015
|
+
this.logger.error({ database: dbName, attempt, error: err.message, stderr }, 'Migration failed — app may fail to start');
|
|
1016
|
+
break;
|
|
1017
|
+
}
|
|
1018
|
+
const delayMs = Math.min(1000 * 2 ** (attempt - 1), 16_000);
|
|
1019
|
+
this.logger.warn({ database: dbName, attempt, nextRetryInMs: delayMs, error: err.message }, 'Migration transient failure — retrying');
|
|
1020
|
+
await new Promise((r) => setTimeout(r, delayMs));
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
if (lastErr) {
|
|
1024
|
+
// Already logged above; intentionally do NOT throw here so other
|
|
1025
|
+
// databases can still attempt their migrations.
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
/**
|
|
1030
|
+
* Block until a postgres instance accepts connections, with bounded retries.
|
|
1031
|
+
* Used before running migrations to avoid ECONNREFUSED on freshly-provisioned
|
|
1032
|
+
* containers.
|
|
1033
|
+
*/
|
|
1034
|
+
async waitForPostgres(host, port, user, password, timeoutMs) {
|
|
1035
|
+
const deadline = Date.now() + timeoutMs;
|
|
1036
|
+
const { Client } = await import('pg').catch(() => ({ Client: null }));
|
|
1037
|
+
if (!Client) {
|
|
1038
|
+
// pg not available in this build — fall back to a TCP connect probe.
|
|
1039
|
+
const net = await import('node:net');
|
|
1040
|
+
while (Date.now() < deadline) {
|
|
1041
|
+
const ok = await new Promise((resolve) => {
|
|
1042
|
+
const sock = net.createConnection({ host, port }, () => {
|
|
1043
|
+
sock.end();
|
|
1044
|
+
resolve(true);
|
|
1045
|
+
});
|
|
1046
|
+
sock.once('error', () => resolve(false));
|
|
1047
|
+
sock.setTimeout(2_000, () => {
|
|
1048
|
+
sock.destroy();
|
|
1049
|
+
resolve(false);
|
|
1050
|
+
});
|
|
937
1051
|
});
|
|
938
|
-
|
|
1052
|
+
if (ok)
|
|
1053
|
+
return;
|
|
1054
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
939
1055
|
}
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
1056
|
+
throw new Error(`Postgres at ${host}:${port} not reachable after ${timeoutMs}ms`);
|
|
1057
|
+
}
|
|
1058
|
+
while (Date.now() < deadline) {
|
|
1059
|
+
const client = new Client({ host, port, user, password, database: 'postgres', connectionTimeoutMillis: 2_000 });
|
|
1060
|
+
try {
|
|
1061
|
+
await client.connect();
|
|
1062
|
+
await client.query('SELECT 1');
|
|
1063
|
+
await client.end().catch(() => { });
|
|
1064
|
+
return;
|
|
1065
|
+
}
|
|
1066
|
+
catch {
|
|
1067
|
+
await client.end().catch(() => { });
|
|
1068
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
943
1069
|
}
|
|
944
1070
|
}
|
|
1071
|
+
throw new Error(`Postgres at ${host}:${port} did not become ready within ${timeoutMs}ms`);
|
|
945
1072
|
}
|
|
946
1073
|
/**
|
|
947
1074
|
* Resolve stacks from config + user stacks.
|