@webda/aws 1.6.0-beta.3 → 2.0.0-beta.2
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/deployers/cloudformation.d.ts +8 -7
- package/lib/deployers/cloudformation.js +85 -75
- package/lib/deployers/cloudformation.js.map +1 -1
- package/lib/deployers/cloudformation.spec.d.ts +1 -0
- package/lib/deployers/cloudformation.spec.js +547 -0
- package/lib/deployers/cloudformation.spec.js.map +1 -0
- package/lib/deployers/index.d.ts +8 -7
- package/lib/deployers/index.js +99 -94
- package/lib/deployers/index.js.map +1 -1
- package/lib/deployers/index.spec.d.ts +8 -0
- package/lib/deployers/index.spec.js +628 -0
- package/lib/deployers/index.spec.js.map +1 -0
- package/lib/deployers/lambdapackager.d.ts +1 -0
- package/lib/deployers/lambdapackager.js +25 -1
- package/lib/deployers/lambdapackager.js.map +1 -1
- package/lib/deployers/lambdapackager.spec.d.ts +1 -0
- package/lib/deployers/lambdapackager.spec.js +76 -0
- package/lib/deployers/lambdapackager.spec.js.map +1 -0
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/index.spec.d.ts +10 -0
- package/lib/index.spec.js +86 -0
- package/lib/index.spec.js.map +1 -0
- package/lib/services/aws-mixin.d.ts +22 -1
- package/lib/services/aws-mixin.js +18 -20
- package/lib/services/aws-mixin.js.map +1 -1
- package/lib/services/cloudwatchlogger.d.ts +19 -8
- package/lib/services/cloudwatchlogger.js +39 -29
- package/lib/services/cloudwatchlogger.js.map +1 -1
- package/lib/services/cloudwatchlogger.spec.d.ts +1 -0
- package/lib/services/cloudwatchlogger.spec.js +147 -0
- package/lib/services/cloudwatchlogger.spec.js.map +1 -0
- package/lib/services/dynamodb.d.ts +49 -17
- package/lib/services/dynamodb.js +221 -80
- package/lib/services/dynamodb.js.map +1 -1
- package/lib/services/dynamodb.spec.d.ts +23 -0
- package/lib/services/dynamodb.spec.js +410 -0
- package/lib/services/dynamodb.spec.js.map +1 -0
- package/lib/services/index.d.ts +1 -1
- package/lib/services/index.js +6 -2
- package/lib/services/index.js.map +1 -1
- package/lib/services/lambdacaller.d.ts +26 -10
- package/lib/services/lambdacaller.js +10 -18
- package/lib/services/lambdacaller.js.map +1 -1
- package/lib/services/lambdacaller.spec.d.ts +1 -0
- package/lib/services/lambdacaller.spec.js +104 -0
- package/lib/services/lambdacaller.spec.js.map +1 -0
- package/lib/services/lambdaserver.d.ts +11 -4
- package/lib/services/lambdaserver.js +52 -46
- package/lib/services/lambdaserver.js.map +1 -1
- package/lib/services/lambdaserver.spec.d.ts +1 -0
- package/lib/services/lambdaserver.spec.js +449 -0
- package/lib/services/lambdaserver.spec.js.map +1 -0
- package/lib/services/route53.d.ts +4 -4
- package/lib/services/route53.js +34 -44
- package/lib/services/route53.js.map +1 -1
- package/lib/services/route53.spec.d.ts +1 -0
- package/lib/services/route53.spec.js +109 -0
- package/lib/services/route53.spec.js.map +1 -0
- package/lib/services/s3binary.d.ts +33 -53
- package/lib/services/s3binary.js +115 -242
- package/lib/services/s3binary.js.map +1 -1
- package/lib/services/s3binary.spec.d.ts +1 -0
- package/lib/services/s3binary.spec.js +336 -0
- package/lib/services/s3binary.spec.js.map +1 -0
- package/lib/services/secretsmanager.d.ts +23 -10
- package/lib/services/secretsmanager.js +13 -27
- package/lib/services/secretsmanager.js.map +1 -1
- package/lib/services/secretsmanager.spec.d.ts +1 -0
- package/lib/services/secretsmanager.spec.js +109 -0
- package/lib/services/secretsmanager.spec.js.map +1 -0
- package/lib/services/sqsqueue.d.ts +22 -7
- package/lib/services/sqsqueue.js +23 -36
- package/lib/services/sqsqueue.js.map +1 -1
- package/lib/services/sqsqueue.spec.d.ts +1 -0
- package/lib/services/sqsqueue.spec.js +206 -0
- package/lib/services/sqsqueue.spec.js.map +1 -0
- package/lib/shell.d.ts +1 -1
- package/lib/shell.js +4 -1
- package/lib/shell.js.map +1 -1
- package/package.json +27 -14
- package/webda.module.json +285 -12
|
@@ -0,0 +1,104 @@
|
|
|
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
32
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
33
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
34
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
35
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
36
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
37
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
42
|
+
const mocha_1 = require("@testdeck/mocha");
|
|
43
|
+
const test_1 = require("@webda/core/lib/test");
|
|
44
|
+
const assert = __importStar(require("assert"));
|
|
45
|
+
const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
|
|
46
|
+
const sinon = __importStar(require("sinon"));
|
|
47
|
+
const lambdacaller_1 = require("./lambdacaller");
|
|
48
|
+
const jobInfo = {
|
|
49
|
+
JOB_ORCHESTRATOR: "async",
|
|
50
|
+
JOB_ID: "webdaAsync",
|
|
51
|
+
JOB_SECRET_KEY: "",
|
|
52
|
+
JOB_HOOK: "http"
|
|
53
|
+
};
|
|
54
|
+
let LambdaCallerTest = class LambdaCallerTest extends test_1.WebdaTest {
|
|
55
|
+
call() {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
// CodeCoverage test
|
|
58
|
+
const lambdaCaller = new lambdacaller_1.LambdaCaller(this.webda, "plop", { arn: "testor" });
|
|
59
|
+
const mock = (0, aws_sdk_client_mock_1.mockClient)(client_lambda_1.Lambda)
|
|
60
|
+
.on(client_lambda_1.InvokeCommand)
|
|
61
|
+
.resolves({
|
|
62
|
+
Payload: Buffer.from(JSON.stringify({ plop: true }))
|
|
63
|
+
});
|
|
64
|
+
try {
|
|
65
|
+
lambdaCaller.resolve();
|
|
66
|
+
assert.deepStrictEqual(yield lambdaCaller.execute(), { plop: true });
|
|
67
|
+
assert.deepStrictEqual(yield lambdaCaller.execute({}, true, "myarn"), { plop: true });
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
mock.restore();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
launcher() {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const caller = new lambdacaller_1.LambdaCaller(this.webda, "plop", {});
|
|
77
|
+
let stub = sinon.stub(caller, "execute").resolves();
|
|
78
|
+
caller.launchAction(undefined, jobInfo);
|
|
79
|
+
assert.ok(stub.callCount === 1);
|
|
80
|
+
assert.deepStrictEqual(stub.getCall(0).args, [
|
|
81
|
+
{
|
|
82
|
+
command: "launch",
|
|
83
|
+
service: jobInfo.JOB_ORCHESTRATOR,
|
|
84
|
+
method: "runWebdaAsyncAction",
|
|
85
|
+
args: [jobInfo],
|
|
86
|
+
action: undefined,
|
|
87
|
+
// We also put the value in JOB_INFO for other type of runner
|
|
88
|
+
JOB_INFO: jobInfo
|
|
89
|
+
},
|
|
90
|
+
true
|
|
91
|
+
]);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
__decorate([
|
|
96
|
+
mocha_1.test
|
|
97
|
+
], LambdaCallerTest.prototype, "call", null);
|
|
98
|
+
__decorate([
|
|
99
|
+
mocha_1.test
|
|
100
|
+
], LambdaCallerTest.prototype, "launcher", null);
|
|
101
|
+
LambdaCallerTest = __decorate([
|
|
102
|
+
mocha_1.suite
|
|
103
|
+
], LambdaCallerTest);
|
|
104
|
+
//# sourceMappingURL=lambdacaller.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambdacaller.spec.js","sourceRoot":"","sources":["../../src/services/lambdacaller.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA+D;AAC/D,2CAA8C;AAE9C,+CAAiD;AACjD,+CAAiC;AACjC,6DAAiD;AACjD,6CAA+B;AAC/B,iDAA8C;AAE9C,MAAM,OAAO,GAAY;IACvB,gBAAgB,EAAE,OAAO;IACzB,MAAM,EAAE,YAAY;IACpB,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,gBAAS;IAEhC,IAAI;;YACR,oBAAoB;YACpB,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7E,MAAM,IAAI,GAAG,IAAA,gCAAU,EAAC,sBAAM,CAAC;iBAC5B,EAAE,CAAC,6BAAa,CAAC;iBACjB,QAAQ,CAAC;gBACR,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACrD,CAAC,CAAC;YACL,IAAI;gBACF,YAAY,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,CAAC,eAAe,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,MAAM,CAAC,eAAe,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACvF;oBAAS;gBACR,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;QACH,CAAC;KAAA;IAGK,QAAQ;;YACZ,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpD,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC3C;oBACE,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE,OAAO,CAAC,gBAAgB;oBACjC,MAAM,EAAE,qBAAqB;oBAC7B,IAAI,EAAE,CAAC,OAAO,CAAC;oBACf,MAAM,EAAE,SAAS;oBACjB,6DAA6D;oBAC7D,QAAQ,EAAE,OAAO;iBAClB;gBACD,IAAI;aACL,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAA;AApCC;IADC,YAAI;4CAgBJ;AAGD;IADC,YAAI;gDAkBJ;AArCG,gBAAgB;IADrB,aAAK;GACA,gBAAgB,CAsCrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ClientInfo, Context, Core as Webda } from "@webda/core";
|
|
1
|
+
import { ClientInfo, Context, Core as Webda, HttpContext } from "@webda/core";
|
|
2
|
+
import { Context as LambdaContext } from "aws-lambda";
|
|
2
3
|
/**
|
|
3
4
|
* Handler for AWS Events definition
|
|
4
5
|
*/
|
|
@@ -65,18 +66,24 @@ export default class LambdaServer extends Webda {
|
|
|
65
66
|
*
|
|
66
67
|
* @ignore
|
|
67
68
|
*/
|
|
68
|
-
handleRequest(
|
|
69
|
+
handleRequest(sourceEvent: any, context: LambdaContext): Promise<{
|
|
69
70
|
headers?: any;
|
|
70
71
|
statusCode?: number;
|
|
71
72
|
multiValueHeaders?: any;
|
|
72
73
|
body?: any;
|
|
73
74
|
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Based on API Gateway event compute the prefix if any
|
|
77
|
+
* @param event
|
|
78
|
+
* @param httpContext
|
|
79
|
+
*/
|
|
80
|
+
computePrefix(event: any, httpContext: HttpContext): void;
|
|
74
81
|
/**
|
|
75
82
|
* Collect result from Context to this._result and return it
|
|
76
|
-
* @param
|
|
83
|
+
* @param context
|
|
77
84
|
* @returns
|
|
78
85
|
*/
|
|
79
|
-
handleLambdaReturn(
|
|
86
|
+
handleLambdaReturn(context: Context): Promise<{
|
|
80
87
|
headers?: any;
|
|
81
88
|
statusCode?: number;
|
|
82
89
|
multiValueHeaders?: any;
|
|
@@ -88,41 +88,40 @@ class LambdaServer extends core_1.Core {
|
|
|
88
88
|
*/
|
|
89
89
|
handleAWSEvents(events) {
|
|
90
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
let found = false;
|
|
92
91
|
if (events.Records) {
|
|
93
92
|
let source = events.Records[0].eventSource;
|
|
94
93
|
yield this.handleAWSEvent(source, events);
|
|
95
|
-
|
|
94
|
+
return true;
|
|
96
95
|
}
|
|
97
96
|
else if (events.invocationId && events.records) {
|
|
98
97
|
yield this.handleAWSEvent("aws:kinesis", events);
|
|
99
|
-
|
|
98
|
+
return true;
|
|
100
99
|
}
|
|
101
100
|
else if (events["detail-type"] && events.detail && events.resources) {
|
|
102
101
|
yield this.handleAWSEvent("aws:scheduled-event", events);
|
|
103
|
-
|
|
102
|
+
return true;
|
|
104
103
|
}
|
|
105
104
|
else if (events.awslogs) {
|
|
106
105
|
yield this.handleAWSEvent("aws:cloudwatch-logs", events);
|
|
107
|
-
|
|
106
|
+
return true;
|
|
108
107
|
}
|
|
109
108
|
else if (events["CodePipeline.job"]) {
|
|
110
109
|
yield this.handleAWSEvent("aws:codepipeline", events);
|
|
111
|
-
|
|
110
|
+
return true;
|
|
112
111
|
}
|
|
113
112
|
else if (events.identityPoolId) {
|
|
114
113
|
yield this.handleAWSEvent("aws:cognito", events);
|
|
115
|
-
|
|
114
|
+
return true;
|
|
116
115
|
}
|
|
117
116
|
else if (events.configRuleId) {
|
|
118
117
|
yield this.handleAWSEvent("aws:config", events);
|
|
119
|
-
|
|
118
|
+
return true;
|
|
120
119
|
}
|
|
121
120
|
else if (events.jobDefinition || events.jobId) {
|
|
122
121
|
yield this.handleAWSEvent("aws:batch", events);
|
|
123
|
-
|
|
122
|
+
return true;
|
|
124
123
|
}
|
|
125
|
-
return
|
|
124
|
+
return false;
|
|
126
125
|
});
|
|
127
126
|
}
|
|
128
127
|
/**
|
|
@@ -130,31 +129,33 @@ class LambdaServer extends core_1.Core {
|
|
|
130
129
|
*
|
|
131
130
|
* @ignore
|
|
132
131
|
*/
|
|
133
|
-
handleRequest(
|
|
132
|
+
handleRequest(sourceEvent, context) {
|
|
134
133
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
134
|
yield this.init();
|
|
136
135
|
// Handle AWS event
|
|
137
|
-
if (yield this.handleAWSEvents(
|
|
138
|
-
this.log("INFO", "Handled AWS event",
|
|
136
|
+
if (yield this.handleAWSEvents(sourceEvent)) {
|
|
137
|
+
this.log("INFO", "Handled AWS event", sourceEvent);
|
|
139
138
|
return;
|
|
140
139
|
}
|
|
141
140
|
// Manual launch of webda
|
|
142
|
-
if (
|
|
143
|
-
let
|
|
144
|
-
|
|
145
|
-
|
|
141
|
+
if (sourceEvent.command === "launch" && sourceEvent.service && sourceEvent.method) {
|
|
142
|
+
let commandEvent = sourceEvent;
|
|
143
|
+
let args = commandEvent.args || [];
|
|
144
|
+
this.log("INFO", "Executing", commandEvent.method, "on", commandEvent.service, "with", args);
|
|
145
|
+
let service = this.getService(commandEvent.service);
|
|
146
146
|
if (!service) {
|
|
147
|
-
this.log("ERROR", "Cannot find",
|
|
147
|
+
this.log("ERROR", "Cannot find", commandEvent.service);
|
|
148
148
|
return;
|
|
149
149
|
}
|
|
150
|
-
if (typeof service[
|
|
151
|
-
this.log("ERROR", "Cannot find method",
|
|
150
|
+
if (typeof service[commandEvent.method] !== "function") {
|
|
151
|
+
this.log("ERROR", "Cannot find method", commandEvent.method, "on", commandEvent.service);
|
|
152
152
|
return;
|
|
153
153
|
}
|
|
154
|
-
service[
|
|
154
|
+
service[commandEvent.method](...args);
|
|
155
155
|
this.log("INFO", "Finished");
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
|
+
let event = sourceEvent;
|
|
158
159
|
context.callbackWaitsForEmptyEventLoop =
|
|
159
160
|
(this.getConfiguration().parameters && this.getConfiguration().parameters.waitForEmptyEventLoop) || false;
|
|
160
161
|
this._result = {};
|
|
@@ -182,28 +183,12 @@ class LambdaServer extends core_1.Core {
|
|
|
182
183
|
sep = "&";
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
|
-
//
|
|
186
|
-
var body = event.body;
|
|
187
|
-
try {
|
|
188
|
-
// Try to interpret as JSON by default
|
|
189
|
-
body = JSON.parse(event.body);
|
|
190
|
-
}
|
|
191
|
-
catch (err) {
|
|
192
|
-
if (headers["Content-Type"] === "application/json") {
|
|
193
|
-
throw err;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
186
|
this.log("INFO", event.httpMethod || "GET", event.path);
|
|
197
|
-
let httpContext = new core_1.HttpContext(vhost, method, resourcePath, protocol, port,
|
|
198
|
-
if (
|
|
199
|
-
|
|
200
|
-
for (let j in event.pathParameters) {
|
|
201
|
-
relativeUri = relativeUri.replace(`\{${j}\}`, event.pathParameters[j]);
|
|
202
|
-
}
|
|
203
|
-
if (relativeUri !== event.path) {
|
|
204
|
-
httpContext.setPrefix(event.path.substr(0, event.path.length - relativeUri.length));
|
|
205
|
-
}
|
|
187
|
+
let httpContext = new core_1.HttpContext(vhost, method, resourcePath, protocol, port, headers).setClientIp(headers["X-Real-Ip"]);
|
|
188
|
+
if (["PUT", "PATCH", "POST", "DELETE"].includes(method)) {
|
|
189
|
+
httpContext.setBody(event.body);
|
|
206
190
|
}
|
|
191
|
+
this.computePrefix(event, httpContext);
|
|
207
192
|
var ctx = yield this.newContext(httpContext);
|
|
208
193
|
// TODO Get all client info
|
|
209
194
|
// event['requestContext']['identity']['sourceIp']
|
|
@@ -219,7 +204,7 @@ class LambdaServer extends core_1.Core {
|
|
|
219
204
|
let origin = headers.Origin || headers.origin || ctx.clientInfo.referer;
|
|
220
205
|
try {
|
|
221
206
|
// Set predefined headers for CORS
|
|
222
|
-
if (yield this.
|
|
207
|
+
if (yield this.checkCORSRequest(ctx)) {
|
|
223
208
|
if (origin) {
|
|
224
209
|
ctx.setHeader("Access-Control-Allow-Origin", origin);
|
|
225
210
|
}
|
|
@@ -230,6 +215,11 @@ class LambdaServer extends core_1.Core {
|
|
|
230
215
|
ctx.statusCode = 401;
|
|
231
216
|
return this.handleLambdaReturn(ctx);
|
|
232
217
|
}
|
|
218
|
+
// Check request overall
|
|
219
|
+
if (!(yield this.checkRequest(ctx))) {
|
|
220
|
+
this.log("WARN", "Request refused");
|
|
221
|
+
throw 403;
|
|
222
|
+
}
|
|
233
223
|
}
|
|
234
224
|
catch (err) {
|
|
235
225
|
if (typeof err === "number") {
|
|
@@ -279,15 +269,31 @@ class LambdaServer extends core_1.Core {
|
|
|
279
269
|
}
|
|
280
270
|
});
|
|
281
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Based on API Gateway event compute the prefix if any
|
|
274
|
+
* @param event
|
|
275
|
+
* @param httpContext
|
|
276
|
+
*/
|
|
277
|
+
computePrefix(event, httpContext) {
|
|
278
|
+
if (event.path !== event.resource) {
|
|
279
|
+
let relativeUri = event.resource;
|
|
280
|
+
for (let j in event.pathParameters) {
|
|
281
|
+
relativeUri = relativeUri.replace(new RegExp(`\\{${j}\\+?\\}`), event.pathParameters[j]);
|
|
282
|
+
}
|
|
283
|
+
if (relativeUri !== event.path) {
|
|
284
|
+
httpContext.setPrefix(event.path.substr(0, event.path.length - relativeUri.length));
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
282
288
|
/**
|
|
283
289
|
* Collect result from Context to this._result and return it
|
|
284
|
-
* @param
|
|
290
|
+
* @param context
|
|
285
291
|
* @returns
|
|
286
292
|
*/
|
|
287
|
-
handleLambdaReturn(
|
|
293
|
+
handleLambdaReturn(context) {
|
|
288
294
|
return __awaiter(this, void 0, void 0, function* () {
|
|
289
|
-
yield this.emitSync("Webda.Result", { context
|
|
290
|
-
yield
|
|
295
|
+
yield this.emitSync("Webda.Result", { context });
|
|
296
|
+
yield context.end();
|
|
291
297
|
// TODO Clean to use ...this._result
|
|
292
298
|
return this._result;
|
|
293
299
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambdaserver.js","sourceRoot":"","sources":["../../src/services/lambdaserver.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"lambdaserver.js","sourceRoot":"","sources":["../../src/services/lambdaserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|