
µ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
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
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
Last synced yesterday