@drunk-pulumi/azure-components 1.0.1 → 1.0.3

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.
Files changed (104) hide show
  1. package/README.md +127 -1
  2. package/ResourceBuilder.d.ts +85 -46
  3. package/ResourceBuilder.js +147 -46
  4. package/aks/AzKubernetes.d.ts +17 -3
  5. package/aks/AzKubernetes.js +92 -43
  6. package/aks/ContainerRegistry.d.ts +4 -3
  7. package/aks/ContainerRegistry.js +22 -19
  8. package/apim/Apim.d.ts +51 -0
  9. package/apim/Apim.js +248 -0
  10. package/apim/ApimApi.d.ts +34 -0
  11. package/apim/ApimApi.js +193 -0
  12. package/apim/ApimApiSet.d.ts +27 -0
  13. package/apim/ApimApiSet.js +88 -0
  14. package/apim/ApimPolicyBuilder.d.ts +93 -0
  15. package/apim/ApimPolicyBuilder.js +294 -0
  16. package/apim/ApimProduct.d.ts +27 -0
  17. package/apim/ApimProduct.js +118 -0
  18. package/apim/index.d.ts +2 -0
  19. package/apim/index.js +19 -0
  20. package/apim/openAPI3Type.d.ts +85 -0
  21. package/apim/openAPI3Type.js +3 -0
  22. package/apim/openApiHelper.d.ts +1 -0
  23. package/apim/openApiHelper.js +36 -0
  24. package/app/SignalR.d.ts +3 -3
  25. package/app/SignalR.js +35 -20
  26. package/azAd/AppRegistration.d.ts +15 -11
  27. package/azAd/AppRegistration.js +67 -68
  28. package/azAd/AzRole.js +2 -2
  29. package/azAd/GroupRole.d.ts +7 -17
  30. package/azAd/GroupRole.js +7 -17
  31. package/azAd/RoleAssignment.d.ts +1 -1
  32. package/azAd/RoleAssignment.js +5 -5
  33. package/azAd/UserAssignedIdentity.d.ts +3 -0
  34. package/azAd/UserAssignedIdentity.js +23 -7
  35. package/azAd/helpers/index.d.ts +0 -2
  36. package/azAd/helpers/index.js +26 -22
  37. package/azAd/helpers/rolesBuiltIn.d.ts +10 -19
  38. package/azAd/helpers/rolesBuiltIn.js +25868 -18593
  39. package/azAd/helpers/rsRoleDefinition.d.ts +12 -6
  40. package/azAd/helpers/rsRoleDefinition.js +48 -32
  41. package/base/BaseComponent.d.ts +1 -15
  42. package/base/BaseComponent.js +3 -22
  43. package/base/BaseResourceComponent.d.ts +24 -17
  44. package/base/BaseResourceComponent.js +61 -45
  45. package/base/helpers.d.ts +0 -6
  46. package/base/helpers.js +1 -18
  47. package/common/RandomPassword.js +4 -4
  48. package/common/RandomString.d.ts +1 -1
  49. package/common/RandomString.js +3 -3
  50. package/common/ResourceLocker.js +2 -2
  51. package/common/RsGroup.js +2 -2
  52. package/database/AzSql.d.ts +5 -5
  53. package/database/AzSql.js +37 -24
  54. package/database/MySql.d.ts +1 -1
  55. package/database/MySql.js +45 -28
  56. package/database/Postgres.d.ts +2 -1
  57. package/database/Postgres.js +29 -17
  58. package/database/Redis.d.ts +25 -4
  59. package/database/Redis.js +88 -25
  60. package/helpers/autoTags.js +37 -3
  61. package/helpers/certHelpers.d.ts +20 -0
  62. package/helpers/certHelpers.js +85 -0
  63. package/helpers/rsHelpers.d.ts +19 -1
  64. package/helpers/rsHelpers.js +27 -4
  65. package/helpers/stackEnv.d.ts +2 -1
  66. package/helpers/stackEnv.js +10 -7
  67. package/index.d.ts +1 -0
  68. package/index.js +2 -1
  69. package/package.json +11 -7
  70. package/services/Automation.d.ts +3 -1
  71. package/services/Automation.js +8 -8
  72. package/services/ServiceBus.d.ts +3 -2
  73. package/services/ServiceBus.js +17 -19
  74. package/types.d.ts +44 -15
  75. package/vault/EncryptionKey.d.ts +1 -1
  76. package/vault/EncryptionKey.js +4 -4
  77. package/vault/KeyVault.d.ts +3 -8
  78. package/vault/KeyVault.js +4 -7
  79. package/vault/VaultSecret.d.ts +1 -1
  80. package/vault/VaultSecret.js +9 -9
  81. package/vault/VaultSecrets.d.ts +2 -4
  82. package/vault/VaultSecrets.js +4 -6
  83. package/vault/helpers.d.ts +17 -0
  84. package/vault/helpers.js +56 -3
  85. package/vm/DiskEncryptionSet.js +2 -2
  86. package/vm/VirtualMachine.d.ts +2 -1
  87. package/vm/VirtualMachine.js +37 -25
  88. package/vnet/Basion.d.ts +4 -3
  89. package/vnet/Basion.js +17 -4
  90. package/vnet/DnsZone.d.ts +1 -1
  91. package/vnet/DnsZone.js +2 -2
  92. package/vnet/IpAddresses.d.ts +6 -2
  93. package/vnet/IpAddresses.js +2 -2
  94. package/vnet/NetworkPeering.d.ts +1 -1
  95. package/vnet/NetworkPeering.js +1 -1
  96. package/vnet/PrivateDnsZone.d.ts +1 -1
  97. package/vnet/PrivateDnsZone.js +4 -4
  98. package/vnet/PrivateEndpoint.d.ts +7 -10
  99. package/vnet/PrivateEndpoint.js +11 -10
  100. package/vnet/RouteTable.d.ts +1 -1
  101. package/vnet/RouteTable.js +2 -2
  102. package/vnet/VirtualNetwork.d.ts +30 -43
  103. package/vnet/VirtualNetwork.js +77 -43
  104. package/vnet/VpnGateway.js +2 -2
