anti
13ea916943
feat(workers): add start + start-all endpoints (systemd supervisor)
...
POST /api/v1/workers/{name}/start — 202 on acceptance, 404 unknown
worker, 503 if the unit file is not installed, 502 if systemctl
returns non-zero (stderr snippet in detail, full stack logged).
Admin only.
POST /api/v1/workers/start-all — best-effort: walks the worker list
in dependency order (bus → api → data-plane), skips already-active
and uninstalled units, aggregates outcomes into
{started, already_running, failed[]}. Returns 200 even on partial
failure; the caller reads the three lists.
Both endpoints delegate to the systemd_control helper, so the attack
surface for "what gets executed" is locked to `decnet-<validated-name>
.service` at two layers (router KNOWN_WORKERS + helper regex).
2026-04-22 14:12:29 -04:00
..
2026-04-22 14:12:29 -04:00
2026-04-22 14:10:39 -04:00
2026-04-21 16:57:21 -04:00
2026-04-21 16:53:03 -04:00
2026-04-19 23:50:53 -04:00
2026-04-20 13:14:48 -04:00
2026-04-17 13:20:05 -04:00
2026-04-21 16:47:55 -04:00
2026-04-21 16:54:40 -04:00
2026-04-22 09:24:28 -04:00
2026-04-21 16:47:55 -04:00
2026-04-20 01:26:56 -04:00
2026-04-21 01:41:30 -04:00
2026-04-21 22:13:44 -04:00
2026-04-19 19:07:24 -04:00
2026-04-22 14:08:35 -04:00
2026-04-03 23:07:44 -03:00
2026-04-15 23:46:46 -04:00
2026-04-19 23:50:53 -04:00
2026-04-17 14:49:13 -04:00
2026-04-21 23:11:40 -04:00
2026-04-12 00:26:22 -04:00
2026-04-15 13:58:12 -04:00
2026-04-17 14:52:22 -04:00
2026-04-19 23:50:53 -04:00
2026-04-21 23:06:39 -04:00
2026-04-15 18:02:52 -04:00
2026-04-12 00:26:22 -04:00
2026-04-19 22:42:52 -04:00
2026-04-14 15:02:34 -04:00
2026-04-19 23:50:53 -04:00
2026-04-15 22:57:03 -04:00
2026-04-21 10:23:10 -04:00
2026-04-12 00:34:45 -04:00
2026-04-19 05:46:08 -04:00
2026-04-13 01:43:52 -04:00
2026-04-21 19:37:35 -04:00
2026-04-10 01:50:08 -04:00
2026-04-09 02:31:14 -04:00
2026-04-09 02:31:14 -04:00
2026-04-21 19:35:05 -04:00
2026-04-17 13:35:43 -04:00
2026-04-20 02:26:54 -04:00
2026-04-19 03:17:17 -04:00
2026-04-04 04:31:00 -03:00
2026-04-13 23:20:37 -04:00
2026-04-14 15:02:34 -04:00
2026-04-13 01:43:52 -04:00
2026-04-17 15:05:18 -04:00
2026-04-17 16:37:34 -04:00
2026-04-04 17:36:16 -03:00
2026-04-09 02:31:14 -04:00
2026-04-08 01:04:59 -04:00
2026-04-17 14:01:36 -04:00
2026-04-10 00:14:14 -04:00
2026-04-10 01:50:08 -04:00
2026-04-13 07:39:01 -04:00
2026-04-20 02:18:11 -04:00
2026-04-21 19:31:31 -04:00
2026-04-15 12:51:33 -04:00
2026-04-15 12:59:54 -04:00
2026-04-17 13:13:36 -04:00
2026-04-19 19:59:06 -04:00
2026-04-12 00:26:22 -04:00
2026-04-17 13:39:09 -04:00
2026-04-14 12:53:55 -04:00
2026-04-14 12:53:55 -04:00
2026-04-14 12:22:20 -04:00
2026-04-14 12:53:55 -04:00
2026-04-17 22:57:53 -04:00
2026-04-15 17:36:40 -04:00
2026-04-17 19:09:15 -04:00
2026-04-17 16:37:34 -04:00
2026-04-18 05:36:48 -04:00
2026-04-12 07:48:17 -04:00
2026-04-19 23:50:53 -04:00
2026-04-15 12:51:35 -04:00
2026-04-15 12:51:35 -04:00
2026-04-17 22:57:53 -04:00
2026-04-14 15:02:34 -04:00
2026-04-19 23:50:53 -04:00
2026-04-18 05:34:50 -04:00
2026-04-18 05:34:50 -04:00
2026-04-17 22:57:53 -04:00
2026-04-15 23:23:13 -04:00
2026-04-13 20:22:08 -04:00