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.
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.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xyz_strata-1.7.0.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xyz_strata-1.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.5 MB
Release files / xyz_strata-1.7.0.tar.gz
| Download URL | xyz_strata-1.7.0.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc0ebe9a94dc6b3a728a31e55ab8d13cc606fe8f111e14203ecab660cddfe940
|
|
BLAKE2b-256 checksum How to use checksums |
90aa7db7ee5e0e03df1dc19ff2f7087fe71dffc8182647c3a9bbc169c29285c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.7.0-py3-none-any.whl
| Download URL | xyz_strata-1.7.0-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de4b041e5223693d807fc88540457d8e049fa7555d5b1f56dfb8158c02cf92d4
|
|
BLAKE2b-256 checksum How to use checksums |
be7b5bbf2e1464510937691ac32b271dd5b27020515e88fc1dd8faf36d4424b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
|