µTask logo

µTask

Lightweight cloud automation engine with encrypted, declarative workflows

µTask lets teams model business processes in YAML, runs them asynchronously on a single Postgres backend, and provides encrypted, auditable state tracking with extensible Go plugins.

Overview

Overview

µTask is a cloud‑native automation engine that lets engineering teams model business processes as declarative YAML templates. Each template defines inputs, a graph of actions and their dependencies, allowing µTask to execute steps asynchronously, retry on transient errors, and maintain an encrypted, auditable trace of every intermediate state.

Capabilities & Extensibility

The engine runs on a single PostgreSQL database—no external workers are required—so multiple instances can share work without collisions. Data is encrypted at rest and visible only to authorized users. Custom actions are implemented as Go plugins compiled to .so files and loaded at runtime, while init plugins can extend authentication or other startup behavior. Built‑in notification backends (Slack, Opsgenie, generic webhooks) keep stakeholders informed of task state changes.

Deployment

Deploy µTask via the provided Docker‑Compose script or build the binary and run it behind a reverse‑proxy that supplies the x‑remote‑user header for authentication. Configuration is driven by environment variables and command‑line flags, and task templates are version‑controlled in a Git repository. The system supports key rotation and maintenance mode to ensure continuous compliance.

Highlights

Declarative YAML task templates with dependency graph
Single PostgreSQL database requirement; no external agents
Built‑in encryption and auditable state trail
Extensible via Go plugins for custom actions and init logic

Pros

  • Simple infrastructure – only PostgreSQL needed
  • Secure by default with encrypted data and header‑based auth
  • Horizontally scalable; multiple instances share the same DB
  • Easy to extend using Go plugins and custom notifications

Considerations

  • Depends on PostgreSQL; unsuitable where DB cannot be used
  • Minimal built‑in authentication; production needs external proxy
  • No visual workflow designer; templates are code‑based
  • Limited native notification channels (Slack, Opsgenie, webhook)

Fit guide

Great for

  • Teams needing lightweight, code‑driven automation without orchestration overhead
  • Organizations already running PostgreSQL and containerized services
  • Developers who prefer Go for custom action development
  • Scenarios where auditability and encrypted state are mandatory

Not ideal when

  • Environments that cannot expose a PostgreSQL instance
  • Users requiring a visual drag‑and‑drop workflow builder
  • Projects that need out‑of‑the‑box authentication and RBAC
  • Workloads demanding real‑time low‑latency execution beyond async processing

How teams use it

Kubernetes Ingress TLS Certificate Provisioning

Automatically generates keys, obtains certificates, and updates the cluster, reducing manual TLS management.

New Team Member Onboarding

Creates SSH keys, registers them, provisions accounts and VMs, and sends a welcome email via a single task.

Payments API Anti‑Fraud Workflow

Runs risk assessment, calls external antifraud service, escalates to human review when needed, and notifies the API of the result.

Scheduled Maintenance Key Rotation

Rotates encryption keys without downtime, re‑encrypts stored data, and ensures continued compliance.

Tech snapshot

Go69%
TypeScript20%
HTML6%
Sass2%
JavaScript1%
Shell1%

Tags

devops-toolsautomationworkflowworkflow-enginegohacktoberfestgolang-applicationworkflow-automationangular8devopsgolang

Frequently asked questions

What database does µTask require?

µTask works with PostgreSQL version 9.5 or newer; it stores all task data, state, and encrypted payloads.

How are tasks defined?

Tasks are described in declarative YAML templates that specify inputs, actions, and their dependencies, forming a directed execution graph.

Can I add custom actions?

Yes, you can develop custom action plugins in Go, compile them as .so files, and place them in the plugins directory for µTask to load.

How is authentication handled in production?

µTask expects a reverse proxy to inject an “x‑remote‑user” header for user identification; basic‑auth is only for development.

What notification options are available?

µTask can send task state updates to Slack, Opsgenie, or generic webhooks; payload format is JSON with task details.

Project at a glance

Active
Stars
1,350
Watchers
1,350
Forks
96
LicenseBSD-3-Clause
Repo age6 years old
Last commit5 days ago
Primary languageGo

Last synced yesterday