Releases: dagu-org/dagu
Releases · dagu-org/dagu
v1.28.0
Changelog
Added
- Step-Level Container Field: Added
containerfield for individual steps, providing the same configuration options as DAG-level container but for per-step container execution. This is the recommended way to run steps in containers, replacing the verboseexecutor: dockersyntax.
steps:
- name: build
container:
image: node:24
volumes:
- ./src:/app
workingDir: /app
command: npm run build
- name: test
container:
image: python:3.11
env:
- PYTHONPATH=/app
command: pytestChanged
- Documentation: Updated all documentation to use the new step-level
containersyntax instead ofexecutor: docker - JSON Schema: Updated DAG schema to include step-level
containerfield with proper validation - Spec Refactor (internal): Restructured spec types and build logic for improved maintainability (#1499)
- UI: Removed link to Discord and Github from the frontend
Validation
- Added validation to prevent using
containerfield together withexecutorfield (conflicting execution methods) - Added validation to prevent using
containerfield together withscriptfield (scripts not supported in containers)
Full Changelog: v1.27.0...v1.28.0
v1.27.0
Changelog
Added
- CLI: Added
cleanupcommand for removing old DAG-run data for specified DAG-name
Fixed
- Runtime, API: Fix issues that a DAG run often fails due to max active run check
Changed
- UI: Updated frontend design color schema and removed dark mode UI
Full Changelog: v1.26.5...v1.27.0
v1.26.7
v1.26.6
v1.26.5
v1.26.4
Added
- API: Added optional
singletonflag toPOST /dags/{fileName}/enqueueendpoint to prevent duplicate runs when a DAG is already executing or queued; returns HTTP 409 Conflict when enabled and active/queued runs exist (#1483, #1460)
Changed
- Deps: Upgraded gopsutil from v3 to v4 (#1470)
- Note: On Linux,
UsedPercentfor memory now derives fromMemAvailablerather than the previous method, which may alter reported values by 6-10%
- Note: On Linux,
- Release: Removed NetBSD from release targets
Fixed
- Scheduler: Queue processor now respects
maxConcurrencyconfiguration in global config for DAG-based queues (#1482) - Runtime: Fixed dequeue command missing queue name parameter, causing API-based dequeue operations to fail (#1481)
- Auth: API token authentication now works alongside builtin authentication mode; unified middleware supports JWT Bearer tokens, API tokens, Basic auth, and OIDC simultaneously (#1480, #1478, #1475)
- UI: User Management menu now only displays for admin users when authentication mode is "builtin"; reset password functionality restricted to admin users (#1484)
- Runtime: Special environment variables (
DAG_RUN_ID,DAG_NAME, etc.) now work correctly inhandlerOn.exitand other handler contexts (#1474) - Security: Escaped config path strings injected into HTML templates to prevent potential JavaScript injection vulnerabilities on Windows (#1472)
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| Dequeue command queue name fix (#1481) | @kriyanshii |
| Singleton flag feature request (#1460) | @kriyanshii |
| User creation error with builtin auth bug report (#1478) | @Kaiden0001 |
| DAG_RUN_ID in handlers bug report (#1474) | @Kaiden0001 |
| Remote node selection with builtin auth bug report (#1475) | @jeremydelattre59 |
| Singleton enqueue feedback | @ghansham |
v1.26.3
v1.26.2
Added
- Spec: Added optional
negateflag for preconditions at both DAG and step levels to invert condition evaluation (#1451) - Spec: Added
inithandler field that executes after preconditions but before workflow steps - if it fails, subsequent steps are prevented from executing (#1455) - Spec: Added
aborthandler as canonical replacement for the deprecatedcancelhandler (#1455) - Spec: Added
skipBaseHandlersoption to prevent sub-DAGs from inheriting parent handler configurations (#1455) - Spec: Added
continueOnshorthand syntax - users can now specifycontinueOn: "skipped"orcontinueOn: "failed"instead of verbose object definitions (#1454) - CLI: Added
--default-working-dirflag tostartandenqueuecommands to specify a fallback working directory for DAG executions; automatically propagates to sub-DAGs (#1459) - Feature: Added comprehensive resource monitoring for CPU, memory, disk, and system load with in-memory retention store and API endpoint (
GET /services/resources/history) (#1461) - UI: Added resource usage visualization charts on System Status page (#1461)
- Feature: Implemented built-in JWT-based authentication system with role-based access control (RBAC) (#1463)
- Four-tier role hierarchy: admin, manager, operator, viewer
- Complete user management APIs (create, list, view, update, delete)
- File-backed user store with atomic writes and thread-safety
- Login flow, protected routes, user management UI
- Config: Added
AUTH_MODEenvironment variable supportingnone,builtin, andoidcmodes (#1463)
Changed
- Config: Refactored configuration loader to use service-scoped loading that only loads necessary settings for each command context, improving startup performance (#1467)
- Config: Replaced public
Globalconfig field withCoreacross the codebase (#1467) - Config: Standardized key=value parsing using
strings.Cutinstead ofstrings.SplitN(#1467) - API: v1 API routes are now disabled when authentication is enabled (#1463)
Fixed
- Runtime: Log tails and recent stderr now decode multiple encodings (Shift_JIS, EUC-JP, ISO-8859-1, Windows-1252, GBK, Big5, EUC-KR, UTF-8) properly based on system locale (#1449)
- Runtime: Special environment variables (
DAG_NAME,DAG_RUN_ID,DAG_RUN_LOG_FILE) are now properly accessible in failure handlers and executor config evaluation (#1448) - Queue: Fixed queued DAG jobs failing to process with "name or path is required" error - queue items now use lazy, file-backed loading with proper error handling (#1457, #1437)
- UI: Disabled step retry buttons while a DAG is actively running to prevent unintended behavior (#1447)
- Validation: Added maximum DAG name length validation (40 characters) with pre-validation on rename operations (#1469)
- Config: Made auth mode nullable in configuration, establishing "none" as the default with runtime validation (#1469)
- UI: Enhanced dark-mode text selection styling for input fields (#1469)
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| Stop step retry while DAG is running UI fix (#1447) | @kriyanshii |
| Queued DAGs not starting bug report (#1437) | @kriyanshii |
| Init handler field feedback | @ghansham |
| Windows issue reporter | Oleksandr Yena (Discord) |
v1.25.1
This release includes an important fix for Windows version and enhancement for SMTP authentication.
What's Changed
- fix(windows): bug in command construction with powershell/cmd.exe by @yottahmd in #1445
- fix(mail): add STARTTLS and LOGIN auth support for SMTP by @yottahmd in #1446
Full Changelog: v1.25.0...v1.25.1
v1.25.0
v1.25.0 (2025-12-04)
Added
- UI: Display script detail dialog on steps list (#1435)
- UI: Added Paths display panel in System Status page, showing system filesystem locations (DAGs, logs, config files, etc.)
- Config: Resolve path environment variables to absolute paths and sync for subprocesses (#1430)
Changed
- Config: Log encoding now auto-detected from system locale (Unix) or Windows code page instead of defaulting to UTF-8 (#1439)
- API: DAG rename no longer renames run history to prevent data loss
Fixed
- Core: Resolve working directory relative paths correctly - DAG-level
workingDirresolves against DAG file location, step-leveldirresolves against DAG'sworkingDir(#1436) - Windows: Improved PowerShell and cmd.exe shell handling (#1439)
- Scripts in working directory now execute correctly (auto-prefixes
.\when needed) - PowerShell scripts now fail properly on non-zero exit codes from external commands
- Environment variable matching is now case-insensitive
- Added platform-specific base environment variables
- Scripts in working directory now execute correctly (auto-prefixes
- UI: Fixed graph visualization crash when step names contain parentheses (#1440, #1434)
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| Graph crash with parentheses in step names fix (#1440) | @Tagnard |
| Graph crash bug report (#1434) | @DarkWiiPlayer |
| Windows version testing and bug report | O.Yena on Discord |
Full Changelog: v1.24.11...v1.25.0