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.3

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.3
File Size Uploaded
xyz_strata-1.9.3.tar.gz 1.1 MB Details

Built distribution (wheel)

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

Total release size: 2.6 MB

Release files / xyz_strata-1.9.3.tar.gz

Download URL xyz_strata-1.9.3.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a8f64bb7875a174b1bc082f9de0f274b4ac84ce7503995445ad6859eb34c3d8b
BLAKE2b-256 checksum
How to use checksums
9f0519480ec0c972c08ae85b17fbe57deb8e63dd4525cd47e89374d3150b1e6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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.3-py3-none-any.whl

Download URL xyz_strata-1.9.3-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8f50a42227a633474690815d71cabf167201924137a72ca257051dcd52405340
BLAKE2b-256 checksum
How to use checksums
0fc76b9a74dfa98548cc8c7f53488e52bfc0b8ee968301be04d53d7f3bec7a0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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

1.9.7

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

This release

1.9.3 This release

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