Commit Graph

59 Commits

Author SHA1 Message Date
Yota Hamada
9841e6ed70
feat(api): add singleton flag to enqueue API (#1483)
* **New Features**
* Added a singleton flag to DAG enqueue requests to prevent duplicate
runs when a DAG is already running or queued.

* **API Changes**
* Enqueue endpoint now can return HTTP 409 Conflict for singleton-mode
conflicts.
  * Added more specific authentication error codes.

* **Behavioral Changes**
* Enqueue/retry paths no longer perform prior maxActiveRuns queue-length
enforcement unless singleton is used.
* Queue concurrency now honors DAG-configured max active runs for
DAG-based queues.

* **Tests**
* Added integration test validating max-active-runs behavior for
DAG-based queues.
2025-12-14 19:05:53 +09:00
Yota Hamada
5e7ce83afa
fix(auth): allow API token auth to work alongside builtin mode (#1480)
* **New Features**
* JWT login/usage added; multiple auth methods (JWT, API token, Basic,
OIDC) can be enabled and used together.
* New auth-related API error codes: auth.unauthorized,
auth.token_invalid, auth.forbidden.
* **Behavior**
* Built-in auth mode ignores Basic auth (warning exposed); health and
login endpoints remain public.
* App clears stale built-in tokens at startup; Authorization headers
applied reliably.
* **Tests**
* Extensive auth tests and improved test helpers for auth flows and
headers.
* **Chores**
  * Persisted users path added to test configs.
2025-12-14 17:24:48 +09:00
Yota Hamada
d4b8484ca8
feat(all): implement builtin user management feature (#1463)
* **New Features**
* Built-in RBAC auth with JWT login, token handling, and user lifecycle
APIs (list/create/view/update/delete, reset/change password).
* **UI**
* Login flow, protected routes, Users management page,
change/reset-password modals, user menu and role-aware navigation.
* **Behavior**
* v1 routes disabled when auth enabled; runtime config exposes authMode
and usersDir; client persists auth token.
* **Documentation**
  * Added builtin auth docs and new env/config options.
* **Tests**
* Extensive tests for auth service, file-backed store, and API handlers.
2025-12-09 18:09:11 +09:00
Yota Hamada
b4c857d7b4
feat(all): Resource monitoring for CPU, memory, disk (#1461)
* **New Features**
* Resource history API (GET /services/resources/history) returning CPU,
memory, disk and load time series; supports duration and remote-node
query params.
* Background resource monitoring service with in-memory retention and
configurable sampling interval.
* Resource Usage charts added to System Status with loading/error
states, current-value display, auto-refresh and last-updated timestamp.

* **Chores**
* Monitoring config defaults (retention 24h, interval 5s), config
parsing and environment bindings.
  * Server startup integrates resource service lifecycle.

* **Tests**
* New unit and integration tests for the monitoring service, store, ring
buffer, and API.
2025-12-08 01:46:10 +09:00
Yota Hamada
07929d96f0
feat(spec): add support for negate condition (#1451)
* **New Features**
* Added an optional "negate" flag for preconditions at both DAG and step
levels to invert condition evaluation.
  * API and schema updated to include the new negate field.

* **Tests**
* Expanded test coverage for negated preconditions across DAGs, steps,
commands, environment variables, and error scenarios.
2025-12-07 00:22:48 +09:00
Kriyanshi
ea16511957
added timeoutSec at step level (#1412)
Co-authored-by: Yota Hamada <yohamta@gmail.com>
2025-11-14 02:22:06 +09:00
YotaHamada
067e330cfc
status: rename canceled state to aborted across CLI, API, and UI (#1405) 2025-11-11 23:54:43 +09:00
YotaHamada
718697de04
feat(api): enforce singleton = true for reschedule API (#1382)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-02 15:57:41 +09:00
YotaHamada
8728f10bbf
feat(ui): allow rescheduling DAG-run (#1381)
Co-authored-by: kriyanshii <kriyanshishah06@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-01 23:36:09 +09:00
Kriyanshi
fd4ec21dff
feat(api): New API endpoint for enqueuing a DAGRun from a spec (#1375)
Co-authored-by: Yota Hamada <yohamta@gmail.com>
2025-11-01 23:00:52 +09:00
YotaHamada
f8633ea61e
feat: add --from-run-id option to start command (#1378)
Co-authored-by: kriyanshii <kriyanshishah06@gmail.com>
2025-11-01 20:41:17 +09:00
YotaHamada
230f7a0423
feat: show datetime and status in SubDAG-Run list (#1370) 2025-10-30 02:03:27 +09:00
YotaHamada
b59592634d
Add name override param to API (#1369) 2025-10-29 22:29:19 +09:00
YotaHamada
b6e390fed8 Adopt “Sub DAG” terminology across backend, UI, and docs (#1362) 2025-10-29 09:06:15 +09:00
YotaHamada
f4ef28c890
feat(spec): allow call alias for child DAG steps (#1335) 2025-10-21 19:17:03 +09:00
YotaHamada
c861c6be41
runtime: align canonical status strings and expose DAG_RUN_STATUS to handlers (#1340)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-19 23:30:38 +09:00
YotaHamada
ecb8ce007e
feat(api): add support for latest in GET /api/v2/dag-runs/{name}/{dagRunId} (#1300) 2025-10-05 00:32:48 +09:00
YotaHamada
12ed9b38a1
feat: Allow sorting DAGs by NextRun (#1292) 2025-10-04 17:51:12 +09:00
YotaHamada
601c5d0548
feat(api): Run DAG directly from spec (POST /api/v2/dag-runs) (#1255)
Some checks are pending
CI / Check for spelling errors (push) Waiting to run
CI / Go Linter (push) Waiting to run
CI / Test on ${{ matrix.os }} (ubuntu-latest) (push) Waiting to run
2025-09-15 01:26:31 +09:00
YotaHamada
d07c246b69
feat(api, cmd): Add DAG validate command and API endpoint (#1254) 2025-09-14 23:56:22 +09:00
kriyanshi
709407b306 all: add queue override functionality (CLI flag and API body) 2025-09-08 23:58:24 +09:00
Yota Hamada
f0062c3920 feat: add stop-all API 2025-09-02 18:26:57 +09:00
YotaHamada
a002aa41c7
feat: improve queue ui (#1222) 2025-08-24 20:38:45 +09:00
YotaHamada
cab88838b1
feat: apply feedbacks on queue UI (#1221) 2025-08-24 18:45:15 +09:00
YotaHamada
56722cafbc
feat: Queue dashboard UI (#1217) 2025-08-24 15:46:29 +09:00
YotaHamada
ea12a936ac
[#1196] feat: Enforce DAG-level maxActiveRuns configuration in API and CLI when starting a DAG-run (#1214) 2025-08-23 19:25:07 +09:00
YotaHamada
bad3ecb559
feat: add --singleton flag (#1195) 2025-08-15 22:38:10 +09:00
Kriyanshi
72c2eabf8d
Add DAG configuration to lock parameters and run ID (#1176)
Co-authored-by: Yota Hamada <yohamta@gmail.com>
2025-08-11 00:36:32 +09:00
YotaHamada
e4331c3efe feat: system status UI for scheduler and coordinator services (#1177) 2025-08-10 20:11:25 +09:00
YotaHamada
1d4bf048e1
fix: display correct status text for not-started DAGs (#1168) 2025-08-07 21:32:48 +09:00
YotaHamada
97114f3116
[#1123] fix: sort key issue (#1134) 2025-07-25 20:48:34 +09:00
YotaHamada
111594fdd6
fix: move DAG sorting from frontend to backend for proper pagination (#1123) 2025-07-24 03:04:29 +09:00
YotaHamada
5c086da8f1
[#1028] feat: implement distributed task execution (#1116) 2025-07-22 12:52:12 +09:00
YotaHamada
5d48e5283f
feat: Add step-level Partial Success status for sub-DAG execution steps (#1115) 2025-07-21 14:34:25 +09:00
YotaHamada
2db96cbba4
feat: add exponential backoff support for retry and repeat policies (#1096) 2025-07-08 19:04:25 +09:00
YotaHamada
cf6430dd86 docs: fix incorrect field names maxActiveDAGRuns and maxConcurrency 2025-07-07 00:49:24 +09:00
YotaHamada
7188c7259a
feat(api): add repeat mode support to v2 API and UI (#1089) 2025-07-04 22:32:33 +09:00
YotaHamada
6c762c6bdb
fix: display logs from all repeated child DAG runs (#1039) 2025-06-20 02:17:32 +09:00
thefishhat
4ee3c50988
feat: add dag step rerun (#1030) 2025-06-19 22:40:51 +09:00
YotaHamada
b642e5ef49
feat: add optional step ID field (#1012) 2025-06-15 14:03:01 +09:00
thefishhat
ed97eab4b6
feat: add Partial Success status to DAG runs (#1011) 2025-06-15 12:46:53 +09:00
YotaHamada
b3ccc7ed1e
feat: Adds a /api/v2/metrics endpoint that exposes Prometheus-compatible metrics (#1008) 2025-06-13 00:05:35 +09:00
YotaHamada
96be9c0118
[#994] support multiple DAGs in single YAML file (#1005) 2025-06-11 21:03:44 +09:00
YotaHamada
a95646e16f
[#989] feat: Parallel execution (#993) 2025-06-08 22:13:31 +09:00
YotaHamada
b198bcc13c
[#802] fix: remove pid and location fields from API responses for security (#979) 2025-06-02 16:03:50 +09:00
YotaHamada
5cb885a718
[#965] fix: 404 error for different host name and port (#966) 2025-05-31 16:20:07 +09:00
YotaHamada
bff3e99a9f
fix: start button to enqueue QueueItem (#964) 2025-05-30 17:45:04 +09:00
YotaHamada
33a52457e9
[#942] Add permissions field to the config (#962) 2025-05-29 21:44:10 +09:00
YotaHamada
add6ab6f87
Cleanup (#957) 2025-05-28 01:57:02 +09:00
YotaHamada
ce0139c652
[#938] Enqueue API (#954) 2025-05-25 18:17:36 +09:00