@vertile-ai/iac

Infrastructure,
expressed once.

The iac.json manifest is the source of truth for app infrastructure intent, provider reconciliation, and environment metadata wiring.

Reference
Vertile AI IaC Manifest Schema
Sections
05

Section 01

Manifest Identity

Every manifest declares its schema version and project identity before provider or app configuration.

Pathversion
Type

1

Required

yes

Schema version. Current manifests use version 1.

Pathproject
Type

string | { key?, name }

Required

yes

Human-facing project identity used by generated infrastructure and documentation.

Pathenvironments
Type

string[] | object

Required

no

Logical environment names or environment objects with file-selection metadata.

Section 02

Provider Configuration

Provider blocks hold provider-specific configuration that cannot be expressed portably yet.

Pathproviders.vercel.teamSlug
Type

string

Required

no

Vercel team slug used by Vercel env, project, and domain reconciliation.

Pathproviders.vercel.env.targets
Type

object

Required

no

Maps Vercel targets such as preview and production to logical IaC environments.

Pathproviders.vercel.protectionBypassForAutomation
Type

vercelProtectionBypassForAutomation

Required

no

Default Vercel automation-bypass operation for every managed Vercel project. Use ensure for repeatable note-keyed sync.

Pathproviders.vercel.projectDefaults
Type

vercelProjectSettings

Required

no

Default Vercel project settings applied to every deployable Vercel app.

Pathproviders.<target>.deployments
Type

object

Required

no

Provider deployment map from stage names such as uat or prod to logical environments and provider-specific render inputs.

Pathproviders.github.actions.environments
Type

object

Required

no

GitHub Actions environment, variable, and secret publishing configuration.

Section 03

Vercel Automation Bypass

Automation bypass is project protection configuration, not an application runtime environment variable.

Pathproviders.vercel.protectionBypassForAutomation.ensure
Type

{ secret, note, isEnvVar? }

Required

no

Repeatable 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.

Pathproviders.vercel.protectionBypassForAutomation.generate
Type

{ secret?, note? }

Required

no

Direct Vercel generate operation. Use for explicit provisioning or rotation, not ordinary recurring sync.

Pathproviders.vercel.protectionBypassForAutomation.update
Type

{ secret, isEnvVar?, note? }

Required

no

Direct Vercel update operation for a known existing secret.

Pathproviders.vercel.protectionBypassForAutomation.revoke
Type

{ secret, regenerate }

Required

no

Direct Vercel revoke operation for a known existing secret.

Pathapps[].providers.vercel.protectionBypassForAutomation
Type

false | vercelProtectionBypassForAutomation

Required

no

Per-project override. Set false to opt a Vercel project out of the provider-level automation-bypass default.

Section 04

Applications

Apps are deployable application surfaces. Provider adapters map app fields to provider-specific projects and settings.

Pathapps[].key
Type

string

Required

yes

Stable app identifier used by env sync, provider manifests, and project reconciliation.

Pathapps[].id | apps[].projectId
Type

string

Required

no

Provider project id, commonly the Vercel project id for Vercel reconciliation.

Pathapps[].rootDirectory
Type

string

Required

no

App root used by Vercel project settings and env file output.

Pathapps[].domains
Type

domain[]

Required

no

Domains assigned to this app by provider domain reconciliation.

Section 05

Environment Metadata

Env metadata is authored in iac.json and drives local package env sync, Vercel env sync, and GitHub Actions env publishing.

Pathenv.sourceDir
Type

string

Required

no

Root directory for env source files. Defaults to .vertile-iac/env.

Pathenv.sync.apps | env.sync.packages
Type

string[]

Required

no

Package/app keys included in local env projection.

Pathenv.metadata.<source>.variables[]
Type

envVariable[]

Required

no

Structured metadata for env keys, including example, encrypted, browser, package routing, and environment include/exclude rules.

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 public schema files stay aligned with the IaC package.