Configuration Files

strata uses YAML documents to define infrastructure, environments, and deployments. Every document follows the same shape (apiVersion, kind, meta, spec) and is discovered automatically from a solution root (strata.yaml) — see docs/GLOSSARY.md for the discovery mechanism itself. This folder documents each kind’s schema individually; for current implementation status, see docs/design/v2-schema-overview.md.

File Types

Bootstrap:

  • solution.md — strata.yaml, the solution manifest (identity, remotes, discovery root)

  • configuration.md — platform-wide policy (allowed provider/topology types)

Type registries:

Infrastructure:

  • provider.md — a cloud provider instance (credentials, region)

  • resource.md — a provisioned cloud resource (VM, storage, etc.)

  • network.md — VPCs/VNets, subnets, peerings

  • firewall.md — security rules

  • dns.md — DNS zones and records

  • workspace.md — the composed “image”: providers, resources, topologies, provisioning recipe

Workloads:

  • module.md — a deployable workload (containers, env vars, mounts, health checks)

  • namespace.md — a named collection of modules

Deployment:

  • tenant.md — customer/organization identity and inherited defaults

  • environment.md — real declared variables/secrets/feature flags

  • deployment.md — workspace + environment + tenant, tied into stages

  • version.md — pinned tool/image/chart versions with rationale

  • artifact.md — a pinnable reference to something external (a container image today)

Tooling:

  • integration.md — a connection to an external tool (Terraform, Helm, Compose, …) — for a configuration guide per real integration (Infisical, Azure Key Vault, Azure App Configuration), see docs/integrations/

Architecture

Solution (strata.yaml)
  └─ Configuration ── ProviderConfig / TopologyConfig (type registries)
  └─ Workspace ── Provider, Resource, Topology, Namespace ── Module
  └─ Deployment ── extends → Workspace + Environment(s) + Tenant

Every reference between documents is (kind, meta.name) — never a file path (ADR-0015). Rename or reorganize files freely; nothing here depends on directory layout or file naming.

Quick Start

See config/ for a real, working solution exercising every kind above end to end, and its own README for the validate/build/deploy commands to run against it.