@vertile-ai/iac
Vertile AI IaC Manifest Schema
The iac.json manifest is the source of truth for app infrastructure intent, provider reconciliation, and environment metadata wiring.
Manifest Identity
Every manifest declares its schema version and project identity before provider or app configuration.
version1yesSchema version. Current manifests use version 1.
projectstring | { key?, name }yesHuman-facing project identity used by generated infrastructure and documentation.
environmentsstring[] | objectnoLogical environment names or environment objects with file-selection metadata.
Provider Configuration
Provider blocks hold provider-specific configuration that cannot be expressed portably yet.
providers.vercel.teamSlugstringnoVercel team slug used by Vercel env, project, and domain reconciliation.
providers.vercel.env.targetsobjectnoMaps Vercel targets such as preview and production to logical IaC environments.
providers.vercel.protectionBypassForAutomationvercelProtectionBypassForAutomationnoDefault Vercel automation-bypass operation for every managed Vercel project. Use ensure for repeatable note-keyed sync.
providers.vercel.projectDefaultsvercelProjectSettingsnoDefault Vercel project settings applied to every deployable Vercel app.
providers.<target>.deploymentsobjectnoProvider deployment map from stage names such as uat or prod to logical environments and provider-specific render inputs.
providers.github.actions.environmentsobjectnoGitHub Actions environment, variable, and secret publishing configuration.
Vercel Automation Bypass
Automation bypass is project protection configuration, not an application runtime environment variable.
providers.vercel.protectionBypassForAutomation.ensure{ secret, note, isEnvVar? }noRepeatable operation. Vertile IaC exact-matches note against Vercel-exposed automation-bypass notes, then sends update when the note exists or generate when it does not.
providers.vercel.protectionBypassForAutomation.generate{ secret?, note? }noDirect Vercel generate operation. Use for explicit provisioning or rotation, not ordinary recurring sync.
providers.vercel.protectionBypassForAutomation.update{ secret, isEnvVar?, note? }noDirect Vercel update operation for a known existing secret.
providers.vercel.protectionBypassForAutomation.revoke{ secret, regenerate }noDirect Vercel revoke operation for a known existing secret.
apps[].providers.vercel.protectionBypassForAutomationfalse | vercelProtectionBypassForAutomationnoPer-project override. Set false to opt a Vercel project out of the provider-level automation-bypass default.
Applications
Apps are deployable application surfaces. Provider adapters map app fields to provider-specific projects and settings.
apps[].keystringyesStable app identifier used by env sync, provider manifests, and project reconciliation.
apps[].id | apps[].projectIdstringnoProvider project id, commonly the Vercel project id for Vercel reconciliation.
apps[].rootDirectorystringnoApp root used by Vercel project settings and env file output.
apps[].domainsdomain[]noDomains assigned to this app by provider domain reconciliation.
Environment Metadata
Env metadata is authored in iac.json and drives local package env sync, Vercel env sync, and GitHub Actions env publishing.
env.sourceDirstringnoRoot directory for env source files. Defaults to .vertile-iac/env.
env.sync.apps | env.sync.packagesstring[]noPackage/app keys included in local env projection.
env.metadata.<source>.variables[]envVariable[]noStructured metadata for env keys, including example, encrypted, browser, package routing, and environment include/exclude rules.
This page is generated from schema/iac.schema.json and the schema documentation artifact published by @vertile-ai/iac. Landing builds run pnpm sync:iac-schemas before build so the public schema files stay aligned with the IaC package.