---
name: schematics-limitations
title: Adoption considerations
description: Review the following considerations when adopting IBM Cloud Schematics. Additionally review the section on workspace setup for the details of how to work with your Terraform configurations stored in Git repositories.
last-updated: 2026-07-07
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/schematics?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Adoption considerations
{: #schematics-limitations}

Review the following considerations when adopting IBM Cloud Schematics. Additionally review the section on [workspace setup](https://cloud.ibm.com/docs/schematics?topic=schematics-create-tf-config&interface=ui&format=markdown#configure-provider) for the details of how to work with your Terraform configurations stored in Git repositories.
{: shortdesc}

## Differences to native Terraform
{: #terraform-vs-schematics}

If you used native Terraform before and plan to migrate your Terraform templates to IBM Cloud Schematics, make sure that you understand the differences between standalone Terraform usage and use through Schematics to modify your templates.
{: shortdesc}

### Do I need to provide an IBM Cloud API key in the `provider` block?
{: #provider-block}

With Schematics it is not necessary to pass an API Key.

If an API key is not defined in the `provider` block, Schematics passes the users IAM token for all IAM-enabled resources, including IBM Cloud Kubernetes Service clusters, and VPC infrastructure resources. However, the IAM token is not retrieved for classic infrastructure resources and the API key must be provided in the `provider` block.

If an IBM Cloud&reg; API key passed, it is used to authenticate with the IBM Cloud platform, create the IAM token and IAM refresh token that Schematics requires to work with the resource's API, and to determine the permissions that you have granted to perform the provisioning operation.
{: shortdesc}

For more information about how to configure the `provider` block, see [Configuring the `provider` block](https://cloud.ibm.com/docs/schematics?topic=schematics-create-tf-config&format=markdown#configure-provider).

### Can I use my local `terraform.tfvars` file?
{: #terraformtfvars}

The `terraform.tfvars` file is a local variables file that you can use to store sensitive information, such as your IBM Cloud API key or classic infrastructure user name when you use native Terraform. This file, or environment variables must be present on your local machine for Terraform to load the values for your credentials when you initialize the Terraform CLI.
{: shortdesc}

With IBM Cloud Schematics, you do not use a local `terraform.tfvars` file. Instead, you [declare your variables](https://cloud.ibm.com/docs/schematics?topic=schematics-create-tf-config&format=markdown#configure-variables) in the Terraform configuration files, and enter the values for your variables when you create a workspace. You can later change the values of your variables by updating the variables from your workspace details page.

### Is Terraform remote state supported?
{: #tf-remote-state}

Schematics includes implicit backend support and it is not required to define a remote backend.

You can access workspace state information from other workspaces by using the Schematics `ibm_schematics_output` data source. This replaces the `remote_state` data source used by native Terraform in conjunction with remote backend support. It works in the same way allowing access to Terraform workspaces.

With the [`ibm_schematics_output`](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/schematics_output){: external} data source, you automatically have access to the built-in Schematics backend and can access workspace information directly. See also the [`ibm_schematics_state`](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/schematics_state){: external} data source.

For more information about how to use these data sources, see [Managing cross-workspace state access with Terraform](https://cloud.ibm.com/docs/schematics?topic=schematics-remote-state&format=markdown).

### Why do local-exec and remote-exec provisioner terminate after 30 minutes?
{: #local-remote-exec}

The Terraform `local exec` and `remote exec` operations have a time limit of `30 minutes`. This is to ensure fair usage of the Schematics service for all users. If exceeded, the commands terminated and job execution fail.

## What is the use of refresh token header?
{: #refresh-token}

If the `destroyresource` flag is set to `true`, refresh token header configuration is required to delete all the Cloud resources, and the Schematics workspace. Following are the uses of refresh token header:
- If the token is expired, you can use `refresh token` to get a new IAM access token, see [IAM access token](https://cloud.ibm.com/docs/schematics?topic=schematics-general-faq&format=markdown#createworkspace-generate-tokens).
- The `refresh_token` parameter cannot be used to retrieve a new IAM access token.
- When the IAM access token is about to expire, use the [API key](https://cloud.ibm.com/apis/iam-identity-token-api#create-api-key){: external} to create a new access token.

## Git repo restrictions
{: #git-restrictions}

Branch names containing `/` (backslash) are not supported.

## Cost estimate
{: #cost-restrictions}

Cost estimation is available for templates. This estimated amount is subject to change as the architecture is customized within a project, and it does not include all resources, usage, licenses, fees, discounts, or taxes. In the future, aggregate costs across projects that can be grouped by various criteria are available. For more information, see [Estimating infrastructure costs](https://cloud.ibm.com/docs/schematics?topic=schematics-cost-estimation&format=markdown).