@pulumi/dbtcloud 1.5.0-alpha.1768541568 → 1.5.0-alpha.1769053867

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,24 @@ import * as pulumi from "@pulumi/pulumi";
3
3
  * Manages dbt Cloud global features at the account level, like Advanced CI. The same feature should not be configured in different resources to avoid conflicts.
4
4
  *
5
5
  * When destroying the resource or removing the value for an attribute, the features status will not be changed. Deactivating features will require applying them wih the value set to `false`.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as dbtcloud from "@pulumi/dbtcloud";
12
+ *
13
+ * // Manage account-level feature flags in dbt Cloud
14
+ * const myFeatures = new dbtcloud.AccountFeatures("my_features", {
15
+ * advancedCi: true,
16
+ * partialParsing: true,
17
+ * repoCaching: true,
18
+ * aiFeatures: true,
19
+ * catalogIngestion: true,
20
+ * explorerAccountUi: true,
21
+ * fusionMigrationPermissions: false,
22
+ * });
23
+ * ```
6
24
  */
7
25
  export declare class AccountFeatures extends pulumi.CustomResource {
8
26
  /**
@@ -28,6 +46,18 @@ export declare class AccountFeatures extends pulumi.CustomResource {
28
46
  * Whether AI features are enabled.
29
47
  */
30
48
  readonly aiFeatures: pulumi.Output<boolean>;
49
+ /**
50
+ * Whether catalog ingestion (external metadata ingestion into Catalog/Explorer Enterprise) is enabled.
51
+ */
52
+ readonly catalogIngestion: pulumi.Output<boolean>;
53
+ /**
54
+ * Whether the new Catalog navigation UI is enabled (default true for new accounts).
55
+ */
56
+ readonly explorerAccountUi: pulumi.Output<boolean>;
57
+ /**
58
+ * Whether permissions for accounts migrating to Fusion are enabled.
59
+ */
60
+ readonly fusionMigrationPermissions: pulumi.Output<boolean>;
31
61
  /**
32
62
  * Whether partial parsing is enabled.
33
63
  */
@@ -36,10 +66,6 @@ export declare class AccountFeatures extends pulumi.CustomResource {
36
66
  * Whether repository caching is enabled.
37
67
  */
38
68
  readonly repoCaching: pulumi.Output<boolean>;
39
- /**
40
- * Whether warehouse cost visibility is enabled.
41
- */
42
- readonly warehouseCostVisibility: pulumi.Output<boolean>;
43
69
  /**
44
70
  * Create a AccountFeatures resource with the given unique name, arguments, and options.
45
71
  *
@@ -61,6 +87,18 @@ export interface AccountFeaturesState {
61
87
  * Whether AI features are enabled.
62
88
  */
63
89
  aiFeatures?: pulumi.Input<boolean>;
90
+ /**
91
+ * Whether catalog ingestion (external metadata ingestion into Catalog/Explorer Enterprise) is enabled.
92
+ */
93
+ catalogIngestion?: pulumi.Input<boolean>;
94
+ /**
95
+ * Whether the new Catalog navigation UI is enabled (default true for new accounts).
96
+ */
97
+ explorerAccountUi?: pulumi.Input<boolean>;
98
+ /**
99
+ * Whether permissions for accounts migrating to Fusion are enabled.
100
+ */
101
+ fusionMigrationPermissions?: pulumi.Input<boolean>;
64
102
  /**
65
103
  * Whether partial parsing is enabled.
66
104
  */
@@ -69,10 +107,6 @@ export interface AccountFeaturesState {
69
107
  * Whether repository caching is enabled.
70
108
  */
71
109
  repoCaching?: pulumi.Input<boolean>;
72
- /**
73
- * Whether warehouse cost visibility is enabled.
74
- */
75
- warehouseCostVisibility?: pulumi.Input<boolean>;
76
110
  }
77
111
  /**
78
112
  * The set of arguments for constructing a AccountFeatures resource.
@@ -86,6 +120,18 @@ export interface AccountFeaturesArgs {
86
120
  * Whether AI features are enabled.
87
121
  */
88
122
  aiFeatures?: pulumi.Input<boolean>;
123
+ /**
124
+ * Whether catalog ingestion (external metadata ingestion into Catalog/Explorer Enterprise) is enabled.
125
+ */
126
+ catalogIngestion?: pulumi.Input<boolean>;
127
+ /**
128
+ * Whether the new Catalog navigation UI is enabled (default true for new accounts).
129
+ */
130
+ explorerAccountUi?: pulumi.Input<boolean>;
131
+ /**
132
+ * Whether permissions for accounts migrating to Fusion are enabled.
133
+ */
134
+ fusionMigrationPermissions?: pulumi.Input<boolean>;
89
135
  /**
90
136
  * Whether partial parsing is enabled.
91
137
  */
@@ -94,8 +140,4 @@ export interface AccountFeaturesArgs {
94
140
  * Whether repository caching is enabled.
95
141
  */
96
142
  repoCaching?: pulumi.Input<boolean>;
97
- /**
98
- * Whether warehouse cost visibility is enabled.
99
- */
100
- warehouseCostVisibility?: pulumi.Input<boolean>;
101
143
  }
@@ -9,6 +9,24 @@ const utilities = require("./utilities");
9
9
  * Manages dbt Cloud global features at the account level, like Advanced CI. The same feature should not be configured in different resources to avoid conflicts.
10
10
  *
11
11
  * When destroying the resource or removing the value for an attribute, the features status will not be changed. Deactivating features will require applying them wih the value set to `false`.
12
+ *
13
+ * ## Example Usage
14
+ *
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as dbtcloud from "@pulumi/dbtcloud";
18
+ *
19
+ * // Manage account-level feature flags in dbt Cloud
20
+ * const myFeatures = new dbtcloud.AccountFeatures("my_features", {
21
+ * advancedCi: true,
22
+ * partialParsing: true,
23
+ * repoCaching: true,
24
+ * aiFeatures: true,
25
+ * catalogIngestion: true,
26
+ * explorerAccountUi: true,
27
+ * fusionMigrationPermissions: false,
28
+ * });
29
+ * ```
12
30
  */
