Skip to main content

strata

You already have Terraform. The problem is you have eight environment folders — dev, staging, prd, prd-eu, prd-us, dr, sandbox, perf — and they are 90% identical. Every change gets applied to one folder, forgotten in three others, and you only find out when production drifts. strata is a YAML config layer over Terraform, Helm, and scripts that treats your environments as data, not as copy-pasted folders. One source of truth, one command to validate it, one command to deploy it.

📖 Full documentation

Support: GitHub Issues


Quick Start

pipx install xyz-strata                        # install
strata sln init                                             # scaffold a new config workspace
strata console                                              # interactive guided session
strata validate --file stack/my-environment.yaml        # validate before you touch anything
strata deploy run --file deploy/my-environment.yaml     # deploy to the target environment

New here? See the feature overview for a practical rundown of what strata does, or the Getting Started guide for the full walkthrough. Run strata --help to see all commands. Dev install: uv sync.

No PyPI access? Using a Dev Container? Inject strata from the published image — no Python install required:

# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
COPY --from=ghcr.io/huybrechtsxyz/strata:latest /app/.venv /opt/strata
ENV PATH="/opt/strata/bin:$PATH"

See the Getting Started guide for the full devcontainer and air-gapped registry setup.


Automation & AI Agents

Set STRATA_OUTPUT=json once (or strata config set output json) and every command returns a structured JSON envelope on stdout:

{
  "success": true,
  "command": "validate",
  "execution_id": "fb063135-...",
  "timestamp": "2026-05-18T14:31:47.267924",
  "data": { "validation_passed": true, "errors": [] },
  "messages": [],
  "errors": []
}

Key conventions for automation:

Concern Guidance
Output format Always use --output json or STRATA_OUTPUT=json
Exit codes 0 success · 1 system failure · 2 bad args · 3 validation failure
Workspace Set STRATA_WORK_PATH to target a workspace without cd
Error stream In console mode, errors go to stderr; structured JSON always goes to stdout
Execution correlation execution_id in the envelope maps directly to strata audit list --execution-id <id>
Env-var overrides Every CLI flag has an XYZ_<OPTION> equivalent (STRATA_VERBOSE=true, STRATA_QUIET=true, …)

Safe read-only commands that work outside an initialized workspace (no .strata/solution.json required): validate, status, schema list, schema get.

AI agents/Copilot users: drop .github/skills/strata-onboarding.md into your agent's skill/instructions folder for strata-aware YAML assistance before you even have a workspace — the same content is also published at docs/skills/strata-onboarding.md.


License

GNU Affero General Public License v3.0 — see LICENSE.

Metadata

Release files for xyz-strata 1.9.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xyz-strata 1.9.7
File Size Uploaded
xyz_strata-1.9.7.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for xyz-strata 1.9.7
File Interpreter ABI Platform
xyz_strata-1.9.7-py3-none-any.whl Python 3 none any Details

Total release size: 2.7 MB

Release files / xyz_strata-1.9.7.tar.gz

Download URL xyz_strata-1.9.7.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
b566dfe036b0a31ea5ad27c4bf02c1d33a825d17af76f0250daf7f607e028942
BLAKE2b-256 checksum
How to use checksums
dc5425afd986a38c96078ffccfe8288e8f821ce8769c980f4fec245d4c1788e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.12 {"installer":{"name":"uv","version":"0.12.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / xyz_strata-1.9.7-py3-none-any.whl

Download URL xyz_strata-1.9.7-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
06289206ca5cd018fbf46a076999cf32b01fdf0478b8a656b0308ee033e24cfe
BLAKE2b-256 checksum
How to use checksums
b53374b9a9f298d9af2e9578a151d7d725d5e2e80a2e659beb6c7d3fd3bebcf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.12 {"installer":{"name":"uv","version":"0.12.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.11.2

2 release files

1.11.1

2 release files

1.11.0

2 release files

1.10.0

2 release files

1.9.11

2 release files

1.9.9

2 release files

1.9.8

2 release files

This release

1.9.7 This release

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.7.0

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page