google_dataform_repository_workflow_config

A resource represents a Dataform workflow configuration

To get more information about RepositoryWorkflowConfig, see:

Open in Cloud Shell

Example Usage - Dataform Repository Workflow Config

resource "google_sourcerepo_repository" "git_repository" {
  provider = google-beta
  name     = "my/repository"
}

resource "google_secret_manager_secret" "secret" {
  provider  = google-beta
  secret_id = "my_secret"

  replication {
    auto {}
  }
}

resource "google_secret_manager_secret_version" "secret_version" {
  provider = google-beta
  secret   = google_secret_manager_secret.secret.id

  secret_data = "secret-data"
}

resource "google_dataform_repository" "repository" {
  provider = google-beta
  name     = "dataform_repository"
  region   = "us-central1"

  git_remote_settings {
      url = google_sourcerepo_repository.git_repository.url
      default_branch = "main"
      authentication_token_secret_version = google_secret_manager_secret_version.secret_version.id
  }

  workspace_compilation_overrides {
    default_database = "database"
    schema_suffix = "_suffix"
    table_prefix = "prefix_"
  }
}

resource "google_dataform_repository_release_config" "release_config" {
  provider = google-beta

  project    = google_dataform_repository.repository.project
  region     = google_dataform_repository.repository.region
  repository = google_dataform_repository.repository.name

  name          = "my_release"
  git_commitish = "main"
  cron_schedule = "0 7 * * *"
  time_zone     = "America/New_York"

  code_compilation_config {
    default_database = "gcp-example-project"
    default_schema   = "example-dataset"
    default_location = "us-central1"
    assertion_schema = "example-assertion-dataset"
    database_suffix  = ""
    schema_suffix    = ""
    table_prefix     = ""
    vars = {
      var1 = "value"
    }
  }
}

resource "google_service_account" "dataform_sa" {
  provider     = google-beta
  account_id   = "dataform-sa"
  display_name = "Dataform Service Account"
}

resource "google_dataform_repository_workflow_config" "workflow" {
  provider = google-beta

  project        = google_dataform_repository.repository.project
  region         = google_dataform_repository.repository.region
  repository     = google_dataform_repository.repository.name
  name           = "my_workflow"
  release_config = google_dataform_repository_release_config.release_config.id

  invocation_config {
    included_targets {
      database = "gcp-example-project"
      schema   = "example-dataset"
      name     = "target_1"
    }
    included_targets {
      database = "gcp-example-project"
      schema   = "example-dataset"
      name     = "target_2"
    }
    included_tags                            = ["tag_1"]
    transitive_dependencies_included         = true
    transitive_dependents_included           = true
    fully_refresh_incremental_tables_enabled = false
    service_account                          = google_service_account.dataform_sa.email
  }

  cron_schedule   = "0 7 * * *"
  time_zone       = "America/New_York"
}

Argument Reference

The following arguments are supported:


The invocation_config block supports:

The included_targets block supports:

Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

The recent_scheduled_execution_records block contains:

The error_status block contains:

Timeouts

This resource provides the following Timeouts configuration options:

Import

RepositoryWorkflowConfig can be imported using any of these accepted formats:

In Terraform v1.5.0 and later, use an import block to import RepositoryWorkflowConfig using one of the formats above. For example:

import {
  id = "projects/{{project}}/locations/{{region}}/repositories/{{repository}}/workflowConfigs/{{name}}"
  to = google_dataform_repository_workflow_config.default
}

When using the terraform import command, RepositoryWorkflowConfig can be imported using one of the formats above. For example:

$ terraform import google_dataform_repository_workflow_config.default projects/{{project}}/locations/{{region}}/repositories/{{repository}}/workflowConfigs/{{name}}
$ terraform import google_dataform_repository_workflow_config.default {{project}}/{{region}}/{{repository}}/{{name}}
$ terraform import google_dataform_repository_workflow_config.default {{region}}/{{repository}}/{{name}}
$ terraform import google_dataform_repository_workflow_config.default {{repository}}/{{name}}

User Project Overrides

This resource supports User Project Overrides.