Schemas
A schema describes platform defaults and system-managed fields. When a value in your input matches a default, it gets stripped.
Bundled schemas
25 schemas ship with decoct, covering 1,494 platform defaults. Reference by short name:
| Category | Schemas |
|---|---|
| Container & Orchestration | docker-compose (35), kubernetes (50) |
| Configuration Management | ansible-playbook (132), cloud-init (55), sshd-config (35) |
| Infrastructure as Code | terraform-state, aws-cloudformation (56), azure-arm (65), gcp-resources (42) |
| CI/CD | github-actions (8), gitlab-ci (25), argocd (14) |
| Databases | postgresql (169), mariadb-mysql (76), mongodb (15), redis (61), kafka (63) |
| Observability | prometheus (62), grafana (162), opentelemetry-collector (19), fluent-bit (75) |
| Networking | traefik (57) |
| Identity | keycloak (78), entra-id (44), intune (96) |
decoct compress config.yaml --schema docker-composedecoct compress deployment.yaml --schema kubernetesdecoct compress playbook.yaml --schema ansible-playbookdecoct compress cloud-init.yaml --schema cloud-initdecoct compress terraform.tfstate --schema terraform-stateEight platforms support auto-detection when no --schema or --profile is given: Docker Compose, Kubernetes, Ansible, cloud-init, Terraform state, GitHub Actions, Traefik, and Prometheus.
See Bundled Schemas Reference for full details on each schema.
Custom schemas
platform: my-platformsource: vendor documentation v2.1confidence: authoritative
defaults: services.*.restart: "no" services.*.network_mode: bridge services.*.privileged: false
drop_patterns: - "**.uuid" - "**.managedFields"
system_managed: - "**.creationTimestamp" - "**.resourceVersion"Fields
| Field | Required | Description |
|---|---|---|
platform | Yes | Platform name (e.g. docker-compose, kubernetes). |
source | Yes | Where the defaults come from (spec name and version). |
confidence | Yes | One of authoritative, high, medium, low. |
defaults | No | Map of path patterns to their default values. |
drop_patterns | No | List of path patterns to always drop. |
system_managed | No | List of path patterns for system-generated fields. |
Confidence levels
| Level | Meaning | With skip_low_confidence |
|---|---|---|
authoritative | From official specification | Always stripped |
high | Verified against vendor docs | Always stripped |
medium | Derived from examples | Skipped |
low | Inferred or uncertain | Skipped |
Use skip_low_confidence: true in a profile’s strip-defaults pass config to only strip defaults from authoritative and high confidence schemas.
LLM-assisted schema generation
Instead of writing schemas manually, derive them from examples or documentation:
decoct schema learn -e prod-config.yaml -p my-platform -o schema.yamldecoct schema learn -d vendor-docs.md -p my-platform -o schema.yamlRequires pip install decoct[llm]. See Schema Authoring for full details.