Categories
Providers
ansible
Ansible provider for quicue. Generates inventory, Prometheus targets, AlertManager routes, and Grafana dashboards from resource graphs.
argocd
GitOps continuous delivery via ArgoCD CLI.
awx
Ansible automation controller via AWX REST API.
caddy
Caddy provider for quicue. Reverse proxy management via Caddy admin API.
cloudflare
DNS, tunnels, and WAF management via Cloudflare API.
dagger
CI/CD pipeline orchestration via Dagger CLI.
docker
Docker provider for quicue. Implements action patterns for containers, Compose stacks, networks, volumes, and images.
foreman
Bare metal provisioning and lifecycle via Foreman API.
gitlab
GitLab project and CI/CD management via API.
govc
govc provider for quicue. vSphere VM management via Go vSphere CLI.
incus
Incus provider for quicue. Implements action patterns for containers, VMs, profiles, networks, storage, and clusters.
k3d
CUE patterns for k3d (Kubernetes in Docker) - local Kubernetes development clusters.
keycloak
Identity and access management via Keycloak admin CLI.
kubectl
Kubernetes cluster management via kubectl CLI.
kubevirt
Virtual machine management on Kubernetes via virtctl.
netbox
IPAM and DCIM via NetBox REST API.
nginx
Web server and reverse proxy management.
opentofu
Infrastructure as code via OpenTofu CLI.
pbs
Backup management via proxmox-backup-client CLI.
postgresql
Database administration via psql and pg_* utilities.
powercli
PowerCLI provider for quicue. vSphere VM management via VMware PowerShell cmdlets.
powerdns
Authoritative DNS management via REST API.
proxmox
Proxmox VE provider for quicue. Implements action interfaces with qm, pct, and pvecm commands.
restic
Deduplicating backup via restic CLI.
technitium
technitium provider
terraform
Terraform provider for quicue. Generates Terraform JSON for Proxmox VMs and KubeVirt manifests from resource graphs.
vault
Secrets management and PKI via Vault CLI.
vyos
VyOS provider for quicue. Router configuration and operational commands via SSH.
zabbix
Enterprise monitoring via Zabbix API.
Quick Start
1. Import a provider
import "quicue.ca/template/govc/patterns"
actions: patterns.#GovcRegistry
2. Define resources
import "quicue.ca/vocab"
resources: {[string]: vocab.#Resource}
resources: web01: {
type: "vm"
host: "esxi-01"
}
3. Query the graph
cue export . -e actions --out json
cue export . -e jsonld --out json
Architecture
Definition Template Value
┌──────────────┐ ┌──────────────────┐ ┌──────────────┐
│ vocab/ │ │ template/*/ │ │ examples/ │
│ #Resource │──▶│ meta/meta.cue │──▶│ resources │
│ #ActionDef │ │ patterns/*.cue │ │ actions │
│ #TypeReg │ │ examples/demo │ │ graphs │
└──────────────┘ └──────────────────┘ └──────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ patterns/ │ │ cat.quicue.ca │ │ imp.quicue.ca │
│ graph.cue │ │ providers │ │ execution plans │
│ bind.cue │ │ patterns ref │ │ Jupyter .ipynb │
│ deploy.cue │ │ OpenAPI/SPARQL │ │ Rundeck YAML │
└──────────────┘ └──────────────────┘ │ auto-docs │
│ bootstrap POC │
└──────────────────┘
Patterns Reference
The patterns/ layer provides graph algorithms, binding, deployment planning, and operational analysis. All patterns are CUE definitions — no runtime, no side effects.
#InfraGraph
Converts resources into a dependency graph with computed depth, ancestors, topology layers, roots, and leaves.
infra: patterns.#InfraGraph & {
Input: _resources
}
// infra.resources.dns._depth
// infra.topology, infra.roots
#ExecutionPlan
Unifies binding + ordering. Single input produces resolved commands, graph topology, and deployment layers.
exec: patterns.#ExecutionPlan & {
resources: _resources
providers: _providers
}
// exec.plan.layers
// exec.cluster.bound
#DeploymentPlan
Layer-by-layer deployment sequence with gate checkpoints between layers.
deploy: patterns.#DeploymentPlan & {
Graph: infra
}
// deploy.layers
// deploy.startup_sequence
#ImpactQuery
What breaks if X fails? Finds all resources that transitively depend on a target.
impact: patterns.#ImpactQuery & {
Graph: infra
Target: "dns-primary"
}
// impact.affected, impact.affected_count
#BlastRadius
Full impact analysis: affected resources, rollback order, startup order, safe peers at the same layer.
blast: patterns.#BlastRadius & {
Graph: infra
Target: "dns"
}
// blast.rollback_order
// blast.safe_peers
#HealthStatus
Propagate health through the graph. If a resource is down, all dependents become degraded.
health: patterns.#HealthStatus & {
Graph: infra
Status: {"vault": "down"}
}
// health.propagated.web == "degraded"
#SinglePointsOfFailure
Find resources with dependents but no peer of the same type at the same layer.
spof: patterns.#SinglePointsOfFailure & {
Graph: infra
}
// spof.risks
#TOONExport
Token-Oriented Object Notation — reduces LLM token cost ~55% by grouping resources into compact tables.
toon: patterns.#TOONExport & {
resources: _resources
}
// toon.output (compact tables)
#OpenAPISpec
Generate OpenAPI 3.0.3 from bound commands. Every resource/provider/action becomes a POST endpoint.
api: patterns.#OpenAPISpec & {
Cluster: cluster
Info: {title: "Ops API"}
}
// api.spec (valid OpenAPI JSON)
Imperator
imp.quicue.ca — the execution surface. Generates runbooks and deployment plans from the same CUE definitions.
Jupyter Notebooks
Executable .ipynb runbooks. Each deployment layer becomes a section with gate checks and executable command cells.
cue export ./examples/datacenter/ -e notebook --out json > deploy.ipynb
Rundeck Jobs
YAML job definitions grouped by layer and provider. Import into Rundeck for scheduled, self-service execution with RBAC.
cue export ./examples/datacenter/ -e rundeck --out yaml > jobs.yaml
Auto-Docs
MkDocs wiki generated from infrastructure graphs. Per-resource, per-type, per-host pages with Mermaid dependency graphs.
Integrations
CAB Reports
Change Advisory Board reports generated from CUE. Impact analysis, blast radius, deployment runbooks, rollback plans.
GitLab CI
Reusable CI templates for CUE validation, export, topology analysis, impact assessment, and Pages deployment.
SPARQL
Load catalogue.jsonld into Oxigraph. Query providers, actions, and categories as linked data.
SELECT ?p ?cat WHERE {
?p a quicue:Provider ;
quicue:category ?cat .
}
Command Binding
The #BindCluster pattern matches providers to resources by @type overlap, then resolves all action templates into executable commands at CUE compile time. Zero runtime placeholders.
OpenAPI 3.0.3
654 paths — every bound command exposed as a POST endpoint. Organized by resource, provider, and action.
How binding works
// 1. Resource declares @type
"router-core": {"@type": {Router: true}}
// 2. Provider matches by type overlap
vyos: {types: {Router: true}, registry: ...}
// 3. #BindCluster resolves ALL templates
// Output: concrete commands, zero placeholders
Export commands
cue export ./examples/datacenter/ \
-e output.commands --out json
cue export ./examples/datacenter/ \
-e openapi_spec --out json
Data Formats
CUE Source
Every provider is a CUE package. Import and unify.
import "quicue.ca/template/<name>/patterns"