Git Product home page Git Product logo

daguflow / dagu Goto Github PK

View Code? Open in Web Editor NEW
1.4K 17.0 137.0 33.47 MB

Yet another cron alternative with a Web UI, but with much more capabilities. It aims to solve greater problems.

Home Page: https://dagu.readthedocs.io

License: GNU General Public License v3.0

Makefile 1.57% Go 77.52% Shell 0.78% CSS 0.14% JavaScript 0.42% HTML 0.08% TypeScript 19.26% Dockerfile 0.23%
workflow cron automation scheduler golang directed-acyclic-graph task-runner task-scheduler continuous-delivery devops-pipeline workflow-automation workflow-engine workflow-management workflow-tool dag-scheduling workflow-scheduler

dagu's Issues

Need a better way to hierarchize multiple workflows

It is still possible to call other workflows from within a workflow without problems, but it becomes confusing. Also, when a workflow is renamed, it would be inconvenient if the workflow calling that workflow is not also automatically renamed.

Desirable Functions to handle multi-level workflows:

  • Ability to group and hierarchize workflows
  • When the name (or location) of a dependent workflow is changed, the definition of the parent workflow is also automatically modified.

Feature request: dashboard page on web UI

When workflows exist in multiple levels, the current status is not displayed on the top page. It would be good to have a dashboard page where the status can be checked at a glance.

TODO

TODO

  • refactor: Separate Web UI codes from go template
  • refactor: Migrate Web UI codes to typescript
  • feat: Add tags field to enable a workflow to have arbitrary tags (ex: - daily)
  • feat: Improve Web UI design
  • feat: Add the ability to update task status with a mouse click on visual graph on Web UI
  • fix: Not to send mail notifications when a workflow is canceled not failed
  • fix: Not to expandEnv on config page on Web UI
  • feat: Add named parameters (ex: params: "p1=x p2=y")
  • feat: Add stdout field that can write standard output to any file in a step definition
  • feat: Add search function for workflows using free text keyword
  • feat: Add sorting function to HTML tables on Web UI using react-table
  • feat: start/stop buttons on Workflow list page
  • feat: sorting function for dashboard timechart
  • feat: filtering workflows by clicking a tag on table on Web UI
  • feat: Change name field to an optional field by using the file name as a default value
  • feat: Add version subcommand that shows the version (#127)
  • feat: Add function to pass variables from one step to another using output field in a step definition
  • feat: Add function to embed arbitrary script in a YAML file using the script field
  • fix: Fix the formatting issue of scheduler's log on Web UI
  • fix: Fix goreleaser config and Makefile to embed the correct version value (ex: 1.0.0) using -ldflags
  • fix: Fix release GitHub Action and remove web assets from the repository (bundle.js and font files)
  • docs: REST API interface

Not sure

  • feat: Add No-Code GUI for workflow edit
  • feat: i18n for Web UI
  • test: Add tests for frontend Web UI codes in admin directory
  • test: Improve the test coverage to 90%
  • test: Add --race option to test command
  • test: Add tests for Goroutine leaks
  • feat: Add --repeat-until option to start subcommand
  • refactor: Context handling logics in cmd, agent, scheduler, and unix package.
  • feat: Add Until option to RepeatPolicy field to enable to specify the end time of repetitive task
  • feat: Ability to manage multiple instances from a single instance on Web UI using Rest API interface
  • feat: Make the agent an importable package from 3rd party software
  • feat: Scheduler daemon
  • feat: RBAC user authentication functionalities
  • feat: Workflow layering mechanism such as JobNet
  • feat: Windows support
  • feat: Docker container image

Execution difference between web ui and cli

I am currently testing the execution of a workflow created from the web ui, with the examples/minimal.yaml content.
From the start button I get an error "exec: no command".
From ./dagu start /home/minimal.yaml there are no errors.
Am I missing any extra configuration?
This is the content of my admin.yaml

port: 8080
dags: /home/
isBasicAuth: true
basicAuthUsername: admin
basicAuthPassword: admin

TODOs

  • feat: #66
  • docs: build website on github.io
  • fix: tests with --race
  • fix: tests with Goroutine leaks
  • refactor: separte the web codes from gotemplate

Not sure

  • feat: scheduler function using existing cron-like go library

Bug: Cannot read properties of undefined (reading 'errors') on HistTable in Web UI

Invalid history data cause the javascript crash on web UI history page.

react-dom.min.js?v=220516130708:141 TypeError: Cannot read properties of undefined (reading 'errors')
    at new Error (<anonymous>:136:22)
    at Function.createFromInputFallback (moment.min.js?v=220516130708:1)
    at moment.min.js?v=220516130708:1
    at bt (moment.min.js?v=220516130708:1)
    at xt (moment.min.js?v=220516130708:1)
    at Tt (moment.min.js?v=220516130708:1)
    at f (moment.min.js?v=220516130708:1)
    at <anonymous>:289:18
    at Array.map (<anonymous>)
    at HistTable (<anonymous>:288:12)

Why is dagu reading irrelevant YAML files?

I started dagu with dagu server in my homedir [on Linux], and now the webui asks me to check three “errors below”. Those “errors” are — according to dagu — incompatible YAML errors, but why on Earth is dagu reading YAML files that has got nothing to do with dagu? Is it simply scanning the homedir and reading each and every YAML file it can find?

Consider rename the software

I would like to change the name dagu since it's sometimes confusing with the concept of DAG (Directed Acyclic Graph) when it is pronounced. Also, I would like to change the mascot animal, which is an animal kind, Degu, because sometimes I get confused with dagu and mistypo degu.

List of candidates (WIP):

  • Autoflow
  • NocodeFlow
  • Flowsy
  • AutoFluir
  • ProsperFlow
  • SimplexFlow

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.