@drunk-pulumi/azure 0.0.24 → 0.0.26

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.
package/Sql/index.js CHANGED
@@ -2,19 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const sql = require("@pulumi/azure-native/sql");
4
4
  const pulumi_1 = require("@pulumi/pulumi");
5
+ const Helper_1 = require("../KeyVault/Helper");
5
6
  const Group_1 = require("../AzAd/Group");
6
7
  const RoleAssignment_1 = require("../AzAd/RoleAssignment");
7
8
  const AzureEnv_1 = require("../Common/AzureEnv");
8
9
  const Naming_1 = require("../Common/Naming");
9
10
  const Locker_1 = require("../Core/Locker");
10
- const Helper_1 = require("../VNet/Helper");
11
+ const Helper_2 = require("../VNet/Helper");
11
12
  const PrivateEndpoint_1 = require("../VNet/PrivateEndpoint");
12
13
  const SqlDb_1 = require("./SqlDb");
13
14
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
14
15
  const Role_1 = require("../AzAd/Role");
16
+ const VaultPermissions_1 = require("../KeyVault/VaultPermissions");
15
17
  const createElasticPool = ({ group, name, sqlName,
16
18
  //Minimum is 50 GD
17
- maxSizeBytesGb = 50, sku = { name: AzureEnv_1.isPrd ? 'Standard' : 'Basic', capacity: 50 }, lock = true, }) => {
19
+ maxSizeBytesGb = 50, sku = { name: AzureEnv_1.isPrd ? "Standard" : "Basic", capacity: 50 }, lock = true, }) => {
18
20
  //Create Sql Elastic
19
21
  const elasticName = (0, Naming_1.getElasticPoolName)(name);
20
22
  const ep = new sql.ElasticPool(elasticName, {
@@ -29,8 +31,9 @@ maxSizeBytesGb = 50, sku = { name: AzureEnv_1.isPrd ? 'Standard' : 'Basic', capa
29
31
  },
30
32
  perDatabaseSettings: {
31
33
  minCapacity: 0,
32
- maxCapacity: sku.name === 'Basic' ? 5 : sku.capacity,
34
+ maxCapacity: sku.name === "Basic" ? 5 : sku.capacity,
33
35
  },
36
+ zoneRedundant: AzureEnv_1.isPrd,
34
37
  //licenseType: sql.ElasticPoolLicenseType.BasePrice,
35
38
  //zoneRedundant: isPrd,
36
39
  });
@@ -39,8 +42,11 @@ maxSizeBytesGb = 50, sku = { name: AzureEnv_1.isPrd ? 'Standard' : 'Basic', capa
39
42
  }
40
43
  return { name: elasticName, resource: ep };
41
44
  };
42
- exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, network, vulnerabilityAssessment, lock = true, }) => {
45
+ exports.default = ({ name, auth, group, enableEncryption, elasticPool, databases, vaultInfo, network, vulnerabilityAssessment, lock = true, }) => {
43
46
  const sqlName = (0, Naming_1.getSqlServerName)(name);
47
+ const encryptKey = enableEncryption
48
+ ? (0, Helper_1.getEncryptionKey)(name, vaultInfo)
49
+ : undefined;
44
50
  // if (vaultInfo && !auth) {
45
51
  // const login = await randomLogin({ name, loginPrefix: 'sql', vaultInfo });
46
52
  // auth = {
@@ -49,25 +55,24 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
49
55
  // password: login.password,
50
56
  // };
51
57
  // }
52
- const adminGroup = auth?.enableAdAdministrator
58
+ const adminGroup = auth?.enableAdAdministrator || auth.azureAdOnlyAuthentication
53
59
  ? auth.envRoleNames
54
60
  ? (0, Group_1.getAdGroup)(auth.envRoleNames.admin)
55
- : (0, Role_1.default)({ env: AzureEnv_1.currentEnv, roleName: 'ADMIN', appName: 'SQL' })
61
+ : (0, Role_1.default)({ env: AzureEnv_1.currentEnv, roleName: "ADMIN", appName: "SQL" })
56
62
  : undefined;
57
- const ignoreChanges = ['administratorLogin', 'administrators'];
63
+ const ignoreChanges = ["administratorLogin", "administrators"];
58
64
  if (auth.azureAdOnlyAuthentication)
59
- ignoreChanges.push('administratorLoginPassword');
65
+ ignoreChanges.push("administratorLoginPassword");
60
66
  const sqlServer = new sql.Server(sqlName, {
61
67
  serverName: sqlName,
62
68
  ...group,
63
- version: '12.0',
64
- minimalTlsVersion: '1.2',
65
- identity: { type: 'SystemAssigned' },
69
+ version: "12.0",
70
+ minimalTlsVersion: "1.2",
71
+ identity: { type: "SystemAssigned" },
66
72
  administratorLogin: auth?.adminLogin,
67
- administratorLoginPassword: auth.azureAdOnlyAuthentication
68
- ? undefined
69
- : auth?.password,
70
- administrators: auth?.enableAdAdministrator && adminGroup
73
+ administratorLoginPassword: auth?.password,
74
+ administrators: (auth?.enableAdAdministrator || auth.azureAdOnlyAuthentication) &&
75
+ adminGroup
71
76
  ? {
72
77
  administratorType: sql.AdministratorType.ActiveDirectory,
73
78
  azureADOnlyAuthentication: auth.azureAdOnlyAuthentication,
@@ -84,6 +89,8 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
84
89
  ignoreChanges,
85
90
  protect: lock,
86
91
  });
92
+ //Allows to Read Key Vault
93
+ (0, VaultPermissions_1.grantVaultAccessToIdentity)({ name, identity: sqlServer.identity, vaultInfo });
87
94
  if (lock) {
88
95
  (0, Locker_1.default)({ name: sqlName, resourceId: sqlServer.id, dependsOn: sqlServer });
89
96
  }
@@ -101,10 +108,10 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
101
108
  group,
102
109
  name,
103
110
  resourceId: sqlServer.id,
104
- privateDnsZoneName: 'privatelink.database.windows.net',
111
+ privateDnsZoneName: "privatelink.database.windows.net",
105
112
  ...network.privateLink,
106
113
  subnetId: network.subnetId,
107
- linkServiceGroupIds: ['sqlServer'],
114
+ linkServiceGroupIds: ["sqlServer"],
108
115
  });
109
116
  }
