quidproquo-deploy-awscdk 0.0.91 → 0.0.92
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/lib/constants/index.d.ts +1 -0
- package/lib/constants/index.js +17 -0
- package/lib/constants/logging.d.ts +1 -0
- package/lib/constants/logging.js +4 -0
- package/lib/constructs/basic/Function.d.ts +1 -0
- package/lib/constructs/basic/Function.js +2 -1
- package/lib/constructs/basic/LogStorage.d.ts +20 -0
- package/lib/constructs/basic/LogStorage.js +97 -0
- package/lib/constructs/basic/index.d.ts +1 -0
- package/lib/constructs/basic/index.js +1 -0
- package/lib/constructs/feature/core/queue/QpqApiCoreQueueConstruct.js +1 -1
- package/lib/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.js +1 -0
- package/lib/lambdas/dynamicModuleLoader/dynamicModuleLoader.d.ts +1 -0
- package/lib/lambdas/dynamicModuleLoader/dynamicModuleLoader.js +29 -0
- package/lib/lambdas/dynamicModuleLoader/index.d.ts +1 -0
- package/lib/lambdas/dynamicModuleLoader/index.js +17 -0
- package/lib/lambdas/lambdaAPIGatewayEvent.d.ts +1 -2
- package/lib/lambdas/lambdaAPIGatewayEvent.js +6 -18
- package/lib/lambdas/lambdaEventBridgeEvent.js +5 -7
- package/lib/lambdas/lambdaEventOriginRequest.js +5 -7
- package/lib/lambdas/lambdaS3FileWriteEvent_log.d.ts +2 -0
- package/lib/lambdas/lambdaS3FileWriteEvent_log.js +63 -0
- package/lib/lambdas/lambdaSQSEvent.js +5 -7
- package/lib/lambdas/lambdaServiceFunctionExecute.js +5 -15
- package/lib/lambdas/logger/logger.d.ts +3 -0
- package/lib/lambdas/logger/logger.js +31 -0
- package/lib/lambdas/storyResultToMetadata/genericTextExtractors/apiGenericTextExtractor.d.ts +2 -0
- package/lib/lambdas/storyResultToMetadata/genericTextExtractors/apiGenericTextExtractor.js +12 -0
- package/lib/lambdas/storyResultToMetadata/genericTextExtractors/index.d.ts +2 -0
- package/lib/lambdas/storyResultToMetadata/genericTextExtractors/index.js +18 -0
- package/lib/lambdas/storyResultToMetadata/genericTextExtractors/unknownGenericTextExtractor.d.ts +2 -0
- package/lib/lambdas/storyResultToMetadata/genericTextExtractors/unknownGenericTextExtractor.js +7 -0
- package/lib/lambdas/storyResultToMetadata/index.d.ts +2 -0
- package/lib/lambdas/storyResultToMetadata/index.js +18 -0
- package/lib/lambdas/storyResultToMetadata/storyResultToMetadata.d.ts +2 -0
- package/lib/lambdas/storyResultToMetadata/storyResultToMetadata.js +34 -0
- package/lib/stacks/InfQpqServiceStack.js +5 -0
- package/lib/utils/qpqDeployAwsCdkUtils.d.ts +1 -0
- package/lib/utils/qpqDeployAwsCdkUtils.js +9 -1
- package/package.json +1 -1
- package/src/constants/index.ts +1 -0
- package/src/constants/logging.ts +1 -0
- package/src/constructs/basic/Function.ts +6 -3
- package/src/constructs/basic/LogStorage.ts +110 -0
- package/src/constructs/basic/index.ts +1 -0
- package/src/constructs/feature/core/queue/QpqApiCoreQueueConstruct.ts +1 -1
- package/src/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.ts +2 -0
- package/src/lambdas/dynamicModuleLoader/dynamicModuleLoader.ts +17 -0
- package/src/lambdas/dynamicModuleLoader/index.ts +1 -0
- package/src/lambdas/lambdaAPIGatewayEvent.ts +11 -22
- package/src/lambdas/lambdaEventBridgeEvent.ts +10 -9
- package/src/lambdas/lambdaEventOriginRequest.ts +10 -10
- package/src/lambdas/lambdaS3FileWriteEvent_log.ts +72 -0
- package/src/lambdas/lambdaSQSEvent.ts +10 -16
- package/src/lambdas/lambdaServiceFunctionExecute.ts +10 -17
- package/src/lambdas/logger/logger.ts +33 -0
- package/src/lambdas/storyResultToMetadata/genericTextExtractors/apiGenericTextExtractor.ts +15 -0
- package/src/lambdas/storyResultToMetadata/genericTextExtractors/index.ts +2 -0
- package/src/lambdas/storyResultToMetadata/genericTextExtractors/unknownGenericTextExtractor.ts +5 -0
- package/src/lambdas/storyResultToMetadata/index.ts +2 -0
- package/src/lambdas/storyResultToMetadata/storyResultToMetadata.ts +38 -0
- package/src/stacks/InfQpqServiceStack.ts +7 -0
- package/src/utils/qpqDeployAwsCdkUtils.ts +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './logging';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./logging"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const QPQ_LOG_BUCKET_NAME = "logs";
|
|
@@ -34,6 +34,7 @@ const cdk = __importStar(require("aws-cdk-lib"));
|
|
|
34
34
|
class Function extends QpqConstructBlock_1.QpqConstructBlock {
|
|
35
35
|
constructor(scope, id, props) {
|
|
36
36
|
super(scope, id, props);
|
|
37
|
+
const handlerFile = props.srcFilename || 'index';
|
|
37
38
|
this.lambdaFunction = new aws_cdk_lib_1.aws_lambda.Function(this, 'function', {
|
|
38
39
|
functionName: props.functionName,
|
|
39
40
|
timeout: cdk.Duration.seconds(props.timeoutInSeconds || 25),
|
|
@@ -41,7 +42,7 @@ class Function extends QpqConstructBlock_1.QpqConstructBlock {
|
|
|
41
42
|
memorySize: props.memoryInBytes || 1024,
|
|
42
43
|
layers: props.apiLayerVersions,
|
|
43
44
|
code: aws_cdk_lib_1.aws_lambda.Code.fromAsset(path_1.default.join(props.buildPath, props.functionType)),
|
|
44
|
-
handler:
|
|
45
|
+
handler: `${handlerFile}.${props.executorName}`,
|
|
45
46
|
environment: props.environment,
|
|
46
47
|
reservedConcurrentExecutions: props.reservedConcurrentExecutions,
|
|
47
48
|
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { QpqConstructBlock, QpqConstructBlockProps } from '../base/QpqConstructBlock';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import { aws_s3, aws_iam, aws_dynamodb } from 'aws-cdk-lib';
|
|
4
|
+
import { QpqResource } from '../base';
|
|
5
|
+
import { QPQConfig } from 'quidproquo-core/lib';
|
|
6
|
+
export interface LogStorageProps extends QpqConstructBlockProps {
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class LogStorageConstructBase extends QpqConstructBlock implements QpqResource {
|
|
9
|
+
abstract bucket: aws_s3.IBucket;
|
|
10
|
+
abstract table: aws_dynamodb.ITable;
|
|
11
|
+
grantRead(grantee: aws_iam.IGrantable): aws_iam.Grant;
|
|
12
|
+
grantWrite(grantee: aws_iam.IGrantable): aws_iam.Grant;
|
|
13
|
+
grantAll(grantee: aws_iam.IGrantable): void;
|
|
14
|
+
}
|
|
15
|
+
export declare class LogStorage extends QpqConstructBlock {
|
|
16
|
+
readonly bucket: aws_s3.IBucket;
|
|
17
|
+
readonly table: aws_dynamodb.ITable;
|
|
18
|
+
static fromOtherStack(scope: Construct, id: string, qpqConfig: QPQConfig, awsAccountId: string, serviceBucketName: string): QpqResource;
|
|
19
|
+
constructor(scope: Construct, id: string, props: LogStorageProps);
|
|
20
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.LogStorage = exports.LogStorageConstructBase = void 0;
|
|
30
|
+
const path_1 = __importDefault(require("path"));
|
|
31
|
+
const QpqConstructBlock_1 = require("../base/QpqConstructBlock");
|
|
32
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
33
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
34
|
+
const constants_1 = require("../../constants");
|
|
35
|
+
const Function_1 = require("./Function");
|
|
36
|
+
class LogStorageConstructBase extends QpqConstructBlock_1.QpqConstructBlock {
|
|
37
|
+
grantRead(grantee) {
|
|
38
|
+
this.table.grantReadData(grantee);
|
|
39
|
+
return this.bucket.grantRead(grantee);
|
|
40
|
+
}
|
|
41
|
+
grantWrite(grantee) {
|
|
42
|
+
this.table.grantWriteData(grantee);
|
|
43
|
+
return this.bucket.grantWrite(grantee);
|
|
44
|
+
}
|
|
45
|
+
grantAll(grantee) {
|
|
46
|
+
this.grantRead(grantee);
|
|
47
|
+
this.grantWrite(grantee);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.LogStorageConstructBase = LogStorageConstructBase;
|
|
51
|
+
class LogStorage extends QpqConstructBlock_1.QpqConstructBlock {
|
|
52
|
+
static fromOtherStack(scope, id, qpqConfig, awsAccountId, serviceBucketName) {
|
|
53
|
+
class Import extends LogStorageConstructBase {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
this.bucket = aws_cdk_lib_1.aws_s3.Bucket.fromBucketName(scope, `${id}-log-storage`, this.qpqResourceName(serviceBucketName, 'log'));
|
|
57
|
+
this.table = aws_cdk_lib_1.aws_dynamodb.Table.fromTableName(scope, `${id}-table`, this.qpqResourceName(serviceBucketName, 'log'));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return new Import(scope, id, { qpqConfig, awsAccountId });
|
|
61
|
+
}
|
|
62
|
+
constructor(scope, id, props) {
|
|
63
|
+
super(scope, id, props);
|
|
64
|
+
this.bucket = new aws_cdk_lib_1.aws_s3.Bucket(this, 'bucket', {
|
|
65
|
+
bucketName: this.qpqResourceName(constants_1.QPQ_LOG_BUCKET_NAME, 'log'),
|
|
66
|
+
// Disable public access to this bucket
|
|
67
|
+
publicReadAccess: false,
|
|
68
|
+
blockPublicAccess: aws_cdk_lib_1.aws_s3.BlockPublicAccess.BLOCK_ALL,
|
|
69
|
+
// Allow bucket to auto delete upon cdk:Destroy
|
|
70
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
71
|
+
autoDeleteObjects: true,
|
|
72
|
+
});
|
|
73
|
+
const storyResultsTable = new aws_cdk_lib_1.aws_dynamodb.Table(this, 'table', {
|
|
74
|
+
tableName: this.qpqResourceName(constants_1.QPQ_LOG_BUCKET_NAME, 'log'),
|
|
75
|
+
partitionKey: { name: 'runtimeType', type: aws_cdk_lib_1.aws_dynamodb.AttributeType.STRING },
|
|
76
|
+
sortKey: { name: 'startedAtWithCorrelation', type: aws_cdk_lib_1.aws_dynamodb.AttributeType.STRING },
|
|
77
|
+
billingMode: aws_cdk_lib_1.aws_dynamodb.BillingMode.PAY_PER_REQUEST,
|
|
78
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
79
|
+
});
|
|
80
|
+
this.table = storyResultsTable;
|
|
81
|
+
// Create a lambda that is trigged when files are written to the bucket
|
|
82
|
+
const func = new Function_1.Function(this, 'function', {
|
|
83
|
+
buildPath: path_1.default.join(__dirname, '../..'),
|
|
84
|
+
functionName: this.qpqResourceName(constants_1.QPQ_LOG_BUCKET_NAME, 'log'),
|
|
85
|
+
functionType: 'lambdas',
|
|
86
|
+
executorName: 'executeS3FileWriteEvent',
|
|
87
|
+
srcFilename: 'lambdaS3FileWriteEvent_log',
|
|
88
|
+
qpqConfig: props.qpqConfig,
|
|
89
|
+
awsAccountId: props.awsAccountId,
|
|
90
|
+
});
|
|
91
|
+
// Grant the Lambda function read access to the S3 bucket / dynamo table
|
|
92
|
+
this.bucket.grantRead(func.lambdaFunction);
|
|
93
|
+
storyResultsTable.grantWriteData(func.lambdaFunction);
|
|
94
|
+
this.bucket.addEventNotification(aws_cdk_lib_1.aws_s3.EventType.OBJECT_CREATED, new aws_cdk_lib_1.aws_s3_notifications.LambdaDestination(func.lambdaFunction));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.LogStorage = LogStorage;
|
|
@@ -47,7 +47,7 @@ class QpqApiCoreQueueConstruct extends QpqConstructBlock_1.QpqConstructBlock {
|
|
|
47
47
|
queueQPQConfigSetting: JSON.stringify(props.queueConfig),
|
|
48
48
|
},
|
|
49
49
|
// TODO: Expose this as a config option
|
|
50
|
-
reservedConcurrentExecutions:
|
|
50
|
+
reservedConcurrentExecutions: props.queueConfig.maxConcurrentExecutions,
|
|
51
51
|
});
|
|
52
52
|
// TODO: Make this a utility function
|
|
53
53
|
const grantables = qpqDeployAwsCdkUtils.getQqpGrantableResources(this, 'grantable', this.qpqConfig, props.awsAccountId);
|
package/lib/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.js
CHANGED
|
@@ -37,6 +37,7 @@ class QpqWebserverServiceFunctionConstruct extends QpqConstructBlock_1.QpqConstr
|
|
|
37
37
|
functionName: this.resourceName(`${props.serviceFunctionConfig.functionName}-sfunc`),
|
|
38
38
|
functionType: 'lambdaServiceFunctionExecute',
|
|
39
39
|
executorName: 'executeServiceFunctionExecuteEvent',
|
|
40
|
+
timeoutInSeconds: 14.5 * 60,
|
|
40
41
|
qpqConfig: props.qpqConfig,
|
|
41
42
|
apiLayerVersions: props.apiLayerVersions,
|
|
42
43
|
awsAccountId: props.awsAccountId,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const dynamicModuleLoader: (modulePath: string) => Promise<any>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.dynamicModuleLoader = void 0;
|
|
16
|
+
// @ts-ignore - Special webpack loader
|
|
17
|
+
const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
|
|
18
|
+
const quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
19
|
+
const dynamicModuleLoader = (modulePath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
console.log(`Trying to load: ${modulePath}`);
|
|
21
|
+
const module = yield (0, quidproquo_webserver_1.serviceImporter)(modulePath);
|
|
22
|
+
if (module) {
|
|
23
|
+
console.log(`Service module found!`);
|
|
24
|
+
return module;
|
|
25
|
+
}
|
|
26
|
+
console.log(`using qpqDynamicModuleLoader`);
|
|
27
|
+
return (0, qpq_dynamic_loader_1.default)(modulePath);
|
|
28
|
+
});
|
|
29
|
+
exports.dynamicModuleLoader = dynamicModuleLoader;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dynamicModuleLoader';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./dynamicModuleLoader"), exports);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { DynamicModuleLoader } from 'quidproquo-actionprocessor-awslambda';
|
|
2
1
|
import { Context } from 'aws-lambda';
|
|
3
2
|
import { ActionProcessorListResolver } from './actionProcessorListResolver';
|
|
4
|
-
export declare const getAPIGatewayEventExecutor: (
|
|
3
|
+
export declare const getAPIGatewayEventExecutor: (getCustomActionProcessors?: ActionProcessorListResolver) => (event: import("aws-lambda").APIGatewayProxyEvent, context: Context) => Promise<{
|
|
5
4
|
statusCode: any;
|
|
6
5
|
body: any;
|
|
7
6
|
headers: any;
|
|
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
|
|
|
18
18
|
const quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
19
19
|
const quidproquo_core_1 = require("quidproquo-core");
|
|
20
20
|
const lambdaConfig_1 = require("./lambdaConfig");
|
|
21
|
-
|
|
22
|
-
const
|
|
21
|
+
const logger_1 = require("./logger/logger");
|
|
22
|
+
const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
|
|
23
23
|
// @ts-ignore - Special webpack loader
|
|
24
24
|
const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
|
|
25
25
|
// TODO: Make this a util or something based on server time or something..
|
|
@@ -39,25 +39,13 @@ const ErrorTypeHttpResponseMap = {
|
|
|
39
39
|
[quidproquo_core_1.ErrorTypeEnum.NoContent]: 204,
|
|
40
40
|
[quidproquo_core_1.ErrorTypeEnum.Invalid]: 422,
|
|
41
41
|
};
|
|
42
|
-
const getAPIGatewayEventExecutor = (
|
|
42
|
+
const getAPIGatewayEventExecutor = (getCustomActionProcessors = () => ({})) => {
|
|
43
43
|
return (event, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
44
|
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
45
45
|
// Build a processor for the session and stuff
|
|
46
46
|
// Remove the non route ones ~ let the story execute action add them
|
|
47
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getAPIGatewayEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_1.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
48
|
-
const
|
|
49
|
-
// addResult(
|
|
50
|
-
// envConfig.appName,
|
|
51
|
-
// getDateNow(),
|
|
52
|
-
// doWeCarePath,
|
|
53
|
-
// "route-infrastructure",
|
|
54
|
-
// "infrastructure",
|
|
55
|
-
// "askRoute",
|
|
56
|
-
// result
|
|
57
|
-
// );
|
|
58
|
-
});
|
|
59
|
-
// // Run the callback
|
|
60
|
-
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
47
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getAPIGatewayEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader_1.dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_1.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
48
|
+
const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.API);
|
|
61
49
|
const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
|
|
62
50
|
// Run the callback
|
|
63
51
|
if (!result.error) {
|
|
@@ -80,4 +68,4 @@ const getAPIGatewayEventExecutor = (dynamicModuleLoader, getCustomActionProcesso
|
|
|
80
68
|
};
|
|
81
69
|
exports.getAPIGatewayEventExecutor = getAPIGatewayEventExecutor;
|
|
82
70
|
// Default executor
|
|
83
|
-
exports.executeAPIGatewayEvent = (0, exports.getAPIGatewayEventExecutor)(
|
|
71
|
+
exports.executeAPIGatewayEvent = (0, exports.getAPIGatewayEventExecutor)();
|
|
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
|
|
|
18
18
|
const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
|
|
19
19
|
const quidproquo_core_1 = require("quidproquo-core");
|
|
20
20
|
const lambdaConfig_1 = require("./lambdaConfig");
|
|
21
|
-
|
|
22
|
-
const
|
|
21
|
+
const logger_1 = require("./logger/logger");
|
|
22
|
+
const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
|
|
23
23
|
// @ts-ignore - Special webpack loader
|
|
24
24
|
const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
|
|
25
25
|
// TODO: Make this a util or something based on server time or something..
|
|
@@ -30,12 +30,10 @@ const getEventBridgeEventExecutor = (dynamicModuleLoader, getCustomActionProcess
|
|
|
30
30
|
const lambdaRuntimeConfig = JSON.parse(process.env.lambdaRuntimeConfig || '{}');
|
|
31
31
|
// Build a processor for the session and stuff
|
|
32
32
|
// Remove the non event ones
|
|
33
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getEventBridgeEventActionProcessor)(lambdaRuntimeConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
34
|
-
const
|
|
35
|
-
// Run the callback
|
|
36
|
-
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
33
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getEventBridgeEventActionProcessor)(lambdaRuntimeConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
34
|
+
const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.EVENT_BRIDGE_EVENT);
|
|
37
35
|
yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
|
|
38
36
|
});
|
|
39
37
|
};
|
|
40
38
|
exports.getEventBridgeEventExecutor = getEventBridgeEventExecutor;
|
|
41
|
-
exports.executeEventBridgeEvent = (0, exports.getEventBridgeEventExecutor)(
|
|
39
|
+
exports.executeEventBridgeEvent = (0, exports.getEventBridgeEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
|
|
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
|
|
|
18
18
|
const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
|
|
19
19
|
const lambdaConfig_1 = require("./lambdaConfig");
|
|
20
20
|
const quidproquo_core_1 = require("quidproquo-core");
|
|
21
|
-
|
|
22
|
-
const
|
|
21
|
+
const logger_1 = require("./logger/logger");
|
|
22
|
+
const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
|
|
23
23
|
// @ts-ignore - Special webpack loader
|
|
24
24
|
const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
|
|
25
25
|
// TODO: Make this a util or something based on server time or something..
|
|
@@ -30,10 +30,8 @@ const getOriginRequestEventExecutor = (dynamicModuleLoader, getCustomActionProce
|
|
|
30
30
|
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
31
31
|
// Build a processor for the session and stuff
|
|
32
32
|
// Remove the non route ones ~ let the story execute action add them
|
|
33
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getCloudFrontOriginRequestEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
34
|
-
const
|
|
35
|
-
// Run the callback
|
|
36
|
-
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
33
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getCloudFrontOriginRequestEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
34
|
+
const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.EVENT_SEO_OR);
|
|
37
35
|
const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
|
|
38
36
|
// Run the callback
|
|
39
37
|
if (!result.error) {
|
|
@@ -71,4 +69,4 @@ const getOriginRequestEventExecutor = (dynamicModuleLoader, getCustomActionProce
|
|
|
71
69
|
};
|
|
72
70
|
exports.getOriginRequestEventExecutor = getOriginRequestEventExecutor;
|
|
73
71
|
// Default executor
|
|
74
|
-
exports.executeEventOriginRequest = (0, exports.getOriginRequestEventExecutor)(
|
|
72
|
+
exports.executeEventOriginRequest = (0, exports.getOriginRequestEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.executeS3FileWriteEvent = void 0;
|
|
13
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
14
|
+
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
15
|
+
const storyResultToMetadata_1 = require("./storyResultToMetadata");
|
|
16
|
+
const readLogFromBucket = (bucketName, region, key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
var _a;
|
|
18
|
+
try {
|
|
19
|
+
const s3Client = new client_s3_1.S3Client({ region });
|
|
20
|
+
const response = yield s3Client.send(new client_s3_1.GetObjectCommand({
|
|
21
|
+
Key: key,
|
|
22
|
+
Bucket: bucketName,
|
|
23
|
+
}));
|
|
24
|
+
const storyResult = JSON.parse((yield ((_a = response.Body) === null || _a === void 0 ? void 0 : _a.transformToString())) || '{}');
|
|
25
|
+
return (0, storyResultToMetadata_1.storyResultToMetadata)(storyResult, key);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.log(`Error: ${bucketName}::${key} - ${err}`);
|
|
29
|
+
throw err;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const writeStoryResultMetadataToDynamo = (tableName, storyResultMetadata, region) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
const dynamoDBClient = new client_dynamodb_1.DynamoDBClient({ region });
|
|
34
|
+
const putItemCommand = new client_dynamodb_1.PutItemCommand({
|
|
35
|
+
TableName: tableName,
|
|
36
|
+
Item: {
|
|
37
|
+
startedAtWithCorrelation: {
|
|
38
|
+
S: `${storyResultMetadata.startedAt}#${storyResultMetadata.correlation}`,
|
|
39
|
+
},
|
|
40
|
+
runtimeType: { S: storyResultMetadata.runtimeType },
|
|
41
|
+
error: { S: storyResultMetadata.error || '' },
|
|
42
|
+
generic: { S: storyResultMetadata.generic },
|
|
43
|
+
moduleName: { S: storyResultMetadata.moduleName },
|
|
44
|
+
fromCorrelation: { S: storyResultMetadata.fromCorrelation || '' },
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
try {
|
|
48
|
+
yield dynamoDBClient.send(putItemCommand);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
console.error(`Failed to insert storyResultMetadata into DynamoDB: ${err}`);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
const executeS3FileWriteEvent = (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
|
+
for (const record of event.Records) {
|
|
56
|
+
const bucketName = record.s3.bucket.name;
|
|
57
|
+
const awsRegion = record.awsRegion;
|
|
58
|
+
const key = record.s3.object.key;
|
|
59
|
+
const storyResultMetadata = yield readLogFromBucket(bucketName, awsRegion, key);
|
|
60
|
+
yield writeStoryResultMetadataToDynamo(bucketName, storyResultMetadata, awsRegion);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
exports.executeS3FileWriteEvent = executeS3FileWriteEvent;
|
|
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
|
|
|
18
18
|
const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
|
|
19
19
|
const lambdaConfig_1 = require("./lambdaConfig");
|
|
20
20
|
const quidproquo_core_1 = require("quidproquo-core");
|
|
21
|
-
|
|
22
|
-
const
|
|
21
|
+
const logger_1 = require("./logger/logger");
|
|
22
|
+
const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
|
|
23
23
|
// @ts-ignore - Special webpack loader
|
|
24
24
|
const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
|
|
25
25
|
// TODO: Make this a util or something based on server time or something..
|
|
@@ -28,10 +28,8 @@ const getStoryActionRuntime = (dynamicModuleLoader, getCustomActionProcessors =
|
|
|
28
28
|
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
29
29
|
// Build a processor for the session and stuff
|
|
30
30
|
// Remove the non route ones ~ let the story execute action add them
|
|
31
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getSQSEventRecordActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
32
|
-
const
|
|
33
|
-
// Run the callback
|
|
34
|
-
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
31
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getSQSEventRecordActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
32
|
+
const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.QUEUE_EVENT);
|
|
35
33
|
return resolveStory;
|
|
36
34
|
});
|
|
37
35
|
exports.getStoryActionRuntime = getStoryActionRuntime;
|
|
@@ -61,4 +59,4 @@ const getSQSEventExecutor = (dynamicModuleLoader, getCustomActionProcessors = ()
|
|
|
61
59
|
};
|
|
62
60
|
exports.getSQSEventExecutor = getSQSEventExecutor;
|
|
63
61
|
// Default executor
|
|
64
|
-
exports.executeSQSEvent = (0, exports.getSQSEventExecutor)(
|
|
62
|
+
exports.executeSQSEvent = (0, exports.getSQSEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
|
|
@@ -18,8 +18,9 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
|
|
|
18
18
|
const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
|
|
19
19
|
const quidproquo_core_1 = require("quidproquo-core");
|
|
20
20
|
const lambdaConfig_1 = require("./lambdaConfig");
|
|
21
|
+
const logger_1 = require("./logger/logger");
|
|
21
22
|
// @ts-ignore - Special webpack loader
|
|
22
|
-
const
|
|
23
|
+
const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
|
|
23
24
|
// @ts-ignore - Special webpack loader
|
|
24
25
|
const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
|
|
25
26
|
// TODO: Make this a util or something based on server time or something..
|
|
@@ -29,19 +30,8 @@ const getServiceFunctionExecuteEventExecutor = (dynamicModuleLoader, getCustomAc
|
|
|
29
30
|
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
30
31
|
// Build a processor for the session and stuff
|
|
31
32
|
// Remove the non route ones ~ let the story execute action add them
|
|
32
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionExecuteEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
33
|
-
const
|
|
34
|
-
// addResult(
|
|
35
|
-
// envConfig.appName,
|
|
36
|
-
// getDateNow(),
|
|
37
|
-
// doWeCarePath,
|
|
38
|
-
// "route-infrastructure",
|
|
39
|
-
// "infrastructure",
|
|
40
|
-
// "askRoute",
|
|
41
|
-
// result
|
|
42
|
-
// );
|
|
43
|
-
});
|
|
44
|
-
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
33
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionExecuteEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
34
|
+
const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.SERVICE_FUNCTION_EXE);
|
|
45
35
|
const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
|
|
46
36
|
// just return the story result
|
|
47
37
|
return result;
|
|
@@ -49,4 +39,4 @@ const getServiceFunctionExecuteEventExecutor = (dynamicModuleLoader, getCustomAc
|
|
|
49
39
|
};
|
|
50
40
|
exports.getServiceFunctionExecuteEventExecutor = getServiceFunctionExecuteEventExecutor;
|
|
51
41
|
// Default executor
|
|
52
|
-
exports.executeServiceFunctionExecuteEvent = (0, exports.getServiceFunctionExecuteEventExecutor)(
|
|
42
|
+
exports.executeServiceFunctionExecuteEvent = (0, exports.getServiceFunctionExecuteEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getLogger = exports.storyLogger = void 0;
|
|
13
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
14
|
+
const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocessor-awslambda");
|
|
15
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
16
|
+
const constants_1 = require("../../constants");
|
|
17
|
+
const storyLogger = (result, qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
const bucketName = quidproquo_actionprocessor_awslambda_1.awsNamingUtils.getQpqRuntimeResourceNameFromConfig(constants_1.QPQ_LOG_BUCKET_NAME, qpqConfig, 'log');
|
|
19
|
+
const region = quidproquo_core_1.qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
20
|
+
const s3Client = new client_s3_1.S3Client({ region });
|
|
21
|
+
yield s3Client.send(new client_s3_1.PutObjectCommand({
|
|
22
|
+
Key: `${result.correlation}.json`,
|
|
23
|
+
Bucket: bucketName,
|
|
24
|
+
Body: JSON.stringify(result),
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
exports.storyLogger = storyLogger;
|
|
28
|
+
const getLogger = (qpqConfig) => (result) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
yield (0, exports.storyLogger)(result, qpqConfig);
|
|
30
|
+
});
|
|
31
|
+
exports.getLogger = getLogger;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.apiGenericTextExtractor = void 0;
|
|
4
|
+
const apiGenericTextExtractor = (storyResult) => {
|
|
5
|
+
if (storyResult.runtimeType === 'API') {
|
|
6
|
+
const transformEventParams = storyResult.history.find((h) => h.act.type === '@quidproquo-core/event/TransformEventParams');
|
|
7
|
+
const result = transformEventParams === null || transformEventParams === void 0 ? void 0 : transformEventParams.res;
|
|
8
|
+
return (result === null || result === void 0 ? void 0 : result[0].path) || '';
|
|
9
|
+
}
|
|
10
|
+
return '';
|
|
11
|
+
};
|
|
12
|
+
exports.apiGenericTextExtractor = apiGenericTextExtractor;
|