dagu

package module
v2.11.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2026 License: GPL-3.0 Imports: 17 Imported by: 0

README

Docs · Examples · Live demo (username/password: demouser) · Discord

Dagu

Dagu turns scripts and commands into reliable YAML workflows. It adds schedules, dependencies, retries, approvals, logs, and a Web UI in one open-source binary. You do not need an external database or message broker.

Quick start

1. Install

On macOS or Linux:

curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash

On Windows, run this in PowerShell:

irm https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.ps1 | iex

The installers can add Dagu to PATH, set up a background service, and create the first admin account. See the Windows installation guide for service and manual installation options.

Prefer Docker? Start the Web UI with the official image:

docker run --rm -p 8080:8080 -v dagu-data:/var/lib/dagu ghcr.io/dagucloud/dagu:latest dagu start-all

Open http://localhost:8080. The named volume keeps workflows, logs, history, and settings between runs. See the Docker guide for Docker Compose, image tags, and host workflow mounts.

The native-install quickstart continues below. For Homebrew, npm, Kubernetes, and manual options, see all installation methods.

2. Run your first workflow

Save this as hello.yaml:

steps:
  - id: hello
    run: echo "Hello from Dagu!"
  - id: done
    run: echo "Workflow finished"
    depends: hello

Run it:

dagu start hello.yaml
3. Open the Web UI

Start the Web UI in the same directory:

dagu start-all --dags .

Open http://localhost:8080 to see the run, step logs, and history. The full quickstart also covers validation, expected output, and next steps.

Running Dagu as a persistent or shared service? Review server configuration and authentication before exposing it beyond localhost.

If Dagu is useful, click Star at the top of this page. It helps other developers find the project.

What Dagu gives you

  • Keep your current scripts, commands, containers, and tools.
  • Store readable workflow definitions in Git.
  • Add dependencies, schedules, retries, timeouts, and approvals in YAML.
  • Inspect live status, logs, and previous runs in the built-in Web UI.
  • Start on one machine, then add queues or distributed workers if the workload grows.

See it in action

Click the image to watch the short product walkthrough.

Run details Step logs
Run details in dark mode Workflow logs in dark mode

You can also open the live demo and sign in with username demouser and password demouser.

Why Dagu

Cron is easy to start but gives you little visibility once jobs depend on each other. Larger orchestrators solve that problem by adding services and a framework. Dagu keeps the operating model small:

Traditional orchestrator              Dagu

Web server                            dagu start-all
Scheduler                             ├── Web UI
Workers                               ├── Scheduler
Database                              ├── Executor
Message broker                        └── Local file-backed state
Language runtime

The workflow calls the software you already use. It does not require you to move that code into a Dagu-specific framework.

A practical workflow

This example runs a nightly report, retries the data step, and keeps the order explicit:

schedule: "0 2 * * *"

steps:
  - id: extract
    run: python extract.py
    retry_policy:
      limit: 3
      interval_sec: 30

  - id: report
    run: ./build-report.sh
    depends: extract

  - id: archive
    run: tar -czf report.tgz report/
    depends: report

Dagu can also run containers, Kubernetes Jobs, SSH commands, SQL, HTTP requests, human tasks, and reusable actions. Browse the workflow examples or the YAML reference when you need them.

Nested workflows

A step can run another DAG. Sub-DAGs can live in the same file after ---, and parallel fans one sub-DAG out over a list of items. This example works as-is:

steps:
  - id: check
    action: dag.run
    with:
      dag: probe
      params:
        url: ${ITEM}
    parallel:
      items:
        - https://example.com
        - https://example.org
        - https://example.net
      max_concurrent: 2

---
name: probe
params:
  - name: url
    type: string
steps:
  - id: fetch
    run: curl -fsS -o /dev/null -w '%{http_code}\n' "${params.url}"

Each URL becomes its own child run with separate logs, status, and retries. The same mechanism composes larger systems: shared DAGs in their own files, called from many parents.

See Sub-DAGs.

LLM-directed workflows

With type: controller, steps become a catalog and tasks state the goals; an LLM decides which step runs next until the goals are met. This example triages the machine it runs on, and works as-is with an OpenRouter API key:

type: controller

secrets:
  - name: OPENROUTER_API_KEY
    provider: env
    key: OPENROUTER_API_KEY

llm:
  provider: openrouter
  model: deepseek/deepseek-v4-flash

