Skip to content

Commit 9e98357

Browse files
Merge pull request #4 from Optum/update_cdktf
Update to latest cdktf version
2 parents 0138ecd + 2bed233 commit 9e98357

File tree

14 files changed

+103
-32069
lines changed

14 files changed

+103
-32069
lines changed

package-lock.json

-31,990
This file was deleted.

package.json

+7-13
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,16 @@
2323
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
2424
},
2525
"devDependencies": {
26-
"@boostercloud/framework-provider-azure-infrastructure": "1.3.2",
27-
"@boostercloud/framework-provider-local-infrastructure": "1.3.2",
28-
"@boostercloud/metadata-booster": "1.3.2",
29-
"@cdktf/provider-azurerm": "0.2.179",
30-
"@types/chai": "^4.2.21",
31-
"@types/chai-as-promised": "^7.1.4",
32-
"@types/faker": "5.5.7",
26+
"@boostercloud/framework-provider-azure-infrastructure": "1.10.0",
27+
"@boostercloud/framework-provider-local-infrastructure": "1.10.0",
28+
"@boostercloud/metadata-booster": "1.10.0",
29+
"@cdktf/provider-azurerm": "5.0.13",
3330
"@types/jsonwebtoken": "^8.5.8",
34-
"@types/mocha": "^9.0.0",
3531
"@types/mustache": "^4.1.0",
3632
"@types/node": "16.11.7",
37-
"@types/sinon": "^10.0.2",
38-
"@types/sinon-chai": "^3.2.5",
3933
"@typescript-eslint/eslint-plugin": "^4.29.0",
4034
"@typescript-eslint/parser": "^4.29.0",
41-
"cdktf": "0.7.0",
35+
"cdktf": "^0.15.0",
4236
"eslint": "^7.32.0",
4337
"eslint-config-prettier": "^8.3.0",
4438
"eslint-plugin-import": "^2.23.4",
@@ -53,7 +47,7 @@
5347
"url": "https://github.com/boostercloud/booster/issues"
5448
},
5549
"peerDependencies": {
56-
"@boostercloud/framework-core": ">=1.3.2",
57-
"@boostercloud/framework-types": ">=1.3.2"
50+
"@boostercloud/framework-core": ">=1.10.0",
51+
"@boostercloud/framework-types": ">=1.10.0"
5852
}
5953
}

