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

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

Built distribution (wheel)

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

Total release size: 2.7 MB

Release files / xyz_strata-1.9.6.tar.gz

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

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

This release

1.9.6 This release

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