steps:
  - name: disk
    description: Show filesystem usage.
    run: df -h
    output: DISK
  - name: load
    description: Show uptime and load average.
    run: uptime
    output: LOAD
  - name: processes
    description: List processes with CPU and memory usage.
    run: ps aux | head -20
  - name: summarize
    description: Write the health summary. Run last, after the checks.
    action: chat.completion
    with:
      prompt: |
        Summarize this machine's health in three sentences:
        ${DISK}
        ${LOAD}

tasks:
  - name: triage
    description: >
      Finished when the machine has been checked and a health summary has been
      written. Inspect processes only if disk or load looks unhealthy.

There is no fixed order: the controller picks probes, digs deeper only when something looks off, and ends by writing the summary. Put it on a schedule and it becomes a nightly check that explains itself.

The summarize step uses chat.completion: a plain LLM call that works in any workflow, shares the workflow's llm config, and supports tool use.

See Controller Workflows.

Operate Dagu from your AI tools

The direction also reverses: AI tools can run Dagu. The MCP endpoint (http://localhost:8080/mcp) lets MCP clients inspect workflows, start and control runs, and read results.

MCP Apps hosts can render run-related dagu_read and dagu_execute results in an interactive inspector with step status, scheduler and per-step logs, refresh, stop, retry, and a link to the full run page in Dagu. Other MCP clients continue to receive the same text and structured results.

For workflow-authoring help in Claude Code, Codex, Gemini CLI, and other coding tools, install the Dagu skill:

gh skill install dagucloud/dagu dagu

See the MCP guide.

Common uses

  • Replace fragile cron chains while keeping the underlying scripts.
  • Run ETL, reporting, backup, media, and infrastructure jobs.
  • Coordinate Docker, Kubernetes, SSH, SQL, and HTTP work in one graph.
  • Give operators a controlled way to run approved internal tasks.
  • Keep automation close to data on servers, edge devices, or private networks.
  • Distribute heavier workloads to workers selected by labels.

Ways to run Dagu

Model Where Dagu runs Good fit
Single server One dagu start-all process Development, scheduled jobs, and internal automation
Self-hosted workers Server and workers on your infrastructure Private networks, heavier workloads, and multiple execution hosts
Licensed self-hosted Server and workers on your infrastructure, with a paid server license Teams that need SSO, RBAC, audit logs, incident routing, additional API keys, and support; see plans and pricing

The same YAML works across these models. See deployment models for the architecture, security boundaries, and setup details.

Learn more

Topic Documentation
Install and first run Quickstart
Install on Windows PowerShell, Windows service, and manual install
Run with Docker Docker, Compose, volumes, and image tags
Configure a server Configuration files, environment variables, and precedence
Workflow syntax Writing workflows
Ready-to-run YAML Examples
Built-in and packaged actions Dagu Actions
Web UI and API Web UI
Authentication and secrets Server administration
Queues and workers Distributed execution
CLI commands CLI reference

Development

Prerequisites: Go 1.26+, Node.js, and pnpm.

git clone https://github.com/dagucloud/dagu.git
cd dagu
make build
make test
make lint

See CONTRIBUTING.md for the development workflow and code standards.

Community

Thanks to /bin labs and everyone who has contributed code, documentation, testing, or feedback.

License

Dagu is licensed under GNU GPLv3. See LICENSING.md for embedded API and commercial embedding terms.

Documentation

Overview

Package dagu provides an experimental embedded engine API for running Dagu DAGs from Go applications.

The embedding API is experimental and may change before it is declared stable. It currently supports local file-backed execution and distributed execution against existing Dagu coordinators.

Example
package main

import (
	"context"
	"log"

	"github.com/dagucloud/dagu/v2"
)

func main() {
	ctx := context.Background()

	engine, err := dagu.New(ctx, dagu.Options{
		HomeDir: "/var/lib/myapp/dagu",
	})
	if err != nil {
		log.Fatal(err)
	}
	defer func() {
		if err := engine.Close(context.Background()); err != nil {
			log.Fatal(err)
		}
	}()

	run, err := engine.RunYAML(ctx, []byte(`
name: embedded
steps:
  - name: hello
    command: echo "$MESSAGE"
`), dagu.WithParams(map[string]string{"MESSAGE": "hello"}))
	if err != nil {
		log.Fatal(err)
	}

	status, err := run.Wait(ctx)
	if err != nil {
		log.Fatal(err)
	}
	_ = status
}
Example (Distributed)
package main

import (
	"context"
	"log"

	"github.com/dagucloud/dagu/v2"
)

func main() {
	ctx := context.Background()

	engine, err := dagu.New(ctx, dagu.Options{
		HomeDir:     "/var/lib/myapp/dagu-worker",
		DefaultMode: dagu.ExecutionModeDistributed,
		Distributed: &dagu.DistributedOptions{
			Coordinators: []string{"127.0.0.1:50055"},
			TLS:          dagu.TLSOptions{Insecure: true},
			WorkerSelector: map[string]string{
				"pool": "default",
			},
		},
	})
	if err != nil {
		log.Fatal(err)
	}
	defer func() {
		if err := engine.Close(context.Background()); err != nil {
			log.Fatal(err)
		}
	}()

	worker, err := engine.NewWorker(dagu.WorkerOptions{
		Labels: map[string]string{"pool": "default"},
	})
	if err != nil {
		log.Fatal(err)
	}

	workerCtx, stopWorker := context.WithCancel(ctx)
	defer stopWorker()
	go func() {
		if err := worker.Start(workerCtx); err != nil {
			log.Print(err)
		}
	}()
	if err := worker.WaitReady(ctx); err != nil {
		log.Fatal(err)
	}

	run, err := engine.RunFile(ctx, "daily-report.yaml")
	if err != nil {
		log.Fatal(err)
	}
	status, err := run.Wait(ctx)
	if err != nil {
		log.Fatal(err)
	}
	_ = status
}

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterExecutor

func RegisterExecutor(name string, factory ExecutorFactory, opts ...ExecutorOption)

RegisterExecutor registers a custom executor type before engine or runtime use. It panics when name is empty, invalid, or factory is nil. Registration mutates global process state and must be completed before concurrent DAG execution.

func UnregisterExecutor

func UnregisterExecutor(name string)

UnregisterExecutor removes a custom executor type registered by RegisterExecutor. It is intended for tests and should not run concurrently with engine use.

Types

type DistributedOptions

type DistributedOptions struct {
	// Coordinators are coordinator gRPC addresses.
	Coordinators []string
	// TLS configures coordinator client TLS.
	TLS TLSOptions
	// WorkerSelector constrains distributed runs to matching workers.
	WorkerSelector map[string]string
	// PollInterval controls distributed run status polling.
	PollInterval time.Duration
	// MaxStatusErrors is the number of consecutive status failures before Wait fails.
	MaxStatusErrors int
}

DistributedOptions configures distributed execution.

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine is an embedded Dagu engine backed by the configured file stores.

func New

func New(ctx context.Context, opts Options) (*Engine, error)

New creates an embedded Dagu engine.

func (*Engine) Close

func (e *Engine) Close(ctx context.Context) error

Close releases engine resources.

func (*Engine) NewWorker

func (e *Engine) NewWorker(opts WorkerOptions) (*Worker, error)

NewWorker creates an embedded distributed worker.

func (*Engine) Outputs

func (e *Engine) Outputs(ctx context.Context, ref RunRef) (map[string]string, error)

Outputs reads the collected step outputs for a local DAG run.

func (*Engine) RunFile

func (e *Engine) RunFile(ctx context.Context, path string, opts ...RunOption) (*Run, error)

RunFile loads a DAG definition from a file and starts it asynchronously.

func (*Engine) RunYAML

func (e *Engine) RunYAML(ctx context.Context, yaml []byte, opts ...RunOption) (*Run, error)

RunYAML loads a DAG definition from YAML bytes and starts it asynchronously.

func (*Engine) Status

func (e *Engine) Status(ctx context.Context, ref RunRef) (*Status, error)

Status reads the latest status for a local DAG run.

func (*Engine) Stop

func (e *Engine) Stop(ctx context.Context, ref RunRef) error

Stop requests cancellation for a local DAG run.

type ExecutionMode

type ExecutionMode string

ExecutionMode controls how a DAG run is dispatched.

const (
	// ExecutionModeLocal runs the DAG in the current process.
	ExecutionModeLocal ExecutionMode = "local"
	// ExecutionModeDistributed dispatches the DAG to configured coordinators.
	ExecutionModeDistributed ExecutionMode = "distributed"
)

type Executor

type Executor = runtimeexec.Executor

Executor is implemented by custom step executors.

type ExecutorCapabilities

type ExecutorCapabilities = core.ExecutorCapabilities

ExecutorCapabilities declares which step fields a custom executor supports.

type ExecutorFactory

type ExecutorFactory func(context.Context, Step) (Executor, error)

ExecutorFactory creates an Executor for a loaded step.

type ExecutorOption

type ExecutorOption func(*executorRegistration)

ExecutorOption customizes custom executor registration.

func WithExecutorCapabilities

func WithExecutorCapabilities(caps ExecutorCapabilities) ExecutorOption

WithExecutorCapabilities registers supported step fields for the custom executor.

func WithStepValidator

func WithStepValidator(validator StepValidator) ExecutorOption

WithStepValidator registers a validation function for the custom executor.

type Options

type Options struct {
	// HomeDir is the Dagu application home used for default config and data paths.
	HomeDir string
	// ConfigFile loads Dagu configuration from an explicit config file.
	ConfigFile string
	// DAGsDir overrides the directory used to resolve named DAGs and sub-DAGs.
	DAGsDir string
	// DataDir overrides the file-backed state directory.
	DataDir string
	// LogDir overrides the run log directory.
	LogDir string
	// ArtifactDir overrides the artifact directory.
	ArtifactDir string
	// BaseConfig points at a base configuration file applied during DAG loading.
	BaseConfig string
	// Logger receives embedded engine logs. A quiet logger is used when nil.
	Logger *slog.Logger

	// DefaultMode is used when a run does not set WithMode.
	DefaultMode ExecutionMode
	// Distributed configures dispatch and worker clients.
	Distributed *DistributedOptions
}

Options configures an embedded Dagu engine.

type Run

type Run struct {
	// contains filtered or unexported fields
}

Run is a handle for an asynchronous DAG run.

func (*Run) ID

func (r *Run) ID() string

ID returns the DAG run ID.

func (*Run) Name

func (r *Run) Name() string

Name returns the DAG name.

func (*Run) Outputs

func (r *Run) Outputs(ctx context.Context) (map[string]string, error)

Outputs reads the collected step outputs for this run.

func (*Run) Ref

func (r *Run) Ref() RunRef

Ref returns the run reference.

func (*Run) Status

func (r *Run) Status(ctx context.Context) (*Status, error)

Status returns the current run status.

func (*Run) Stop

func (r *Run) Stop(ctx context.Context) error

Stop requests cancellation for this run.

func (*Run) Wait

func (r *Run) Wait(ctx context.Context) (*Status, error)

Wait blocks until the DAG run reaches a terminal state or ctx is canceled.

type RunOption

type RunOption func(*runOptions)

RunOption customizes a single DAG run.

func WithDefaultWorkingDir

func WithDefaultWorkingDir(dir string) RunOption

WithDefaultWorkingDir sets the default working directory while loading a DAG.

func WithDryRun

func WithDryRun(enabled bool) RunOption

WithDryRun enables or disables dry-run mode.

func WithLabels

func WithLabels(labels ...string) RunOption

WithLabels adds labels to one run.

func WithMode

func WithMode(mode ExecutionMode) RunOption

WithMode overrides the engine default execution mode.

func WithName

func WithName(name string) RunOption

WithName overrides the loaded DAG name.

func WithParams

func WithParams(params map[string]string) RunOption

WithParams sets DAG parameters from a key-value map.

func WithParamsList

func WithParamsList(params []string) RunOption

WithParamsList sets DAG parameters from Dagu-style KEY=VALUE entries.

func WithRunID

func WithRunID(id string) RunOption

WithRunID sets an explicit DAG run ID.

func WithTags deprecated

func WithTags(tags ...string) RunOption

WithTags adds labels to one run.

Deprecated: use WithLabels.

func WithWorkerSelector

func WithWorkerSelector(selector map[string]string) RunOption

WithWorkerSelector sets the distributed worker selector for one run.

type RunRef

type RunRef struct {
	Name string
	ID   string
}

RunRef identifies a DAG run.

type Status

type Status struct {
	Name        string
	RunID       string
	AttemptID   string
	Status      string
	StartedAt   time.Time
	FinishedAt  time.Time
	Error       string
	LogFile     string
	ArchiveDir  string
	WorkerID    string
	TriggerType string
}

Status is a stable snapshot of a DAG run.

type Step

type Step = core.Step

Step is the public alias for a Dagu step passed to custom executors.

type StepValidator

type StepValidator = core.StepValidator

StepValidator validates custom executor step configuration during DAG loading.

type TLSOptions

type TLSOptions struct {
	// Insecure explicitly allows plaintext coordinator connections.
	Insecure bool
	// CertFile is the client certificate file for TLS connections.
	CertFile string
	// KeyFile is the client private key file for TLS connections.
	KeyFile string
	// ClientCAFile is the CA file used to verify coordinator certificates.
	ClientCAFile string
	// SkipTLSVerify skips coordinator certificate verification.
	SkipTLSVerify bool
}

TLSOptions configures TLS for coordinator and worker peer clients.

type Worker

type Worker struct {
	// contains filtered or unexported fields
}

Worker is a distributed worker connected to configured coordinators.

func (*Worker) Start

func (w *Worker) Start(ctx context.Context) error

Start registers and starts the worker. It blocks until ctx is canceled or the worker exits with an error.

func (*Worker) Stop

func (w *Worker) Stop(ctx context.Context) error

Stop stops the worker.

func (*Worker) WaitReady

func (w *Worker) WaitReady(ctx context.Context) error

WaitReady blocks until the worker has registered with a coordinator.

type WorkerOptions

type WorkerOptions struct {
	// ID is the worker identifier. A host and process based ID is generated when empty.
	ID string
	// MaxActiveRuns limits concurrent DAG runs. A default is used when zero or negative.
	MaxActiveRuns int
	// Labels are advertised to coordinators and matched by worker selectors.
	Labels map[string]string
	// Coordinators overrides DistributedOptions.Coordinators when non-empty.
	// If empty, the worker falls back to the engine-level DistributedOptions.
	// The resolved coordinator list must contain at least one non-empty address.
	Coordinators []string
	// TLS overrides DistributedOptions.TLS when non-zero. If zero, the worker
	// falls back to the engine-level DistributedOptions TLS settings.
	TLS TLSOptions
	// HealthPort starts the worker health endpoint on the given port. Zero disables it.
	HealthPort int
}

WorkerOptions configures an embedded distributed worker.

Directories

Path Synopsis
api
v1
Package api provides primitives to interact with the openapi HTTP API.
Package api provides primitives to interact with the openapi HTTP API.
conformance
examples
embedded/local command
internal
cmd
cmn/dirlock
Package dirlock provides a directory-based locking mechanism for coordinating access to shared resources across multiple processes.
Package dirlock provides a directory-based locking mechanism for coordinating access to shared resources across multiple processes.
cmn/logger/tag
Package tag provides standardized tag functions for structured logging.
Package tag provides standardized tag functions for structured logging.
cmn/schema
Package schema provides embedded JSON schemas for use across the codebase.
Package schema provides embedded JSON schemas for use across the codebase.
core/spec/types
Package types provides typed union types for YAML fields that accept multiple formats.
Package types provides typed union types for YAML fields that accept multiple formats.
dagdiscovery
Package dagdiscovery enumerates DAG definition files and watchable directories.
Package dagdiscovery enumerates DAG definition files and watchable directories.
dagsettings
Package dagsettings contains server-side DAG settings.
Package dagsettings contains server-side DAG settings.
dagstate
Package dagstate defines persistent state shared across DAG runs.
Package dagstate defines persistent state shared across DAG runs.
dispatch
Package dispatch holds control-plane policy for deciding how a DAG run is executed.
Package dispatch holds control-plane policy for deciding how a DAG run is executed.
llm
Package llm provides a generic abstraction layer for interacting with Large Language Model providers.
Package llm provides a generic abstraction layer for interacting with Large Language Model providers.
llm/allproviders
Package allproviders imports all LLM providers to register them.
Package allproviders imports all LLM providers to register them.
llm/providers/anthropic
Package anthropic provides an LLM provider implementation for Anthropic's Claude API.
Package anthropic provides an LLM provider implementation for Anthropic's Claude API.
llm/providers/gemini
Package gemini provides an LLM provider implementation for Google's Gemini API.
Package gemini provides an LLM provider implementation for Google's Gemini API.
llm/providers/local
Package local provides an LLM provider implementation for local OpenAI-compatible servers.
Package local provides an LLM provider implementation for local OpenAI-compatible servers.
llm/providers/openai
Package openai provides an LLM provider implementation for OpenAI's API.
Package openai provides an LLM provider implementation for OpenAI's API.
llm/providers/openrouter
Package openrouter provides an LLM provider implementation for OpenRouter's API.
Package openrouter provides an LLM provider implementation for OpenRouter's API.
llm/providers/zai
Package zai provides an LLM provider implementation for Z.AI's API.
Package zai provides an LLM provider implementation for Z.AI's API.
llm/toolschema
Package toolschema derives LLM function-calling parameter schemas from DAG parameter definitions.
Package toolschema derives LLM function-calling parameter schemas from DAG parameter definitions.
node
Package node wires runtime node adapters.
Package node wires runtime node adapters.
output
Package output provides tree-structured rendering for DAG execution status.
Package output provides tree-structured rendering for DAG execution status.
persis
Package persis defines the storage backend interface for Dagu's control plane.
Package persis defines the storage backend interface for Dagu's control plane.
persis/file
Package file implements persis.Backend on the local filesystem.
Package file implements persis.Backend on the local filesystem.
persis/file/audit
Package audit provides a file-based implementation of the audit Store interface.
Package audit provides a file-based implementation of the audit Store interface.
persis/file/eventstore
Package eventstore provides a file-based implementation of the event store.
Package eventstore provides a file-based implementation of the event store.
persis/file/tokensecret
Package tokensecret provides a file-based implementation of auth.TokenSecretProvider.
Package tokensecret provides a file-based implementation of auth.TokenSecretProvider.
persis/store
Package store consolidates small persistence stores that each wrap a persis.Collection.
Package store consolidates small persistence stores that each wrap a persis.Collection.
persis/testutil
Package testutil provides test helpers for the persistence layer.
Package testutil provides test helpers for the persistence layer.
profile
Package profile contains runtime profile domain models.
Package profile contains runtime profile domain models.
proto/convert
Package convert provides conversion functions between execution types and proto messages.
Package convert provides conversion functions between execution types and proto messages.
runtime/builtin/chat
Package chat provides an executor for chat (LLM-based session) steps.
Package chat provides an executor for chat (LLM-based session) steps.
runtime/builtin/controller
Package controller registers the executor identity of the synthesized step that drives a controller DAG.
Package controller registers the executor identity of the synthesized step that drives a controller DAG.
runtime/builtin/redis
Package redis provides Redis executor capabilities for Dagu workflows.
Package redis provides Redis executor capabilities for Dagu workflows.
runtime/builtin/sql
Package sql provides SQL executor capabilities for PostgreSQL and SQLite databases.
Package sql provides SQL executor capabilities for PostgreSQL and SQLite databases.
runtime/builtin/sql/drivers/postgres
Package postgres provides the PostgreSQL driver for the SQL executor.
Package postgres provides the PostgreSQL driver for the SQL executor.
runtime/builtin/sql/drivers/sqlite
Package sqlite provides the SQLite driver for the SQL executor.
Package sqlite provides the SQLite driver for the SQL executor.
runtime/controller
Package controller implements the decision layer of a controller DAG: the catalog of actions offered to the LLM, the goal state it works against, and the planner that turns a conversation into the next action.
Package controller implements the decision layer of a controller DAG: the catalog of actions offered to the LLM, the goal state it works against, and the planner that turns a conversation into the next action.
runtime/runstate
Package runstate defines the execution-state port used by the runtime.
Package runstate defines the execution-state port used by the runtime.
runtime/runstate/memstore
Package memstore provides an in-memory runtime run-state store.
Package memstore provides an in-memory runtime run-state store.
secret
Package secret contains the team secret registry domain model.
Package secret contains the team secret registry domain model.
service/audit
Package audit provides a generic audit logging system for tracking user actions.
Package audit provides a generic audit logging system for tracking user actions.
service/authmapping
Package authmapping maps external group memberships to Dagu authorization.
Package authmapping maps external group memberships to Dagu authorization.
service/frontend/terminal
Package terminal provides a web-based terminal for admin users.
Package terminal provides a web-based terminal for admin users.
service/oidcprovision
Package oidcprovision provides OIDC user provisioning functionality for builtin auth mode.
Package oidcprovision provides OIDC user provisioning functionality for builtin auth mode.
service/scheduler/filenotify
Package filenotify provides a mechanism for watching file(s) for changes.
Package filenotify provides a mechanism for watching file(s) for changes.
service/trustedproxyprovision
Package trustedproxyprovision provisions users through proxy authentication.
Package trustedproxyprovision provisions users through proxy authentication.
subflow
Package subflow adapts Dagu child workflow execution to the runtime executor's child workflow interface.
Package subflow adapts Dagu child workflow execution to the runtime executor's child workflow interface.
view
Package view defines saved Overview view configurations.
Package view defines saved Overview view configurations.
proto

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL