Skip to main content
All provisioning is driven by one file — _infra/synthetiq.yaml — committed to your git repository. generate and provision read it; changing your infrastructure means editing it and re-running the lifecycle.

Create it with infra init

From your infrastructure repository:
init confirms the target AWS account, discovers your VPC, public subnets, and issued certificates, and writes the config with concrete ids:
Commit it. generate and provision find the file from anywhere inside the repo.

Fields

Required — existing infrastructure Synthetiq references, never modifies: Overrides — optional block listing existing infrastructure to reuse instead of letting the stack build it: Anything not overridden is created and managed inside the Synthetiq stack, and appears as Add resources in the diff generate produces — so the effect of an omission is always visible before it’s applied. Manage — optional block of account-shared resources Synthetiq provisions by default. Set any to false when your account already provides it; provisioning then skips that resource and you own keeping it available. Each defaults to true.
With emf_extraction_policy: false, disable EMF on the /ecs/synthetiq-app-* log groups in your own metric-extraction policy — otherwise CloudWatch auto-creates redundant, billable metrics from each app’s logs.
Unknown keys are rejected at load time, so a typo fails in CI instead of being silently ignored.

Authoring without AWS access

Run without credentials, init enters offline mode and asks for the values directly instead of discovering them. synthetiq infra generate validates every value against the real account later, wherever credentials exist (CI, or a teammate with a profile). The file is plain YAML — editing it by hand is equally valid. That’s also how you change infrastructure later: edit, commit, and re-run generate to see the diff before anything is applied.