package/common/RsGroup.js CHANGED
@@ -71,7 +71,7 @@ class RsGroup extends BaseResourceComponent_1.BaseResourceComponent {
71
71
  principalType: 'Group',
72
72
  roleName: role,
73
73
  scope: this.id,
74
- }, { parent: this }));
74
+ }, { parent: this, deletedWith: this }));
75
75
  };
76
76
  const roles = roleAssignments ?? [azAd_1.rsRoleDefinitions.rsGroup.getReadOnly()];
77
77
  roles.forEach((role) => {
@@ -82,4 +82,4 @@ class RsGroup extends BaseResourceComponent_1.BaseResourceComponent {
82
82
  }
83
83
  }
84
84
  exports.RsGroup = RsGroup;
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnNHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vUnNHcm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBNEQ7QUFFNUQsa0NBQWtGO0FBQ2xGLHlFQUFnRjtBQVNoRixNQUFhLE9BQVEsU0FBUSw2Q0FBa0M7SUFDN0MsRUFBRSxDQUF3QjtJQUMxQixRQUFRLENBQXdCO0lBQ2hDLGlCQUFpQixDQUF3QjtJQUV6RCxZQUFZLElBQVksRUFBRSxPQUFvQixFQUFFLEVBQUUsSUFBc0M7UUFDdEYsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRW5DLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEdBQUcsSUFBSTtZQUNQLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixNQUFNLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRTVDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBMEIsRUFBRSxPQUE4QixFQUFFLEtBQWUsRUFBRSxFQUFFO1lBQ2xHLEtBQUssQ0FBQyxPQUFPLENBQ1gsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUkscUJBQWMsQ0FDaEIsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUNqRTtnQkFDRSxXQUFXLEVBQUUsT0FBTztnQkFDcEIsYUFBYSxFQUFFLE9BQU87Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTthQUNmLEVBQ0QsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQ2pCLENBQ0osQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLGVBQWUsSUFBSSxDQUFDLHdCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTNFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQixXQUFXLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxXQUFXLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFERCwwQkEwREMifQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnNHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vUnNHcm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBNEQ7QUFFNUQsa0NBQWtGO0FBQ2xGLHlFQUFnRjtBQVNoRixNQUFhLE9BQVEsU0FBUSw2Q0FBa0M7SUFDN0MsRUFBRSxDQUF3QjtJQUMxQixRQUFRLENBQXdCO0lBQ2hDLGlCQUFpQixDQUF3QjtJQUV6RCxZQUFZLElBQVksRUFBRSxPQUFvQixFQUFFLEVBQUUsSUFBc0M7UUFDdEYsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRW5DLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEdBQUcsSUFBSTtZQUNQLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixNQUFNLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRTVDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBMEIsRUFBRSxPQUE4QixFQUFFLEtBQWUsRUFBRSxFQUFFO1lBQ2xHLEtBQUssQ0FBQyxPQUFPLENBQ1gsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUkscUJBQWMsQ0FDaEIsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUNqRTtnQkFDRSxXQUFXLEVBQUUsT0FBTztnQkFDcEIsYUFBYSxFQUFFLE9BQU87Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTthQUNmLEVBQ0QsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FDcEMsQ0FDSixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsTUFBTSxLQUFLLEdBQUcsZUFBZSxJQUFJLENBQUMsd0JBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFM0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLFdBQVcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELFdBQVcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMURELDBCQTBEQyJ9
@@ -1,7 +1,7 @@
1
- import * as sql from '@pulumi/azure-native/sql';
2
1
  import * as pulumi from '@pulumi/pulumi';
3
- import { BaseArgs, BaseResourceComponent } from '../base/BaseResourceComponent';
2
+ import * as sql from '@pulumi/azure-native/sql';
4
3
  import * as types from '../types';
4
+ import { BaseArgs, BaseResourceComponent } from '../base/BaseResourceComponent';
5
5
  export type AzSqlSkuType = {
6
6
  /**
7
7
  * Capacity of the particular SKU.
@@ -24,21 +24,21 @@ export type AzSqlSkuType = {
24
24
  */
25
25
  tier?: 'Standard' | 'Basic';
26
26
  };
27
- export interface AzSqlArgs extends BaseArgs, types.WithEncryptionEnabler, types.WithResourceGroupInputs, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, Pick<sql.ServerArgs, 'administratorLogin' | 'federatedClientId' | 'isIPv6Enabled' | 'restrictOutboundNetworkAccess' | 'version'> {
27
+ export interface AzSqlArgs extends BaseArgs, types.WithEncryptionEnabler, types.WithResourceGroupInputs, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, Partial<Pick<sql.ServerArgs, 'administratorLogin' | 'federatedClientId' | 'isIPv6Enabled' | 'restrictOutboundNetworkAccess' | 'version'>> {
28
28
  administrators?: {
29
29
  azureAdOnlyAuthentication?: boolean;
30
30
  useDefaultUAssignedIdForConnection?: boolean;
31
+ additionalUAssigneds?: Record<string, pulumi.Input<string>>;
31
32
  adminGroup: {
32
33
  displayName: pulumi.Input<string>;
33
34
  objectId: pulumi.Input<string>;
34
35
  };
35
36
  };
36
- elasticPool?: Pick<sql.ElasticPoolArgs, 'autoPauseDelay' | 'availabilityZone' | 'highAvailabilityReplicaCount' | 'licenseType' | 'perDatabaseSettings'> & {
37
+ elasticPoolCreate?: Partial<Pick<sql.ElasticPoolArgs, 'autoPauseDelay' | 'availabilityZone' | 'highAvailabilityReplicaCount' | 'licenseType' | 'perDatabaseSettings'>> & {
37
38
  maxSizeGB?: number;
38
39
  sku: AzSqlSkuType;
39
40
  };
40
41
  network?: Omit<types.NetworkArgs, 'bypass' | 'defaultAction' | 'vnetRules'> & {
41
- acceptAllPublicConnection?: boolean;
42
42
  subnets?: pulumi.Input<Array<{
43
43
  id: string;
44
44
  }>>;
package/database/AzSql.js CHANGED
@@ -34,14 +34,14 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.AzSql = void 0;
37
- const sql = __importStar(require("@pulumi/azure-native/sql"));
38
37
  const pulumi = __importStar(require("@pulumi/pulumi"));
38
+ const sql = __importStar(require("@pulumi/azure-native/sql"));
39
+ const vnet = __importStar(require("../vnet"));
39
40
  const BaseResourceComponent_1 = require("../base/BaseResourceComponent");
40
41
  const helpers_1 = require("../helpers");
42
+ const helpers_2 = require("./helpers");
43
+ const helpers_3 = require("../storage/helpers");
41
44
  const storage_1 = require("../storage");
42
- const helpers_2 = require("../storage/helpers");
43
- const vnet = __importStar(require("../vnet"));
44
- const helpers_3 = require("./helpers");
45
45
  class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
46
46
  id;
47
47
  resourceName;
@@ -68,7 +68,9 @@ class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
68
68
  const { rsGroup, enableEncryption, defaultUAssignedId, administrators, network, lock, administratorLogin, ...props } = this.args;
69
69
  const adminLogin = administratorLogin ?? pulumi.interpolate `${this.name}-admin-${this.createRandomString().value}`;
70
70
  const password = this.createPassword();
71
- const encryptionKey = enableEncryption ? this.getEncryptionKey({ keySize: 3072 }) : undefined;
71
+ const encryptionKey = enableEncryption
72
+ ? this.getEncryptionKey({ name: `${this.name}-az-sql`, keySize: 3072 })
73
+ : undefined;
72
74
  const server = new sql.Server(this.name, {
73
75
  ...props,
74
76
  ...rsGroup,
@@ -88,7 +90,7 @@ class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
88
90
  ? sql.AdministratorType.ActiveDirectory
89
91
  : undefined,
90
92
  azureADOnlyAuthentication: administrators.adminGroup?.objectId
91
- ? administrators.azureAdOnlyAuthentication ?? true
93
+ ? (administrators.azureAdOnlyAuthentication ?? true)
92
94
  : false,
93
95
  principalType: sql.PrincipalType.Group,
94
96
  tenantId: helpers_1.azureEnv.tenantId,
@@ -114,17 +116,16 @@ class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
114
116
  if (!network)
115
117
  return;
116
118
  //Allows Ip Addresses
117
- if (network.acceptAllPublicConnection) {
118
- new sql.FirewallRule(`${this.name}-allows-all-connection`, {
119
+ if (network.allowAllInbound) {
120
+ new sql.FirewallRule(`${this.name}-allows-all`, {
119
121
  ...rsGroup,
120
- //firewallRuleName: 'allows-all-connection',
121
122
  serverName: server.name,
122
123
  startIpAddress: '0.0.0.0',
123
124
  endIpAddress: '255.255.255.255',
124
125
  }, { dependsOn: server, parent: this });
125
126
  }
126
127
  else if (network.ipRules) {
127
- pulumi.output(network.ipRules).apply((ips) => (0, helpers_3.convertToIpRange)(ips).map((ip, i) => {
128
+ pulumi.output(network.ipRules).apply((ips) => (0, helpers_2.convertToIpRange)(ips).map((ip, i) => {
128
129
  const n = `${this.name}-fwRule-${i}`;
129
130
  return new sql.FirewallRule(n, {
130
131
  ...rsGroup,
@@ -158,16 +159,16 @@ class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
158
159
  }
159
160
  }
160
161
  createElasticPool(server) {
161
- const { rsGroup, elasticPool } = this.args;
162
- if (!elasticPool)
162
+ const { rsGroup, elasticPoolCreate } = this.args;
163
+ if (!elasticPoolCreate)
163
164
  return undefined;
164
165
  return new sql.ElasticPool(`${this.name}-elasticPool`, {
165
- ...elasticPool,
166
+ ...elasticPoolCreate,
166
167
  ...rsGroup,
167
168
  //autoPauseDelay: props.autoPauseDelay ?? azureEnv.isPrd ? -1 : 10,
168
169
  preferredEnclaveType: sql.AlwaysEncryptedEnclaveType.VBS,
169
170
  serverName: server.name,
170
- maxSizeBytes: elasticPool.maxSizeGB ? elasticPool.maxSizeGB * 1024 * 1024 * 1024 : undefined,
171
+ maxSizeBytes: elasticPoolCreate.maxSizeGB ? elasticPoolCreate.maxSizeGB * 1024 * 1024 * 1024 : undefined,
171
172
  }, { dependsOn: server, parent: this });
172
173
  }
173
174
  createEncryptionProtector(server, key) {
@@ -205,14 +206,14 @@ class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
205
206
  //this will allows sql server to able to write log into the storage account
206
207
  this.addIdentityToRole('contributor', server.identity);
207
208
  const stgEndpoints = storage_1.storageHelpers.getStorageEndpointsOutputs(vulnerabilityAssessment.logStorage);
208
- const storageKey = (0, helpers_2.getStorageAccessKeyOutputs)(vulnerabilityAssessment.logStorage, vaultInfo);
209
+ const storageKey = (0, helpers_3.getStorageAccessKeyOutputs)(vulnerabilityAssessment.logStorage, vaultInfo);
209
210
  const alert = new sql.ServerSecurityAlertPolicy(`${this.name}-alert`, {
210
211
  ...rsGroup,
211
212
  securityAlertPolicyName: 'default',
212
213
  serverName: server.name,
213
214
  emailAccountAdmins: true,
214
215
  emailAddresses: vulnerabilityAssessment.alertEmails,
215
- retentionDays: vulnerabilityAssessment.retentionDays ?? helpers_1.azureEnv.isPrd ? 30 : 7,
216
+ retentionDays: (vulnerabilityAssessment.retentionDays ?? helpers_1.azureEnv.isPrd) ? 30 : 7,
216
217
  storageAccountAccessKey: storageKey,
217
218
  storageEndpoint: stgEndpoints.blob,
218
219
  state: 'Enabled',
@@ -231,7 +232,7 @@ class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
231
232
  isStorageSecondaryKeyInUse: false,
232
233
  predicateExpression: "object_name = 'SensitiveData'",
233
234
  queueDelayMs: 4000,
234
- retentionDays: vulnerabilityAssessment.retentionDays ?? helpers_1.azureEnv.isPrd ? 30 : 7,
235
+ retentionDays: (vulnerabilityAssessment.retentionDays ?? helpers_1.azureEnv.isPrd) ? 30 : 7,
235
236
  state: 'Enabled',
236
237
  isDevopsAuditEnabled: true,
237
238
  storageAccountAccessKey: storageKey,
@@ -269,15 +270,27 @@ class AzSql extends BaseResourceComponent_1.BaseResourceComponent {
269
270
  serverName: server.name,
270
271
  databaseName: name,
271
272
  }, { dependsOn: elasticPool ? [server, password, elasticPool] : [server, password], parent: this });
272
- const connectionString = administrators?.azureAdOnlyAuthentication
273
- ? administrators?.useDefaultUAssignedIdForConnection
274
- ? pulumi.interpolate `Server=tcp:${server.name}.database.windows.net,1433; Initial Catalog=${db.name}; Authentication="Active Directory Managed Identity"; User Id=${defaultUAssignedId?.principalId}; MultipleActiveResultSets=False; Encrypt=True; TrustServerCertificate=True; Connection Timeout=120;`
275
- : pulumi.interpolate `Server=tcp:${server.name}.database.windows.net,1433; Initial Catalog=${db.name}; Authentication="Active Directory Default"; MultipleActiveResultSets=False;Encrypt=True; TrustServerCertificate=True; Connection Timeout=120;`
276
- : pulumi.interpolate `Server=tcp:${server.name}.database.windows.net,1433; Initial Catalog=${db.name}; User Id=${server.administratorLogin}; Password=${password.value}; MultipleActiveResultSets=False; Encrypt=True; TrustServerCertificate=True; Connection Timeout=120;`;
277
- this.addSecret(`${name}-conn`, connectionString);
273
+ const secrets = {
274
+ [`${name}-sql-default-sysid-conn`]: pulumi.interpolate `Server=tcp:${server.name}.database.windows.net,1433; Initial Catalog=${db.name}; Authentication="Active Directory Default"; MultipleActiveResultSets=False;Encrypt=True; TrustServerCertificate=True; Connection Timeout=120;`,
275
+ };
276
+ if (defaultUAssignedId && administrators?.useDefaultUAssignedIdForConnection)
277
+ secrets[`${name}-sql-default-uid-conn`] =
278
+ pulumi.interpolate `Server=tcp:${server.name}.database.windows.net,1433; Initial Catalog=${db.name}; Authentication="Active Directory Managed Identity"; User Id=${defaultUAssignedId?.principalId}; MultipleActiveResultSets=False; Encrypt=True; TrustServerCertificate=True; Connection Timeout=120;`;
279
+ if (!administrators?.azureAdOnlyAuthentication) {
280
+ secrets[`${name}-sql-password-conn`] =
281
+ pulumi.interpolate `Server=tcp:${server.name}.database.windows.net,1433; Initial Catalog=${db.name}; User Id=${server.administratorLogin}; Password=${password.value}; MultipleActiveResultSets=False; Encrypt=True; TrustServerCertificate=True; Connection Timeout=120;`;
282
+ }
283
+ const adds = administrators?.additionalUAssigneds;
284
+ if (adds) {
285
+ Object.keys(adds).forEach((k) => {
286
+ const conn = pulumi.interpolate `Server=tcp:${server.name}.database.windows.net,1433; Initial Catalog=${db.name}; Authentication="Active Directory Managed Identity"; User Id=${adds[k]}; MultipleActiveResultSets=False; Encrypt=True; TrustServerCertificate=True; Connection Timeout=120;`;
287
+ secrets[`${name}-sql-${k}-conn`] = conn;
288
+ });
289
+ }
290
+ this.addSecrets(secrets);
278
291
  return db;
279
292
  });
280
293
  }
281
294
  }
282
295
  exports.AzSql = AzSql;
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXpTcWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvQXpTcWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOERBQWdEO0FBQ2hELHVEQUF5QztBQUN6Qyx5RUFBZ0Y7QUFFaEYsd0NBQXNDO0FBQ3RDLHdDQUE0QztBQUM1QyxnREFBZ0U7QUFHaEUsOENBQWdDO0FBQ2hDLHVDQUE2QztBQTZFN0MsTUFBYSxLQUFNLFNBQVEsNkNBQWdDO0lBQ3pDLEVBQUUsQ0FBd0I7SUFDMUIsWUFBWSxDQUF3QjtJQUVwRCxZQUFZLElBQVksRUFBRSxJQUFlLEVBQUUsSUFBc0M7UUFDL0UsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWpDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRWhDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9B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
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXpTcWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvQXpTcWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXlDO0FBQ3pDLDhEQUFnRDtBQUdoRCw4Q0FBZ0M7QUFFaEMseUVBQWdGO0FBR2hGLHdDQUFzQztBQUN0Qyx1Q0FBNkM7QUFDN0MsZ0RBQWdFO0FBQ2hFLHdDQUE0QztBQWlGNUMsTUFBYSxLQUFNLFNBQVEsNkNBQWdDO0lBQ3pDLEVBQUUsQ0FBd0I7SUFDMUIsWUFBWSxDQUF3QjtJQUVwRCxZQUFZLElBQVksRUFBRSxJQUFlLEVBQUUsSUFBc0M7UUFDL0UsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWpDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRWhDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9B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
@@ -2,7 +2,7 @@ import * as mysql from '@pulumi/azure-native/dbformysql';
2
2
  import * as pulumi from '@pulumi/pulumi';
3
3
  import { BaseArgs, BaseResourceComponent } from '../base';
4
4
  import * as types from '../types';
5
- export interface MySqlArgs extends BaseArgs, types.WithEncryptionEnabler, types.WithResourceGroupInputs, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, types.WithNetworkArgs, Pick<mysql.ServerArgs, 'version' | 'storage' | 'administratorLogin' | 'maintenanceWindow' | 'backup' | 'highAvailability' | 'availabilityZone'> {
5
+ export interface MySqlArgs extends BaseArgs, types.WithEncryptionEnabler, types.WithResourceGroupInputs, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, types.WithNetworkArgs, Pick<mysql.ServerArgs, 'administratorLogin'>, Partial<Pick<mysql.ServerArgs, 'version' | 'storage' | 'maintenanceWindow' | 'backup' | 'highAvailability' | 'availabilityZone'>> {
6
6
  sku: {
7
7
  /**
8
8
  * The name of the sku, e.g. Standard_D32s_v3.
package/database/MySql.js CHANGED
@@ -46,10 +46,11 @@ class MySql extends base_1.BaseResourceComponent {
46
46
  resourceName;
47
47
  constructor(name, args, opts) {
48
48
  super('MySql', name, args, opts);
49
- const server = this.createMySql();
49
+ const uAssignedId = this.getUAssignedId();
50
+ const { server, credentials } = this.createMySql(uAssignedId);
50
51
  this.createNetwork(server);
51
- this.enableADAdmin(server);
52
- this.createDatabases(server);
52
+ this.enableADAdmin(server, uAssignedId);
53
+ this.createDatabases(server, credentials);
53
54
  if (args.lock)
54
55
  this.lockFromDeleting(server);
55
56
  this.id = server.id;
@@ -62,36 +63,38 @@ class MySql extends base_1.BaseResourceComponent {
62
63
  resourceName: this.resourceName,
63
64
  };
64
65
  }
65
- createMySql() {
66
+ createMySql(uid) {
66
67
  const { rsGroup, enableEncryption, administratorLogin, lock } = this.args;
67
68
  const adminLogin = administratorLogin ?? pulumi.interpolate `${this.name}-admin-${this.createRandomString().value}`;
68
69
  const password = this.createPassword();
69
70
  const encryptionKey = enableEncryption ? this.getEncryptionKey() : undefined;
70
- const uAssignedId = this.getUAssignedId();
71
71
  const server = new mysql.Server(this.name, {
72
72
  ...this.args,
73
73
  ...rsGroup,
74
+ //serverName: this.name,
74
75
  administratorLogin: adminLogin,
75
76
  administratorLoginPassword: password.value,
76
77
  version: this.args.version ?? mysql.ServerVersion.ServerVersion_8_0_21,
77
78
  storage: this.args.storage ?? { storageSizeGB: 30 },
78
79
  identity: {
79
80
  type: mysql.ManagedServiceIdentityType.UserAssigned,
80
- userAssignedIdentities: [uAssignedId.id],
81
+ userAssignedIdentities: [uid.id],
81
82
  },
82
83
  dataEncryption: encryptionKey
83
84
  ? {
84
85
  type: mysql.DataEncryptionType.AzureKeyVault,
85
- primaryUserAssignedIdentityId: uAssignedId.id,
86
+ primaryUserAssignedIdentityId: uid.id,
86
87
  primaryKeyURI: encryptionKey.id,
87
88
  }
88
89
  : { type: 'SystemManaged' },
89
- maintenanceWindow: this.args.maintenanceWindow ?? {
90
- customWindow: 'Enabled',
91
- dayOfWeek: 0, //0 is Sunday
92
- startHour: 0,
93
- startMinute: 0,
94
- },
90
+ maintenanceWindow: this.args.sku.tier !== 'Burstable'
91
+ ? this.args.maintenanceWindow ?? {
92
+ customWindow: 'Enabled',
93
+ dayOfWeek: 0, //0 is Sunday
94
+ startHour: 0,
95
+ startMinute: 0,
96
+ }
97
+ : undefined,
95
98
  backup: this.args.backup ?? {
96
99
  geoRedundantBackup: helpers_1.azureEnv.isPrd ? 'Enabled' : 'Disabled',
97
100
  backupRetentionDays: helpers_1.azureEnv.isPrd ? 30 : 7,
@@ -111,18 +114,31 @@ class MySql extends base_1.BaseResourceComponent {
111
114
  protect: lock ?? this.opts?.protect,
112
115
  parent: this,
113
116
  });
117
+ const credentials = {
118
+ host: pulumi.interpolate `${server.name}.mysql.database.azure.com`,
119
+ port: '3306',
120
+ username: adminLogin,
121
+ password: password.value,
122
+ };
114
123
  this.addSecrets({
115
- [`${this.name}-host`]: pulumi.interpolate `${server.name}.mysql.database.azure.com`,
116
- [`${this.name}-port`]: '3306',
117
- [`${this.name}-login`]: this.args.administratorLogin,
118
- [`${this.name}-pass`]: password.value,
119
- [`${this.name}-username`]: adminLogin,
124
+ [`${this.name}-mysql-host`]: credentials.host,
125
+ [`${this.name}-mysql-port`]: credentials.port,
126
+ [`${this.name}-mysql-login`]: credentials.username,
127
+ [`${this.name}-mysql-pass`]: credentials.password,
120
128
  });
121
- return server;
129
+ return { server, credentials };
122
130
  }
123
131
  createNetwork(server) {
124
132
  const { rsGroup, network } = this.args;
125
- if (network?.ipRules) {
133
+ if (network?.allowAllInbound) {
134
+ new mysql.FirewallRule(`${this.name}-firewall-allow-all`, {
135
+ ...rsGroup,
136
+ serverName: server.name,
137
+ startIpAddress: '0.0.0.0',
138
+ endIpAddress: '255.255.255.255',
139
+ }, { dependsOn: server, parent: this });
140
+ }
141
+ else if (network?.ipRules) {
126
142
  pulumi.output(network.ipRules).apply((ips) => (0, helpers_2.convertToIpRange)(ips).map((f, i) => new mysql.FirewallRule(`${this.name}-firewall-${i}`, {
127
143
  ...rsGroup,
128
144
  //firewallRuleName: `${this.name}-firewall-${i}`,
@@ -140,21 +156,22 @@ class MySql extends base_1.BaseResourceComponent {
140
156
  }, { dependsOn: server, parent: this });
141
157
  }
142
158
  }
143
- enableADAdmin(server) {
159
+ enableADAdmin(server, uid) {
144
160
  const { rsGroup, groupRoles, enableAzureADAdmin } = this.args;
145
161
  if (!enableAzureADAdmin || !groupRoles)
146
162
  return undefined;
147
163
  return new mysql.AzureADAdministrator(this.name, {
148
164
  ...rsGroup,
149
- administratorName: `${this.name}-azure-ad`,
165
+ administratorName: 'activeDirectory',
150
166
  serverName: server.name,
151
- login: server.administratorLogin.apply((login) => login),
167
+ login: groupRoles.admin.displayName,
152
168
  administratorType: 'ActiveDirectory',
153
- sid: groupRoles.contributor.objectId,
169
+ sid: groupRoles.admin.objectId,
154
170
  tenantId: helpers_1.azureEnv.tenantId,
171
+ identityResourceId: uid.id,
155
172
  }, { dependsOn: server, parent: this });
156
173
  }
157
- createDatabases(server) {
174
+ createDatabases(server, cred) {
158
175
  const { rsGroup, databases } = this.args;
159
176
  if (!databases)
160
177
  return undefined;
@@ -165,8 +182,8 @@ class MySql extends base_1.BaseResourceComponent {
165
182
  databaseName: d.name,
166
183
  }, { dependsOn: server, parent: this });
167
184
  //add connection string to vault
168
- // const conn = pulumi.interpolate``;
169
- // this.addSecret(`${this.name}-${d.name}-conn`, conn);
185
+ const conn = pulumi.interpolate `Server=${cred.host};Database=${d.name};Uid=${cred.username};Pwd=${cred.password};SslMode=Require;Encrypt=True;TrustServerCertificate=true`;
186
+ this.addSecret(`${this.name}-${d.name}-mysql-conn`, conn);
170
187
  return db;
171
188
  });
172
189
  }
@@ -178,4 +195,4 @@ class MySql extends base_1.BaseResourceComponent {
178
195
  }
179
196
  }
180
197
  exports.MySql = MySql;
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXlTcWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvTXlTcWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUVBQXlEO0FBQ3pELHVEQUF5QztBQUN6QyxrQ0FBK0M7QUFDL0Msa0NBQTBEO0FBQzFELHdDQUFzQztBQUV0Qyw4Q0FBZ0M7QUFDaEMsdUNBQTZDO0FBa0M3QyxNQUFhLEtBQU0sU0FBUSw0QkFBZ0M7SUFDekMsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQWUsRUFBRSxJQUFzQztRQUMvRSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUVoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLEVBQUUsT0FB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
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXlTcWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvTXlTcWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUVBQXlEO0FBQ3pELHVEQUF5QztBQUN6QyxrQ0FBK0M7QUFDL0Msa0NBQTBEO0FBQzFELHdDQUFpRDtBQUVqRCw4Q0FBZ0M7QUFDaEMsdUNBQTZDO0FBK0I3QyxNQUFhLEtBQU0sU0FBUSw0QkFBZ0M7SUFDekMsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQWUsRUFBRSxJQUFzQztRQUMvRSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUVoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFF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
@@ -2,7 +2,7 @@ import * as postgresql from '@pulumi/azure-native/dbforpostgresql';
2
2
  import * as pulumi from '@pulumi/pulumi';
3
3
  import { BaseArgs, BaseResourceComponent } from '../base';
4
4
  import * as types from '../types';
5
- export interface PostgresArgs extends BaseArgs, types.WithEncryptionEnabler, types.WithResourceGroupInputs, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, types.WithNetworkArgs, Pick<postgresql.ServerArgs, 'version' | 'storage' | 'administratorLogin' | 'maintenanceWindow' | 'backup' | 'highAvailability' | 'availabilityZone'> {
5
+ export interface PostgresArgs extends BaseArgs, types.WithEncryptionEnabler, types.WithResourceGroupInputs, types.WithGroupRolesArgs, types.WithUserAssignedIdentity, types.WithNetworkArgs, Pick<postgresql.ServerArgs, 'administratorLogin'>, Partial<Pick<postgresql.ServerArgs, 'version' | 'storage' | 'maintenanceWindow' | 'backup' | 'highAvailability' | 'availabilityZone'>> {
6
6
  sku: {
7
7
  /** The name of postgres: Standard_B2ms, */
8
8
  name: pulumi.Input<string>;
@@ -12,6 +12,7 @@ export interface PostgresArgs extends BaseArgs, types.WithEncryptionEnabler, typ
12
12
  tier: postgresql.SkuTier;
13
13
  };
14
14
  enableAzureADAdmin?: boolean;
15
+ enablePasswordAuth?: boolean;
15
16
  databases?: Array<{
16
17
  name: string;
17
18
  }>;
@@ -46,9 +46,9 @@ class Postgres extends base_1.BaseResourceComponent {
46
46
  resourceName;
47
47
  constructor(name, args, opts) {
48
48
  super('Postgres', name, args, opts);
49
- const server = this.createPostgres();
49
+ const { server, credentials } = this.createPostgres();
50
50
  this.createNetwork(server);
51
- this.createDatabases(server);
51
+ this.createDatabases(server, credentials);
52
52
  if (args.lock)
53
53
  this.lockFromDeleting(server);
54
54
  this.id = server.id;
@@ -62,7 +62,7 @@ class Postgres extends base_1.BaseResourceComponent {
62
62
  };
63
63
  }
64
64
  createPostgres() {
65
- const { rsGroup, enableEncryption, administratorLogin, lock } = this.args;
65
+ const { rsGroup, enableEncryption, administratorLogin, enableAzureADAdmin, enablePasswordAuth, lock } = this.args;
66
66
  const adminLogin = administratorLogin ?? pulumi.interpolate `${this.name}-admin-${this.createRandomString().value}`;
67
67
  const password = this.createPassword();
68
68
  const encryptionKey = enableEncryption ? this.getEncryptionKey() : undefined;
@@ -92,8 +92,8 @@ class Postgres extends base_1.BaseResourceComponent {
92
92
  startMinute: 0,
93
93
  },
94
94
  authConfig: {
95
- activeDirectoryAuth: this.args.enableAzureADAdmin ? 'Enabled' : 'Disabled',
96
- passwordAuth: 'Enabled',
95
+ activeDirectoryAuth: enableAzureADAdmin ? 'Enabled' : 'Disabled',
96
+ passwordAuth: enablePasswordAuth ? 'Enabled' : 'Disabled',
97
97
  tenantId: helpers_1.azureEnv.tenantId,
98
98
  },
99
99
  backup: this.args.backup ?? {
@@ -115,21 +115,33 @@ class Postgres extends base_1.BaseResourceComponent {
115
115
  protect: lock ?? this.opts?.protect,
116
116
  parent: this,
117
117
  });
118
+ const credentials = {
119
+ host: pulumi.interpolate `${server.name}.postgres.database.azure.com`,
120
+ port: '5432',
121
+ username: adminLogin,
122
+ password: password.value,
123
+ };
118
124
  this.addSecrets({
119
- [`${this.name}-host`]: pulumi.interpolate `${server.name}.postgres.database.azure.com`,
120
- [`${this.name}-port`]: '5432',
121
- [`${this.name}-login`]: this.args.administratorLogin,
122
- [`${this.name}-pass`]: password.value,
123
- [`${this.name}-username`]: adminLogin,
125
+ [`${this.name}-postgres-host`]: credentials.host,
126
+ [`${this.name}-postgres-port`]: credentials.port,
127
+ [`${this.name}-postgres-login`]: this.args.administratorLogin,
128
+ [`${this.name}-postgres-pass`]: credentials.password,
124
129
  });
125
- return server;
130
+ return { server, credentials };
126
131
  }
127
132
  createNetwork(server) {
128
133
  const { rsGroup, network } = this.args;
129
- if (network?.ipRules) {
134
+ if (network?.allowAllInbound) {
135
+ new postgresql.FirewallRule(`${this.name}-firewall-allow-all`, {
136
+ ...rsGroup,
137
+ serverName: server.name,
138
+ startIpAddress: '0.0.0.0',
139
+ endIpAddress: '255.255.255.255',
140
+ }, { dependsOn: server, parent: this });
141
+ }
142
+ else if (network?.ipRules) {
130
143
  pulumi.output(network.ipRules).apply((ips) => (0, helpers_2.convertToIpRange)(ips).map((f, i) => new postgresql.FirewallRule(`${this.name}-firewall-${i}`, {
131
144
  ...rsGroup,
132
- //firewallRuleName: `${this.name}-firewall-${i}`,
133
145
  serverName: server.name,
134
146
  startIpAddress: f.start,
135
147
  endIpAddress: f.end,
@@ -144,7 +156,7 @@ class Postgres extends base_1.BaseResourceComponent {
144
156
  }, { dependsOn: server, parent: this });
145
157
  }
146
158
  }
147
- createDatabases(server) {
159
+ createDatabases(server, cred) {
148
160
  const { rsGroup, databases } = this.args;
149
161
  if (!databases)
150
162
  return undefined;
@@ -155,8 +167,8 @@ class Postgres extends base_1.BaseResourceComponent {
155
167
  databaseName: d.name,
156
168
  }, { dependsOn: server, parent: this });
157
169
  //add connection string to vault
158
- // const conn = pulumi.interpolate``;
159
- // this.addSecret(`${this.name}-${d.name}-conn`, conn);
170
+ const conn = pulumi.interpolate `Host=${cred.host};Database=${d.name};User Id=${cred.username};Password=${cred.password};SslMode=Require;Encrypt=True;TrustServerCertificate=true`;
171
+ this.addSecret(`${this.name}-${d.name}-postgres-conn`, conn);
160
172
  return db;
161
173
  });
162
174
  }
@@ -168,4 +180,4 @@ class Postgres extends base_1.BaseResourceComponent {
168
180
  }
169
181
  }
170
182
  exports.Postgres = Postgres;
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdGdyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvUG9zdGdyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUZBQW1FO0FBQ25FLHVEQUF5QztBQUN6QyxrQ0FBK0M7QUFDL0Msa0NBQTBEO0FBQzFELHdDQUFzQztBQUV0Qyw4Q0FBZ0M7QUFDaEMsdUNBQTZDO0FBZ0M3QyxNQUFhLFFBQVMsU0FBUSw0QkFBbUM7SUFDL0MsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQWtCLEVBQUUsSUFBc0M7UUFDbEYsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRWhDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFDTyxjQUFjO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsSUFB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
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdGdyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvUG9zdGdyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUZBQW1FO0FBQ25FLHVEQUF5QztBQUN6QyxrQ0FBK0M7QUFDL0Msa0NBQTBEO0FBQzFELHdDQUFzQztBQUV0Qyw4Q0FBZ0M7QUFDaEMsdUNBQTZDO0FBOEI3QyxNQUFhLFFBQVMsU0FBUSw0QkFBbUM7SUFDL0MsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQWtCLEVBQUUsSUFBc0M7UUFDbEYsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRWhDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVB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