SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →Starting point

joule-studio-setup-terraform

A Terraform template that provisions an SAP BTP subaccount preconfigured for Joule Studio, with identity provider trust, a Cloud Foundry space, subscriptions and role collections.

Provisions a subaccount with trust to a custom identity provider, a Cloud Foundry environment with an org and a dev space, and subscriptions and role collections for SAP Build Process Automation, Joule Studio and SAP Build Work Zone. Five Terraform files carry it: the provider configuration, the input variables and their values, the subaccount with its subdomain sanitization logic, and services.tf, which holds the entitlements and subscriptions. It needs an existing BTP global account with SAP Cloud Identity Services, the Joule and Build Process Automation entitlements already granted, and BTP credentials stored as GitHub Actions secrets before its Terraform Deploy workflow can run. It stops short of creating a Joule Formation, which the README says cannot be automated via Terraform yet and has to be done afterwards with the Joule booster.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Demonstrates
Account provisioningBTPAccount provisioningcapabilitySetting up cloud accounts, their organisational structure, resource entitlements, subscriptions and access assignments so the setup can be repeated from code. [Deployment](capability:deployment) puts an application onto a runtime that this account structure makes available.
Requires
TerraformTerraformoutside the atlasthe tool that applies the scripts; the repository is Terraform configuration, run through its own Terraform Deploy workflow.Terraform Provider for SAP BTPTerraform Provider for SAP BTPartifactthe provider the scripts configure and create the subaccount, entitlements and subscriptions through.Cloud Identity ServicesCloud Identity Servicesartifactthe custom identity provider the new subaccount's trust configuration points at; listed among the requirements as an IAS tenant for the global account.GitHubGitHuboutside the atlaswhere the template is copied and run: the repository secrets and variables hold the BTP credentials and the subaccount name and region, and the Terraform Deploy workflow runs in Actions.

Who is behind it

SAP SamplesSAP SamplesOrganisationMaintains this
In the atlas: maintains 222
@SAP-samples
maintainerShrinivasan NeelamegamPersonContributes to this
In the atlas: contributes to 4
@neelamegams
1 contributor

What it declares

Every artifact

Type
Sample
Origin
By SAP

As a sample

Form
A template or starter

Connections5

README

quoted from SAP-samples/joule-studio-setup-terraform under Apache-2.0, read
SAP-samples/joule-studio-setup-terraform/README.mdOn GitHub

Jumpstart your Joule Studio Setup with Terraform

REUSE status

Description

This repository contains Terraform scripts to setup an SAP BTP subaccount using the SAP BTP Terraform provider for Joule Studio within an exising Global account with Custom Identity Provider (Cloud Identity Services). It automatically sets up SAP Build Process Automation build-default plan, Joule standard plan, Cloud foundry, Role Collections, trust with custom IDP and more.

  • main.tf: Provider configuration (BTP and Cloud Foundry)
  • variables.tf: Input variables for subaccount
  • terraform.tfvars: Configurable input variables with values
  • subaccount.tf: Subaccount creation with subdomain sanitization logic
  • services.tf: Subaccount entitlements and subscriptions for services(Joule, BPA, WZ, Roles, Role Collections)

What Gets Created

This Terraform configuration provisions the following resources:

ResourceDescription
SubaccountNew BTP subaccount with custom IDP trust
Cloud FoundryCF environment with org and dev space
SAP Build Process AutomationSubscription (build-default plan)
Joule StudioSubscription with standard plan
SAP Build Work ZoneStandard (free)
Role CollectionsProcessAutomationAdmin, ProcessAutomationDeveloper, Joule_Studio, Launchpad_Admin

Estimated time: ~20-30 minutes for full provisioning of resources

Requirements

Before using this template, ensure you have:

RequirementDescription
BTP Global AccountWith Global Account Administrator access
EntitlementsJoule (standard plan) and Build Process Automation (build-default plan)
SAP Cloud Identity ServicesIAS tenant for your global account
Platform UserSAP ID Service credentials for Terraform authentication
Steps to find your Identity Provider URL
  1. Go to BTP Cockpit → Global Account → Account Explorer
  2. Click on any existing subaccount
  3. Navigate to Security → Trust Configuration
  4. Look for an entry like xxxxx.accounts.ondemand.com and Copy the domain (e.g., abc123xy.accounts.ondemand.com)
  5. You will need this url in Step 3 of Setup and Configuration section

Don't have a custom IDP? Most BTP accounts include SAP Cloud Identity Services. If missing, contact your administrator to enable it for your global account.

Setup and Configuration

  1. Click Use this template button on this repository and choose Create a new repository
  2. Provide a repo name, make visibility of your repo as Private and select Create repository
  3. Update the terraform.tfvars with your global account subdomain and identity_provider and commit the change. This is one time update.
   globalaccount = "xxx-xxxx-xxxx-xxxx-xxx"
   identity_provider = "xxxxx.accounts.ondemand.com"

Global account subdomain

  1. Add 2 Secrets from Settings → Secrets and variables → Actions → Secrets → New repository secret :

    • BTP_USERNAME - Your BTP email
    • BTP_PASSWORD - Your BTP password

    Github Secrets

    Note: The BTP username and password provided here should have administrator access within the global account mentioned in Step 3.

  2. Add 2 Variables from Settings → Secrets and variables → Actions → Variables → New repository variable :

    • SUBACCOUNT_NAME - e.g., my-joule-studio
    • SUBACCOUNT_REGION - e.g., eu10

Github Variables

Note: These variables must be updated for each new subaccount since subaccount names must be unique and the region must be a Joule supported data center. By storing them as GitHub variables, they can be modified without changing the Terraform scripts(.tf files).

  1. Go to Actions → Terraform Deploy → Run workflow → From Terraform action to perform dropdown, select apply → Run workflow :

Github Workflow Deploy

  1. Monitor the deployment from the Actions tab

Deployment

Create a Joule Formation

The last step to complete the Joule Studio setup is to create a Joule Formation. By creating a formation, you logically group multiple systems and services together so they can work as a unified solution. The Formation is what makes Joule aware of the connected systems and able to orchestrate across them. Unfortunately, this cannot be automated via Terraform yet, so run the Joule booster after running the Terraform script to perform this step automatically.

Known Issues

No known issues at this time.

References

How to obtain support

Create an issue in this repository if you find a bug or have questions about the content.

For additional support, ask a question in SAP Community.

Contributing

If you wish to contribute code, offer fixes or improvements, please send a pull request. Due to legal reasons, contributors will be asked to accept a DCO when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses the standard DCO text of the Linux Foundation.

License

Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.

Apache-2.0, read

Details

Sources3
Added by handdiscovered herechecked
github.com/SAP-samples/joule-studio-setup-terraformtree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainbtp, operations-and-runtime
Contributors1

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:sap-samples-joule-studio-setup-terraform
JSON
/artifacts/sap-samples-joule-studio-setup-terraform.json
MCP
Connecting an agent