GCP.Dataform reference
ProjectsLocationsFolder
Section titled “ProjectsLocationsFolder”Source:
src/GCP/Dataform/ProjectsLocationsFolder.ts
A Dataform folder used to organize repositories and nested folders.
Folders have no labels API, so Alchemy stamps ownership into
displayName for list / nuke. Location is immutable. Display name
updates in place; containingFolder is applied with MoveFolder.
ProjectsLocationsFolder: Creating a Folder
Section titled “ProjectsLocationsFolder: Creating a Folder”Root folder
const folder = yield* GCP.Dataform.ProjectsLocationsFolder("Analytics", { displayName: "analytics",});Nested folder
const child = yield* GCP.Dataform.ProjectsLocationsFolder("Models", { displayName: "models", containingFolder: folder.name,});RepositoriesReleaseConfig
Section titled “RepositoriesReleaseConfig”Source:
src/GCP/Dataform/RepositoriesReleaseConfig.ts
A Dataform release configuration — compiles a Git commitish on a schedule (or on demand) into a compilation result.
Release configs have no labels field, so Alchemy stamps ownership
into codeCompilationConfig.vars. Changing releaseConfigId,
repository, or location replaces the config. Commitish, schedule,
disabled flag, vars, and the current compilation result update in
place.
RepositoriesReleaseConfig: Creating a Release Config
Section titled “RepositoriesReleaseConfig: Creating a Release Config”Compile main
const release = yield* GCP.Dataform.RepositoriesReleaseConfig("Prod", { repository: repo.name, gitCommitish: "main",});Nightly release
const release = yield* GCP.Dataform.RepositoriesReleaseConfig("Nightly", { repository: repo.name, gitCommitish: "main", cronSchedule: "0 8 * * *", timeZone: "America/Los_Angeles",});RepositoriesWorkflowConfig
Section titled “RepositoriesWorkflowConfig”Source:
src/GCP/Dataform/RepositoriesWorkflowConfig.ts
A Dataform workflow configuration — executes a release config’s compilation result on a schedule (or on demand).
Workflow configs have no labels field, so ownership is the parent
repository’s Alchemy labels. Changing workflowConfigId,
repository, or location replaces the config. Release config,
schedule, disabled flag, and invocation options update in place.
RepositoriesWorkflowConfig: Creating a Workflow Config
Section titled “RepositoriesWorkflowConfig: Creating a Workflow Config”Run a release
const workflow = yield* GCP.Dataform.RepositoriesWorkflowConfig("Hourly", { repository: repo.name, releaseConfig: release.name,});Disabled schedule
const workflow = yield* GCP.Dataform.RepositoriesWorkflowConfig("Hourly", { repository: repo.name, releaseConfig: release.name, cronSchedule: "0 * * * *", disabled: true,});RepositoriesWorkflowInvocation
Section titled “RepositoriesWorkflowInvocation”Source:
src/GCP/Dataform/RepositoriesWorkflowInvocation.ts
A Dataform workflow invocation — a single run of a compilation result (directly or via a workflow config).
Invocations have no update API and no labels. Identity is
server-assigned; changing repository, compilationResult,
workflowConfig, or invocationConfig replaces the invocation.
list / nuke finds invocations under Alchemy-labeled repositories.
A running invocation is cancelled before delete.
RepositoriesWorkflowInvocation: Creating a Workflow Invocation
Section titled “RepositoriesWorkflowInvocation: Creating a Workflow Invocation”Invoke a compilation result
const run = yield* GCP.Dataform.RepositoriesWorkflowInvocation("Run", { repository: repo.name, compilationResult: compilation.name,});Invoke a workflow config
const run = yield* GCP.Dataform.RepositoriesWorkflowInvocation("Run", { repository: repo.name, workflowConfig: workflow.name,});RepositoriesWorkspace
Section titled “RepositoriesWorkspace”Source:
src/GCP/Dataform/RepositoriesWorkspace.ts
A Dataform Git workspace inside a repository.
Workspaces have no update API. Changing workspaceId, repository,
location, or disableMoves replaces the workspace. Ownership for
list / nuke is the parent repository’s Alchemy labels.
RepositoriesWorkspace: Creating a Workspace
Section titled “RepositoriesWorkspace: Creating a Workspace”Generated name
const workspace = yield* GCP.Dataform.RepositoriesWorkspace("Dev", { repository: repo.name,});Named workspace
const workspace = yield* GCP.Dataform.RepositoriesWorkspace("Dev", { repository: repo.name, workspaceId: "dev",});Repository
Section titled “Repository”Source:
src/GCP/Dataform/Repository.ts
A Dataform Git repository — the container for workspaces, release configs, workflow configs, and workflow invocations.
Changing repositoryId, location, or kmsKeyName replaces the
repository. Display name, labels, Git remote, service account, npmrc
secret, and compilation overrides update in place. containingFolder
is applied with MoveRepository.
Repository: Creating a Repository
Section titled “Repository: Creating a Repository”Generated name
const repo = yield* GCP.Dataform.Repository("Analytics", { labels: { env: "test" },});Named repository
const repo = yield* GCP.Dataform.Repository("Analytics", { repositoryId: "analytics", location: "us-central1", displayName: "analytics",});Source:
src/GCP/Dataform/Team.ts
A Dataform team folder — a project-level container for repositories and folders with hierarchical access control.
Team folders have no labels API, so Alchemy stamps ownership into
displayName for list / nuke. Location is immutable. Display name
updates in place.
Team: Creating a Team Folder
Section titled “Team: Creating a Team Folder”Generated display name
const team = yield* GCP.Dataform.Team("Analytics", {});Named team folder
const team = yield* GCP.Dataform.Team("Analytics", { location: "us-central1", displayName: "analytics",});