packages/rocket-webhook-azure-infrastructure/package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,21 @@
2323
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
2424
},
2525
"peerDependencies": {
26-
"@boostercloud/framework-core": ">=1.3.2",
27-
"@boostercloud/framework-types": ">=1.3.2"
26+
"@boostercloud/framework-core": ">=1.10.0",
27+
"@boostercloud/framework-types": ">=1.10.0"
2828
},
2929
"dependencies": {
30-
"@boostercloud/rocket-webhook-types": "^0.2.0"
30+
"@boostercloud/rocket-webhook-types": "^0.3.0"
3131
},
3232
"devDependencies": {
33-
"@boostercloud/framework-provider-azure-infrastructure": "1.3.2",
34-
"@boostercloud/metadata-booster": "1.3.2",
35-
"@cdktf/provider-azurerm": "0.2.179",
33+
"@boostercloud/framework-provider-azure-infrastructure": "1.10.0",
34+
"@boostercloud/metadata-booster": "1.10.0",
35+
"@cdktf/provider-azurerm": "5.0.13",
3636
"@types/mustache": "^4.1.0",
3737
"@types/node": "16.11.7",
3838
"@typescript-eslint/eslint-plugin": "^4.29.0",
3939
"@typescript-eslint/parser": "^4.29.0",
40-
"cdktf": "0.7.0",
40+
"cdktf": "^0.15.0",
4141
"eslint": "^7.32.0",
4242
"eslint-config-prettier": "^8.3.0",
4343
"eslint-plugin-import": "^2.23.4",

packages/rocket-webhook-azure-infrastructure/src/synth/synth.ts

+16-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { TerraformApiManagementApiOperation } from './terraform-api-management-a
55
import { TerraformApiManagementApiOperationPolicy } from './terraform-api-management-api-operation-policy'
66
import { TerraformFunctionApp } from './terraform-function-app'
77
import { TerraformResource, TerraformStack } from 'cdktf'
8-
import { FunctionApp } from '@cdktf/provider-azurerm'
8+
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'
9+
import { windowsFunctionApp } from '@cdktf/provider-azurerm'
910

1011
export class Synth {
1112
public static mountStack(
@@ -17,12 +18,21 @@ export class Synth {
1718
const appPrefix = applicationSynthStack.appPrefix
1819
const terraformStack = applicationSynthStack.terraformStack
1920
const resourceGroupName = applicationSynthStack.resourceGroupName ?? ''
20-
const functionApp = TerraformFunctionApp.build(terraformStack, applicationSynthStack, config, utils)
21+
const azurermProvider = applicationSynthStack.azureProvider!
22+
23+
const functionApp = TerraformFunctionApp.build(
24+
azurermProvider,
25+
terraformStack,
26+
applicationSynthStack,
27+
config,
28+
utils
29+
)
2130
const rocketStack = applicationSynthStack.rocketStack ?? []
2231
rocketStack.push(functionApp)
2332

2433
params.forEach((param) =>
2534
this.createTerraformApiManagementApi(
35+
azurermProvider,
2636
terraformStack,
2737
applicationSynthStack,
2838
utils,
@@ -38,16 +48,18 @@ export class Synth {
3848
}
3949

4050
private static createTerraformApiManagementApi(
51+
providerResource: AzurermProvider,
4152
terraformStack: TerraformStack,
4253
applicationSynthStack: ApplicationSynthStack,
4354
utils: RocketUtils,
4455
appPrefix: string,
4556
resourceGroupName: string,
4657
param: WebhookParamsEvent,
47-
functionApp: FunctionApp,
58+
functionApp: windowsFunctionApp.WindowsFunctionApp,
4859
rocketStack: Array<TerraformResource>
4960
): void {
5061
const apiManagementApiOperation = TerraformApiManagementApiOperation.build(
62+
providerResource,
5163
terraformStack,
5264
applicationSynthStack,
5365
utils,
@@ -56,6 +68,7 @@ export class Synth {
5668
param.origin
5769
)
5870
const apiManagementApiOperationPolicy = TerraformApiManagementApiOperationPolicy.build(
71+
providerResource,
5972
utils,
6073
appPrefix,
6174
functionApp.name,
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,33 @@
11
import { RocketUtils, templates } from '@boostercloud/framework-provider-azure-infrastructure'
2-
import { ApiManagementApiOperation, ApiManagementApiOperationPolicy } from '@cdktf/provider-azurerm'
32
import { TerraformStack } from 'cdktf'
43
import * as Mustache from 'mustache'
4+
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'
5+
import { apiManagementApiOperation, apiManagementApiOperationPolicy } from '@cdktf/provider-azurerm'
56

67
export class TerraformApiManagementApiOperationPolicy {
78
static build(
9+
providerResource: AzurermProvider,
810
utils: RocketUtils,
911
appPrefix: string,
1012
functionAppName: string,
1113
terraformStack: TerraformStack,
12-
apiManagementApiOperation: ApiManagementApiOperation,
14+
apiManagementApiOperationResource: apiManagementApiOperation.ApiManagementApiOperation,
1315
resourceGroupName: string,
1416
endpoint: string
15-
): ApiManagementApiOperationPolicy {
17+
): apiManagementApiOperationPolicy.ApiManagementApiOperationPolicy {
1618
const idApiManagementApiOperationPolicy = utils.toTerraformName(appPrefix, `amaopr${endpoint}`)
1719
const policyContent = Mustache.render(templates.policy, { functionAppName: functionAppName })
18-
return new ApiManagementApiOperationPolicy(terraformStack, idApiManagementApiOperationPolicy, {
19-
apiName: apiManagementApiOperation.apiName,
20-
apiManagementName: apiManagementApiOperation.apiManagementName,
21-
resourceGroupName: resourceGroupName,
22-
operationId: apiManagementApiOperation.operationId,
23-
xmlContent: policyContent,
24-
})
20+
return new apiManagementApiOperationPolicy.ApiManagementApiOperationPolicy(
21+
terraformStack,
22+
idApiManagementApiOperationPolicy,
23+
{
24+
apiName: apiManagementApiOperationResource.apiName,
25+
apiManagementName: apiManagementApiOperationResource.apiManagementName,
26+
resourceGroupName: resourceGroupName,
27+
operationId: apiManagementApiOperationResource.operationId,
28+
xmlContent: policyContent,
29+
provider: providerResource,
30+
}
31+
)
2532
}
2633
}
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,40 @@
11
import { ApplicationSynthStack, RocketUtils } from '@boostercloud/framework-provider-azure-infrastructure'
2-
import { ApiManagementApi, ApiManagementApiOperation } from '@cdktf/provider-azurerm'
32
import { TerraformStack } from 'cdktf'
3+
import { apiManagementApi, apiManagementApiOperation } from '@cdktf/provider-azurerm'
4+
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'
45

56
export class TerraformApiManagementApiOperation {
67
static build(
7-
terraformStack: TerraformStack,
8+
providerResource: AzurermProvider,
9+
terraformStackResource: TerraformStack,
810
applicationSynthStack: ApplicationSynthStack,
911
utils: RocketUtils,
1012
appPrefix: string,
1113
resourceGroupName: string,
1214
endpoint: string
13-
): ApiManagementApiOperation {
14-
const apiManagementApi: ApiManagementApi = applicationSynthStack.apiManagementApi!
15+
): apiManagementApiOperation.ApiManagementApiOperation {
16+
const apiManagementApi: apiManagementApi.ApiManagementApi = applicationSynthStack.apiManagementApi!
1517
const idApiManagementApiOperation = utils.toTerraformName(appPrefix, `amaor${endpoint}`)
1618

17-
return new ApiManagementApiOperation(terraformStack, idApiManagementApiOperation, {
18-
operationId: `${endpoint}POST`,
19-
apiName: apiManagementApi?.name,
20-
apiManagementName: apiManagementApi?.apiManagementName,
21-
resourceGroupName: resourceGroupName,
22-
displayName: `/webhook/${endpoint}`,
23-
method: 'POST',
24-
urlTemplate: `/webhook/${endpoint}`,
25-
description: '',
26-
response: [
27-
{
28-
statusCode: 200,
29-
},
30-
],
31-
})
19+
return new apiManagementApiOperation.ApiManagementApiOperation(
20+
terraformStackResource,
21+
idApiManagementApiOperation,
22+
{
23+
operationId: `${endpoint}POST`,
24+
apiName: apiManagementApi.name,
25+
apiManagementName: apiManagementApi.apiManagementName,
26+
resourceGroupName: resourceGroupName,
27+
displayName: `/webhook/${endpoint}`,
28+
method: 'POST',
29+
urlTemplate: `/webhook/${endpoint}`,
30+
description: '',
31+
response: [
32+
{
33+
statusCode: 200,
34+
},
35+
],
36+
provider: providerResource,
37+
}
38+
)
3239
}
3340
}
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
import { TerraformStack } from 'cdktf'
2-
import { FunctionApp } from '@cdktf/provider-azurerm'
32
import { BoosterConfig } from '@boostercloud/framework-types'
43
import { ApplicationSynthStack, RocketUtils } from '@boostercloud/framework-provider-azure-infrastructure'
54
import { getFunctionAppName } from '../helper'
65
import { functionID } from '@boostercloud/rocket-webhook-types'
6+
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'
7+
import { windowsFunctionApp } from '@cdktf/provider-azurerm'
78

89
export class TerraformFunctionApp {
910
static build(
11+
providerResource: AzurermProvider,
1012
terraformStack: TerraformStack,
1113
applicationSynthStack: ApplicationSynthStack,
1214
config: BoosterConfig,
1315
utils: RocketUtils
14-
): FunctionApp {
16+
): windowsFunctionApp.WindowsFunctionApp {
1517
const resourceGroup = applicationSynthStack.resourceGroup!
1618
const applicationServicePlan = applicationSynthStack.applicationServicePlan!
1719
const storageAccount = applicationSynthStack.storageAccount!
@@ -21,32 +23,33 @@ export class TerraformFunctionApp {
2123
const functionAppName = getFunctionAppName(applicationSynthStack)
2224

2325
const id = utils.toTerraformName(applicationSynthStack.appPrefix, 'webhookfunc')
24-
return new FunctionApp(terraformStack, id, {
26+
return new windowsFunctionApp.WindowsFunctionApp(terraformStack, id, {
2527
name: functionAppName,
2628
location: resourceGroup.location,
2729
resourceGroupName: resourceGroup.name,
28-
appServicePlanId: applicationServicePlan.id,
30+
servicePlanId: applicationServicePlan.id,
2931
appSettings: {
30-
FUNCTIONS_WORKER_RUNTIME: 'node',
31-
AzureWebJobsStorage: storageAccount.primaryConnectionString,
32-
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING: storageAccount.primaryConnectionString,
33-
WEBSITE_RUN_FROM_PACKAGE: '',
32+
WEBSITE_RUN_FROM_PACKAGE: '1',
3433
WEBSITE_CONTENTSHARE: id,
35-
WEBSITE_NODE_DEFAULT_VERSION: '~14',
3634
...config.env,
3735
BOOSTER_ENV: config.environmentName,
3836
BOOSTER_REST_API_URL: `https://${apiManagementServiceName}.azure-api.net/${config.environmentName}`,
3937
COSMOSDB_CONNECTION_STRING: `AccountEndpoint=https://${cosmosDatabaseName}.documents.azure.com:443/;AccountKey=${cosmosDbConnectionString};`,
4038
BOOSTER_ROCKET_FUNCTION_ID: functionID,
4139
},
42-
osType: 'linux',
4340
storageAccountName: storageAccount.name,
4441
storageAccountAccessKey: storageAccount.primaryAccessKey,
45-
version: '~3',
4642
dependsOn: [resourceGroup],
4743
lifecycle: {
4844
ignoreChanges: ['app_settings["WEBSITE_RUN_FROM_PACKAGE"]'],
4945
},
46+
provider: providerResource,
47+
siteConfig: {
48+
applicationStack: {
49+
nodeVersion: '~14',
50+
},
51+
},
52+
functionsExtensionVersion: '~3', // keep it on version 3. Version 4 needs a migration process
5053
})
5154
}
5255
}

packages/rocket-webhook-core/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
"uuid"
2727
],
2828
"peerDependencies": {
29-
"@boostercloud/framework-core": ">=1.3.2",
30-
"@boostercloud/framework-types": ">=1.3.2"
29+
"@boostercloud/framework-core": ">=1.10.0",
30+
"@boostercloud/framework-types": ">=1.10.0"
3131
},
3232
"dependencies": {
33-
"@boostercloud/rocket-webhook-types": "^0.2.0"
33+
"@boostercloud/rocket-webhook-types": "^0.3.0"
3434
},
3535
"devDependencies": {
36-
"@boostercloud/metadata-booster": "1.3.2",
36+
"@boostercloud/metadata-booster": "1.10.0",
3737
"tslib": "2.1.0",
3838
"typescript": "4.7.4"
3939
},

packages/rocket-webhook-core/src/webhook-dispatcher.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export async function dispatch(
2020
const webhookParamsEvent = getWebhookParamsEvent(params, request)
2121
const handlerClass = webhookParamsEvent.handlerClass
2222
const webhookEvent = toWebhookEvent(webhookParamsEvent, request)
23-
const register = new Register(requestId, {})
23+
const register = new Register(requestId, {}, RegisterHandler.flush)
2424
const result: WebhookHandlerReturnType | void = await handlerClass.handle(webhookEvent, register)
2525
await RegisterHandler.handle(config, register)
2626
if (result) {

packages/rocket-webhook-local-infrastructure/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@
2323
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
2424
},
2525
"peerDependencies": {
26-
"@boostercloud/framework-core": ">=1.3.2",
27-
"@boostercloud/framework-types": ">=1.3.2"
26+
"@boostercloud/framework-core": ">=1.10.0",
27+
"@boostercloud/framework-types": ">=1.10.0"
2828
},
2929
"dependencies": {
30-
"@boostercloud/rocket-webhook-types": "^0.2.0"
30+
"@boostercloud/rocket-webhook-types": "^0.3.0"
3131
},
3232
"devDependencies": {
33-
"@boostercloud/framework-provider-local-infrastructure": "1.3.2",
34-
"@boostercloud/metadata-booster": "1.3.2",
33+
"@boostercloud/framework-provider-local-infrastructure": "1.10.0",
34+
"@boostercloud/metadata-booster": "1.10.0",
3535
"@types/mustache": "^4.1.0",
3636
"@types/node": "16.11.7",
3737
"@typescript-eslint/eslint-plugin": "^4.29.0",
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
dist
22
lib
3-
node_modules
3+
node_modules

packages/rocket-webhook-types/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
2424
},
2525
"peerDependencies": {
26-
"@boostercloud/framework-core": ">=1.3.2",
27-
"@boostercloud/framework-types": ">=1.3.2"
26+
"@boostercloud/framework-core": ">=1.10.0",
27+
"@boostercloud/framework-types": ">=1.10.0"
2828
},
2929
"devDependencies": {
30-
"@boostercloud/metadata-booster": "1.3.2",
30+
"@boostercloud/metadata-booster": "1.10.0",
3131
"typescript": "4.7.4"
3232
},
3333
"scripts": {

packages/rocket-webhook-types/tsconfig.eslint.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
"src/**/*",
55
"test/**/*"
66
]
7-
}
7+
}

packages/rocket-webhook-types/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
"include": [
88
"src/**/*"
99
]
10-
}
10+
}

0 commit comments

Comments
 (0)