@drunk-pulumi/azure 1.0.24 → 1.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/Aks/Helper.d.ts +4 -6
- package/Aks/Helper.js +13 -18
- package/Aks/Identity.js +3 -3
- package/Aks/index.js +4 -7
- package/AzAd/EnvRoles/EnvRoles.Consts.d.ts +6 -0
- package/AzAd/EnvRoles/EnvRoles.Consts.js +178 -0
- package/AzAd/{EnvRoles.d.ts → EnvRoles/EnvRoles.d.ts} +1 -9
- package/AzAd/EnvRoles/EnvRoles.js +91 -0
- package/AzAd/Group.d.ts +2 -2
- package/AzAd/Group.js +3 -3
- package/AzAd/Helper.js +6 -66
- package/AzAd/Identities/AzDevOpsIdentity.js +4 -5
- package/AzAd/Identities/AzDevOpsManagedIdentity.js +1 -1
- package/AzAd/Identities/AzUserAdRevertSync.js +3 -3
- package/AzAd/Identity.js +1 -2
- package/AzAd/{GraphDefinition.js → Roles/GraphDefinition.js} +1 -1
- package/AzAd/Roles/Role.d.ts +16 -0
- package/AzAd/Roles/Role.js +31 -0
- package/AzAd/{RoleAssignment.d.ts → Roles/RoleAssignment.d.ts} +1 -1
- package/AzAd/{RoleAssignment.js → Roles/RoleAssignment.js} +2 -2
- package/AzAd/{RolesBuiltIn.js → Roles/RolesBuiltIn.js} +1 -1
- package/AzAd/Roles/index.d.ts +3 -0
- package/AzAd/Roles/index.js +22 -0
- package/AzAd/UserAssignedIdentity.js +1 -2
- package/AzAd/index.d.ts +10 -0
- package/AzAd/{Identities/index.js → index.js} +14 -5
- package/Builder/AksBuilder.js +3 -3
- package/Builder/ApimProductBuilder.js +1 -2
- package/Builder/DnsZoneBuilder.js +2 -3
- package/Builder/EnvRoleBuilder.d.ts +4 -23
- package/Builder/EnvRoleBuilder.js +8 -9
- package/Builder/PrivateDnsZoneBuilder.d.ts +1 -1
- package/Builder/PrivateDnsZoneBuilder.js +11 -6
- package/Builder/ResourceBuilder.js +3 -3
- package/Builder/ServiceBusBuilder.js +3 -3
- package/Builder/StorageBuilder.js +6 -1
- package/Builder/types/envRoleBuilder.d.ts +1 -3
- package/Builder/types/resourceBuilder.d.ts +1 -3
- package/Builder/types/storageBuilder.d.ts +1 -0
- package/Cdn/index.d.ts +1 -1
- package/Cdn/index.js +2 -2
- package/Common/AzureEnv/AutoTags.js +27 -0
- package/Common/{AzureEnv.js → AzureEnv/index.js} +3 -3
- package/Common/{LocationBuiltIn.js → Location/LocationBuiltIn.js} +1 -1
- package/Common/Location/index.js +36 -0
- package/Common/{Naming/Rulers.d.ts → Naming.d.ts} +13 -3
- package/Common/Naming.js +398 -0
- package/Common/RsInfo/Helper.js +8 -6
- package/Common/index.d.ts +1 -4
- package/Common/index.js +7 -7
- package/Core/KeyGenerators.js +4 -5
- package/Core/Random.js +2 -3
- package/KeyVault/CustomHelper.d.ts +1 -3
- package/KeyVault/CustomHelper.js +27 -3
- package/KeyVault/Helper.d.ts +5 -8
- package/KeyVault/Helper.js +35 -61
- package/Logs/AppInsight.js +1 -2
- package/Logs/Helpers.js +1 -3
- package/Logs/LogAnalytics.js +1 -2
- package/README.md +37 -29
- package/Sql/index.js +3 -3
- package/Storage/Helper.js +5 -6
- package/Storage/index.js +15 -14
- package/VM/index.js +1 -2
- package/VNet/PrivateEndpoint.d.ts +41 -3
- package/VNet/PrivateEndpoint.js +66 -57
- package/VNet/index.d.ts +1 -11
- package/VNet/index.js +5 -17
- package/envHelper.d.ts +4 -0
- package/envHelper.js +62 -0
- package/package.json +1 -1
- package/types.d.ts +22 -8
- package/AzAd/ConditionalPolicies/index.d.ts +0 -0
- package/AzAd/ConditionalPolicies/index.js +0 -2
- package/AzAd/EnvRoles.Consts.d.ts +0 -22
- package/AzAd/EnvRoles.Consts.js +0 -173
- package/AzAd/EnvRoles.js +0 -94
- package/AzAd/Identities/index.d.ts +0 -4
- package/AzAd/Role.d.ts +0 -17
- package/AzAd/Role.js +0 -30
- package/Common/AutoTags.js +0 -27
- package/Common/GlobalEnv.d.ts +0 -3
- package/Common/GlobalEnv.js +0 -29
- package/Common/Location.js +0 -36
- package/Common/Naming/Rulers.js +0 -537
- package/Common/Naming/index.d.ts +0 -10
- package/Common/Naming/index.js +0 -112
- /package/AzAd/{GraphDefinition.d.ts → Roles/GraphDefinition.d.ts} +0 -0
- /package/AzAd/{RolesBuiltIn.d.ts → Roles/RolesBuiltIn.d.ts} +0 -0
- /package/Common/{AutoTags.d.ts → AzureEnv/AutoTags.d.ts} +0 -0
- /package/Common/{AzureEnv.d.ts → AzureEnv/index.d.ts} +0 -0
- /package/Common/{LocationBuiltIn.d.ts → Location/LocationBuiltIn.d.ts} +0 -0
- /package/Common/{Location.d.ts → Location/index.d.ts} +0 -0
package/types.d.ts
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import { CustomResourceOptions, Input, Output, Resource } from '@pulumi/pulumi';
|
|
2
|
-
import { EnvRoleKeyTypes } from './AzAd/EnvRoles';
|
|
3
2
|
import { IEnvRoleBuilder } from './Builder';
|
|
4
|
-
export declare namespace NodeJS {
|
|
5
|
-
interface ProcessEnv {
|
|
6
|
-
DPA_NAMING_DISABLE_PREFIX?: string;
|
|
7
|
-
DPA_NAMING_DISABLE_REGION?: string;
|
|
8
|
-
DPA_NAMING_DISABLE_SUFFIX?: string;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
3
|
/** Omit all the key of OT from T */
|
|
12
4
|
export type TypeOmit<T, OT> = Omit<T, keyof OT>;
|
|
13
5
|
export type OmitOpts<T> = TypeOmit<T, OptsArgs>;
|
|
@@ -314,6 +306,28 @@ export type ConventionProps = {
|
|
|
314
306
|
/**The regex to replace specials characters from the name*/
|
|
315
307
|
replaces?: ReplacePattern[];
|
|
316
308
|
};
|
|
309
|
+
export type EnvRoleKeyTypes = 'readOnly' | 'contributor' | 'admin';
|
|
310
|
+
export type RoleEnableItem = boolean | {
|
|
311
|
+
[k in EnvRoleKeyTypes]?: boolean;
|
|
312
|
+
};
|
|
313
|
+
export type EnvRoleInfoType = {
|
|
314
|
+
objectId: string;
|
|
315
|
+
displayName: string;
|
|
316
|
+
};
|
|
317
|
+
export type EnvRolesInfo = Record<EnvRoleKeyTypes, Output<EnvRoleInfoType> | EnvRoleInfoType>;
|
|
318
|
+
export type RoleEnableTypes = {
|
|
319
|
+
enableRGRoles?: RoleEnableItem;
|
|
320
|
+
enableAksRoles?: RoleEnableItem;
|
|
321
|
+
enableStorageRoles?: RoleEnableItem;
|
|
322
|
+
enableIotRoles?: RoleEnableItem;
|
|
323
|
+
enableVaultRoles?: RoleEnableItem;
|
|
324
|
+
/** Container Registry Roles */
|
|
325
|
+
enableACRRoles?: RoleEnableItem;
|
|
326
|
+
enableAppConfig?: RoleEnableItem;
|
|
327
|
+
enableServiceBus?: RoleEnableItem;
|
|
328
|
+
enableSignalR?: RoleEnableItem;
|
|
329
|
+
};
|
|
330
|
+
export type ListRoleType = Record<EnvRoleKeyTypes, Set<string>>;
|
|
317
331
|
/**
|
|
318
332
|
* Type for naming.
|
|
319
333
|
*/
|
|
File without changes
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { EnvRoleKeyTypes, EnvRolesInfo } from './EnvRoles';
|
|
2
|
-
import { RoleAssignmentProps } from './RoleAssignment';
|
|
3
|
-
export type ListRoleType = Record<EnvRoleKeyTypes, Set<string>>;
|
|
4
|
-
export declare const grantEnvRolesAccess: ({ name, envRoles, scope, dependsOn, ...others }: RoleEnableTypes & Omit<RoleAssignmentProps, "roleName" | "principalType" | "principalId"> & {
|
|
5
|
-
envRoles: EnvRolesInfo;
|
|
6
|
-
}) => void;
|
|
7
|
-
export type RoleEnableItem = boolean | {
|
|
8
|
-
[k in EnvRoleKeyTypes]?: boolean;
|
|
9
|
-
};
|
|
10
|
-
export type RoleEnableTypes = {
|
|
11
|
-
enableRGRoles?: RoleEnableItem;
|
|
12
|
-
enableAksRoles?: RoleEnableItem;
|
|
13
|
-
enableStorageRoles?: RoleEnableItem;
|
|
14
|
-
enableIotRoles?: RoleEnableItem;
|
|
15
|
-
enableVaultRoles?: RoleEnableItem;
|
|
16
|
-
/** Container Registry Roles */
|
|
17
|
-
enableACRRoles?: RoleEnableItem;
|
|
18
|
-
enableAppConfig?: RoleEnableItem;
|
|
19
|
-
enableServiceBus?: RoleEnableItem;
|
|
20
|
-
enableSignalR?: RoleEnableItem;
|
|
21
|
-
};
|
|
22
|
-
export declare const getRoleNames: ({ enableRGRoles, enableIotRoles, enableVaultRoles, enableAksRoles, enableStorageRoles, enableACRRoles, enableAppConfig, enableServiceBus, enableSignalR, }: RoleEnableTypes) => Record<EnvRoleKeyTypes, string[]>;
|
package/AzAd/EnvRoles.Consts.js
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRoleNames = exports.grantEnvRolesAccess = void 0;
|
|
4
|
-
const RoleAssignment_1 = require("./RoleAssignment");
|
|
5
|
-
const getRoleFor = (roleType, roleCollection, results) => {
|
|
6
|
-
if (!roleType)
|
|
7
|
-
return results;
|
|
8
|
-
const allows = {
|
|
9
|
-
readOnly: typeof roleType === 'boolean' ? roleType : roleType.readOnly,
|
|
10
|
-
contributor: typeof roleType === 'boolean' ? roleType : roleType.contributor,
|
|
11
|
-
admin: typeof roleType === 'boolean' ? roleType : roleType.admin,
|
|
12
|
-
};
|
|
13
|
-
if (allows.readOnly) {
|
|
14
|
-
roleCollection.readOnly.forEach((r) => results.readOnly.add(r));
|
|
15
|
-
}
|
|
16
|
-
if (allows.contributor) {
|
|
17
|
-
roleCollection.contributor.forEach((r) => results.contributor.add(r));
|
|
18
|
-
}
|
|
19
|
-
if (allows.admin) {
|
|
20
|
-
roleCollection.admin.forEach((r) => results.admin.add(r));
|
|
21
|
-
}
|
|
22
|
-
return results;
|
|
23
|
-
};
|
|
24
|
-
const grantEnvRolesAccess = ({ name, envRoles, scope, dependsOn, ...others }) => {
|
|
25
|
-
const roles = (0, exports.getRoleNames)(others);
|
|
26
|
-
Object.keys(envRoles).forEach((k) => {
|
|
27
|
-
const type = k;
|
|
28
|
-
const objectId = envRoles[type].objectId;
|
|
29
|
-
if (!objectId) {
|
|
30
|
-
console.warn(`The Env role '${type}' was ignored as the objectId was NULL.`);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const n = `${name}-${type}`;
|
|
34
|
-
roles[type].forEach((r) => (0, RoleAssignment_1.roleAssignment)({
|
|
35
|
-
name: n,
|
|
36
|
-
roleName: r,
|
|
37
|
-
principalId: objectId,
|
|
38
|
-
principalType: 'Group',
|
|
39
|
-
scope,
|
|
40
|
-
dependsOn,
|
|
41
|
-
}));
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
exports.grantEnvRolesAccess = grantEnvRolesAccess;
|
|
45
|
-
//Resource Group Role
|
|
46
|
-
const RGRoleNames = {
|
|
47
|
-
readOnly: ['Reader'],
|
|
48
|
-
contributor: ['Contributor'],
|
|
49
|
-
admin: ['Owner'],
|
|
50
|
-
};
|
|
51
|
-
//AKS Roles
|
|
52
|
-
const AksRoleNames = {
|
|
53
|
-
readOnly: [
|
|
54
|
-
'Azure Kubernetes Service RBAC Reader',
|
|
55
|
-
'Azure Kubernetes Service Cluster User Role',
|
|
56
|
-
],
|
|
57
|
-
contributor: [
|
|
58
|
-
'Azure Kubernetes Service RBAC Writer',
|
|
59
|
-
'Azure Kubernetes Service Cluster User Role',
|
|
60
|
-
],
|
|
61
|
-
admin: [
|
|
62
|
-
'Azure Kubernetes Service RBAC Cluster Admin',
|
|
63
|
-
'Azure Kubernetes Service RBAC Cluster Admin',
|
|
64
|
-
],
|
|
65
|
-
};
|
|
66
|
-
//IOT Roles
|
|
67
|
-
const IOTHubRoleNames = {
|
|
68
|
-
readOnly: ['IoT Hub Data Reader'],
|
|
69
|
-
contributor: ['IoT Hub Data Contributor'],
|
|
70
|
-
admin: ['IoT Hub Registry Contributor', 'IoT Hub Twin Contributor'],
|
|
71
|
-
};
|
|
72
|
-
//Key Vault Roles
|
|
73
|
-
const KeyVaultRoleNames = {
|
|
74
|
-
readOnly: [
|
|
75
|
-
'Key Vault Crypto Service Encryption User',
|
|
76
|
-
'Key Vault Crypto Service Release User',
|
|
77
|
-
'Key Vault Secrets User',
|
|
78
|
-
'Key Vault Crypto User',
|
|
79
|
-
'Key Vault Certificate User',
|
|
80
|
-
'Key Vault Reader',
|
|
81
|
-
],
|
|
82
|
-
contributor: [
|
|
83
|
-
'Key Vault Certificates Officer',
|
|
84
|
-
'Key Vault Crypto Officer',
|
|
85
|
-
'Key Vault Secrets Officer',
|
|
86
|
-
'Key Vault Contributor',
|
|
87
|
-
],
|
|
88
|
-
admin: ['Key Vault Administrator', 'Key Vault Data Access Administrator'],
|
|
89
|
-
};
|
|
90
|
-
//Storage Roles
|
|
91
|
-
const StorageRoleNames = {
|
|
92
|
-
readOnly: [
|
|
93
|
-
'Storage Blob Data Reader',
|
|
94
|
-
'Storage File Data SMB Share Reader',
|
|
95
|
-
'Storage Queue Data Reader',
|
|
96
|
-
'Storage Table Data Reader',
|
|
97
|
-
],
|
|
98
|
-
contributor: [
|
|
99
|
-
'Storage Account Backup Contributor',
|
|
100
|
-
'Storage Account Contributor',
|
|
101
|
-
'Storage Account Encryption Scope Contributor Role',
|
|
102
|
-
'Storage Blob Data Contributor',
|
|
103
|
-
'Storage File Data Privileged Reader',
|
|
104
|
-
'Storage File Data SMB Share Contributor',
|
|
105
|
-
'Storage File Data SMB Share Elevated Contributor',
|
|
106
|
-
'Storage Queue Data Contributor',
|
|
107
|
-
'Storage Queue Data Message Processor',
|
|
108
|
-
'Storage Queue Data Message Sender',
|
|
109
|
-
'Storage Table Data Contributor',
|
|
110
|
-
],
|
|
111
|
-
admin: [
|
|
112
|
-
'Storage Account Key Operator Service Role',
|
|
113
|
-
'Storage Blob Data Owner',
|
|
114
|
-
'Storage File Data Privileged Contributor',
|
|
115
|
-
],
|
|
116
|
-
};
|
|
117
|
-
//Container Registry Roles
|
|
118
|
-
const ContainerRegistry = {
|
|
119
|
-
readOnly: [
|
|
120
|
-
//'ACR Registry Catalog Lister',
|
|
121
|
-
'ACR Repository Reader',
|
|
122
|
-
'AcrQuarantineReader',
|
|
123
|
-
//'AcrPull',
|
|
124
|
-
],
|
|
125
|
-
contributor: [
|
|
126
|
-
'AcrImageSigner',
|
|
127
|
-
'AcrPull',
|
|
128
|
-
'AcrPush',
|
|
129
|
-
//'ACR Repository Contributor',
|
|
130
|
-
//'ACR Repository Writer',
|
|
131
|
-
//'AcrQuarantineWriter',
|
|
132
|
-
],
|
|
133
|
-
admin: ['AcrDelete'],
|
|
134
|
-
};
|
|
135
|
-
//AppConfig Roles
|
|
136
|
-
const AppConfigRoleNames = {
|
|
137
|
-
readOnly: ['App Configuration Data Reader'],
|
|
138
|
-
contributor: ['App Configuration Data Owner'],
|
|
139
|
-
admin: [],
|
|
140
|
-
};
|
|
141
|
-
const ServiceBusRoles = {
|
|
142
|
-
readOnly: ['Azure Service Bus Data Receiver'],
|
|
143
|
-
contributor: ['Azure Service Bus Data Sender'],
|
|
144
|
-
admin: ['Azure Service Bus Data Owner'],
|
|
145
|
-
};
|
|
146
|
-
const SignalRRoles = {
|
|
147
|
-
readOnly: ['SignalR REST API Reader'],
|
|
148
|
-
contributor: ['SignalR App Server'],
|
|
149
|
-
admin: ['SignalR REST API Owner'],
|
|
150
|
-
};
|
|
151
|
-
const getRoleNames = ({ enableRGRoles, enableIotRoles, enableVaultRoles, enableAksRoles, enableStorageRoles, enableACRRoles, enableAppConfig, enableServiceBus, enableSignalR, }) => {
|
|
152
|
-
const rs = {
|
|
153
|
-
readOnly: new Set(),
|
|
154
|
-
admin: new Set(),
|
|
155
|
-
contributor: new Set(),
|
|
156
|
-
};
|
|
157
|
-
getRoleFor(enableIotRoles, IOTHubRoleNames, rs);
|
|
158
|
-
getRoleFor(enableRGRoles, RGRoleNames, rs);
|
|
159
|
-
getRoleFor(enableVaultRoles, KeyVaultRoleNames, rs);
|
|
160
|
-
getRoleFor(enableAksRoles, AksRoleNames, rs);
|
|
161
|
-
getRoleFor(enableStorageRoles, StorageRoleNames, rs);
|
|
162
|
-
getRoleFor(enableACRRoles, ContainerRegistry, rs);
|
|
163
|
-
getRoleFor(enableAppConfig, AppConfigRoleNames, rs);
|
|
164
|
-
getRoleFor(enableServiceBus, ServiceBusRoles, rs);
|
|
165
|
-
getRoleFor(enableSignalR, SignalRRoles, rs);
|
|
166
|
-
return {
|
|
167
|
-
readOnly: Array.from(rs.readOnly).sort(),
|
|
168
|
-
admin: Array.from(rs.admin).sort(),
|
|
169
|
-
contributor: Array.from(rs.contributor).sort(),
|
|
170
|
-
};
|
|
171
|
-
};
|
|
172
|
-
exports.getRoleNames = getRoleNames;
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52Um9sZXMuQ29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0F6QWQvRW52Um9sZXMuQ29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RTtBQUl2RSxNQUFNLFVBQVUsR0FBRyxDQUNqQixRQUFvQyxFQUNwQyxjQUFpRCxFQUNqRCxPQUFxQixFQUNyQixFQUFFO0lBQ0YsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUU5QixNQUFNLE1BQU0sR0FBRztRQUNiLFFBQVEsRUFBRSxPQUFPLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVE7UUFDdEUsV0FBVyxFQUNULE9BQU8sUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVztRQUNqRSxLQUFLLEVBQUUsT0FBTyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0tBQ2pFLENBQUM7SUFFRixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLGNBQWMs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
|
package/AzAd/EnvRoles.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getEnvRolesOutput = exports.createEnvRoles = exports.pushEnvRolesToVault = void 0;
|
|
7
|
-
const EnvRoles_Consts_1 = require("./EnvRoles.Consts");
|
|
8
|
-
const Role_1 = __importDefault(require("./Role"));
|
|
9
|
-
const pulumi_1 = require("@pulumi/pulumi");
|
|
10
|
-
const Common_1 = require("../Common");
|
|
11
|
-
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
12
|
-
const Helper_1 = require("../KeyVault/Helper");
|
|
13
|
-
const envRoleConfig = {
|
|
14
|
-
readOnly: {
|
|
15
|
-
roleName: 'Readonly',
|
|
16
|
-
appName: 'Azure',
|
|
17
|
-
},
|
|
18
|
-
contributor: {
|
|
19
|
-
roleName: 'Contributor',
|
|
20
|
-
appName: 'Azure',
|
|
21
|
-
},
|
|
22
|
-
admin: {
|
|
23
|
-
roleName: 'Admin',
|
|
24
|
-
appName: 'Azure',
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
const getRoleSecretName = (name) => ({
|
|
28
|
-
objectIdName: (0, Helper_1.getVaultItemName)(`envRoles-${name}-object-id`),
|
|
29
|
-
displayName: (0, Helper_1.getVaultItemName)(`envRoles-${name}-display-name`),
|
|
30
|
-
});
|
|
31
|
-
const pushEnvRolesToVault = (envRoles, vaultInfo) => {
|
|
32
|
-
Object.keys(envRoleConfig).forEach((key) => {
|
|
33
|
-
const role = envRoles[key];
|
|
34
|
-
//Add to Key Vault
|
|
35
|
-
const secretNames = getRoleSecretName(key);
|
|
36
|
-
(0, CustomHelper_1.addCustomSecrets)({
|
|
37
|
-
vaultInfo,
|
|
38
|
-
contentType: 'Env Roles',
|
|
39
|
-
items: [
|
|
40
|
-
{ name: secretNames.objectIdName, value: role.objectId },
|
|
41
|
-
{ name: secretNames.displayName, value: role.displayName },
|
|
42
|
-
],
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
exports.pushEnvRolesToVault = pushEnvRolesToVault;
|
|
47
|
-
const createEnvRoles = () => {
|
|
48
|
-
const groups = {};
|
|
49
|
-
Object.keys(envRoleConfig).forEach((key) => {
|
|
50
|
-
const k = key;
|
|
51
|
-
const config = envRoleConfig[k];
|
|
52
|
-
const g = (0, Role_1.default)(config);
|
|
53
|
-
groups[k] = (0, pulumi_1.output)([g.objectId, g.displayName]).apply(([i, d]) => ({
|
|
54
|
-
objectId: i,
|
|
55
|
-
displayName: d,
|
|
56
|
-
}));
|
|
57
|
-
});
|
|
58
|
-
const pushToVault = (vaultInfo) => (0, exports.pushEnvRolesToVault)(groups, vaultInfo);
|
|
59
|
-
//Allows Some Subscription level access
|
|
60
|
-
//1. Allows to AcrPull
|
|
61
|
-
(0, EnvRoles_Consts_1.grantEnvRolesAccess)({
|
|
62
|
-
envRoles: groups,
|
|
63
|
-
name: 'envRoles-SubScope-Access',
|
|
64
|
-
scope: Common_1.defaultSubScope,
|
|
65
|
-
enableACRRoles: { contributor: true },
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
...groups,
|
|
69
|
-
pushToVault,
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
exports.createEnvRoles = createEnvRoles;
|
|
73
|
-
/** Get Single Env Role Object */
|
|
74
|
-
const getEnvRole = async (name, vaultInfo) => {
|
|
75
|
-
const secretNames = getRoleSecretName(name);
|
|
76
|
-
const [objectId, displayName] = await Promise.all([
|
|
77
|
-
(0, Helper_1.getSecret)({ name: secretNames.objectIdName, vaultInfo }),
|
|
78
|
-
(0, Helper_1.getSecret)({ name: secretNames.displayName, vaultInfo }),
|
|
79
|
-
]);
|
|
80
|
-
return {
|
|
81
|
-
displayName: displayName?.value,
|
|
82
|
-
objectId: objectId?.value,
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
/** Get All Env Role Objects */
|
|
86
|
-
const getEnvRolesOutput = (vaultInfo) => {
|
|
87
|
-
const rs = {};
|
|
88
|
-
Object.keys(envRoleConfig).forEach((key) => {
|
|
89
|
-
rs[key] = (0, pulumi_1.output)(getEnvRole(key, vaultInfo));
|
|
90
|
-
});
|
|
91
|
-
return rs;
|
|
92
|
-
};
|
|
93
|
-
exports.getEnvRolesOutput = getEnvRolesOutput;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52Um9sZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQXpBZC9FbnZSb2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBd0Q7QUFDeEQsa0RBQXlDO0FBRXpDLDJDQUFnRDtBQUNoRCxzQ0FBNEM7QUFDNUMsMkRBQTREO0FBQzVELCtDQUFpRTtBQUlqRSxNQUFNLGFBQWEsR0FBdUM7SUFDeEQsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLFVBQVU7UUFDcEIsT0FBTyxFQUFFLE9BQU87S0FDakI7SUFDRCxXQUFXLEVBQUU7UUFDWCxRQUFRLEVBQUUsYUFBYTtRQUN2QixPQUFPLEVBQUUsT0FBTztLQUNqQjtJQUNELEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLE9BQU8sRUFBRSxPQUFPO0tBQ2pCO0NBQ0YsQ0FBQztBQVFGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsWUFBWSxFQUFFLElBQUEseUJBQWdCLEVBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQztJQUM1RCxXQUFXLEVBQUUsSUFBQSx5QkFBZ0IsRUFBQyxZQUFZLElBQUksZUFBZSxDQUFDO0NBQy9ELENBQUMsQ0FBQztBQU1JLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsUUFBc0IsRUFDdEIsU0FBdUIsRUFDdkIsRUFBRTtJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDekMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQXNCLENBQUMsQ0FBQztRQUM5QyxrQkFBa0I7UUFDbEIsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsSUFBQSwrQkFBZ0IsRUFBQztZQUNmLFNBQVM7WUFDVCxXQUFXLEVBQUUsV0FBVztZQUN4QixLQUFLLEVBQUU7Z0JBQ0ws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
|
package/AzAd/Role.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { GroupPermissionProps } from "./Group";
|
|
2
|
-
import { Environments } from "../Common/AzureEnv";
|
|
3
|
-
import { Input } from "@pulumi/pulumi";
|
|
4
|
-
export interface RoleProps {
|
|
5
|
-
env?: Environments;
|
|
6
|
-
/** The country code or GLB for Global*/
|
|
7
|
-
location?: string;
|
|
8
|
-
appName: string;
|
|
9
|
-
moduleName?: string;
|
|
10
|
-
roleName: string;
|
|
11
|
-
members?: Input<string>[];
|
|
12
|
-
owners?: Input<Input<string>[]>;
|
|
13
|
-
permissions?: Array<GroupPermissionProps>;
|
|
14
|
-
}
|
|
15
|
-
export type RoleNameType = Pick<RoleProps, "env" | "location" | "appName" | "moduleName" | "roleName">;
|
|
16
|
-
declare const _default: ({ members, owners, permissions, ...others }: RoleProps) => import("@pulumi/pulumi").Output<import("@pulumi/azuread/group").Group>;
|
|
17
|
-
export default _default;
|
package/AzAd/Role.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const Group_1 = __importDefault(require("./Group"));
|
|
7
|
-
const AzureEnv_1 = require("../Common/AzureEnv");
|
|
8
|
-
const pulumi_1 = require("@pulumi/pulumi");
|
|
9
|
-
const StackEnv_1 = require("../Common/StackEnv");
|
|
10
|
-
const getRoleName = ({ env = AzureEnv_1.currentEnv, location, appName, moduleName, roleName, }) => {
|
|
11
|
-
const nameBuilder = [`${StackEnv_1.organization} ROL`, env];
|
|
12
|
-
if (location)
|
|
13
|
-
nameBuilder.push(location);
|
|
14
|
-
if (moduleName)
|
|
15
|
-
nameBuilder.push(`${appName}.${moduleName}`);
|
|
16
|
-
else
|
|
17
|
-
nameBuilder.push(appName);
|
|
18
|
-
nameBuilder.push(roleName);
|
|
19
|
-
return nameBuilder.join(" ").toUpperCase();
|
|
20
|
-
};
|
|
21
|
-
exports.default = ({ members, owners, permissions, ...others }) => {
|
|
22
|
-
const name = getRoleName(others);
|
|
23
|
-
return (0, pulumi_1.output)((0, Group_1.default)({
|
|
24
|
-
name,
|
|
25
|
-
members,
|
|
26
|
-
owners,
|
|
27
|
-
permissions,
|
|
28
|
-
}));
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BekFkL1JvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBK0Q7QUFDL0QsaURBQThEO0FBQzlELDJDQUErQztBQUMvQyxpREFBa0Q7QUFvQmxELE1BQU0sV0FBVyxHQUFHLENBQUMsRUFDbkIsR0FBRyxHQUFHLHFCQUFVLEVBQ2hCLFFBQVEsRUFDUixPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsR0FDSyxFQUFFLEVBQUU7SUFDakIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLHVCQUFZLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxJQUFJLFFBQVE7UUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLElBQUksVUFBVTtRQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQzs7UUFDeEQsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUM3QyxDQUFDLENBQUM7QUFFRixrQkFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLEVBQWEsRUFBRSxFQUFFO0lBQ3hFLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxPQUFPLElBQUEsZUFBTSxFQUNYLElBQUEsZUFBYyxFQUFDO1FBQ2IsSUFBSTtRQUNKLE9BQU87UUFDUCxNQUFNO1FBQ04sV0FBVztLQUNaLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
package/Common/AutoTags.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerAutoTags = void 0;
|
|
4
|
-
const pulumi_1 = require("@pulumi/pulumi");
|
|
5
|
-
const ignoredTags = [
|
|
6
|
-
"Group",
|
|
7
|
-
"GroupMember",
|
|
8
|
-
"Application",
|
|
9
|
-
"ApplicationPassword",
|
|
10
|
-
"ServicePrincipal",
|
|
11
|
-
"ServicePrincipalPassword",
|
|
12
|
-
"kubernetes",
|
|
13
|
-
"cloudflare",
|
|
14
|
-
"providers",
|
|
15
|
-
"dynamic:Resource",
|
|
16
|
-
];
|
|
17
|
-
const registerAutoTags = (autoTags) => pulumi_1.runtime.registerStackTransformation((resource) => {
|
|
18
|
-
//Check and ignore tag
|
|
19
|
-
if (!resource.type.toLowerCase().includes("resourcegroup") &&
|
|
20
|
-
ignoredTags.find((t) => resource.type.toLowerCase().includes(t.toLowerCase())))
|
|
21
|
-
return { props: resource.props, opts: resource.opts };
|
|
22
|
-
//Apply default tag
|
|
23
|
-
resource.props["tags"] = { ...resource.props["tags"], ...autoTags };
|
|
24
|
-
return { props: resource.props, opts: resource.opts };
|
|
25
|
-
});
|
|
26
|
-
exports.registerAutoTags = registerAutoTags;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b1RhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ29tbW9uL0F1dG9UYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5QztBQUV6QyxNQUFNLFdBQVcsR0FBRztJQUNsQixPQUFPO0lBQ1AsYUFBYTtJQUNiLGFBQWE7SUFDYixxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLDBCQUEwQjtJQUMxQixZQUFZO0lBQ1osWUFBWTtJQUNaLFdBQVc7SUFDWCxrQkFBa0I7Q0FDbkIsQ0FBQztBQUVLLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFnQyxFQUFFLEVBQUUsQ0FDbkUsZ0JBQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO0lBQy9DLHNCQUFzQjtJQUN0QixJQUNFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3RELFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNyQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDdEQ7UUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV4RCxtQkFBbUI7SUFDbkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3hELENBQUMsQ0FBQyxDQUFDO0FBZFEsUUFBQSxnQkFBZ0Isb0JBY3hCIn0=
|
package/Common/GlobalEnv.d.ts
DELETED
package/Common/GlobalEnv.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.groupInfo = exports.globalKeyName = void 0;
|
|
7
|
-
const Naming_1 = __importDefault(require("./Naming"));
|
|
8
|
-
exports.globalKeyName = 'global';
|
|
9
|
-
exports.groupInfo = {
|
|
10
|
-
resourceGroupName: Naming_1.default.getResourceGroupName(exports.globalKeyName),
|
|
11
|
-
};
|
|
12
|
-
// const cdnProfileName = getCdnProfileName(globalKeyName);
|
|
13
|
-
// export const cdnProfileInfo: ResourceInfo = {
|
|
14
|
-
// name: cdnProfileName,
|
|
15
|
-
// group: {
|
|
16
|
-
// resourceGroupName: groupInfo.resourceGroupName,
|
|
17
|
-
// location: globalKeyName,
|
|
18
|
-
// },
|
|
19
|
-
// id: interpolate`${defaultSubScope}/resourceGroups/${groupInfo.resourceGroupName}/providers/microsoft.cdn/profiles/${cdnProfileName}`,
|
|
20
|
-
// };
|
|
21
|
-
//
|
|
22
|
-
// /** Global Key Vault Info */
|
|
23
|
-
// const vaultName = getKeyVaultName(globalKeyName);
|
|
24
|
-
// export const keyVaultInfo: KeyVaultInfo = {
|
|
25
|
-
// name: vaultName,
|
|
26
|
-
// group: groupInfo,
|
|
27
|
-
// id: interpolate`${defaultSubScope}/resourceGroups/${groupInfo.resourceGroupName}/providers/Microsoft.KeyVault/vaults/${vaultName}`,
|
|
28
|
-
// };
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsRW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbW1vbi9HbG9iYWxFbnYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esc0RBQThCO0FBRWpCLFFBQUEsYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUV6QixRQUFBLFNBQVMsR0FBc0I7SUFDMUMsaUJBQWlCLEVBQUUsZ0JBQU0sQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBYSxDQUFDO0NBQzlELENBQUM7QUFFRiwyREFBMkQ7QUFDM0QsZ0RBQWdEO0FBQ2hELDBCQUEwQjtBQUMxQixhQUFhO0FBQ2Isc0RBQXNEO0FBQ3RELCtCQUErQjtBQUMvQixPQUFPO0FBQ1AsMElBQTBJO0FBQzFJLEtBQUs7QUFFTCxFQUFFO0FBQ0YsK0JBQStCO0FBQy9CLG9EQUFvRDtBQUNwRCw4Q0FBOEM7QUFDOUMscUJBQXFCO0FBQ3JCLHNCQUFzQjtBQUN0Qix3SUFBd0k7QUFDeEksS0FBSyJ9
|
package/Common/Location.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMyPublicIpAddress = exports.getRegionCode = exports.getCountryCode = exports.getLocation = void 0;
|
|
4
|
-
const Helpers_1 = require("./Helpers");
|
|
5
|
-
const LocationBuiltIn_1 = require("./LocationBuiltIn");
|
|
6
|
-
const getLocation = (possibleName) => {
|
|
7
|
-
const nameWithoutSpace = (0, Helpers_1.replaceAll)(possibleName, ' ', '').toLowerCase();
|
|
8
|
-
const location = LocationBuiltIn_1.azRegions.find((l) => l.name === nameWithoutSpace ||
|
|
9
|
-
(0, Helpers_1.replaceAll)(l.display_name, ' ', '').toLowerCase() === nameWithoutSpace);
|
|
10
|
-
return location?.display_name ?? 'Southeast Asia';
|
|
11
|
-
};
|
|
12
|
-
exports.getLocation = getLocation;
|
|
13
|
-
const getCountryCode = (possibleName) => {
|
|
14
|
-
const nameWithoutSpace = (0, Helpers_1.replaceAll)(possibleName, ' ', '').toLowerCase();
|
|
15
|
-
const location = LocationBuiltIn_1.azRegions.find((l) => l.name === nameWithoutSpace ||
|
|
16
|
-
(0, Helpers_1.replaceAll)(l.display_name, ' ', '').toLowerCase() === nameWithoutSpace);
|
|
17
|
-
return location?.country_code ?? 'SG';
|
|
18
|
-
};
|
|
19
|
-
exports.getCountryCode = getCountryCode;
|
|
20
|
-
const getRegionCode = (possibleName) => {
|
|
21
|
-
const nameWithoutSpace = (0, Helpers_1.replaceAll)(possibleName, ' ', '').toLowerCase();
|
|
22
|
-
const location = LocationBuiltIn_1.azRegions.find((l) => l.name === nameWithoutSpace ||
|
|
23
|
-
(0, Helpers_1.replaceAll)(l.display_name, ' ', '').toLowerCase() === nameWithoutSpace);
|
|
24
|
-
return location?.name ?? 'southeastasia';
|
|
25
|
-
};
|
|
26
|
-
exports.getRegionCode = getRegionCode;
|
|
27
|
-
const getMyPublicIpAddress = async () => {
|
|
28
|
-
const res = await fetch('https://api.ipify.org?format=json');
|
|
29
|
-
if (res.ok) {
|
|
30
|
-
const data = (await res.json());
|
|
31
|
-
return data.ip;
|
|
32
|
-
}
|
|
33
|
-
return undefined;
|
|
34
|
-
};
|
|
35
|
-
exports.getMyPublicIpAddress = getMyPublicIpAddress;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ29tbW9uL0xvY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF1QztBQUN2Qyx1REFBOEM7QUFFdkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFvQixFQUFFLEVBQUU7SUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG9CQUFVLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RSxNQUFNLFFBQVEsR0FBRywyQkFBUyxDQUFDLElBQUksQ0FDN0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCO1FBQzNCLElBQUEsb0JBQVUsRUFBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsQ0FDekUsQ0FBQztJQUNGLE9BQU8sUUFBUSxFQUFFLFlBQVksSUFBSSxnQkFBZ0IsQ0FBQztBQUNwRCxDQUFDLENBQUM7QUFSVyxRQUFBLFdBQVcsZUFRdEI7QUFFSyxNQUFNLGNBQWMsR0FBRyxDQUFDLFlBQW9CLEVBQUUsRUFBRTtJQUNyRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsb0JBQVUsRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sUUFBUSxHQUFHLDJCQUFTLENBQUMsSUFBSSxDQUM3QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osQ0FBQyxDQUFDLElBQUksS0FBSyxnQkFBZ0I7UUFDM0IsSUFBQSxvQkFBVSxFQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLGdCQUFnQixDQUN6RSxDQUFDO0lBQ0YsT0FBTyxRQUFRLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQztBQUN4QyxDQUFDLENBQUM7QUFSVyxRQUFBLGNBQWMsa0JBUXpCO0FBRUssTUFBTSxhQUFhLEdBQUcsQ0FBQyxZQUFvQixFQUFFLEVBQUU7SUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG9CQUFVLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RSxNQUFNLFFBQVEsR0FBRywyQkFBUyxDQUFDLElBQUksQ0FDN0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCO1FBQzNCLElBQUEsb0JBQVUsRUFBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsQ0FDekUsQ0FBQztJQUNGLE9BQU8sUUFBUSxFQUFFLElBQUksSUFBSSxlQUFlLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBUlcsUUFBQSxhQUFhLGlCQVF4QjtBQUVLLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxJQUFpQyxFQUFFO0lBQzFFLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFFN0QsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUE4QixDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLEVBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBUlcsUUFBQSxvQkFBb0Isd0JBUS9CIn0=
|