13
31
  class AccountFeatures extends pulumi.CustomResource {
14
32
  /**
@@ -40,17 +58,21 @@ class AccountFeatures extends pulumi.CustomResource {
40
58
  const state = argsOrState;
41
59
  resourceInputs["advancedCi"] = state?.advancedCi;
42
60
  resourceInputs["aiFeatures"] = state?.aiFeatures;
61
+ resourceInputs["catalogIngestion"] = state?.catalogIngestion;
62
+ resourceInputs["explorerAccountUi"] = state?.explorerAccountUi;
63
+ resourceInputs["fusionMigrationPermissions"] = state?.fusionMigrationPermissions;
43
64
  resourceInputs["partialParsing"] = state?.partialParsing;
44
65
  resourceInputs["repoCaching"] = state?.repoCaching;
45
- resourceInputs["warehouseCostVisibility"] = state?.warehouseCostVisibility;
46
66
  }
47
67
  else {
48
68
  const args = argsOrState;
49
69
  resourceInputs["advancedCi"] = args?.advancedCi;
50
70
  resourceInputs["aiFeatures"] = args?.aiFeatures;
71
+ resourceInputs["catalogIngestion"] = args?.catalogIngestion;
72
+ resourceInputs["explorerAccountUi"] = args?.explorerAccountUi;
73
+ resourceInputs["fusionMigrationPermissions"] = args?.fusionMigrationPermissions;
51
74
  resourceInputs["partialParsing"] = args?.partialParsing;
52
75
  resourceInputs["repoCaching"] = args?.repoCaching;
53
- resourceInputs["warehouseCostVisibility"] = args?.warehouseCostVisibility;
54
76
  }
55
77
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
56
78
  super(AccountFeatures.__pulumiType, name, resourceInputs, opts);
@@ -1 +1 @@
1
- {"version":3,"file":"accountFeatures.js","sourceRoot":"","sources":["../accountFeatures.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,MAAM,CAAC,cAAc;IACtD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA4B,EAAE,IAAmC;QAC1H,OAAO,IAAI,eAAe,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,eAAe,CAAC,YAAY,CAAC;IAChE,CAAC;IA+BD,YAAY,IAAY,EAAE,WAAwD,EAAE,IAAmC;QACnH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA+C,CAAC;YAC9D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;YACzD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,yBAAyB,CAAC,GAAG,KAAK,EAAE,uBAAuB,CAAC;SAC9E;aAAM;YACH,MAAM,IAAI,GAAG,WAA8C,CAAC;YAC5D,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;YACxD,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;YAClD,cAAc,CAAC,yBAAyB,CAAC,GAAG,IAAI,EAAE,uBAAuB,CAAC;SAC7E;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;;AA7EL,0CA8EC;AAhEG,gBAAgB;AACO,4BAAY,GAAG,gDAAgD,CAAC"}
1
+ {"version":3,"file":"accountFeatures.js","sourceRoot":"","sources":["../accountFeatures.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,eAAgB,SAAQ,MAAM,CAAC,cAAc;IACtD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA4B,EAAE,IAAmC;QAC1H,OAAO,IAAI,eAAe,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,eAAe,CAAC,YAAY,CAAC;IAChE,CAAC;IAuCD,YAAY,IAAY,EAAE,WAAwD,EAAE,IAAmC;QACnH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA+C,CAAC;YAC9D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;YAC7D,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,iBAAiB,CAAC;YAC/D,cAAc,CAAC,4BAA4B,CAAC,GAAG,KAAK,EAAE,0BAA0B,CAAC;YACjF,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;YACzD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;SACtD;aAAM;YACH,MAAM,IAAI,GAAG,WAA8C,CAAC;YAC5D,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC;YAC9D,cAAc,CAAC,4BAA4B,CAAC,GAAG,IAAI,EAAE,0BAA0B,CAAC;YAChF,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;YACxD,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;SACrD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;;AAzFL,0CA0FC;AA5EG,gBAAgB;AACO,4BAAY,GAAG,gDAAgD,CAAC"}
@@ -0,0 +1,229 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Manages catalog configuration filters for a dbt Cloud connection.
4
+ *
5
+ * This resource configures what database objects (databases, schemas, tables, views) are included
6
+ * or excluded when ingesting metadata from your data warehouse. It works in conjunction with
7
+ * platform metadata credentials to control what gets synchronized into dbt Cloud's catalog.
8
+ *
9
+ * Each filter type has an "allow" list (whitelist) and a "deny" list (blacklist):
10
+ * - If an allow list is set, only matching objects are included
11
+ * - If a deny list is set, matching objects are excluded
12
+ * - Deny takes precedence over allow
13
+ * - Patterns support wildcards (e.g., "temp_*")
14
+ *
15
+ * > **Note:** The `connectionId` cannot be changed after creation. To use a different connection,
16
+ * you must destroy and recreate the resource.
17
+ *
18
+ * > **Note:** This resource requires a platform metadata credential to be configured for the connection.
19
+ *
20
+ * ## Example Usage
21
+ *
22
+ * ```typescript
23
+ * import * as pulumi from "@pulumi/pulumi";
24
+ * import * as dbtcloud from "@pulumi/dbtcloud";
25
+ *
26
+ * // Example: Configure catalog filters for a Snowflake connection
27
+ * const snowflakeFilters = new dbtcloud.ConnectionCatalogConfig("snowflake_filters", {
28
+ * connectionId: snowflake.id,
29
+ * databaseAllows: [
30
+ * "analytics",
31
+ * "reporting",
32
+ * ],
33
+ * schemaDenies: [
34
+ * "staging",
35
+ * "temp",
36
+ * "scratch",
37
+ * ],
38
+ * tableDenies: [
39
+ * "tmp_*",
40
+ * "temp_*",
41
+ * ],
42
+ * viewDenies: [
43
+ * "secret_*",
44
+ * "internal_*",
45
+ * ],
46
+ * });
47
+ * // Example: Minimal configuration - just filter databases
48
+ * const minimal = new dbtcloud.ConnectionCatalogConfig("minimal", {
49
+ * connectionId: snowflake.id,
50
+ * databaseAllows: ["production"],
51
+ * });
52
+ * // Example: Full configuration with platform metadata credential
53
+ * const creds = new dbtcloud.SnowflakePlatformMetadataCredential("creds", {
54
+ * connectionId: snowflake.id,
55
+ * catalogIngestionEnabled: true,
56
+ * authType: "password",
57
+ * user: snowflakeUser,
58
+ * password: snowflakePassword,
59
+ * role: snowflakeRole,
60
+ * warehouse: snowflakeWarehouse,
61
+ * });
62
+ * const withCreds = new dbtcloud.ConnectionCatalogConfig("with_creds", {
63
+ * connectionId: snowflake.id,
64
+ * databaseAllows: [
65
+ * "analytics",
66
+ * "reporting",
67
+ * ],
68
+ * databaseDenies: ["sandbox"],
69
+ * schemaAllows: [
70
+ * "public",
71
+ * "dbt_*",
72
+ * ],
73
+ * schemaDenies: [
74
+ * "information_schema",
75
+ * "pg_*",
76
+ * ],
77
+ * tableDenies: [
78
+ * "_tmp_*",
79
+ * "_staging_*",
80
+ * ],
81
+ * viewDenies: ["_internal_*"],
82
+ * }, {
83
+ * dependsOn: [creds],
84
+ * });
85
+ * ```
86
+ */
87
+ export declare class ConnectionCatalogConfig extends pulumi.CustomResource {
88
+ /**
89
+ * Get an existing ConnectionCatalogConfig resource's state with the given name, ID, and optional extra
90
+ * properties used to qualify the lookup.
91
+ *
92
+ * @param name The _unique_ name of the resulting resource.
93
+ * @param id The _unique_ provider ID of the resource to lookup.
94
+ * @param state Any extra arguments used during the lookup.
95
+ * @param opts Optional settings to control the behavior of the CustomResource.
96
+ */
97
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ConnectionCatalogConfigState, opts?: pulumi.CustomResourceOptions): ConnectionCatalogConfig;
98
+ /**
99
+ * Returns true if the given object is an instance of ConnectionCatalogConfig. This is designed to work even
100
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
101
+ */
102
+ static isInstance(obj: any): obj is ConnectionCatalogConfig;
103
+ /**
104
+ * The ID of the global connection this catalog config is associated with. Cannot be changed after creation.
105
+ */
106
+ readonly connectionId: pulumi.Output<number>;
107
+ /**
108
+ * List of database names to include. Supports wildcards (e.g., 'analytics_*'). If set, only these databases are ingested.
109
+ */
110
+ readonly databaseAllows: pulumi.Output<string[] | undefined>;
111
+ /**
112
+ * List of database names to exclude. Supports wildcards (e.g., 'staging_*'). Matching databases are not ingested.
113
+ */
114
+ readonly databaseDenies: pulumi.Output<string[] | undefined>;
115
+ /**
116
+ * List of schema names to include. Supports wildcards (e.g., 'public_*'). If set, only these schemas are ingested.
117
+ */
118
+ readonly schemaAllows: pulumi.Output<string[] | undefined>;
119
+ /**
120
+ * List of schema names to exclude. Supports wildcards (e.g., 'temp_*'). Matching schemas are not ingested.
121
+ */
122
+ readonly schemaDenies: pulumi.Output<string[] | undefined>;
123
+ /**
124
+ * List of table names to include. Supports wildcards (e.g., 'fact_*'). If set, only these tables are ingested.
125
+ */
126
+ readonly tableAllows: pulumi.Output<string[] | undefined>;
127
+ /**
128
+ * List of table names to exclude. Supports wildcards (e.g., 'tmp_*'). Matching tables are not ingested.
129
+ */
130
+ readonly tableDenies: pulumi.Output<string[] | undefined>;
131
+ /**
132
+ * List of view names to include. Supports wildcards (e.g., 'v_*'). If set, only these views are ingested.
133
+ */
134
+ readonly viewAllows: pulumi.Output<string[] | undefined>;
135
+ /**
136
+ * List of view names to exclude. Supports wildcards (e.g., 'secret_*'). Matching views are not ingested.
137
+ */
138
+ readonly viewDenies: pulumi.Output<string[] | undefined>;
139
+ /**
140
+ * Create a ConnectionCatalogConfig resource with the given unique name, arguments, and options.
141
+ *
142
+ * @param name The _unique_ name of the resource.
143
+ * @param args The arguments to use to populate this resource's properties.
144
+ * @param opts A bag of options that control this resource's behavior.
145
+ */
146
+ constructor(name: string, args: ConnectionCatalogConfigArgs, opts?: pulumi.CustomResourceOptions);
147
+ }
148
+ /**
149
+ * Input properties used for looking up and filtering ConnectionCatalogConfig resources.
150
+ */
151
+ export interface ConnectionCatalogConfigState {
152
+ /**
153
+ * The ID of the global connection this catalog config is associated with. Cannot be changed after creation.
154
+ */
155
+ connectionId?: pulumi.Input<number>;
156
+ /**
157
+ * List of database names to include. Supports wildcards (e.g., 'analytics_*'). If set, only these databases are ingested.
158
+ */
159
+ databaseAllows?: pulumi.Input<pulumi.Input<string>[]>;
160
+ /**
161
+ * List of database names to exclude. Supports wildcards (e.g., 'staging_*'). Matching databases are not ingested.
162
+ */
163
+ databaseDenies?: pulumi.Input<pulumi.Input<string>[]>;
164
+ /**
165
+ * List of schema names to include. Supports wildcards (e.g., 'public_*'). If set, only these schemas are ingested.
166
+ */
167
+ schemaAllows?: pulumi.Input<pulumi.Input<string>[]>;
168
+ /**
169
+ * List of schema names to exclude. Supports wildcards (e.g., 'temp_*'). Matching schemas are not ingested.
170
+ */
171
+ schemaDenies?: pulumi.Input<pulumi.Input<string>[]>;
172
+ /**
173
+ * List of table names to include. Supports wildcards (e.g., 'fact_*'). If set, only these tables are ingested.
174
+ */
175
+ tableAllows?: pulumi.Input<pulumi.Input<string>[]>;
176
+ /**
177
+ * List of table names to exclude. Supports wildcards (e.g., 'tmp_*'). Matching tables are not ingested.
178
+ */
179
+ tableDenies?: pulumi.Input<pulumi.Input<string>[]>;
180
+ /**
181
+ * List of view names to include. Supports wildcards (e.g., 'v_*'). If set, only these views are ingested.
182
+ */
183
+ viewAllows?: pulumi.Input<pulumi.Input<string>[]>;
184
+ /**
185
+ * List of view names to exclude. Supports wildcards (e.g., 'secret_*'). Matching views are not ingested.
186
+ */
187
+ viewDenies?: pulumi.Input<pulumi.Input<string>[]>;
188
+ }
189
+ /**
190
+ * The set of arguments for constructing a ConnectionCatalogConfig resource.
191
+ */
192
+ export interface ConnectionCatalogConfigArgs {
193
+ /**
194
+ * The ID of the global connection this catalog config is associated with. Cannot be changed after creation.
195
+ */
196
+ connectionId: pulumi.Input<number>;
197
+ /**
198
+ * List of database names to include. Supports wildcards (e.g., 'analytics_*'). If set, only these databases are ingested.
199
+ */
200
+ databaseAllows?: pulumi.Input<pulumi.Input<string>[]>;
201
+ /**
202
+ * List of database names to exclude. Supports wildcards (e.g., 'staging_*'). Matching databases are not ingested.
203
+ */
204
+ databaseDenies?: pulumi.Input<pulumi.Input<string>[]>;
205
+ /**
206
+ * List of schema names to include. Supports wildcards (e.g., 'public_*'). If set, only these schemas are ingested.
207
+ */
208
+ schemaAllows?: pulumi.Input<pulumi.Input<string>[]>;
209
+ /**
210
+ * List of schema names to exclude. Supports wildcards (e.g., 'temp_*'). Matching schemas are not ingested.
211
+ */
212
+ schemaDenies?: pulumi.Input<pulumi.Input<string>[]>;
213
+ /**
214
+ * List of table names to include. Supports wildcards (e.g., 'fact_*'). If set, only these tables are ingested.
215
+ */
216
+ tableAllows?: pulumi.Input<pulumi.Input<string>[]>;
217
+ /**
218
+ * List of table names to exclude. Supports wildcards (e.g., 'tmp_*'). Matching tables are not ingested.
219
+ */
220
+ tableDenies?: pulumi.Input<pulumi.Input<string>[]>;
221
+ /**
222
+ * List of view names to include. Supports wildcards (e.g., 'v_*'). If set, only these views are ingested.
223
+ */
224
+ viewAllows?: pulumi.Input<pulumi.Input<string>[]>;
225
+ /**
226
+ * List of view names to exclude. Supports wildcards (e.g., 'secret_*'). Matching views are not ingested.
227
+ */
228
+ viewDenies?: pulumi.Input<pulumi.Input<string>[]>;
229
+ }
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ConnectionCatalogConfig = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * Manages catalog configuration filters for a dbt Cloud connection.
10
+ *
11
+ * This resource configures what database objects (databases, schemas, tables, views) are included
12
+ * or excluded when ingesting metadata from your data warehouse. It works in conjunction with
13
+ * platform metadata credentials to control what gets synchronized into dbt Cloud's catalog.
14
+ *
15
+ * Each filter type has an "allow" list (whitelist) and a "deny" list (blacklist):
16
+ * - If an allow list is set, only matching objects are included
17
+ * - If a deny list is set, matching objects are excluded
18
+ * - Deny takes precedence over allow
19
+ * - Patterns support wildcards (e.g., "temp_*")
20
+ *
21
+ * > **Note:** The `connectionId` cannot be changed after creation. To use a different connection,
22
+ * you must destroy and recreate the resource.
23
+ *
24
+ * > **Note:** This resource requires a platform metadata credential to be configured for the connection.
25
+ *
26
+ * ## Example Usage
27
+ *
28
+ * ```typescript
29
+ * import * as pulumi from "@pulumi/pulumi";
30
+ * import * as dbtcloud from "@pulumi/dbtcloud";
31
+ *
32
+ * // Example: Configure catalog filters for a Snowflake connection
33
+ * const snowflakeFilters = new dbtcloud.ConnectionCatalogConfig("snowflake_filters", {
34
+ * connectionId: snowflake.id,
35
+ * databaseAllows: [
36
+ * "analytics",
37
+ * "reporting",
38
+ * ],
39
+ * schemaDenies: [
40
+ * "staging",
41
+ * "temp",
42
+ * "scratch",
43
+ * ],
44
+ * tableDenies: [
45
+ * "tmp_*",
46
+ * "temp_*",
47
+ * ],
48
+ * viewDenies: [
49
+ * "secret_*",
50
+ * "internal_*",
51
+ * ],
52
+ * });
53
+ * // Example: Minimal configuration - just filter databases
54
+ * const minimal = new dbtcloud.ConnectionCatalogConfig("minimal", {
55
+ * connectionId: snowflake.id,
56
+ * databaseAllows: ["production"],
57
+ * });
58
+ * // Example: Full configuration with platform metadata credential
59
+ * const creds = new dbtcloud.SnowflakePlatformMetadataCredential("creds", {
60
+ * connectionId: snowflake.id,
61
+ * catalogIngestionEnabled: true,
62
+ * authType: "password",
63
+ * user: snowflakeUser,
64
+ * password: snowflakePassword,
65
+ * role: snowflakeRole,
66
+ * warehouse: snowflakeWarehouse,
67
+ * });
68
+ * const withCreds = new dbtcloud.ConnectionCatalogConfig("with_creds", {
69
+ * connectionId: snowflake.id,
70
+ * databaseAllows: [
71
+ * "analytics",
72
+ * "reporting",
73
+ * ],
74
+ * databaseDenies: ["sandbox"],
75
+ * schemaAllows: [
76
+ * "public",
77
+ * "dbt_*",
78
+ * ],
79
+ * schemaDenies: [
80
+ * "information_schema",
81
+ * "pg_*",
82
+ * ],
83
+ * tableDenies: [
84
+ * "_tmp_*",
85
+ * "_staging_*",
86
+ * ],
87
+ * viewDenies: ["_internal_*"],
88
+ * }, {
89
+ * dependsOn: [creds],
90
+ * });
91
+ * ```
92
+ */
93
+ class ConnectionCatalogConfig extends pulumi.CustomResource {
94
+ /**
95
+ * Get an existing ConnectionCatalogConfig resource's state with the given name, ID, and optional extra
96
+ * properties used to qualify the lookup.
97
+ *
98
+ * @param name The _unique_ name of the resulting resource.
99
+ * @param id The _unique_ provider ID of the resource to lookup.
100
+ * @param state Any extra arguments used during the lookup.
101
+ * @param opts Optional settings to control the behavior of the CustomResource.
102
+ */
103
+ static get(name, id, state, opts) {
104
+ return new ConnectionCatalogConfig(name, state, { ...opts, id: id });
105
+ }
106
+ /**
107
+ * Returns true if the given object is an instance of ConnectionCatalogConfig. This is designed to work even
108
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
109
+ */
110
+ static isInstance(obj) {
111
+ if (obj === undefined || obj === null) {
112
+ return false;
113
+ }
114
+ return obj['__pulumiType'] === ConnectionCatalogConfig.__pulumiType;
115
+ }
116
+ constructor(name, argsOrState, opts) {
117
+ let resourceInputs = {};
118
+ opts = opts || {};
119
+ if (opts.id) {
120
+ const state = argsOrState;
121
+ resourceInputs["connectionId"] = state?.connectionId;
122
+ resourceInputs["databaseAllows"] = state?.databaseAllows;
123
+ resourceInputs["databaseDenies"] = state?.databaseDenies;
124
+ resourceInputs["schemaAllows"] = state?.schemaAllows;
125
+ resourceInputs["schemaDenies"] = state?.schemaDenies;
126
+ resourceInputs["tableAllows"] = state?.tableAllows;
127
+ resourceInputs["tableDenies"] = state?.tableDenies;
128
+ resourceInputs["viewAllows"] = state?.viewAllows;
129
+ resourceInputs["viewDenies"] = state?.viewDenies;
130
+ }
131
+ else {
132
+ const args = argsOrState;
133
+ if (args?.connectionId === undefined && !opts.urn) {
134
+ throw new Error("Missing required property 'connectionId'");
135
+ }
136
+ resourceInputs["connectionId"] = args?.connectionId;
137
+ resourceInputs["databaseAllows"] = args?.databaseAllows;
138
+ resourceInputs["databaseDenies"] = args?.databaseDenies;
139
+ resourceInputs["schemaAllows"] = args?.schemaAllows;
140
+ resourceInputs["schemaDenies"] = args?.schemaDenies;
141
+ resourceInputs["tableAllows"] = args?.tableAllows;
142
+ resourceInputs["tableDenies"] = args?.tableDenies;
143
+ resourceInputs["viewAllows"] = args?.viewAllows;
144
+ resourceInputs["viewDenies"] = args?.viewDenies;
145
+ }
146
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
147
+ super(ConnectionCatalogConfig.__pulumiType, name, resourceInputs, opts);
148
+ }
149
+ }
150
+ exports.ConnectionCatalogConfig = ConnectionCatalogConfig;
151
+ /** @internal */
152
+ ConnectionCatalogConfig.__pulumiType = 'dbtcloud:index/connectionCatalogConfig:ConnectionCatalogConfig';
153
+ //# sourceMappingURL=connectionCatalogConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionCatalogConfig.js","sourceRoot":"","sources":["../connectionCatalogConfig.ts"],"names":[],"mappings":"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"}