110
117
  else {
@@ -120,16 +127,16 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
120
127
  }
121
128
  //Allow Public Ip Accessing
122
129
  if (network?.acceptAllInternetConnect) {
123
- new sql.FirewallRule('accept-all-connection', {
124
- firewallRuleName: 'accept-all-connection',
130
+ new sql.FirewallRule("accept-all-connection", {
131
+ firewallRuleName: "accept-all-connection",
125
132
  serverName: sqlServer.name,
126
133
  ...group,
127
- startIpAddress: '0.0.0.0',
128
- endIpAddress: '255.255.255.255',
134
+ startIpAddress: "0.0.0.0",
135
+ endIpAddress: "255.255.255.255",
129
136
  });
130
137
  }
131
138
  else if (network?.ipAddresses) {
132
- (0, pulumi_1.all)(network.ipAddresses).apply((ips) => (0, Helper_1.convertToIpRange)(ips).map((ip, i) => {
139
+ (0, pulumi_1.all)(network.ipAddresses).apply((ips) => (0, Helper_2.convertToIpRange)(ips).map((ip, i) => {
133
140
  const n = `${sqlName}-fwRule-${i}`;
134
141
  return new sql.FirewallRule(n, {
135
142
  firewallRuleName: n,
@@ -145,28 +152,28 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
145
152
  if (vulnerabilityAssessment.logStorageId) {
146
153
  (0, RoleAssignment_1.roleAssignment)({
147
154
  name,
148
- principalId: sqlServer.identity.apply((i) => i?.principalId || ''),
149
- principalType: 'ServicePrincipal',
150
- roleName: 'Storage Blob Data Contributor',
155
+ principalId: sqlServer.identity.apply((i) => i?.principalId || ""),
156
+ principalType: "ServicePrincipal",
157
+ roleName: "Storage Blob Data Contributor",
151
158
  scope: vulnerabilityAssessment.logStorageId,
152
159
  });
153
160
  }
154
161
  //Server Audit
155
162
  new sql.ExtendedServerBlobAuditingPolicy(name, {
156
163
  auditActionsAndGroups: [
157
- 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP',
158
- 'FAILED_DATABASE_AUTHENTICATION_GROUP',
159
- 'BATCH_COMPLETED_GROUP',
164
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
165
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
166
+ "BATCH_COMPLETED_GROUP",
160
167
  ],
161
168
  serverName: sqlServer.name,
162
169
  ...group,
163
- blobAuditingPolicyName: 'default',
170
+ blobAuditingPolicyName: "default",
164
171
  isAzureMonitorTargetEnabled: true,
165
172
  isStorageSecondaryKeyInUse: false,
166
173
  predicateExpression: "object_name = 'SensitiveData'",
167
174
  queueDelayMs: 4000,
168
175
  retentionDays: AzureEnv_1.isPrd ? 30 : 6,
169
- state: 'Enabled',
176
+ state: "Enabled",
170
177
  isDevopsAuditEnabled: true,
171
178
  storageAccountAccessKey: vulnerabilityAssessment.storageAccessKey,
172
179
  storageAccountSubscriptionId: AzureEnv_1.subscriptionId,
@@ -182,7 +189,7 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
182
189
  retentionDays: 7,
183
190
  storageAccountAccessKey: vulnerabilityAssessment.storageAccessKey,
184
191
  storageEndpoint: vulnerabilityAssessment.storageEndpoint,
185
- state: 'Enabled',
192
+ state: "Enabled",
186
193
  });
187
194
  //ServerVulnerabilityAssessment
188
195
  new sql.ServerVulnerabilityAssessment(name, {
@@ -198,31 +205,56 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
198
205
  storageAccountAccessKey: vulnerabilityAssessment.storageAccessKey,
199
206
  });
200
207
  }
201
- let dbs;
202
- if (databases) {
203
- dbs = databases.map((db) => {
204
- const d = (0, SqlDb_1.default)({
205
- ...db,
206
- group,
207
- sqlServerName: sqlName,
208
- dependsOn: sqlServer,
209
- elasticPoolId: ep ? ep.resource.id : undefined,
210
- });
211
- if (vaultInfo) {
212
- const connectionString = auth?.adminLogin
213
- ? (0, pulumi_1.interpolate) `Data Source=${sqlName}.database.windows.net;Initial Catalog=${d.name};User Id=${auth.adminLogin};Password=${auth.password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=120;`
214
- : (0, pulumi_1.interpolate) `Data Source=${sqlName}.database.windows.net;Initial Catalog=${d.name};Authentication=Active Directory Integrated;;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=120;`;
215
- (0, CustomHelper_1.addCustomSecret)({
216
- name: d.name,
217
- value: connectionString,
218
- vaultInfo,
219
- contentType: `Sql ${d.name} Connection String`,
220
- dependsOn: d.resource,
221
- });
222
- }
223
- return d;
224
- });
208
+ if (encryptKey) {
209
+ // Enable a server key in the SQL Server with reference to the Key Vault Key
210
+ const keyName = encryptKey.apply((c) => `${vaultInfo.name}_${c.name}_${c.properties.version}`);
211
+ const serverKey = new sql.ServerKey(`${sqlName}-serverKey`, {
212
+ resourceGroupName: group.resourceGroupName,
213
+ serverName: sqlName,
214
+ serverKeyType: "AzureKeyVault",
215
+ keyName,
216
+ uri: encryptKey.apply((c) => `https://${vaultInfo.name}.vault.azure.net/keys/${c.name}/${c.properties.version}`),
217
+ }, { ignoreChanges: ["keyName", "uri"] });
218
+ new sql.EncryptionProtector(`${sqlName}-encryptionProtector`, {
219
+ encryptionProtectorName: "current",
220
+ resourceGroupName: group.resourceGroupName,
221
+ serverName: sqlName,
222
+ serverKeyType: "AzureKeyVault",
223
+ serverKeyName: keyName,
224
+ autoRotationEnabled: true,
225
+ }, { dependsOn: serverKey });
225
226
  }
227
+ const dbs = databases?.map((db) => {
228
+ const d = (0, SqlDb_1.default)({
229
+ ...db,
230
+ group,
231
+ sqlServerName: sqlName,
232
+ dependsOn: sqlServer,
233
+ elasticPoolId: ep ? ep.resource.id : undefined,
234
+ });
235
+ // if (encryptKey) {
236
+ // //Enable TransparentDataEncryption for each database
237
+ // new sql.TransparentDataEncryption(`${sqlName}-${db.name}`, {
238
+ // serverName: sqlName,
239
+ // databaseName: d.name,
240
+ // resourceGroupName: group.resourceGroupName,
241
+ // state: "Enabled",
242
+ // });
243
+ // }
244
+ if (vaultInfo) {
245
+ const connectionString = auth?.adminLogin
246
+ ? (0, pulumi_1.interpolate) `Data Source=${sqlName}.database.windows.net;Initial Catalog=${d.name};User Id=${auth.adminLogin};Password=${auth.password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=120;`
247
+ : (0, pulumi_1.interpolate) `Data Source=${sqlName}.database.windows.net;Initial Catalog=${d.name};Authentication=Active Directory Integrated;;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=120;`;
248
+ (0, CustomHelper_1.addCustomSecret)({
249
+ name: d.name,
250
+ value: connectionString,
251
+ vaultInfo,
252
+ contentType: `Sql ${d.name} Connection String`,
253
+ dependsOn: d.resource,
254
+ });
255
+ }
256
+ return d;
257
+ });
226
258
  return {
227
259
  name: sqlName,
228
260
  resource: sqlServer,
@@ -231,4 +263,4 @@ exports.default = ({ name, auth, group, elasticPool, databases, vaultInfo, netwo
231
263
  adminGroup,
232
264
  };
233
265
  };
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBQ2hELDJDQUFpRTtBQUdqRSx5Q0FBMkM7QUFDM0MsMkRBQXdEO0FBQ3hELGlEQUs0QjtBQUM1Qiw2Q0FBd0U7QUFDeEUsMkNBQW9DO0FBT3BDLDJDQUFrRDtBQUNsRCw2REFBNkQ7QUFDN0QsbUNBQW1EO0FBQ25ELDJEQUEyRDtBQUMzRCx1Q0FBZ0M7QUFZaEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEVBQ3pCLEtBQUssRUFDTCxJQUFJLEVBQ0osT0FBTztBQUNQLGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsRUFBRSxFQUNuQixHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsZ0JBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUMxRCxJQUFJLEdBQUcsSUFBSSxHQUNNLEVBQTZDLEVBQUU7SUFDaEUsb0JBQW9CO0lBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUEsMkJBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0MsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtRQUMxQyxlQUFlLEVBQUUsV0FBVztRQUM1QixVQUFVLEVBQUUsT0FBTztRQUNuQixHQUFHLEtBQUs7UUFFUixZQUFZLEVBQUUsZ0JBQUssQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3JFLEdBQUcsRUFBRTtZQUNILElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLE1BQU07WUFDdkIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1NBQ3ZCO1FBQ0QsbUJBQW1C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
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBQ2hELDJDQUFpRTtBQUNqRSwrQ0FBc0Q7QUFFdEQseUNBQTJDO0FBQzNDLDJEQUF3RDtBQUN4RCxpREFLNEI7QUFDNUIsNkNBQXdFO0FBQ3hFLDJDQUFvQztBQU9wQywyQ0FBa0Q7QUFDbEQsNkRBQTZEO0FBQzdELG1DQUFtRDtBQUNuRCwyREFBMkQ7QUFDM0QsdUNBQWdDO0FBQ2hDLG1FQUEwRTtBQVkxRSxNQUFNLGlCQUFpQixHQUFHLENBQUMsRUFDekIsS0FBSyxFQUNMLElBQUksRUFDSixPQUFPO0FBQ1Asa0JBQWtCO0FBQ2xCLGNBQWMsR0FBRyxFQUFFLEVBQ25CLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQzFELElBQUksR0FBRyxJQUFJLEdBQ00sRUFBNkMsRUFBRTtJQUNoRSxvQkFBb0I7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQkFBa0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUU3QyxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1FBQzFDLGVBQWUsRUFBRSxXQUFXO1FBQzVCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLEdBQUcsS0FBSztRQUVSLFlBQVksRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDckUsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksTUFBTTtZQUN2QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxRQUFRLEVBQUUsR0FBRyxD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
@@ -1,6 +1,6 @@
1
- import { KeyVaultInfo, BasicResourceArgs } from '../types';
2
- import { Input } from '@pulumi/pulumi';
3
- import { DefaultManagementRules, ManagementRules } from './ManagementRules';
1
+ import { KeyVaultInfo, BasicResourceArgs } from "../types";
2
+ import { Input } from "@pulumi/pulumi";
3
+ import { DefaultManagementRules, ManagementRules } from "./ManagementRules";
4
4
  type ContainerProps = {
5
5
  name: string;
6
6
  public?: boolean;
package/Storage/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const storage = require("@pulumi/azure-native/storage");
4
- const pulumi_1 = require("@pulumi/pulumi");
5
4
  const Helpers_1 = require("../Logs/Helpers");
6
5
  const Helper_1 = require("../KeyVault/Helper");
7
6
  const AzureEnv_1 = require("../Common/AzureEnv");
@@ -10,22 +9,18 @@ const Naming_1 = require("../Common/Naming");
10
9
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
11
10
  const Locker_1 = require("../Core/Locker");
12
11
  const ManagementRules_1 = require("./ManagementRules");
13
- const KeyVaultBase_1 = require("@drunk-pulumi/azure-providers/AzBase/KeyVaultBase");
14
- const getEncryptionKey = (name, vaultInfo) => {
15
- const n = `${name}-encrypt-key`;
16
- return (0, pulumi_1.output)((0, KeyVaultBase_1.getKeyVaultBase)(vaultInfo.name).getOrCreateKey(n));
17
- };
12
+ const VaultPermissions_1 = require("../KeyVault/VaultPermissions");
18
13
  /** Storage Creator */
19
14
  exports.default = ({ name, group, customDomain, allowsCors, vaultInfo, defaultManagementRules, containers = [], queues = [], fileShares = [],
20
15
  //appInsight,
21
16
  network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock = true, }) => {
22
17
  name = (0, Naming_1.getStorageName)(name);
23
- const primaryKeyName = (0, Naming_1.getKeyName)(name, 'primary');
24
- const secondaryKeyName = (0, Naming_1.getKeyName)(name, 'secondary');
25
- const primaryConnectionKeyName = (0, Naming_1.getConnectionName)(name, 'primary');
26
- const secondConnectionKeyName = (0, Naming_1.getConnectionName)(name, 'secondary');
18
+ const primaryKeyName = (0, Naming_1.getKeyName)(name, "primary");
19
+ const secondaryKeyName = (0, Naming_1.getKeyName)(name, "secondary");
20
+ const primaryConnectionKeyName = (0, Naming_1.getConnectionName)(name, "primary");
21
+ const secondConnectionKeyName = (0, Naming_1.getConnectionName)(name, "secondary");
27
22
  const encryptionKey = featureFlags.enableKeyVaultEncryption
28
- ? getEncryptionKey(name, vaultInfo)
23
+ ? (0, Helper_1.getEncryptionKey)(name, vaultInfo)
29
24
  : undefined;
30
25
  //To fix identity issue then using this approach https://github.com/pulumi/pulumi-azure-native/blob/master/examples/keyvault/index.ts
31
26
  const stg = new storage.StorageAccount(name, {
@@ -37,13 +32,13 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
37
32
  ? storage.SkuName.Standard_ZRS //Zone redundant in PRD
38
33
  : storage.SkuName.Standard_LRS,
39
34
  },
40
- accessTier: 'Hot',
35
+ accessTier: "Hot",
41
36
  isHnsEnabled: true,
42
37
  enableHttpsTrafficOnly: true,
43
38
  allowBlobPublicAccess: policies?.allowBlobPublicAccess,
44
39
  allowSharedKeyAccess: featureFlags.allowSharedKeyAccess,
45
- identity: { type: 'SystemAssigned' },
46
- minimumTlsVersion: 'TLS1_2',
40
+ identity: { type: "SystemAssigned" },
41
+ minimumTlsVersion: "TLS1_2",
47
42
  //1 Year Months
48
43
  keyPolicy: {
49
44
  keyExpirationPeriodInDays: policies.keyExpirationPeriodInDays || 365,
@@ -69,7 +64,7 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
69
64
  : undefined,
70
65
  sasPolicy: {
71
66
  expirationAction: storage.ExpirationAction.Log,
72
- sasExpirationPeriod: '00.00:30:00',
67
+ sasExpirationPeriod: "00.00:30:00",
73
68
  },
74
69
  customDomain: customDomain && !featureFlags.enableStaticWebsite
75
70
  ? { name: customDomain, useSubDomainName: true }
@@ -83,19 +78,19 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
83
78
  // },
84
79
  networkRuleSet: network
85
80
  ? {
86
- bypass: 'Logging, Metrics',
87
- defaultAction: 'Allow',
81
+ bypass: "Logging, Metrics",
82
+ defaultAction: "Allow",
88
83
  virtualNetworkRules: network.subnetId
89
84
  ? [{ virtualNetworkResourceId: network.subnetId }]
90
85
  : undefined,
91
86
  ipRules: network.ipAddresses
92
87
  ? network.ipAddresses.map((i) => ({
93
88
  iPAddressOrRange: i,
94
- action: 'Allow',
89
+ action: "Allow",
95
90
  }))
96
91
  : undefined,
97
92
  }
98
- : { defaultAction: 'Allow' },
93
+ : { defaultAction: "Allow" },
99
94
  });
100
95
  //Soft Delete
101
96
  if (policies) {
@@ -149,8 +144,8 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
149
144
  new storage.StorageAccountStaticWebsite(name, {
150
145
  accountName: stg.name,
151
146
  ...group,
152
- indexDocument: 'index.html',
153
- error404Document: 'index.html',
147
+ indexDocument: "index.html",
148
+ error404Document: "index.html",
154
149
  }, { dependsOn: stg });
155
150
  // if (appInsight && customDomain) {
156
151
  // addInsightMonitor({ name, appInsight, url: customDomain });
@@ -178,7 +173,7 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
178
173
  ...group,
179
174
  accountName: stg.name,
180
175
  //denyEncryptionScopeOverride: true,
181
- publicAccess: c.public ? 'Blob' : 'None',
176
+ publicAccess: c.public ? "Blob" : "None",
182
177
  });
183
178
  if (c.managementRules) {
184
179
  (0, ManagementRules_1.createManagementRules)({
@@ -211,7 +206,8 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
211
206
  stg.id.apply(async (id) => {
212
207
  if (!id)
213
208
  return;
214
- stg.identity.apply((i) => console.log('Add this ID into Key Vault ReadOnly Group to allows custom key encryption:', i.principalId));
209
+ //Allows to Read Key Vault
210
+ (0, VaultPermissions_1.grantVaultAccessToIdentity)({ name, identity: stg.identity, vaultInfo });
215
211
  const keys = (await storage.listStorageAccountKeys({
216
212
  accountName: name,
217
213
  resourceGroupName: group.resourceGroupName,
@@ -224,7 +220,7 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
224
220
  //Keys
225
221
  (0, CustomHelper_1.addCustomSecrets)({
226
222
  vaultInfo,
227
- contentType: 'Storage',
223
+ contentType: "Storage",
228
224
  formattedName: true,
229
225
  items: [
230
226
  {
@@ -260,4 +256,4 @@ network, featureFlags = {}, policies = { keyExpirationPeriodInDays: 365 }, lock
260
256
  : undefined,
261
257
  };
262
258
  };
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQUF3RDtBQUd4RCwyQ0FBK0M7QUFDL0MsNkNBQXlEO0FBQ3pELCtDQUErQztBQUMvQyxpREFBMkM7QUFDM0MsK0NBQXVDO0FBRXZDLDZDQUkwQjtBQUMxQiwyREFBNEQ7QUFDNUQsMkNBQW9DO0FBQ3BDLHVEQUkyQjtBQUMzQixvRkFBb0Y7QUF1RHBGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsU0FBdUIsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxjQUFjLENBQUM7SUFDaEMsT0FBTyxJQUFBLGVBQU0sRUFBQyxJQUFBLDhCQUFlLEVBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25FLENBQUMsQ0FBQztBQUVGLHNCQUFzQjtBQUN0QixrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsVUFBVSxHQUFHLEVBQUUsRUFDZixNQUFNLEdBQUcsRUFBRSxFQUNYLFVBQVUsR0FBRyxFQUFFO0FBQ2YsYUFBYTtBQUNiLE9BQU8sRUFDUCxZQUFZLEdBQUcsRUFBRSxFQUNqQixRQUFRLEdBQUcsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsRUFDN0MsSUFBSSxHQUFHLElBQUksR0FDRSxFQUFFLEVBQUU7SUFDakIsSUFBSSxHQUFHLElBQUEsdUJBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUU1QixNQUFNLGNBQWMsR0FBRyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSxtQkFBVSxFQUFDLElBQUksRUFBRSxXQUFXLENB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
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQUF3RDtBQUl4RCw2Q0FBeUQ7QUFDekQsK0NBQWlFO0FBQ2pFLGlEQUEyQztBQUMzQywrQ0FBdUM7QUFFdkMsNkNBSTBCO0FBQzFCLDJEQUE0RDtBQUM1RCwyQ0FBb0M7QUFDcEMsdURBSTJCO0FBQzNCLG1FQUEwRTtBQXVEMUUsc0JBQXNCO0FBQ3RCLGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULHNCQUFzQixFQUN0QixVQUFVLEdBQUcsRUFBRSxFQUNmLE1BQU0sR0FBRyxFQUFFLEVBQ1gsVUFBVSxHQUFHLEVBQUU7QUFDZixhQUFhO0FBQ2IsT0FBTyxFQUNQLFlBQVksR0FBRyxFQUFFLEVBQ2pCLFFBQVEsR0FBRyxFQUFFLHlCQUF5QixFQUFFLEdBQUcsRUFBRSxFQUM3QyxJQUFJLEdBQUcsSUFBSSxHQUNFLEVBQUUsRUFBRTtJQUNqQixJQUFJLEdBQUcsSUFBQSx1QkFBYyxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVCLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQVUsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sd0JBQXdCLEdBQUcsSUFBQSwwQkFBaUIsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEUsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsd0JBQXdCO1FBQ3pELENBQUMsQ0FBQyxJQUFBLHlCQUFnQixFQUFDLElBQUksRUFBRSxT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
@@ -5,7 +5,9 @@ const pulumi_1 = require("@pulumi/pulumi");
5
5
  const Helper_1 = require("./Helper");
6
6
  const PrivateDns_1 = require("./PrivateDns");
7
7
  const AzureEnv_1 = require("../Common/AzureEnv");
8
+ const Naming_1 = require("../Common/Naming");
8
9
  exports.default = ({ name, group, resourceId, subnetId, privateDnsZoneName, useGlobalDnsZone, linkServiceGroupIds, }) => {
10
+ name = (0, Naming_1.getPrivateEndpointName)(name);
9
11
  const endpoint = new network.PrivateEndpoint(name, {
10
12
  privateEndpointName: name,
11
13
  ...group,
@@ -66,4 +68,4 @@ exports.default = ({ name, group, resourceId, subnetId, privateDnsZoneName, useG
66
68
  //TODO: Create private DNS Zone in the same resource group and link to VNet
67
69
  return endpoint;
68
70
  };
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpdmF0ZUVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1ZOZXQvUHJpdmF0ZUVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0RBQXdEO0FBQ3hELDJDQUErQztBQUUvQyxxQ0FBaUQ7QUFDakQsNkNBQTZFO0FBQzdFLGlEQUEyRDtBQVEzRCxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEdBQ2IsRUFBRSxFQUFFO0lBQ1YsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRTtRQUNqRCxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLEdBQUcsS0FBSztRQUVSLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUU7UUFDeEIsNkJBQTZCLEVBQUU7WUFDN0I7Z0JBQ0UsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsSUFBSSxFQUFFLEdBQUcsSUFBSSxPQUFPO2dCQUNwQixvQkFBb0IsRUFBRSxVQUFVO2FBQ2pDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxrQkFBa0I7SUFDbEIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3hELENBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFZLENBQUMsQ0FDbEMsQ0FBQztJQUVGLElBQUEsZUFBTSxFQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUEsZ0NBQXFCLEVBQUMsRUFBRSxDQUFDLENBQUM7UUFFL0MsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLGNBQWM7WUFDZCxJQUFBLHVCQUFVLEVBQUM7Z0JBQ1QsV0FBVztnQkFDWCxVQUFVLEVBQUUsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFO2dCQUNwQyxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCLENBQUMsQ0FBQztZQUVILGNBQWM7WUFDZCxJQUFBLGVBQU0sRUFBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBQSw4QkFBcUIsRUFBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUMsSUFBQSxpQ0FBb0IsRUFBQztvQkFDbkIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsTUFBTTtpQkFDUCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sYUFBYTtZQUNiLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQztnQkFDdkIsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFFLElBQUksSUFBSSxrQkFBa0IsRUFBRTtnQkFDbkQsS0FBSzthQUNOLENBQUMsQ0FBQztZQUVILGlCQUFpQjtZQUNqQixJQUFBLHVCQUFVLEVBQUM7Z0JBQ1QsV0FBVztnQkFDWCxVQUFVLEVBQUUsR0FBRztnQkFDZixRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7WUFDSCxjQUFjO1lBQ2QsSUFBQSxlQUFNLEVBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQXFCLEVBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLElBQUEsaUNBQW9CLEVBQUM7b0JBQ25CLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLE1BQU07b0JBQ04sS0FBSztvQkFDTCxTQUFTLEVBQUUsSUFBSTtpQkFDaEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCwyRUFBMkU7SUFDM0UsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDIn0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpdmF0ZUVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1ZOZXQvUHJpdmF0ZUVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0RBQXdEO0FBQ3hELDJDQUErQztBQUUvQyxxQ0FBaUQ7QUFDakQsNkNBQTZFO0FBQzdFLGlEQUEyRDtBQUMzRCw2Q0FBMEQ7QUFRMUQsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixLQUFLLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNiLEVBQUUsRUFBRTtJQUNWLElBQUksR0FBRyxJQUFBLCtCQUFzQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBDLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7UUFDakQsbUJBQW1CLEVBQUUsSUFBSTtRQUN6QixHQUFHLEtBQUs7UUFFUixNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO1FBQ3hCLDZCQUE2QixFQUFFO1lBQzdCO2dCQUNFLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLElBQUksRUFBRSxHQUFHLElBQUksT0FBTztnQkFDcEIsb0JBQW9CLEVBQUUsVUFBVTthQUNqQztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsa0JBQWtCO0lBQ2xCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN4RCxDQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBWSxDQUFDLENBQ2xDLENBQUM7SUFFRixJQUFBLGVBQU0sRUFBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUM5QixNQUFNLFlBQVksR0FBRyxJQUFBLGdDQUFxQixFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixjQUFjO1lBQ2QsSUFBQSx1QkFBVSxFQUFDO2dCQUNULFdBQVc7Z0JBQ1gsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDcEMsUUFBUSxFQUFFLGtCQUFrQjthQUM3QixDQUFDLENBQUM7WUFFSCxjQUFjO1lBQ2QsSUFBQSxlQUFNLEVBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQXFCLEVBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLElBQUEsaUNBQW9CLEVBQUM7b0JBQ25CLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLE1BQU07aUJBQ1AsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLGFBQWE7WUFDYixNQUFNLElBQUksR0FBRyxJQUFBLG9CQUFXLEVBQUM7Z0JBQ3ZCLElBQUksRUFBRSxHQUFHLFlBQVksRUFBRSxJQUFJLElBQUksa0JBQWtCLEVBQUU7Z0JBQ25ELEtBQUs7YUFDTixDQUFDLENBQUM7WUFFSCxpQkFBaUI7WUFDakIsSUFBQSx1QkFBVSxFQUFDO2dCQUNULFdBQVc7Z0JBQ1gsVUFBVSxFQUFFLEdBQUc7Z0JBQ2YsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsY0FBYztZQUNkLElBQUEsZUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFBLDhCQUFxQixFQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxJQUFBLGlDQUFvQixFQUFDO29CQUNuQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixNQUFNO29CQUNOLEtBQUs7b0JBQ0wsU0FBUyxFQUFFLElBQUk7aUJBQ2hCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsMkVBQTJFO0lBQzNFLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drunk-pulumi/azure",
3
- "version": "0.0.24",
3
+ "version": "0.0.26",
4
4
  "author": "drunkcoding@outlook.com",
5
5
  "description": "The custom helpers pulumi-azure",
6
6
  "license": "MIT",
@@ -17,8 +17,8 @@
17
17
  "url": "https://github.com/baoduy/drunk-pulumi-azure.git"
18
18
  },
19
19
  "dependencies": {
20
- "@drunk-pulumi/azure-providers": "^0.0.5",
21
- "@pulumi/azure-native": "^2.32.0",
20
+ "@drunk-pulumi/azure-providers": "^0.0.6",
21
+ "@pulumi/azure-native": "^2.33.0",
22
22
  "@pulumi/azuread": "5.47.2",
23
23
  "@pulumi/pulumi": "^3.111.1",
24
24
  "@pulumi/random": "^4.16.0",
package/types.d.ts CHANGED
@@ -11,6 +11,8 @@ export interface ResourceGroupInfo {
11
11
  export interface ConventionProps {
12
12
  prefix?: string;
13
13
  suffix?: string;
14
+ /**Whether include the Azure Region name at the end of the name or not*/
15
+ includeRegion?: boolean;
14
16
  /**Whether include the organization name at the end of the name or not*/
15
17
  includeOrgName?: boolean;
16
18
  }
@@ -1,15 +0,0 @@
1
- import { EnvRoleNamesType } from '../AzAd/EnvRoles';
2
- export type VaultAccessType = {
3
- /** Grant permission of this group into Environment Roles groups*/
4
- envRoleNames?: EnvRoleNamesType;
5
- includeOrganization?: boolean;
6
- };
7
- interface Props {
8
- name: string;
9
- auth: VaultAccessType;
10
- }
11
- declare const _default: ({ name, auth }: Props) => {
12
- readOnlyGroup: import("@pulumi/pulumi").Output<import("@pulumi/pulumi").UnwrappedObject<import("@pulumi/azuread").GetGroupResult>> | import("@pulumi/pulumi").Output<import("@pulumi/azuread/group").Group>;
13
- adminGroup: import("@pulumi/pulumi").Output<import("@pulumi/pulumi").UnwrappedObject<import("@pulumi/azuread").GetGroupResult>> | import("@pulumi/pulumi").Output<import("@pulumi/azuread/group").Group>;
14
- };
15
- export default _default;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Role_1 = require("../AzAd/Role");
4
- const AzureEnv_1 = require("../Common/AzureEnv");
5
- const Group_1 = require("../AzAd/Group");
6
- exports.default = ({ name, auth }) => {
7
- //Permission Groups
8
- const readOnlyGroup = auth.envRoleNames
9
- ? (0, Group_1.getAdGroup)(auth.envRoleNames.readOnly)
10
- : (0, Role_1.default)({
11
- env: AzureEnv_1.currentEnv,
12
- appName: `${name}-vault`,
13
- roleName: 'ReadOnly',
14
- includeOrganization: auth.includeOrganization,
15
- });
16
- const adminGroup = auth.envRoleNames
17
- ? (0, Group_1.getAdGroup)(auth.envRoleNames.contributor)
18
- : (0, Role_1.default)({
19
- env: AzureEnv_1.currentEnv,
20
- appName: `${name}-vault`,
21
- roleName: 'Admin',
22
- includeOrganization: auth.includeOrganization,
23
- });
24
- //Add current service principal in
25
- // if (auth.permissions == undefined) {
26
- // auth.permissions = [
27
- // // {
28
- // // objectId: currentServicePrincipal,
29
- // // permission: 'ReadWrite',
30
- // // },
31
- // ];
32
- // }
33
- //Add Permission to Groups
34
- // auth.permissions.forEach(
35
- // ({ objectId, applicationId, permission, ...others }, index) =>
36
- // new azuread.GroupMember(`${name}-${permission}-${index}`, {
37
- // groupObjectId:
38
- // permission === 'ReadOnly'
39
- // ? readOnlyGroup.objectId
40
- // : adminGroup.objectId,
41
- // memberObjectId: objectId ?? applicationId,
42
- // ...others,
43
- // })
44
- // );
45
- return { readOnlyGroup, adminGroup };
46
- };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRBY2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvS2V5VmF1bHQvVmF1bHRBY2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx1Q0FBcUM7QUFDckMsaURBQWdEO0FBQ2hELHlDQUEyQztBQWUzQyxrQkFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBUyxFQUFFLEVBQUU7SUFDdkMsbUJBQW1CO0lBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZO1FBQ3JDLENBQUMsQ0FBQyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDeEMsQ0FBQyxDQUFDLElBQUEsY0FBUyxFQUFDO1lBQ1IsR0FBRyxFQUFFLHFCQUFVO1lBQ2YsT0FBTyxFQUFFLEdBQUcsSUFBSSxRQUFRO1lBQ3hCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDOUMsQ0FBQyxDQUFDO0lBRVAsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVk7UUFDbEMsQ0FBQyxDQUFDLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUMzQyxDQUFDLENBQUMsSUFBQSxjQUFTLEVBQUM7WUFDUixHQUFHLEVBQUUscUJBQVU7WUFDZixPQUFPLEVBQUUsR0FBRyxJQUFJLFFBQVE7WUFDeEIsUUFBUSxFQUFFLE9BQU87WUFDakIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtTQUM5QyxDQUFDLENBQUM7SUFFUCxrQ0FBa0M7SUFDbEMsdUNBQXVDO0lBQ3ZDLHlCQUF5QjtJQUN6QixXQUFXO0lBQ1gsOENBQThDO0lBQzlDLG9DQUFvQztJQUNwQyxZQUFZO0lBQ1osT0FBTztJQUNQLElBQUk7SUFFSiwwQkFBMEI7SUFDMUIsNEJBQTRCO0lBQzVCLG1FQUFtRTtJQUNuRSxrRUFBa0U7SUFDbEUsdUJBQXVCO0lBQ3ZCLG9DQUFvQztJQUNwQyxxQ0FBcUM7SUFDckMsbUNBQW1DO0lBQ25DLG1EQUFtRDtJQUNuRCxtQkFBbUI7SUFDbkIsU0FBUztJQUNULEtBQUs7SUFFTCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyJ9