foundry.json — Platform Manifest

The manifest is the single source of truth for what a platform IS: its services, their stacks, how each one deploys, and which environments exist. It declares topology — not how to run things locally (that is resolved into .foundry/workspace.yml).

In a monorepo the manifest is the repo's own foundry.json. In a multi-repo platform the authoritative manifest is foundry-ops/platform.json, and service repos carry no manifest of their own.

Schema version

The manifest spec is at v0.7.0. foundry init currently scaffolds a schemaVersion 0.5.0 manifest; the v0.7.0 additions (per-service repository, path, and environments) are additive and back-compatible — a 0.5.0 manifest is still valid. The Schema Reference renders the live schema.

Top-level fields

FieldTypeRequiredDescription
$schemastringJSON Schema URI for validation
schemaVersionstringManifest spec version (semver, e.g. 0.7.0)
namestringHuman-readable platform name
repositorystringRoot repository folder name (kebab-case)
ciobjectIaC tool + provider + environments (requires iac, provider)
servicesobjectService declarations (keyed by name)
prefixstringShort prefix for AWS resource naming + satellite discovery (auto-derived from name)
structureobjectDirectory overrides (appsDir, ciDir, packagesDir)
githubobjectGitHub org + cross-repo config (replaces ecosystem)
foundryobjectCLI metadata (minimum version)
templateobjectWhich template generated this manifest (informational)

Deprecated blocks

  • ecosystem — replaced by github in v0.4.0. See GitHub & Cross-Repo.
  • databases (top-level) — declare a service's database inline under the service instead.

Name → repository → prefix

The platform name drives two derived values (both overridable):

name: "An Average Platform"
  → repository: "an-average-platform"   (slugified)
  → prefix:     "aap"                   (first letter of each word, min 2 chars)

The prefix is used for AWS resource naming and for discovering satellite repos by the {prefix}-* pattern.