Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
} from 'aws-cdk-lib/aws-lambda';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Construct } from 'constructs';
import { LAMBDA_DEFAULTS } from '../../lambdaDefaults';
import { LAMBDA_DEFAULTS_WITH_RE2_WASM } from '../../lambdaDefaults';
import { EnvironmentVariables, TAG_KEYS, TAG_VALUES } from '../constants';

export interface GitHubAppTokenProps {
Expand All @@ -22,13 +22,7 @@ export class GitHubAppToken extends Construct {
super(scope, id);
// Create Lambda function for GetAppToken API
this.lambdaHandler = new NodejsFunction(this, 'handler', {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
// re2-wasm is used by the SSDK common library to do pattern validation, and uses
// a WASM module, so it's excluded from the bundle
nodeModules: ['re2-wasm'],
},
...LAMBDA_DEFAULTS_WITH_RE2_WASM,
environment: {
[EnvironmentVariables.APP_TABLE_NAME]: props.appTableName,
[EnvironmentVariables.INSTALLATION_TABLE_NAME]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
} from 'aws-cdk-lib/aws-lambda';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Construct } from 'constructs';
import { LAMBDA_DEFAULTS } from '../../lambdaDefaults';
import { LAMBDA_DEFAULTS_WITH_RE2_WASM } from '../../lambdaDefaults';
import { EnvironmentVariables, TAG_KEYS, TAG_VALUES } from '../constants';

export interface InstallationAcessTokenProps {
Expand All @@ -25,11 +25,7 @@ export class InstallationAcessTokenGenerator extends Construct {
) {
super(scope, id);
this.lambdaHandler = new NodejsFunction(this, 'handler', {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
nodeModules: ['re2-wasm'],
},
...LAMBDA_DEFAULTS_WITH_RE2_WASM,
environment: {
[EnvironmentVariables.APP_TABLE_NAME]: props.AppTable.tableName,
[EnvironmentVariables.INSTALLATION_TABLE_NAME]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
} from 'aws-cdk-lib/aws-lambda';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Construct } from 'constructs';
import { LAMBDA_DEFAULTS } from '../../lambdaDefaults';
import { LAMBDA_DEFAULTS_WITH_RE2_WASM } from '../../lambdaDefaults';
import { EnvironmentVariables, TAG_KEYS, TAG_VALUES } from '../constants';

export interface InstallationCachedDataProps {
Expand All @@ -32,11 +32,7 @@ export class InstallationCachedData extends Construct {
super(scope, id);
// Create Lambda function for handling installation data requests
this.lambdaHandler = new NodejsFunction(this, 'handler', {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
nodeModules: ['re2-wasm'],
},
...LAMBDA_DEFAULTS_WITH_RE2_WASM,
environment: {
[EnvironmentVariables.INSTALLATION_TABLE_NAME]:
props.InstallationTable.tableName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
} from 'aws-cdk-lib/aws-lambda';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Construct } from 'constructs';
import { LAMBDA_DEFAULTS } from '../../lambdaDefaults';
import { LAMBDA_DEFAULTS_WITH_RE2_WASM } from '../../lambdaDefaults';
import { EnvironmentVariables, TAG_KEYS, TAG_VALUES } from '../constants';

export interface InstallationCachedDataProps {
Expand All @@ -32,11 +32,7 @@ export class GetInstallations extends Construct {
super(scope, id);
// Create Lambda function for handling installation data requests
this.lambdaHandler = new NodejsFunction(this, 'handler', {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
nodeModules: ['re2-wasm'],
},
...LAMBDA_DEFAULTS_WITH_RE2_WASM,
environment: {
[EnvironmentVariables.INSTALLATION_TABLE_NAME]:
props.InstallationTable.tableName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';
import { Effect, PolicyStatement } from 'aws-cdk-lib/aws-iam';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Construct } from 'constructs';
import { LAMBDA_DEFAULTS } from '../../lambdaDefaults';
import { LAMBDA_DEFAULTS_WITH_RE2_WASM } from '../../lambdaDefaults';
import { EnvironmentVariables, TAG_KEYS, TAG_VALUES } from '../constants';

export interface InstallationTrackerProps {
Expand All @@ -22,11 +22,7 @@ export class InstallationTracker extends Construct {
});

const installationTrackerFunction = new NodejsFunction(this, 'handler', {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
nodeModules: ['re2-wasm'],
},
...LAMBDA_DEFAULTS_WITH_RE2_WASM,
environment: {
[EnvironmentVariables.APP_TABLE_NAME]: props.AppTable.tableName,
[EnvironmentVariables.INSTALLATION_TABLE_NAME]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';
import { Effect, PolicyStatement } from 'aws-cdk-lib/aws-iam';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Construct } from 'constructs';
import { LAMBDA_DEFAULTS } from '../../lambdaDefaults';
import { LAMBDA_DEFAULTS_WITH_RE2_WASM } from '../../lambdaDefaults';
import { EnvironmentVariables, TAG_KEYS, TAG_VALUES } from '../constants';

export interface RateLimitTrackerProps {
Expand All @@ -20,11 +20,7 @@ export class RateLimitTracker extends Construct {
super(scope, id);

this.lambdaHandler = new NodejsFunction(this, 'handler', {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
nodeModules: ['re2-wasm'],
},
...LAMBDA_DEFAULTS_WITH_RE2_WASM,
environment: {
[EnvironmentVariables.APP_TABLE_NAME]: props.AppTable.tableName,
[EnvironmentVariables.INSTALLATION_TABLE_NAME]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
} from 'aws-cdk-lib/aws-lambda';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Construct } from 'constructs';
import { LAMBDA_DEFAULTS } from '../../lambdaDefaults';
import { LAMBDA_DEFAULTS_WITH_RE2_WASM } from '../../lambdaDefaults';
import { EnvironmentVariables, TAG_KEYS, TAG_VALUES } from '../constants';

export interface InstallationRefreshProps {
Expand All @@ -23,11 +23,7 @@ export class InstallationRefresher extends Construct {
super(scope, id);

this.lambdaHandler = new NodejsFunction(this, 'handler', {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
nodeModules: ['re2-wasm'],
},
...LAMBDA_DEFAULTS_WITH_RE2_WASM,
environment: {
[EnvironmentVariables.APP_TABLE_NAME]: props.AppTable.tableName,
[EnvironmentVariables.INSTALLATION_TABLE_NAME]:
Expand Down
21 changes: 21 additions & 0 deletions src/packages/app-framework/src/lambdaDefaults.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,24 @@ export const LAMBDA_DEFAULTS = {
externalModules: [],
},
};

// Bundling configuration for Lambdas that use re2-wasm
// re2-wasm is used by the SSDK common library to do pattern validation, and uses
// a WASM module, so it's excluded from the bundle and copied from local node_modules.
// Change this method once we figure out a better way to interact
// with the network-blocked builder system.
export const LAMBDA_DEFAULTS_WITH_RE2_WASM = {
...LAMBDA_DEFAULTS,
bundling: {
...LAMBDA_DEFAULTS.bundling,
externalModules: ['re2-wasm'],
commandHooks: {
beforeBundling: (): string[] => [],
beforeInstall: (): string[] => [],
afterBundling: (inputDir: string, outputDir: string): string[] => [
`mkdir -p ${outputDir}/node_modules`,
`cp -r ${inputDir}/node_modules/re2-wasm ${outputDir}/node_modules/`,
],
},
},
};
Loading