@drunk-pulumi/azure 0.0.41 → 0.0.43
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 +0 -3
- package/Aks/Helper.js +43 -18
- package/Aks/Identity.js +5 -2
- package/Aks/VmSetAutoScale/index.js +25 -2
- package/Aks/VmSetMonitor/index.js +26 -3
- package/Aks/index.d.ts +2 -2
- package/Aks/index.js +35 -6
- package/Apim/ApiProduct/SwaggerHelper.d.ts +0 -5
- package/Apim/ApiProduct/SwaggerHelper.js +7 -12
- package/Apim/Helpers.d.ts +2 -0
- package/Apim/Helpers.js +17 -1
- package/Apps/LogicApp.js +29 -3
- package/Automation/index.js +29 -3
- package/AzAd/B2C.js +25 -2
- package/AzAd/EnvRoles.Consts.d.ts +1 -1
- package/AzAd/EnvRoles.Consts.js +38 -35
- package/AzAd/EnvRoles.js +5 -2
- package/AzAd/Group.js +25 -2
- package/AzAd/Identities/AzDevOpsIdentity.js +5 -2
- package/AzAd/Identities/AzDevOpsManagedIdentity.js +5 -2
- package/AzAd/Identities/AzUserAdRevertSync.js +5 -2
- package/AzAd/Identities/index.js +7 -4
- package/AzAd/Identity.js +26 -3
- package/AzAd/Role.js +5 -2
- package/AzAd/RoleAssignment.js +29 -26
- package/AzAd/RoleDefinitions/JustInTimeRequestRole.js +25 -2
- package/AzAd/UserAssignedIdentity.js +25 -2
- package/Builder/AksBuilder.js +6 -3
- package/Builder/ApimApiBuilder.d.ts +22 -0
- package/Builder/ApimApiBuilder.js +198 -0
- package/Builder/ApimBuilder.d.ts +3 -0
- package/Builder/ApimBuilder.js +325 -0
- package/Builder/ApimPolicyBuilder.d.ts +51 -0
- package/Builder/ApimPolicyBuilder.js +384 -0
- package/Builder/ApimProductBuilder.d.ts +21 -0
- package/Builder/ApimProductBuilder.js +153 -0
- package/Builder/ApimRootBuilder.d.ts +9 -0
- package/Builder/ApimRootBuilder.js +26 -0
- package/Builder/ApimWorkspaceBuilder.d.ts +10 -0
- package/Builder/ApimWorkspaceBuilder.js +57 -0
- package/Builder/CdnBuilder.d.ts +13 -0
- package/Builder/CdnBuilder.js +39 -0
- package/Builder/DnsZoneBuilder.d.ts +4 -0
- package/Builder/DnsZoneBuilder.js +109 -0
- package/Builder/PrivateDnsZoneBuilder.d.ts +4 -0
- package/Builder/PrivateDnsZoneBuilder.js +99 -0
- package/Builder/ResourceBuilder.js +20 -5
- package/Builder/SqlBuilder.js +21 -6
- package/Builder/StorageBuilder.d.ts +3 -0
- package/Builder/StorageBuilder.js +101 -0
- package/Builder/VaultBuilder.js +25 -2
- package/Builder/VmBuilder.js +16 -3
- package/Builder/VnetBuilder.js +21 -20
- package/Builder/index.d.ts +6 -0
- package/Builder/index.js +23 -8
- package/Builder/types/apimBuilder.d.ts +71 -0
- package/Builder/types/apimBuilder.js +3 -0
- package/Builder/types/apimPolicyBuilder.d.ts +84 -0
- package/Builder/types/apimPolicyBuilder.js +11 -0
- package/Builder/types/apimProductBuilder.d.ts +56 -0
- package/Builder/types/apimProductBuilder.js +3 -0
- package/Builder/types/apimWorkspaceBuilder.d.ts +2 -0
- package/Builder/types/apimWorkspaceBuilder.js +3 -0
- package/Builder/types/askBuilder.d.ts +11 -15
- package/Builder/types/cdnBuilder.d.ts +7 -0
- package/Builder/types/cdnBuilder.js +3 -0
- package/Builder/types/dnsZoneBuilder.d.ts +11 -0
- package/Builder/types/dnsZoneBuilder.js +3 -0
- package/Builder/types/genericBuilder.d.ts +9 -9
- package/Builder/types/genericBuilder.js +1 -1
- package/Builder/types/index.d.ts +7 -0
- package/Builder/types/index.js +8 -1
- package/Builder/types/privateDnsZoneBuilder.d.ts +13 -0
- package/Builder/types/privateDnsZoneBuilder.js +3 -0
- package/Builder/types/resourceBuilder.d.ts +17 -15
- package/Builder/types/sqlBuilder.d.ts +10 -5
- package/Builder/types/storageBuilder.d.ts +24 -0
- package/Builder/types/storageBuilder.js +3 -0
- package/Builder/types/vaultBuilder.d.ts +7 -7
- package/Builder/types/vmBuilder.d.ts +9 -7
- package/Builder/types/vnetBuilder.d.ts +17 -17
- package/Cdn/CdnEndpoint.d.ts +13 -0
- package/Cdn/CdnEndpoint.js +94 -0
- package/{Storage → Cdn}/CdnRules.d.ts +2 -2
- package/Cdn/CdnRules.js +133 -0
- package/Cdn/index.d.ts +7 -6
- package/Cdn/index.js +45 -33
- package/Certificate/index.js +27 -4
- package/Certificate/p12.js +25 -2
- package/Common/AzureEnv.js +25 -2
- package/Common/ConfigHelper.js +25 -2
- package/Common/GlobalEnv.d.ts +2 -8
- package/Common/GlobalEnv.js +12 -16
- package/Common/StackEnv.js +25 -2
- package/Common/index.js +29 -6
- package/ContainerRegistry/Helper.js +29 -3
- package/ContainerRegistry/index.js +31 -5
- package/Core/Locker.js +25 -2
- package/Core/Random.js +25 -2
- package/Core/ResourceCreator.js +5 -2
- package/Core/ResourceGroup.js +5 -2
- package/CosmosDb/index.js +29 -3
- package/CustomRoles/index.js +25 -2
- package/IOT/Hub/index.js +25 -2
- package/KeyVault/Helper.js +25 -2
- package/KeyVault/index.js +29 -3
- package/Logs/AppInsight.d.ts +4 -4
- package/Logs/AppInsight.js +35 -9
- package/Logs/Helpers.d.ts +12 -9
- package/Logs/Helpers.js +57 -14
- package/Logs/LogAnalytics.js +25 -2
- package/Logs/WebTest.d.ts +1 -1
- package/Logs/WebTest.js +35 -12
- package/Logs/index.d.ts +1 -10
- package/Logs/index.js +36 -8
- package/MySql/index.js +30 -4
- package/Postgresql/index.js +30 -4
- package/RedisCache/index.js +26 -3
- package/ServiceBus/index.js +30 -4
- package/SignalR/index.js +29 -3
- package/Sql/SqlDb.js +25 -2
- package/Sql/index.d.ts +9 -9
- package/Sql/index.js +49 -20
- package/Storage/Helper.d.ts +4 -4
- package/Storage/Helper.js +25 -2
- package/Storage/ManagementRules.js +25 -2
- package/Storage/index.d.ts +37 -39
- package/Storage/index.js +71 -97
- package/VM/AzureDevOpsExtension.js +5 -2
- package/VM/Extension.js +25 -2
- package/VM/GlobalSchedule.js +25 -2
- package/VM/index.d.ts +7 -6
- package/VM/index.js +33 -6
- package/VNet/Bastion.js +29 -3
- package/VNet/Firewall.js +31 -5
- package/VNet/FirewallPolicies/index.js +8 -5
- package/VNet/FirewallPolicy.js +25 -2
- package/VNet/GlobalNetworkPeering.js +25 -2
- package/VNet/Helper.js +26 -3
- package/VNet/IpAddress.js +30 -4
- package/VNet/IpAddressPrefix.js +30 -4
- package/VNet/NSGRules/ApimSecurityRule.d.ts +7 -0
- package/VNet/NSGRules/ApimSecurityRule.js +34 -0
- package/VNet/NSGRules/AzADSecurityRule.d.ts +2 -2
- package/VNet/NSGRules/AzADSecurityRule.js +2 -2
- package/VNet/NSGRules/BastionSecurityRule.d.ts +1 -2
- package/VNet/NSGRules/BastionSecurityRule.js +2 -2
- package/VNet/NSGRules/index.d.ts +4 -0
- package/VNet/NSGRules/index.js +15 -0
- package/VNet/NatGateway.js +25 -2
- package/VNet/NetworkPeering.js +25 -2
- package/VNet/PrivateEndpoint.js +32 -27
- package/VNet/RouteTable.js +25 -2
- package/VNet/SecurityGroup.js +25 -2
- package/VNet/Subnet.js +25 -2
- package/VNet/VPNGateway.js +29 -3
- package/VNet/VirtualWAN.js +29 -3
- package/VNet/Vnet.d.ts +2 -2
- package/VNet/Vnet.js +35 -6
- package/VNet/index.d.ts +3 -0
- package/VNet/index.js +34 -8
- package/Web/AppCertOrder.js +29 -3
- package/Web/AppConfig.d.ts +8 -11
- package/Web/AppConfig.js +51 -33
- package/Web/AppGateway.js +29 -3
- package/Web/FuncApp.js +25 -2
- package/Web/Helpers.js +25 -2
- package/Web/WebAppPlan.js +25 -2
- package/index.d.ts +1 -0
- package/index.js +18 -0
- package/package.json +5 -4
- package/types.d.ts +0 -6
- package/z_tests/_tools/Mocks.js +25 -2
- package/Apim/ApiProduct/Api.d.ts +0 -35
- package/Apim/ApiProduct/Api.js +0 -131
- package/Apim/ApiProduct/PolicyBuilder.d.ts +0 -79
- package/Apim/ApiProduct/PolicyBuilder.js +0 -359
- package/Apim/ApiProduct/Product.d.ts +0 -8
- package/Apim/ApiProduct/Product.js +0 -63
- package/Apim/ApiProduct/index.d.ts +0 -9
- package/Apim/ApiProduct/index.js +0 -21
- package/Apim/HookProxy/index.d.ts +0 -20
- package/Apim/HookProxy/index.js +0 -27
- package/Apim/index.d.ts +0 -22
- package/Apim/index.js +0 -115
- package/Storage/CdnEndpoint.d.ts +0 -12
- package/Storage/CdnEndpoint.js +0 -61
- package/Storage/CdnRules.js +0 -134
- package/VNet/PrivateDns.d.ts +0 -31
- package/VNet/PrivateDns.js +0 -68
- package/VNet/PublicDns.d.ts +0 -21
- package/VNet/PublicDns.js +0 -59
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPolicies = exports.SetHeaderTypes = void 0;
|
|
4
|
-
const AzureEnv_1 = require("../../Common/AzureEnv");
|
|
5
|
-
const Helper_1 = require("../../VNet/Helper");
|
|
6
|
-
const StackEnv_1 = require("../../Common/StackEnv");
|
|
7
|
-
const defaultRateLimit = AzureEnv_1.isPrd ? 60 : 120;
|
|
8
|
-
const enableApimEventHub = false;
|
|
9
|
-
const getInMockResponse = ({ code = 200, contentType = "text/html", }) => ` <mock-response status-code="${code}" content-type="${contentType}" />`;
|
|
10
|
-
const getInRewriteUri = ({ template = "/" }) => ` <rewrite-uri template="${template}" />`;
|
|
11
|
-
const setBaseUrl = ({ url }) => ` <set-backend-service base-url="${url}" />`;
|
|
12
|
-
const getInRateLimit = ({ call = defaultRateLimit, //The number of call in
|
|
13
|
-
period = 60, //1 minute
|
|
14
|
-
successConditionOnly, }) => successConditionOnly
|
|
15
|
-
? ` <rate-limit-by-key calls="${call}"
|
|
16
|
-
renewal-period="${period}"
|
|
17
|
-
counter-key="@(context.Request.IpAddress)"
|
|
18
|
-
increment-condition="@(context.Response.StatusCode >= 200 && context.Response.StatusCode < 300)" />`
|
|
19
|
-
: ` <rate-limit-by-key calls="${call}"
|
|
20
|
-
renewal-period="${period}"
|
|
21
|
-
counter-key="@(context.Request.IpAddress)" />`;
|
|
22
|
-
const getInCache = () => ` <cache-lookup vary-by-developer="false"
|
|
23
|
-
vary-by-developer-groups="false"
|
|
24
|
-
allow-private-response-caching="true"
|
|
25
|
-
must-revalidate="true"
|
|
26
|
-
downstream-caching-type="public" />`;
|
|
27
|
-
const getOutCache = ({ duration = 60 }) => ` <cache-store duration="${duration}" />`;
|
|
28
|
-
const getInBackendCert = ({ thumbprint }) => ` <authentication-certificate thumbprint="${thumbprint}" />`;
|
|
29
|
-
const getInClientCertValidate = ({ issuer, subject, thumbprint, verifyCert, }) => ` <choose>
|
|
30
|
-
<when condition="@(context.Request.Certificate == null${verifyCert
|
|
31
|
-
? " || !context.Request.Certificate.VerifyNoRevocation()"
|
|
32
|
-
: ""}${issuer ? ` || context.Request.Certificate.Issuer != "${issuer}"` : ""}${subject
|
|
33
|
-
? ` || context.Request.Certificate.SubjectName.Name != "${subject}"`
|
|
34
|
-
: ""}${thumbprint
|
|
35
|
-
? ` || context.Request.Certificate.Thumbprint != "${thumbprint}"`
|
|
36
|
-
: ""})" >
|
|
37
|
-
<return-response>
|
|
38
|
-
<set-status code="403" reason="Invalid client certificate" />
|
|
39
|
-
</return-response>
|
|
40
|
-
</when>
|
|
41
|
-
</choose>`;
|
|
42
|
-
const getCorsPolicy = ({ origins }) => {
|
|
43
|
-
const orgs = origins
|
|
44
|
-
? origins.map((o) => `<origin>${o}</origin>`)
|
|
45
|
-
: ["<origin>*</origin>"];
|
|
46
|
-
return `<cors allow-credentials="${Array.isArray(origins)}">
|
|
47
|
-
<allowed-origins>
|
|
48
|
-
${orgs.join("\n")}
|
|
49
|
-
</allowed-origins>
|
|
50
|
-
<allowed-methods preflight-result-max-age="300">
|
|
51
|
-
<method>*</method>
|
|
52
|
-
</allowed-methods>
|
|
53
|
-
<allowed-headers>
|
|
54
|
-
<header>*</header>
|
|
55
|
-
</allowed-headers>
|
|
56
|
-
</cors>`;
|
|
57
|
-
};
|
|
58
|
-
//Event Hub Policy
|
|
59
|
-
const getEventHubPolicy = ({ eventHubName, captureClientCertThumbprint, azFuncUrl, azFuncKey, }) => {
|
|
60
|
-
const enableIpStack = azFuncKey && azFuncUrl;
|
|
61
|
-
const rs = `
|
|
62
|
-
<set-variable name="message-id" value="@(Guid.NewGuid())" />
|
|
63
|
-
${enableIpStack
|
|
64
|
-
? `
|
|
65
|
-
<set-variable name="ipstackBaseUrl" value="@("${azFuncUrl}?ipAddress=" + context.Request.IpAddress)" />
|
|
66
|
-
<send-request mode="new" response-variable-name="ipstackResponse" timeout="2" ignore-error="true">
|
|
67
|
-
<set-url>@((string)context.Variables["ipstackBaseUrl"])</set-url>
|
|
68
|
-
<set-method>POST</set-method>
|
|
69
|
-
<set-header name="x-functions-key" exists-action="override">
|
|
70
|
-
<value>${azFuncKey}</value>
|
|
71
|
-
</set-header>
|
|
72
|
-
</send-request>`
|
|
73
|
-
: ""}
|
|
74
|
-
|
|
75
|
-
<log-to-eventhub logger-id="${eventHubName}" partition-id="0">@{
|
|
76
|
-
string accountId = "";
|
|
77
|
-
string profileId = "";
|
|
78
|
-
|
|
79
|
-
string authHeader = context.Request.Headers.GetValueOrDefault("Authorization", "");
|
|
80
|
-
if (authHeader?.Length > 0)
|
|
81
|
-
{
|
|
82
|
-
string[] authHeaderParts = authHeader.Split(' ');
|
|
83
|
-
if (authHeaderParts?.Length == 2 && authHeaderParts[0].Equals("Bearer", StringComparison.InvariantCultureIgnoreCase))
|
|
84
|
-
{
|
|
85
|
-
Jwt jwt;
|
|
86
|
-
if (authHeaderParts[1].TryParseJwt(out jwt))
|
|
87
|
-
{
|
|
88
|
-
accountId = jwt.Claims.GetValueOrDefault("client_AccountId", "");
|
|
89
|
-
profileId = jwt.Claims.GetValueOrDefault("client_ProfileId", "");
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
string statusText = (context.Response.StatusCode >= 200 && context.Response.StatusCode <= 299) ? "PASS" : "FAIL";
|
|
95
|
-
string statusMsg = "";
|
|
96
|
-
if (context.Response.StatusCode == 400 || context.Response.StatusCode == 500) {
|
|
97
|
-
statusMsg = context.Response.Body?.As<string>(true);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
string ipLocation = "";
|
|
101
|
-
${enableIpStack
|
|
102
|
-
? `
|
|
103
|
-
try {
|
|
104
|
-
var ipstackResponse = ((IResponse)context.Variables["ipstackResponse"]);
|
|
105
|
-
if (ipstackResponse.StatusCode == 200) {
|
|
106
|
-
ipLocation = (((IResponse)context.Variables["ipstackResponse"]).Body?.As<JObject>()["country_name"]).ToString();
|
|
107
|
-
}
|
|
108
|
-
}catch {}`
|
|
109
|
-
: ""}
|
|
110
|
-
|
|
111
|
-
string clientThumbprint = "";
|
|
112
|
-
${captureClientCertThumbprint
|
|
113
|
-
? `
|
|
114
|
-
string xCert = context.Request.Headers.GetValueOrDefault("X-ARR-ClientCert", "");
|
|
115
|
-
if(context.Request.Certificate != null){
|
|
116
|
-
clientThumbprint = context.Request.Certificate.Thumbprint;
|
|
117
|
-
}else if(xCert?.Length > 0){
|
|
118
|
-
var cert = new X509Certificate2(Convert.FromBase64String(xCert), (string)null);
|
|
119
|
-
clientThumbprint = cert.Thumbprint;
|
|
120
|
-
}
|
|
121
|
-
else{ clientThumbprint = "Not found";}
|
|
122
|
-
`
|
|
123
|
-
: ""}
|
|
124
|
-
|
|
125
|
-
return new JObject(
|
|
126
|
-
new JProperty("MessageId", context.Variables["message-id"]),
|
|
127
|
-
new JProperty("Method", context.Request.Method),
|
|
128
|
-
new JProperty("UrlPath", context.Request.Url.Path),
|
|
129
|
-
new JProperty("Timestamp", DateTime.UtcNow.ToString()),
|
|
130
|
-
new JProperty("IP_Address", context.Request.IpAddress),
|
|
131
|
-
new JProperty("IP_Location", ipLocation),
|
|
132
|
-
new JProperty("AccountId", accountId),
|
|
133
|
-
new JProperty("ProfileId", profileId),
|
|
134
|
-
new JProperty("Status", statusText),
|
|
135
|
-
new JProperty("HttpCode", context.Response.StatusCode),
|
|
136
|
-
new JProperty("Status_Message", statusMsg),
|
|
137
|
-
new JProperty("clientThumbprint", clientThumbprint)
|
|
138
|
-
).ToString();
|
|
139
|
-
}</log-to-eventhub>`;
|
|
140
|
-
return rs;
|
|
141
|
-
};
|
|
142
|
-
/** Validate Client IP Address with configured IP in Token. */
|
|
143
|
-
const getIPAddressFilterPolicy = () => {
|
|
144
|
-
const getFilterStatus = `
|
|
145
|
-
<set-header name="IpAddressValidation" exists-action="override">
|
|
146
|
-
<value>@{
|
|
147
|
-
Boolean ipAddressValid = false;
|
|
148
|
-
string authHeader = context.Request.Headers.GetValueOrDefault("Authorization", "");
|
|
149
|
-
if (authHeader?.Length > 0)
|
|
150
|
-
{
|
|
151
|
-
string[] authHeaderParts = authHeader.Split(' ');
|
|
152
|
-
if (authHeaderParts?.Length == 2 && authHeaderParts[0].Equals("Bearer", StringComparison.InvariantCultureIgnoreCase))
|
|
153
|
-
{
|
|
154
|
-
if (authHeaderParts[1].TryParseJwt(out Jwt jwt))
|
|
155
|
-
{
|
|
156
|
-
var ipsWhitelist = jwt.Claims.GetValueOrDefault("client_IpWhitelist", "");
|
|
157
|
-
IEnumerable<string> ips = ipsWhitelist
|
|
158
|
-
.Split(new char[] { ';', ',' }, StringSplitOptions.RemoveEmptyEntries)
|
|
159
|
-
.Select(p => p.Trim());
|
|
160
|
-
|
|
161
|
-
if(string.IsNullOrEmpty(ipsWhitelist) || ips.Contains(context.Request.IpAddress))
|
|
162
|
-
{
|
|
163
|
-
ipAddressValid = true;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
else
|
|
169
|
-
{
|
|
170
|
-
ipAddressValid = true;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return ipAddressValid.ToString();
|
|
174
|
-
}</value>
|
|
175
|
-
</set-header>`;
|
|
176
|
-
const checkFilterValid = `
|
|
177
|
-
<choose>
|
|
178
|
-
<when condition="@(context.Request.Headers.GetValueOrDefault("IpAddressValidation", "").Equals(Boolean.FalseString))">
|
|
179
|
-
<return-response>
|
|
180
|
-
<set-status code="403" reason="Forbidden"/>
|
|
181
|
-
<set-body>@{
|
|
182
|
-
return new JObject(
|
|
183
|
-
new JProperty("message","IP does not match")
|
|
184
|
-
).ToString();
|
|
185
|
-
}</set-body>
|
|
186
|
-
</return-response>
|
|
187
|
-
</when>
|
|
188
|
-
</choose>`;
|
|
189
|
-
return `
|
|
190
|
-
${getFilterStatus}
|
|
191
|
-
${checkFilterValid}
|
|
192
|
-
`;
|
|
193
|
-
};
|
|
194
|
-
const getIpWhitelistPolicy = ({ ipAddresses }) => {
|
|
195
|
-
const policy = `<ip-filter action="allow">\r\n${ipAddresses
|
|
196
|
-
.map((ip) => {
|
|
197
|
-
if (ip.includes("/")) {
|
|
198
|
-
const range = (0, Helper_1.getIpsRange)(ip);
|
|
199
|
-
return `<address-range from="${range.first}" to="${range.last}" />`;
|
|
200
|
-
}
|
|
201
|
-
return `<address>${ip}</address>`;
|
|
202
|
-
})
|
|
203
|
-
.join("\r\n")}\r\n</ip-filter>`;
|
|
204
|
-
return policy;
|
|
205
|
-
};
|
|
206
|
-
var SetHeaderTypes;
|
|
207
|
-
(function (SetHeaderTypes) {
|
|
208
|
-
SetHeaderTypes["delete"] = "delete";
|
|
209
|
-
SetHeaderTypes["override"] = "override";
|
|
210
|
-
SetHeaderTypes["skip"] = "skip";
|
|
211
|
-
SetHeaderTypes["append"] = "append";
|
|
212
|
-
})(SetHeaderTypes || (exports.SetHeaderTypes = SetHeaderTypes = {}));
|
|
213
|
-
const setHeader = ({ name, type = SetHeaderTypes.delete, value, }) => {
|
|
214
|
-
let rs = `<set-header name="${name}" exists-action="${type}">`;
|
|
215
|
-
if (value) {
|
|
216
|
-
rs += ` <value>${value}</value>`;
|
|
217
|
-
}
|
|
218
|
-
rs += "</set-header>";
|
|
219
|
-
return rs;
|
|
220
|
-
};
|
|
221
|
-
const checkHeaderPolicy = ({ checkHeaders }) => {
|
|
222
|
-
return checkHeaders
|
|
223
|
-
.map((c) => {
|
|
224
|
-
return `<check-header name="${c.name}" failed-check-httpcode="401" failed-check-error-message="The header ${c.name} is not found" ignore-case="true">
|
|
225
|
-
${c.value ? c.value.map((v) => `<value>${v}</value>`).join("\n") : ""}
|
|
226
|
-
</check-header>`;
|
|
227
|
-
})
|
|
228
|
-
.join("\n");
|
|
229
|
-
};
|
|
230
|
-
/** Set Client IP address to 'x-ts-client-ip' header key */
|
|
231
|
-
const setClientIpHeader = (key = `x-${StackEnv_1.organization}-clientIp`) => setHeader({
|
|
232
|
-
name: key,
|
|
233
|
-
value: "@(context.Request.IpAddress)",
|
|
234
|
-
type: SetHeaderTypes.override,
|
|
235
|
-
});
|
|
236
|
-
const setFindAndReplaces = (findAndReplaces) => findAndReplaces
|
|
237
|
-
.map((f) => ` <find-and-replace from="${f.from}" to="${f.to}" />`)
|
|
238
|
-
.join("\n");
|
|
239
|
-
const getPolicies = ({ enableClientIpHeader = false, findAndReplaces, ...props }) => {
|
|
240
|
-
const inbound = new Array();
|
|
241
|
-
const outbound = new Array();
|
|
242
|
-
const getProps = (p) => (typeof p === "boolean" ? {} : p);
|
|
243
|
-
if (enableClientIpHeader) {
|
|
244
|
-
inbound.push(setClientIpHeader());
|
|
245
|
-
}
|
|
246
|
-
if (props.setBaseUrl) {
|
|
247
|
-
inbound.push(setBaseUrl(props.setBaseUrl));
|
|
248
|
-
}
|
|
249
|
-
if (props.rewriteUri) {
|
|
250
|
-
inbound.push(getInRewriteUri(getProps(props.rewriteUri)));
|
|
251
|
-
}
|
|
252
|
-
if (props.cache) {
|
|
253
|
-
inbound.push(getInCache());
|
|
254
|
-
outbound.push(getOutCache(getProps(props.cache)));
|
|
255
|
-
}
|
|
256
|
-
if (props.mockResponse) {
|
|
257
|
-
inbound.push(getInMockResponse(getProps(props.mockResponse)));
|
|
258
|
-
}
|
|
259
|
-
if (props.rateLimit) {
|
|
260
|
-
inbound.push(getInRateLimit(getProps(props.rateLimit)));
|
|
261
|
-
}
|
|
262
|
-
if (props.backendCert) {
|
|
263
|
-
inbound.push(getInBackendCert(props.backendCert));
|
|
264
|
-
}
|
|
265
|
-
if (props.cors) {
|
|
266
|
-
inbound.push(getCorsPolicy(getProps(props.cors)));
|
|
267
|
-
}
|
|
268
|
-
if (props.ipFilter) {
|
|
269
|
-
inbound.push(getIPAddressFilterPolicy());
|
|
270
|
-
}
|
|
271
|
-
if (props.whitelistIPs) {
|
|
272
|
-
inbound.push(getIpWhitelistPolicy({ ipAddresses: props.whitelistIPs }));
|
|
273
|
-
}
|
|
274
|
-
if (props.setHeaders) {
|
|
275
|
-
const array = Array.isArray(props.setHeaders)
|
|
276
|
-
? props.setHeaders
|
|
277
|
-
: [props.setHeaders];
|
|
278
|
-
array.forEach((s) => inbound.push(setHeader(s)));
|
|
279
|
-
}
|
|
280
|
-
if (props.checkHeaders) {
|
|
281
|
-
inbound.push(checkHeaderPolicy(props.checkHeaders));
|
|
282
|
-
}
|
|
283
|
-
if (findAndReplaces) {
|
|
284
|
-
outbound.push(setFindAndReplaces(findAndReplaces));
|
|
285
|
-
}
|
|
286
|
-
if (props.customInboundPolicy) {
|
|
287
|
-
inbound.push(props.customInboundPolicy);
|
|
288
|
-
}
|
|
289
|
-
if (props.customOutPolicy) {
|
|
290
|
-
outbound.push(props.customOutPolicy);
|
|
291
|
-
}
|
|
292
|
-
//======This always in the last position.===========
|
|
293
|
-
if (props.clientCert) {
|
|
294
|
-
inbound.push(getInClientCertValidate(props.clientCert));
|
|
295
|
-
}
|
|
296
|
-
let backend = "<base />";
|
|
297
|
-
if (!props.mockResponse) {
|
|
298
|
-
backend =
|
|
299
|
-
'<forward-request timeout="120" follow-redirects="true" buffer-request-body="true" fail-on-error-status-code="true"/>';
|
|
300
|
-
}
|
|
301
|
-
return `<policies>
|
|
302
|
-
<inbound>
|
|
303
|
-
<base />
|
|
304
|
-
${inbound.join("\n")}
|
|
305
|
-
</inbound>
|
|
306
|
-
<backend>
|
|
307
|
-
${backend}
|
|
308
|
-
</backend>
|
|
309
|
-
<outbound>
|
|
310
|
-
<base />
|
|
311
|
-
<set-header name="Strict-Transport-Security" exists-action="override">
|
|
312
|
-
<value>max-age=15724800; includeSubDomains</value>
|
|
313
|
-
</set-header>
|
|
314
|
-
<set-header name="X-XSS-Protection" exists-action="override">
|
|
315
|
-
<value>1; mode=block</value>
|
|
316
|
-
</set-header>
|
|
317
|
-
<set-header name="Content-Security-Policy" exists-action="override">
|
|
318
|
-
<value>default-src 'self' data: 'unsafe-inline' 'unsafe-eval'</value>
|
|
319
|
-
</set-header>
|
|
320
|
-
<set-header name="X-Frame-Options" exists-action="override">
|
|
321
|
-
<value>Deny</value>
|
|
322
|
-
</set-header>
|
|
323
|
-
<set-header name="X-Content-Type-Options" exists-action="override">
|
|
324
|
-
<value>nosniff</value>
|
|
325
|
-
</set-header>
|
|
326
|
-
<set-header name="Expect-Ct" exists-action="override">
|
|
327
|
-
<value>max-age=604800,enforce</value>
|
|
328
|
-
</set-header>
|
|
329
|
-
<set-header name="Cache-Control" exists-action="override">
|
|
330
|
-
<value>none</value>
|
|
331
|
-
</set-header>
|
|
332
|
-
<set-header name="X-Powered-By" exists-action="delete" />
|
|
333
|
-
<set-header name="X-AspNet-Version" exists-action="delete" />
|
|
334
|
-
|
|
335
|
-
${outbound.join("\n")}
|
|
336
|
-
${enableApimEventHub && props.logEventHubName
|
|
337
|
-
? getEventHubPolicy({
|
|
338
|
-
eventHubName: props.logEventHubName,
|
|
339
|
-
azFuncUrl: props.azFuncUrl,
|
|
340
|
-
azFuncKey: props.azFuncKey,
|
|
341
|
-
captureClientCertThumbprint: props.captureClientCertThumbprint,
|
|
342
|
-
})
|
|
343
|
-
: ""}
|
|
344
|
-
</outbound>
|
|
345
|
-
<on-error>
|
|
346
|
-
<base />
|
|
347
|
-
${enableApimEventHub && props.logEventHubName
|
|
348
|
-
? getEventHubPolicy({
|
|
349
|
-
eventHubName: props.logEventHubName,
|
|
350
|
-
azFuncUrl: props.azFuncUrl,
|
|
351
|
-
azFuncKey: props.azFuncKey,
|
|
352
|
-
captureClientCertThumbprint: props.captureClientCertThumbprint,
|
|
353
|
-
})
|
|
354
|
-
: ""}
|
|
355
|
-
</on-error>
|
|
356
|
-
</policies>`;
|
|
357
|
-
};
|
|
358
|
-
exports.getPolicies = getPolicies;
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcGltL0FwaVByb2R1Y3QvUG9saWN5QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBOEM7QUFDOUMsOENBQWdEO0FBQ2hELG9EQUFxRDtBQUVyRCxNQUFNLGdCQUFnQixHQUFHLGdCQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzFDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBT2pDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUN6QixJQUFJLEdBQUcsR0FBRyxFQUNWLFdBQVcsR0FBRyxXQUFXLEdBQ2YsRUFBRSxFQUFFLENBQ2QscUNBQXFDLElBQUksbUJBQW1CLFdBQVcsTUFBTSxDQUFDO0FBTWhGLE1BQU0sZUFBZSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsR0FBRyxFQUFtQixFQUFFLEVBQUUsQ0FDOUQsZ0NBQWdDLFFBQVEsTUFBTSxDQUFDO0FBTWpELE1BQU0sVUFBVSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQWdCLEVBQUUsRUFBRSxDQUMzQyxxQ0FBcUMsR0FBRyxNQUFNLENBQUM7QUFXakQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUN0QixJQUFJLEdBQUcsZ0JBQWdCLEVBQUUsdUJBQXVCO0FBQ2hELE1BQU0sR0FBRyxFQUFFLEVBQUUsVUFBVTtBQUN2QixvQkFBb0IsR0FDTCxFQUFFLEVBQUUsQ0FDbkIsb0JBQW9CO0lBQ2xCLENBQUMsQ0FBQyxtQ0FBbUMsSUFBSTs4QkFDZixNQUFNOztnSEFFNEU7SUFDNUcsQ0FBQyxDQUFDLG1DQUFtQyxJQUFJOzhCQUNmLE1BQU07MERBQ3NCLENBQUM7QUFFM0QsTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQ3RCOzs7O2dEQUk4QyxDQUFDO0FBS2pELE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxRQUFRLEdB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
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ApimInfo, KeyVaultInfo } from '../../types';
|
|
2
|
-
export interface ProductProps {
|
|
3
|
-
name: string;
|
|
4
|
-
apimInfo: ApimInfo;
|
|
5
|
-
subscriptionRequired?: boolean;
|
|
6
|
-
vaultInfo?: KeyVaultInfo;
|
|
7
|
-
}
|
|
8
|
-
export declare const createProduct: ({ name, apimInfo, subscriptionRequired, vaultInfo, }: ProductProps) => Promise<import("@pulumi/azure-native/apimanagement/product").Product>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createProduct = void 0;
|
|
4
|
-
const apim = require("@pulumi/azure-native/apimanagement");
|
|
5
|
-
const ResourceEnv_1 = require("../../Common/ResourceEnv");
|
|
6
|
-
const pulumi_1 = require("@pulumi/pulumi");
|
|
7
|
-
const Random_1 = require("../../Core/Random");
|
|
8
|
-
const Naming_1 = require("../../Common/Naming");
|
|
9
|
-
const CustomHelper_1 = require("../../KeyVault/CustomHelper");
|
|
10
|
-
const getProductName = (name) => (0, ResourceEnv_1.getResourceName)(name, { prefix: '', suffix: 'prod', includeOrgName: false });
|
|
11
|
-
const getSubscriptionName = (name) => (0, ResourceEnv_1.getResourceName)(name, {
|
|
12
|
-
prefix: 'apim',
|
|
13
|
-
suffix: 'sub',
|
|
14
|
-
includeOrgName: false,
|
|
15
|
-
});
|
|
16
|
-
const createProduct = async ({ name, apimInfo, subscriptionRequired, vaultInfo, }) => {
|
|
17
|
-
const pName = getProductName(name);
|
|
18
|
-
const product = new apim.Product(pName, {
|
|
19
|
-
productId: pName,
|
|
20
|
-
displayName: pName,
|
|
21
|
-
description: pName,
|
|
22
|
-
serviceName: apimInfo.serviceName,
|
|
23
|
-
resourceGroupName: apimInfo.group.resourceGroupName,
|
|
24
|
-
subscriptionRequired,
|
|
25
|
-
approvalRequired: subscriptionRequired ? false : undefined,
|
|
26
|
-
subscriptionsLimit: subscriptionRequired ? 5 : undefined,
|
|
27
|
-
});
|
|
28
|
-
if (subscriptionRequired && vaultInfo) {
|
|
29
|
-
const subName = getSubscriptionName(name);
|
|
30
|
-
const primaryKey = (0, Naming_1.getPasswordName)(subName, 'primary');
|
|
31
|
-
const secondaryKey = (0, Naming_1.getPasswordName)(subName, 'secondary');
|
|
32
|
-
const primaryPass = (0, Random_1.randomPassword)({ name: primaryKey }).result;
|
|
33
|
-
const secondaryPass = (0, Random_1.randomPassword)({ name: secondaryKey }).result;
|
|
34
|
-
new apim.Subscription(subName, {
|
|
35
|
-
sid: subName,
|
|
36
|
-
displayName: subName,
|
|
37
|
-
serviceName: apimInfo.serviceName,
|
|
38
|
-
resourceGroupName: apimInfo.group.resourceGroupName,
|
|
39
|
-
scope: (0, pulumi_1.interpolate) `/products/${product.id}`,
|
|
40
|
-
primaryKey: primaryPass,
|
|
41
|
-
secondaryKey: secondaryPass,
|
|
42
|
-
}, { dependsOn: product });
|
|
43
|
-
(0, CustomHelper_1.addCustomSecret)({
|
|
44
|
-
name: primaryKey,
|
|
45
|
-
formattedName: true,
|
|
46
|
-
value: primaryPass,
|
|
47
|
-
contentType: subName,
|
|
48
|
-
vaultInfo,
|
|
49
|
-
tags: { name, subName },
|
|
50
|
-
});
|
|
51
|
-
(0, CustomHelper_1.addCustomSecret)({
|
|
52
|
-
name: secondaryKey,
|
|
53
|
-
formattedName: true,
|
|
54
|
-
value: secondaryPass,
|
|
55
|
-
contentType: subName,
|
|
56
|
-
vaultInfo,
|
|
57
|
-
tags: { name, subName },
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
return product;
|
|
61
|
-
};
|
|
62
|
-
exports.createProduct = createProduct;
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcGltL0FwaVByb2R1Y3QvUHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyREFBMkQ7QUFDM0QsMERBQTJEO0FBQzNELDJDQUE2QztBQUM3Qyw4Q0FBbUQ7QUFDbkQsZ0RBQXNEO0FBQ3RELDhEQUE4RDtBQUU5RCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQ3RDLElBQUEsNkJBQWUsRUFBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0UsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQzNDLElBQUEsNkJBQWUsRUFBQyxJQUFJLEVBQUU7SUFDcEIsTUFBTSxFQUFFLE1BQU07SUFDZCxNQUFNLEVBQUUsS0FBSztJQUNiLGNBQWMsRUFBRSxLQUFLO0NBQ3RCLENBQUMsQ0FBQztBQVNFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxFQUNsQyxJQUFJLEVBQ0osUUFBUSxFQUNSLG9CQUFvQixFQUNwQixTQUFTLEdBQ0ksRUFBRSxFQUFFO0lBQ2pCLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1FBQ3RDLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztRQUNqQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtRQUVuRCxvQkFBb0I7UUFDcEIsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRCxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQ3pELENBQUMsQ0FBQztJQUVILElBQUksb0JBQW9CLElBQUksU0FBUyxFQUFFLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBQSx3QkFBZSxFQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxNQUFNLFlBQVksR0FBRyxJQUFBLHdCQUFlLEVBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTNELE1BQU0sV0FBVyxHQUFHLElBQUEsdUJBQWMsRUFBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNoRSxNQUFNLGFBQWEsR0FBRyxJQUFBLHVCQUFjLEVBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFcEUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUNuQixPQUFPLEVBQ1A7WUFDRSxHQUFHLEVBQUUsT0FBTztZQUNaLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztZQUNqQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtZQUNuRCxLQUFLLEVBQUUsSUFBQSxvQkFBVyxFQUFBLGFBQWEsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUMzQyxVQUFVLEVBQUUsV0FBVztZQUN2QixZQUFZLEVBQUUsYUFBYTtTQUM1QixFQUNELEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUN2QixDQUFDO1FBRUYsSUFBQSw4QkFBZSxFQUFDO1lBQ2QsSUFBSSxFQUFFLFVBQVU7WUFDaEIsYUFBYSxFQUFFLElBQUk7WUFDbkIsS0FBSyxFQUFFLFdBQVc7WUFDbEIsV0FBVyxFQUFFLE9BQU87WUFDcEIsU0FBUztZQUNULElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsSUFBQSw4QkFBZSxFQUFDO1lBQ2QsSUFBSSxFQUFFLFlBQVk7WUFDbEIsYUFBYSxFQUFFLElBQUk7WUFDbkIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsV0FBVyxFQUFFLE9BQU87WUFDcEIsU0FBUztZQUNULElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQTdEVyxRQUFBLGFBQWEsaUJBNkR4QiJ9
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ProductProps } from "./Product";
|
|
2
|
-
import { ApiProps } from "./Api";
|
|
3
|
-
interface Props extends ProductProps, Omit<ApiProps, "product"> {
|
|
4
|
-
}
|
|
5
|
-
declare const _default: ({ name, apimInfo, subscriptionRequired, vaultInfo, ...others }: Props) => Promise<{
|
|
6
|
-
set: import("@pulumi/azure-native/apimanagement/apiVersionSet").ApiVersionSet | undefined;
|
|
7
|
-
apis: import("@pulumi/azure-native/apimanagement/api").Api[];
|
|
8
|
-
}>;
|
|
9
|
-
export default _default;
|
package/Apim/ApiProduct/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Product_1 = require("./Product");
|
|
4
|
-
const Api_1 = require("./Api");
|
|
5
|
-
exports.default = async ({ name, apimInfo, subscriptionRequired, vaultInfo, ...others }) => {
|
|
6
|
-
const product = await (0, Product_1.createProduct)({
|
|
7
|
-
name,
|
|
8
|
-
apimInfo,
|
|
9
|
-
vaultInfo,
|
|
10
|
-
subscriptionRequired,
|
|
11
|
-
});
|
|
12
|
-
const api = (0, Api_1.createApi)({
|
|
13
|
-
name,
|
|
14
|
-
apimInfo,
|
|
15
|
-
product,
|
|
16
|
-
subscriptionRequired,
|
|
17
|
-
...others,
|
|
18
|
-
});
|
|
19
|
-
return { product, ...api };
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQXBpbS9BcGlQcm9kdWN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUNBQXdEO0FBQ3hELCtCQUE0QztBQUk1QyxrQkFBZSxLQUFLLEVBQUUsRUFDcEIsSUFBSSxFQUNKLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsU0FBUyxFQUNULEdBQUcsTUFBTSxFQUNILEVBQUUsRUFBRTtJQUNWLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSx1QkFBYSxFQUFDO1FBQ2xDLElBQUk7UUFDSixRQUFRO1FBQ1IsU0FBUztRQUNULG9CQUFvQjtLQUNyQixDQUFDLENBQUM7SUFFSCxNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQVMsRUFBQztRQUNwQixJQUFJO1FBQ0osUUFBUTtRQUNSLE9BQU87UUFDUCxvQkFBb0I7UUFDcEIsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQzdCLENBQUMsQ0FBQyJ9
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { PoliciesProps } from '../ApiProduct/PolicyBuilder';
|
|
2
|
-
import { ApimInfo, KeyVaultInfo } from '../../types';
|
|
3
|
-
interface Props {
|
|
4
|
-
name?: string;
|
|
5
|
-
apimInfo: ApimInfo;
|
|
6
|
-
subscriptionRequired?: boolean;
|
|
7
|
-
vaultInfo?: KeyVaultInfo;
|
|
8
|
-
policies?: PoliciesProps;
|
|
9
|
-
domain: string;
|
|
10
|
-
authHeaderKey: string;
|
|
11
|
-
hookHeaderKey: string;
|
|
12
|
-
}
|
|
13
|
-
declare const _default: ({ name, subscriptionRequired, domain, hookHeaderKey, authHeaderKey, policies, ...props }: Props) => Promise<{
|
|
14
|
-
product: import("@pulumi/azure-native/apimanagement/product").Product;
|
|
15
|
-
api: {
|
|
16
|
-
set: import("@pulumi/azure-native/apimanagement/apiVersionSet").ApiVersionSet | undefined;
|
|
17
|
-
apis: import("@pulumi/azure-native/apimanagement/api").Api[];
|
|
18
|
-
};
|
|
19
|
-
}>;
|
|
20
|
-
export default _default;
|
package/Apim/HookProxy/index.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const PolicyBuilder_1 = require("../ApiProduct/PolicyBuilder");
|
|
4
|
-
const Product_1 = require("../ApiProduct/Product");
|
|
5
|
-
const Api_1 = require("../ApiProduct/Api");
|
|
6
|
-
exports.default = async ({ name = 'hook-proxy', subscriptionRequired = true, domain, hookHeaderKey, authHeaderKey, policies, ...props }) => {
|
|
7
|
-
const product = await (0, Product_1.createProduct)({ name, ...props, subscriptionRequired });
|
|
8
|
-
const api = await (0, Api_1.createApi)({
|
|
9
|
-
name,
|
|
10
|
-
...props,
|
|
11
|
-
enableApiSet: false,
|
|
12
|
-
product,
|
|
13
|
-
authHeaderKey,
|
|
14
|
-
policies: {
|
|
15
|
-
...policies,
|
|
16
|
-
setHeaders: [{ name: authHeaderKey, type: PolicyBuilder_1.SetHeaderTypes.delete }],
|
|
17
|
-
checkHeaders: {
|
|
18
|
-
checkHeaders: [{ name: hookHeaderKey }],
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
//Dummy Url as it will be set from request header key `hookHeaderKey`
|
|
22
|
-
serviceUrl: `https://${domain}`,
|
|
23
|
-
operations: [{ name: 'Post', method: 'POST', urlTemplate: '/' }],
|
|
24
|
-
});
|
|
25
|
-
return { product, api };
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQXBpbS9Ib29rUHJveHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrREFBNEU7QUFFNUUsbURBQXNEO0FBQ3RELDJDQUE4QztBQWE5QyxrQkFBZSxLQUFLLEVBQUUsRUFDcEIsSUFBSSxHQUFHLFlBQVksRUFDbkIsb0JBQW9CLEdBQUcsSUFBSSxFQUMzQixNQUFNLEVBQ04sYUFBYSxFQUNiLGFBQWEsRUFDYixRQUFRLEVBQ1IsR0FBRyxLQUFLLEVBQ0YsRUFBRSxFQUFFO0lBQ1YsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHVCQUFhLEVBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBRTlFLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxlQUFTLEVBQUM7UUFDMUIsSUFBSTtRQUNKLEdBQUcsS0FBSztRQUNSLFlBQVksRUFBRSxLQUFLO1FBQ25CLE9BQU87UUFDUCxhQUFhO1FBQ2IsUUFBUSxFQUFFO1lBQ1IsR0FBRyxRQUFRO1lBQ1gsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSw4QkFBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xFLFlBQVksRUFBRTtnQkFDWixZQUFZLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQzthQUN4QztTQUNGO1FBQ0QscUVBQXFFO1FBQ3JFLFVBQVUsRUFBRSxXQUFXLE1BQU0sRUFBRTtRQUMvQixVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUM7S0FDakUsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUMifQ==
|
package/Apim/index.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import * as apimanagement from "@pulumi/azure-native/apimanagement";
|
|
2
|
-
import { Input } from "@pulumi/pulumi";
|
|
3
|
-
import { ApimInfo, BasicResourceArgs, DefaultResourceArgs } from "../types";
|
|
4
|
-
interface Props extends BasicResourceArgs, Omit<DefaultResourceArgs, "monitoring"> {
|
|
5
|
-
insight?: {
|
|
6
|
-
id: Input<string>;
|
|
7
|
-
key: Input<string>;
|
|
8
|
-
};
|
|
9
|
-
sku: apimanagement.SkuType;
|
|
10
|
-
capacity?: number;
|
|
11
|
-
alertEmail: Input<string>;
|
|
12
|
-
customDomain?: {
|
|
13
|
-
domain: string;
|
|
14
|
-
certificate: Input<string>;
|
|
15
|
-
certificatePassword?: Input<string>;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
declare const _default: ({ name, group, customDomain, insight, sku, capacity, alertEmail, ...others }: Props) => {
|
|
19
|
-
apim: import("@pulumi/azure-native/apimanagement/apiManagementService").ApiManagementService;
|
|
20
|
-
toApimInfo: () => ApimInfo;
|
|
21
|
-
};
|
|
22
|
-
export default _default;
|