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

version1yes

Schema version. Current manifests use version 1.

projectstring | { key?, name }yes

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

environmentsstring[] | objectno

Logical 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.teamSlugstringno

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

providers.vercel.env.targetsobjectno

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

providers.vercel.protectionBypassForAutomationvercelProtectionBypassForAutomationno

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

providers.vercel.projectDefaultsvercelProjectSettingsno

Default Vercel project settings applied to every deployable Vercel app.

providers.<target>.deploymentsobjectno

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

providers.github.actions.environmentsobjectno

GitHub 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? }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.

providers.vercel.protectionBypassForAutomation.generate{ secret?, note? }no

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

providers.vercel.protectionBypassForAutomation.update{ secret, isEnvVar?, note? }no

Direct Vercel update operation for a known existing secret.

providers.vercel.protectionBypassForAutomation.revoke{ secret, regenerate }no

Direct Vercel revoke operation for a known existing secret.

apps[].providers.vercel.protectionBypassForAutomationfalse | vercelProtectionBypassForAutomationno

Per-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[].keystringyes

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

apps[].id | apps[].projectIdstringno

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

apps[].rootDirectorystringno

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

apps[].domainsdomain[]no

Domains 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.sourceDirstringno

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

env.sync.apps | env.sync.packagesstring[]no

Package/app keys included in local env projection.

env.metadata.<source>.variables[]envVariable[]no

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