published on Thursday, May 14, 2026 by Pulumi
published on Thursday, May 14, 2026 by Pulumi
Manages an Azure Active Directory (Microsoft Entra ID) application registration for a dbt Cloud account. This enables Azure DevOps integration, allowing dbt Cloud to access Azure DevOps repositories for project setup.
The clientId, clientSecret and tenantId are encrypted at rest and never returned by the API. They are stored as sensitive values in Terraform state so they can be resent on every update — the API requires all three on both create and update.
Destroy behaviour: running terraform destroy calls the dbt Cloud DELETE endpoint, which marks the record as inactive. Due to a known dbt Cloud backend limitation, the underlying database row is retained and re-creating the resource against the same account without a backend cleanup will fail with a unique-constraint error. If you need to recreate the resource after a destroy, contact dbt Cloud support to have the orphaned record removed, or use pulumi import to re-adopt the existing record ID.
Requires the Azure DevOps integration feature to be enabled on the account (enterprise plans only).
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as dbtcloud from "@pulumi/dbtcloud";
const _this = new dbtcloud.AzureAdApplication("this", {
organizationName: "my-azure-devops-org",
clientId: "00000000-0000-0000-0000-000000000000",
clientSecret: azureClientSecret,
tenantId: "00000000-0000-0000-0000-000000000001",
azureServiceAuthenticationMethod: "service_user",
});
import pulumi
import pulumi_dbtcloud as dbtcloud
this = dbtcloud.AzureAdApplication("this",
organization_name="my-azure-devops-org",
client_id="00000000-0000-0000-0000-000000000000",
client_secret=azure_client_secret,
tenant_id="00000000-0000-0000-0000-000000000001",
azure_service_authentication_method="service_user")
package main
import (
"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := dbtcloud.NewAzureAdApplication(ctx, "this", &dbtcloud.AzureAdApplicationArgs{
OrganizationName: pulumi.String("my-azure-devops-org"),
ClientId: pulumi.String("00000000-0000-0000-0000-000000000000"),
ClientSecret: pulumi.Any(azureClientSecret),
TenantId: pulumi.String("00000000-0000-0000-0000-000000000001"),
AzureServiceAuthenticationMethod: pulumi.String("service_user"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using DbtCloud = Pulumi.DbtCloud;
return await Deployment.RunAsync(() =>
{
var @this = new DbtCloud.AzureAdApplication("this", new()
{
OrganizationName = "my-azure-devops-org",
ClientId = "00000000-0000-0000-0000-000000000000",
ClientSecret = azureClientSecret,
TenantId = "00000000-0000-0000-0000-000000000001",
AzureServiceAuthenticationMethod = "service_user",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.dbtcloud.AzureAdApplication;
import com.pulumi.dbtcloud.AzureAdApplicationArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var this_ = new AzureAdApplication("this", AzureAdApplicationArgs.builder()
.organizationName("my-azure-devops-org")
.clientId("00000000-0000-0000-0000-000000000000")
.clientSecret(azureClientSecret)
.tenantId("00000000-0000-0000-0000-000000000001")
.azureServiceAuthenticationMethod("service_user")
.build());
}
}
resources:
this:
type: dbtcloud:AzureAdApplication
properties:
organizationName: my-azure-devops-org
clientId: 00000000-0000-0000-0000-000000000000
clientSecret: ${azureClientSecret}
tenantId: 00000000-0000-0000-0000-000000000001
azureServiceAuthenticationMethod: service_user
Example coming soon!
Create AzureAdApplication Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new AzureAdApplication(name: string, args: AzureAdApplicationArgs, opts?: CustomResourceOptions);@overload
def AzureAdApplication(resource_name: str,
args: AzureAdApplicationArgs,
opts: Optional[ResourceOptions] = None)
@overload
def AzureAdApplication(resource_name: str,
opts: Optional[ResourceOptions] = None,
client_id: Optional[str] = None,
client_secret: Optional[str] = None,
organization_name: Optional[str] = None,
tenant_id: Optional[str] = None,
azure_service_authentication_method: Optional[str] = None)func NewAzureAdApplication(ctx *Context, name string, args AzureAdApplicationArgs, opts ...ResourceOption) (*AzureAdApplication, error)public AzureAdApplication(string name, AzureAdApplicationArgs args, CustomResourceOptions? opts = null)
public AzureAdApplication(String name, AzureAdApplicationArgs args)
public AzureAdApplication(String name, AzureAdApplicationArgs args, CustomResourceOptions options)
type: dbtcloud:AzureAdApplication
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "dbtcloud_azureadapplication" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args AzureAdApplicationArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args AzureAdApplicationArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args AzureAdApplicationArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args AzureAdApplicationArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args AzureAdApplicationArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var azureAdApplicationResource = new DbtCloud.AzureAdApplication("azureAdApplicationResource", new()
{
ClientId = "string",
ClientSecret = "string",
OrganizationName = "string",
TenantId = "string",
AzureServiceAuthenticationMethod = "string",
});
example, err := dbtcloud.NewAzureAdApplication(ctx, "azureAdApplicationResource", &dbtcloud.AzureAdApplicationArgs{
ClientId: pulumi.String("string"),
ClientSecret: pulumi.String("string"),
OrganizationName: pulumi.String("string"),
TenantId: pulumi.String("string"),
AzureServiceAuthenticationMethod: pulumi.String("string"),
})
resource "dbtcloud_azureadapplication" "azureAdApplicationResource" {
client_id = "string"
client_secret = "string"
organization_name = "string"
tenant_id = "string"
azure_service_authentication_method = "string"
}
var azureAdApplicationResource = new AzureAdApplication("azureAdApplicationResource", AzureAdApplicationArgs.builder()
.clientId("string")
.clientSecret("string")
.organizationName("string")
.tenantId("string")
.azureServiceAuthenticationMethod("string")
.build());
azure_ad_application_resource = dbtcloud.AzureAdApplication("azureAdApplicationResource",
client_id="string",
client_secret="string",
organization_name="string",
tenant_id="string",
azure_service_authentication_method="string")
const azureAdApplicationResource = new dbtcloud.AzureAdApplication("azureAdApplicationResource", {
clientId: "string",
clientSecret: "string",
organizationName: "string",
tenantId: "string",
azureServiceAuthenticationMethod: "string",
});
type: dbtcloud:AzureAdApplication
properties:
azureServiceAuthenticationMethod: string
clientId: string
clientSecret: string
organizationName: string
tenantId: string
AzureAdApplication Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The AzureAdApplication resource accepts the following input properties:
- Client
Id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Client
Secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Organization
Name string - The name of the Azure DevOps organization.
- Tenant
Id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- Azure
Service stringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- Client
Id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Client
Secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Organization
Name string - The name of the Azure DevOps organization.
- Tenant
Id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- Azure
Service stringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client_
id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client_
secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- organization_
name string - The name of the Azure DevOps organization.
- tenant_
id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- azure_
service_ stringauthentication_ method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client
Id String - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client
Secret String - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- organization
Name String - The name of the Azure DevOps organization.
- tenant
Id String - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- azure
Service StringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client
Id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client
Secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- organization
Name string - The name of the Azure DevOps organization.
- tenant
Id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- azure
Service stringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client_
id str - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client_
secret str - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- organization_
name str - The name of the Azure DevOps organization.
- tenant_
id str - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- azure_
service_ strauthentication_ method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client
Id String - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client
Secret String - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- organization
Name String - The name of the Azure DevOps organization.
- tenant
Id String - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- azure
Service StringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
Outputs
All input properties are implicitly available as output properties. Additionally, the AzureAdApplication resource produces the following output properties:
- Account
Id int - The ID of the dbt Cloud account.
- Created
At string - Timestamp when the application was created.
- Id string
- The provider-assigned unique ID for this managed resource.
- Oauth
Redirect stringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- Updated
At string - Timestamp when the application was last updated.
- Account
Id int - The ID of the dbt Cloud account.
- Created
At string - Timestamp when the application was created.
- Id string
- The provider-assigned unique ID for this managed resource.
- Oauth
Redirect stringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- Updated
At string - Timestamp when the application was last updated.
- account_
id number - The ID of the dbt Cloud account.
- created_
at string - Timestamp when the application was created.
- id string
- The provider-assigned unique ID for this managed resource.
- oauth_
redirect_ stringuri_ domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- updated_
at string - Timestamp when the application was last updated.
- account
Id Integer - The ID of the dbt Cloud account.
- created
At String - Timestamp when the application was created.
- id String
- The provider-assigned unique ID for this managed resource.
- oauth
Redirect StringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- updated
At String - Timestamp when the application was last updated.
- account
Id number - The ID of the dbt Cloud account.
- created
At string - Timestamp when the application was created.
- id string
- The provider-assigned unique ID for this managed resource.
- oauth
Redirect stringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- updated
At string - Timestamp when the application was last updated.
- account_
id int - The ID of the dbt Cloud account.
- created_
at str - Timestamp when the application was created.
- id str
- The provider-assigned unique ID for this managed resource.
- oauth_
redirect_ struri_ domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- updated_
at str - Timestamp when the application was last updated.
- account
Id Number - The ID of the dbt Cloud account.
- created
At String - Timestamp when the application was created.
- id String
- The provider-assigned unique ID for this managed resource.
- oauth
Redirect StringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- updated
At String - Timestamp when the application was last updated.
Look up Existing AzureAdApplication Resource
Get an existing AzureAdApplication resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: AzureAdApplicationState, opts?: CustomResourceOptions): AzureAdApplication@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
account_id: Optional[int] = None,
azure_service_authentication_method: Optional[str] = None,
client_id: Optional[str] = None,
client_secret: Optional[str] = None,
created_at: Optional[str] = None,
oauth_redirect_uri_domain: Optional[str] = None,
organization_name: Optional[str] = None,
tenant_id: Optional[str] = None,
updated_at: Optional[str] = None) -> AzureAdApplicationfunc GetAzureAdApplication(ctx *Context, name string, id IDInput, state *AzureAdApplicationState, opts ...ResourceOption) (*AzureAdApplication, error)public static AzureAdApplication Get(string name, Input<string> id, AzureAdApplicationState? state, CustomResourceOptions? opts = null)public static AzureAdApplication get(String name, Output<String> id, AzureAdApplicationState state, CustomResourceOptions options)resources: _: type: dbtcloud:AzureAdApplication get: id: ${id}import {
to = dbtcloud_azureadapplication.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Account
Id int - The ID of the dbt Cloud account.
- Azure
Service stringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- Client
Id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Client
Secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Created
At string - Timestamp when the application was created.
- Oauth
Redirect stringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- Organization
Name string - The name of the Azure DevOps organization.
- Tenant
Id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- Updated
At string - Timestamp when the application was last updated.
- Account
Id int - The ID of the dbt Cloud account.
- Azure
Service stringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- Client
Id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Client
Secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- Created
At string - Timestamp when the application was created.
- Oauth
Redirect stringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- Organization
Name string - The name of the Azure DevOps organization.
- Tenant
Id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- Updated
At string - Timestamp when the application was last updated.
- account_
id number - The ID of the dbt Cloud account.
- azure_
service_ stringauthentication_ method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client_
id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client_
secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- created_
at string - Timestamp when the application was created.
- oauth_
redirect_ stringuri_ domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- organization_
name string - The name of the Azure DevOps organization.
- tenant_
id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- updated_
at string - Timestamp when the application was last updated.
- account
Id Integer - The ID of the dbt Cloud account.
- azure
Service StringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client
Id String - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client
Secret String - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- created
At String - Timestamp when the application was created.
- oauth
Redirect StringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- organization
Name String - The name of the Azure DevOps organization.
- tenant
Id String - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- updated
At String - Timestamp when the application was last updated.
- account
Id number - The ID of the dbt Cloud account.
- azure
Service stringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client
Id string - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client
Secret string - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- created
At string - Timestamp when the application was created.
- oauth
Redirect stringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- organization
Name string - The name of the Azure DevOps organization.
- tenant
Id string - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- updated
At string - Timestamp when the application was last updated.
- account_
id int - The ID of the dbt Cloud account.
- azure_
service_ strauthentication_ method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client_
id str - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client_
secret str - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- created_
at str - Timestamp when the application was created.
- oauth_
redirect_ struri_ domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- organization_
name str - The name of the Azure DevOps organization.
- tenant_
id str - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- updated_
at str - Timestamp when the application was last updated.
- account
Id Number - The ID of the dbt Cloud account.
- azure
Service StringAuthentication Method - The method used for service authentication. One of: ~~~serviceuser~~~, ~~~serviceprincipal~~~. Defaults to ~~~service_user~~~.
- client
Id String - The client ID (application ID) of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- client
Secret String - The client secret of the Azure AD app registration. Stored as a sensitive value — the API never returns it.
- created
At String - Timestamp when the application was created.
- oauth
Redirect StringUri Domain - The domain used for the OAuth redirect URI. Set automatically by dbt Cloud based on the account's subdomain.
- organization
Name String - The name of the Azure DevOps organization.
- tenant
Id String - The tenant ID of the Azure AD directory. Stored as a sensitive value — the API never returns it.
- updated
At String - Timestamp when the application was last updated.
Import
using import blocks (requires Terraform >= 1.5) import { to = dbtcloud_azure_ad_application.this id = “azureAdApplicationId” }
import { to = dbtcloud_azure_ad_application.this id = “12345” }
using the older import command
$ pulumi import dbtcloud:index/azureAdApplication:AzureAdApplication this azure_ad_application_id
$ pulumi import dbtcloud:index/azureAdApplication:AzureAdApplication this 12345
NOTE: client_id, client_secret, and tenantId will be empty after import — the API never returns these values. You must set them in your config to avoid drift on the next apply.
Import is also the recovery path if destroy left an orphaned record in dbt Cloud (the DELETE endpoint soft-deletes the row rather than removing it). Find the existing record ID and import it instead of creating a new one.
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- dbtcloud pulumi/pulumi-dbtcloud
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
dbtcloudTerraform Provider.
published on Thursday, May 14, 2026 by Pulumi
