Skip to content

Commit

Permalink
Merge pull request #4 from Optum/update_cdktf
Browse files Browse the repository at this point in the history
Update to latest cdktf version
  • Loading branch information
gonzalogarciajaubert authored Apr 26, 2023
2 parents 0138ecd + 2bed233 commit 9e98357
Show file tree
Hide file tree
Showing 14 changed files with 103 additions and 32,069 deletions.
31,990 changes: 0 additions & 31,990 deletions package-lock.json

This file was deleted.

20 changes: 7 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,16 @@
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
},
"devDependencies": {
"@boostercloud/framework-provider-azure-infrastructure": "1.3.2",
"@boostercloud/framework-provider-local-infrastructure": "1.3.2",
"@boostercloud/metadata-booster": "1.3.2",
"@cdktf/provider-azurerm": "0.2.179",
"@types/chai": "^4.2.21",
"@types/chai-as-promised": "^7.1.4",
"@types/faker": "5.5.7",
"@boostercloud/framework-provider-azure-infrastructure": "1.10.0",
"@boostercloud/framework-provider-local-infrastructure": "1.10.0",
"@boostercloud/metadata-booster": "1.10.0",
"@cdktf/provider-azurerm": "5.0.13",
"@types/jsonwebtoken": "^8.5.8",
"@types/mocha": "^9.0.0",
"@types/mustache": "^4.1.0",
"@types/node": "16.11.7",
"@types/sinon": "^10.0.2",
"@types/sinon-chai": "^3.2.5",
"@typescript-eslint/eslint-plugin": "^4.29.0",
"@typescript-eslint/parser": "^4.29.0",
"cdktf": "0.7.0",
"cdktf": "^0.15.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.23.4",
Expand All @@ -53,7 +47,7 @@
"url": "https://github.com/boostercloud/booster/issues"
},
"peerDependencies": {
"@boostercloud/framework-core": ">=1.3.2",
"@boostercloud/framework-types": ">=1.3.2"
"@boostercloud/framework-core": ">=1.10.0",
"@boostercloud/framework-types": ">=1.10.0"
}
}
14 changes: 7 additions & 7 deletions packages/rocket-webhook-azure-infrastructure/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,21 @@
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
},
"peerDependencies": {
"@boostercloud/framework-core": ">=1.3.2",
"@boostercloud/framework-types": ">=1.3.2"
"@boostercloud/framework-core": ">=1.10.0",
"@boostercloud/framework-types": ">=1.10.0"
},
"dependencies": {
"@boostercloud/rocket-webhook-types": "^0.2.0"
"@boostercloud/rocket-webhook-types": "^0.3.0"
},
"devDependencies": {
"@boostercloud/framework-provider-azure-infrastructure": "1.3.2",
"@boostercloud/metadata-booster": "1.3.2",
"@cdktf/provider-azurerm": "0.2.179",
"@boostercloud/framework-provider-azure-infrastructure": "1.10.0",
"@boostercloud/metadata-booster": "1.10.0",
"@cdktf/provider-azurerm": "5.0.13",
"@types/mustache": "^4.1.0",
"@types/node": "16.11.7",
"@typescript-eslint/eslint-plugin": "^4.29.0",
"@typescript-eslint/parser": "^4.29.0",
"cdktf": "0.7.0",
"cdktf": "^0.15.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.23.4",
Expand Down
19 changes: 16 additions & 3 deletions packages/rocket-webhook-azure-infrastructure/src/synth/synth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import { TerraformApiManagementApiOperation } from './terraform-api-management-a
import { TerraformApiManagementApiOperationPolicy } from './terraform-api-management-api-operation-policy'
import { TerraformFunctionApp } from './terraform-function-app'
import { TerraformResource, TerraformStack } from 'cdktf'
import { FunctionApp } from '@cdktf/provider-azurerm'
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'
import { windowsFunctionApp } from '@cdktf/provider-azurerm'

export class Synth {
public static mountStack(
Expand All @@ -17,12 +18,21 @@ export class Synth {
const appPrefix = applicationSynthStack.appPrefix
const terraformStack = applicationSynthStack.terraformStack
const resourceGroupName = applicationSynthStack.resourceGroupName ?? ''
const functionApp = TerraformFunctionApp.build(terraformStack, applicationSynthStack, config, utils)
const azurermProvider = applicationSynthStack.azureProvider!

const functionApp = TerraformFunctionApp.build(
azurermProvider,
terraformStack,
applicationSynthStack,
config,
utils
)
const rocketStack = applicationSynthStack.rocketStack ?? []
rocketStack.push(functionApp)

params.forEach((param) =>
this.createTerraformApiManagementApi(
azurermProvider,
terraformStack,
applicationSynthStack,
utils,
Expand All @@ -38,16 +48,18 @@ export class Synth {
}

private static createTerraformApiManagementApi(
providerResource: AzurermProvider,
terraformStack: TerraformStack,
applicationSynthStack: ApplicationSynthStack,
utils: RocketUtils,
appPrefix: string,
resourceGroupName: string,
param: WebhookParamsEvent,
functionApp: FunctionApp,
functionApp: windowsFunctionApp.WindowsFunctionApp,
rocketStack: Array<TerraformResource>
): void {
const apiManagementApiOperation = TerraformApiManagementApiOperation.build(
providerResource,
terraformStack,
applicationSynthStack,
utils,
Expand All @@ -56,6 +68,7 @@ export class Synth {
param.origin
)
const apiManagementApiOperationPolicy = TerraformApiManagementApiOperationPolicy.build(
providerResource,
utils,
appPrefix,
functionApp.name,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,33 @@
import { RocketUtils, templates } from '@boostercloud/framework-provider-azure-infrastructure'
import { ApiManagementApiOperation, ApiManagementApiOperationPolicy } from '@cdktf/provider-azurerm'
import { TerraformStack } from 'cdktf'
import * as Mustache from 'mustache'
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'
import { apiManagementApiOperation, apiManagementApiOperationPolicy } from '@cdktf/provider-azurerm'

export class TerraformApiManagementApiOperationPolicy {
static build(
providerResource: AzurermProvider,
utils: RocketUtils,
appPrefix: string,
functionAppName: string,
terraformStack: TerraformStack,
apiManagementApiOperation: ApiManagementApiOperation,
apiManagementApiOperationResource: apiManagementApiOperation.ApiManagementApiOperation,
resourceGroupName: string,
endpoint: string
): ApiManagementApiOperationPolicy {
): apiManagementApiOperationPolicy.ApiManagementApiOperationPolicy {
const idApiManagementApiOperationPolicy = utils.toTerraformName(appPrefix, `amaopr${endpoint}`)
const policyContent = Mustache.render(templates.policy, { functionAppName: functionAppName })
return new ApiManagementApiOperationPolicy(terraformStack, idApiManagementApiOperationPolicy, {
apiName: apiManagementApiOperation.apiName,
apiManagementName: apiManagementApiOperation.apiManagementName,
resourceGroupName: resourceGroupName,
operationId: apiManagementApiOperation.operationId,
xmlContent: policyContent,
})
return new apiManagementApiOperationPolicy.ApiManagementApiOperationPolicy(
terraformStack,
idApiManagementApiOperationPolicy,
{
apiName: apiManagementApiOperationResource.apiName,
apiManagementName: apiManagementApiOperationResource.apiManagementName,
resourceGroupName: resourceGroupName,
operationId: apiManagementApiOperationResource.operationId,
xmlContent: policyContent,
provider: providerResource,
}
)
}
}
Original file line number Diff line number Diff line change
@@ -1,33 +1,40 @@
import { ApplicationSynthStack, RocketUtils } from '@boostercloud/framework-provider-azure-infrastructure'
import { ApiManagementApi, ApiManagementApiOperation } from '@cdktf/provider-azurerm'
import { TerraformStack } from 'cdktf'
import { apiManagementApi, apiManagementApiOperation } from '@cdktf/provider-azurerm'
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'

export class TerraformApiManagementApiOperation {
static build(
terraformStack: TerraformStack,
providerResource: AzurermProvider,
terraformStackResource: TerraformStack,
applicationSynthStack: ApplicationSynthStack,
utils: RocketUtils,
appPrefix: string,
resourceGroupName: string,
endpoint: string
): ApiManagementApiOperation {
const apiManagementApi: ApiManagementApi = applicationSynthStack.apiManagementApi!
): apiManagementApiOperation.ApiManagementApiOperation {
const apiManagementApi: apiManagementApi.ApiManagementApi = applicationSynthStack.apiManagementApi!
const idApiManagementApiOperation = utils.toTerraformName(appPrefix, `amaor${endpoint}`)

return new ApiManagementApiOperation(terraformStack, idApiManagementApiOperation, {
operationId: `${endpoint}POST`,
apiName: apiManagementApi?.name,
apiManagementName: apiManagementApi?.apiManagementName,
resourceGroupName: resourceGroupName,
displayName: `/webhook/${endpoint}`,
method: 'POST',
urlTemplate: `/webhook/${endpoint}`,
description: '',
response: [
{
statusCode: 200,
},
],
})
return new apiManagementApiOperation.ApiManagementApiOperation(
terraformStackResource,
idApiManagementApiOperation,
{
operationId: `${endpoint}POST`,
apiName: apiManagementApi.name,
apiManagementName: apiManagementApi.apiManagementName,
resourceGroupName: resourceGroupName,
displayName: `/webhook/${endpoint}`,
method: 'POST',
urlTemplate: `/webhook/${endpoint}`,
description: '',
response: [
{
statusCode: 200,
},
],
provider: providerResource,
}
)
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
import { TerraformStack } from 'cdktf'
import { FunctionApp } from '@cdktf/provider-azurerm'
import { BoosterConfig } from '@boostercloud/framework-types'
import { ApplicationSynthStack, RocketUtils } from '@boostercloud/framework-provider-azure-infrastructure'
import { getFunctionAppName } from '../helper'
import { functionID } from '@boostercloud/rocket-webhook-types'
import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider'
import { windowsFunctionApp } from '@cdktf/provider-azurerm'

export class TerraformFunctionApp {
static build(
providerResource: AzurermProvider,
terraformStack: TerraformStack,
applicationSynthStack: ApplicationSynthStack,
config: BoosterConfig,
utils: RocketUtils
): FunctionApp {
): windowsFunctionApp.WindowsFunctionApp {
const resourceGroup = applicationSynthStack.resourceGroup!
const applicationServicePlan = applicationSynthStack.applicationServicePlan!
const storageAccount = applicationSynthStack.storageAccount!
Expand All @@ -21,32 +23,33 @@ export class TerraformFunctionApp {
const functionAppName = getFunctionAppName(applicationSynthStack)

const id = utils.toTerraformName(applicationSynthStack.appPrefix, 'webhookfunc')
return new FunctionApp(terraformStack, id, {
return new windowsFunctionApp.WindowsFunctionApp(terraformStack, id, {
name: functionAppName,
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
appServicePlanId: applicationServicePlan.id,
servicePlanId: applicationServicePlan.id,
appSettings: {
FUNCTIONS_WORKER_RUNTIME: 'node',
AzureWebJobsStorage: storageAccount.primaryConnectionString,
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING: storageAccount.primaryConnectionString,
WEBSITE_RUN_FROM_PACKAGE: '',
WEBSITE_RUN_FROM_PACKAGE: '1',
WEBSITE_CONTENTSHARE: id,
WEBSITE_NODE_DEFAULT_VERSION: '~14',
...config.env,
BOOSTER_ENV: config.environmentName,
BOOSTER_REST_API_URL: `https://${apiManagementServiceName}.azure-api.net/${config.environmentName}`,
COSMOSDB_CONNECTION_STRING: `AccountEndpoint=https://${cosmosDatabaseName}.documents.azure.com:443/;AccountKey=${cosmosDbConnectionString};`,
BOOSTER_ROCKET_FUNCTION_ID: functionID,
},
osType: 'linux',
storageAccountName: storageAccount.name,
storageAccountAccessKey: storageAccount.primaryAccessKey,
version: '~3',
dependsOn: [resourceGroup],
lifecycle: {
ignoreChanges: ['app_settings["WEBSITE_RUN_FROM_PACKAGE"]'],
},
provider: providerResource,
siteConfig: {
applicationStack: {
nodeVersion: '~14',
},
},
functionsExtensionVersion: '~3', // keep it on version 3. Version 4 needs a migration process
})
}
}
8 changes: 4 additions & 4 deletions packages/rocket-webhook-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@
"uuid"
],
"peerDependencies": {
"@boostercloud/framework-core": ">=1.3.2",
"@boostercloud/framework-types": ">=1.3.2"
"@boostercloud/framework-core": ">=1.10.0",
"@boostercloud/framework-types": ">=1.10.0"
},
"dependencies": {
"@boostercloud/rocket-webhook-types": "^0.2.0"
"@boostercloud/rocket-webhook-types": "^0.3.0"
},
"devDependencies": {
"@boostercloud/metadata-booster": "1.3.2",
"@boostercloud/metadata-booster": "1.10.0",
"tslib": "2.1.0",
"typescript": "4.7.4"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/rocket-webhook-core/src/webhook-dispatcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export async function dispatch(
const webhookParamsEvent = getWebhookParamsEvent(params, request)
const handlerClass = webhookParamsEvent.handlerClass
const webhookEvent = toWebhookEvent(webhookParamsEvent, request)
const register = new Register(requestId, {})
const register = new Register(requestId, {}, RegisterHandler.flush)
const result: WebhookHandlerReturnType | void = await handlerClass.handle(webhookEvent, register)
await RegisterHandler.handle(config, register)
if (result) {
Expand Down
10 changes: 5 additions & 5 deletions packages/rocket-webhook-local-infrastructure/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
},
"peerDependencies": {
"@boostercloud/framework-core": ">=1.3.2",
"@boostercloud/framework-types": ">=1.3.2"
"@boostercloud/framework-core": ">=1.10.0",
"@boostercloud/framework-types": ">=1.10.0"
},
"dependencies": {
"@boostercloud/rocket-webhook-types": "^0.2.0"
"@boostercloud/rocket-webhook-types": "^0.3.0"
},
"devDependencies": {
"@boostercloud/framework-provider-local-infrastructure": "1.3.2",
"@boostercloud/metadata-booster": "1.3.2",
"@boostercloud/framework-provider-local-infrastructure": "1.10.0",
"@boostercloud/metadata-booster": "1.10.0",
"@types/mustache": "^4.1.0",
"@types/node": "16.11.7",
"@typescript-eslint/eslint-plugin": "^4.29.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/rocket-webhook-types/.eslintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
dist
lib
node_modules
node_modules
6 changes: 3 additions & 3 deletions packages/rocket-webhook-types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@
"url": "git+https://github.com/boostercloud/rocket-webhook.git"
},
"peerDependencies": {
"@boostercloud/framework-core": ">=1.3.2",
"@boostercloud/framework-types": ">=1.3.2"
"@boostercloud/framework-core": ">=1.10.0",
"@boostercloud/framework-types": ">=1.10.0"
},
"devDependencies": {
"@boostercloud/metadata-booster": "1.3.2",
"@boostercloud/metadata-booster": "1.10.0",
"typescript": "4.7.4"
},
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion packages/rocket-webhook-types/tsconfig.eslint.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
"src/**/*",
"test/**/*"
]
}
}
2 changes: 1 addition & 1 deletion packages/rocket-webhook-types/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
"include": [
"src/**/*"
]
}
}

0 comments on commit 9e98357

Please sign in to comment.