Skip to content
Manifest
Markdown

Manifest

parity.yaml: one file that describes the application for every sandbox, staging and production.

parity.yaml describes your app: the built-ins it uses, the processes it runs, the jobs that set it up and the hosts it may reach. The same file runs every sandbox, staging and production; environments list only how they differ. It holds the app's shape, never secret values.

Run parity check after every change. It needs no account, reports every problem at once, and prints what each service will get, defaults included. Unknown keys are errors, so a typo never passes silently.

Top-level keys

KeyWhat it is
versionAlways 1.
projectYour project's name: lowercase letters, digits and -, starting with a letter, at most 63 characters.
managedManaged services Parity runs for the app: Postgres, Redis, S3 storage, email, ClickHouse, sign-in, certificates.
servicesThe app's long-running processes.
jobsThe app's own commands, run on lifecycle events, on a schedule or on demand.
runnersImages jobs run on instead of their service's. Optional.
env_groupsEnv blocks shared by several services.
externalsThird-party hosts the app may reach: the egress allowlist.
sandboxSandbox lifetime and agent limits. Optional.
environmentsThe environments you declare, and how each differs from the rest of the file. Optional.
releaseHow each build moves across them: promote, block, wait, run and group steps. Optional.
kubernetesThe escape hatch. Optional.
includeOther files that hold part of the manifest, for monorepos. Optional.
x-<anything>Ignored, as in Compose: a place for YAML fragments you reuse with anchors (&name) and aliases (*name).

Names

  • Every name (project, managed entry, service, job, env group, bucket) is a lowercase DNS label: letters, digits and -, starting with a letter, at most 63 characters. A job's name is at most 54 characters, 52 with a schedule, since each run adds a suffix.
  • A managed entry can't share its name with a service or an env group.
  • Names starting with parity- are reserved.
  • Old spellings get an error that names the new one. For example, resources: is now managed:, the events base and create are now seed and start, and a job's run: is now command:.