@webda/aws 2.0.0-beta.1 → 2.0.0

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.
Files changed (72) hide show
  1. package/lib/deployers/cloudformation.d.ts +2 -2
  2. package/lib/deployers/cloudformation.js +672 -693
  3. package/lib/deployers/cloudformation.js.map +1 -1
  4. package/lib/deployers/cloudformation.spec.js +428 -477
  5. package/lib/deployers/cloudformation.spec.js.map +1 -1
  6. package/lib/deployers/index.js +282 -342
  7. package/lib/deployers/index.js.map +1 -1
  8. package/lib/deployers/index.spec.d.ts +1 -1
  9. package/lib/deployers/index.spec.js +445 -510
  10. package/lib/deployers/index.spec.js.map +1 -1
  11. package/lib/deployers/lambda-entrypoint.js +4 -16
  12. package/lib/deployers/lambda-entrypoint.js.map +1 -1
  13. package/lib/deployers/lambdapackager.js +13 -52
  14. package/lib/deployers/lambdapackager.js.map +1 -1
  15. package/lib/deployers/lambdapackager.spec.js +25 -61
  16. package/lib/deployers/lambdapackager.spec.js.map +1 -1
  17. package/lib/index.d.ts +1 -1
  18. package/lib/index.js +1 -17
  19. package/lib/index.js.map +1 -1
  20. package/lib/index.spec.d.ts +1 -1
  21. package/lib/index.spec.js +28 -75
  22. package/lib/index.spec.js.map +1 -1
  23. package/lib/services/aws-mixin.d.ts +2 -0
  24. package/lib/services/aws-mixin.js +2 -7
  25. package/lib/services/aws-mixin.js.map +1 -1
  26. package/lib/services/cloudwatchlogger.d.ts +4 -2
  27. package/lib/services/cloudwatchlogger.js +63 -103
  28. package/lib/services/cloudwatchlogger.js.map +1 -1
  29. package/lib/services/cloudwatchlogger.spec.js +57 -100
  30. package/lib/services/cloudwatchlogger.spec.js.map +1 -1
  31. package/lib/services/dynamodb.d.ts +5 -3
  32. package/lib/services/dynamodb.js +458 -498
  33. package/lib/services/dynamodb.js.map +1 -1
  34. package/lib/services/dynamodb.spec.d.ts +2 -2
  35. package/lib/services/dynamodb.spec.js +232 -302
  36. package/lib/services/dynamodb.spec.js.map +1 -1
  37. package/lib/services/index.d.ts +9 -9
  38. package/lib/services/index.js +8 -24
  39. package/lib/services/index.js.map +1 -1
  40. package/lib/services/lambdacaller.d.ts +3 -1
  41. package/lib/services/lambdacaller.js +16 -29
  42. package/lib/services/lambdacaller.js.map +1 -1
  43. package/lib/services/lambdacaller.spec.js +43 -81
  44. package/lib/services/lambdacaller.spec.js.map +1 -1
  45. package/lib/services/lambdaserver.d.ts +1 -8
  46. package/lib/services/lambdaserver.js +168 -206
  47. package/lib/services/lambdaserver.js.map +1 -1
  48. package/lib/services/lambdaserver.spec.js +266 -354
  49. package/lib/services/lambdaserver.spec.js.map +1 -1
  50. package/lib/services/route53.js +112 -137
  51. package/lib/services/route53.js.map +1 -1
  52. package/lib/services/route53.spec.js +56 -92
  53. package/lib/services/route53.spec.js.map +1 -1
  54. package/lib/services/s3binary.d.ts +6 -2
  55. package/lib/services/s3binary.js +189 -251
  56. package/lib/services/s3binary.js.map +1 -1
  57. package/lib/services/s3binary.spec.js +185 -254
  58. package/lib/services/s3binary.spec.js.map +1 -1
  59. package/lib/services/secretsmanager.d.ts +2 -0
  60. package/lib/services/secretsmanager.js +32 -56
  61. package/lib/services/secretsmanager.js.map +1 -1
  62. package/lib/services/secretsmanager.spec.js +50 -93
  63. package/lib/services/secretsmanager.spec.js.map +1 -1
  64. package/lib/services/sqsqueue.d.ts +6 -8
  65. package/lib/services/sqsqueue.js +70 -98
  66. package/lib/services/sqsqueue.js.map +1 -1
  67. package/lib/services/sqsqueue.spec.js +95 -145
  68. package/lib/services/sqsqueue.spec.js.map +1 -1
  69. package/lib/shell.js +19 -38
  70. package/lib/shell.js.map +1 -1
  71. package/package.json +12 -9
  72. package/webda.module.json +48 -0
@@ -1,17 +1,5 @@
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.LambdaServer = void 0;
13
- const core_1 = require("@webda/core");
14
- const cookie_1 = require("cookie");
1
+ import { Core as Webda, HttpContext } from "@webda/core";
2
+ import { serialize as cookieSerialize } from "cookie";
15
3
  /**
16
4
  * The Lambda entrypoint for Webda
17
5
  *
@@ -21,7 +9,7 @@ const cookie_1 = require("cookie");
21
9
  *
22
10
  * @class
23
11
  */
24
- class LambdaServer extends core_1.Core {
12
+ export default class LambdaServer extends Webda {
25
13
  constructor() {
26
14
  super(...arguments);
27
15
  this._awsEventsHandlers = [];
@@ -30,7 +18,7 @@ class LambdaServer extends core_1.Core {
30
18
  * @ignore
31
19
  */
32
20
  flushHeaders(ctx) {
33
- var headers = ctx.getResponseHeaders() || {};
21
+ const headers = ctx.getResponseHeaders() || {};
34
22
  this._result = {
35
23
  headers,
36
24
  statusCode: ctx.statusCode
@@ -38,7 +26,7 @@ class LambdaServer extends core_1.Core {
38
26
  let cookies = ctx.getResponseCookies();
39
27
  this._result.multiValueHeaders = { "Set-Cookie": [] };
40
28
  for (let i in cookies) {
41
- this._result.multiValueHeaders["Set-Cookie"].push((0, cookie_1.serialize)(cookies[i].name, cookies[i].value, cookies[i].options || {}));
29
+ this._result.multiValueHeaders["Set-Cookie"].push(cookieSerialize(cookies[i].name, cookies[i].value, cookies[i].options || {}));
42
30
  }
43
31
  }
44
32
  /**
@@ -49,19 +37,6 @@ class LambdaServer extends core_1.Core {
49
37
  this._result.body = ctx.getResponseBody();
50
38
  }
51
39
  }
52
- /**
53
- * Retrieve client information from Lambda context
54
- *
55
- * @param reqCtx
56
- * @returns
57
- */
58
- getClientInfo(reqCtx) {
59
- let res = new core_1.ClientInfo();
60
- res.ip = reqCtx.identity.sourceIp;
61
- res.userAgent = reqCtx.identity.userAgent;
62
- res.set("lambdaRequestContext", reqCtx);
63
- return res;
64
- }
65
40
  /**
66
41
  * Register a service to handle AWS Events
67
42
  * @param service
@@ -71,203 +46,193 @@ class LambdaServer extends core_1.Core {
71
46
  this._awsEventsHandlers.push(service);
72
47
  }
73
48
  }
74
- handleAWSEvent(source, events) {
75
- return __awaiter(this, void 0, void 0, function* () {
76
- for (let i in this._awsEventsHandlers) {
77
- let handler = this._awsEventsHandlers[i];
78
- if (handler.isAWSEventHandled(source, events)) {
79
- yield handler.handleAWSEvent(source, events);
80
- }
49
+ async handleAWSEvent(source, events) {
50
+ for (let i in this._awsEventsHandlers) {
51
+ let handler = this._awsEventsHandlers[i];
52
+ if (handler.isAWSEventHandled(source, events)) {
53
+ await handler.handleAWSEvent(source, events);
81
54
  }
82
- });
55
+ }
83
56
  }
84
57
  /**
85
58
  * Analyse events to try to find its type
86
59
  * @param events
87
60
  * @returns
88
61
  */
89
- handleAWSEvents(events) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- if (events.Records) {
92
- let source = events.Records[0].eventSource;
93
- yield this.handleAWSEvent(source, events);
94
- return true;
95
- }
96
- else if (events.invocationId && events.records) {
97
- yield this.handleAWSEvent("aws:kinesis", events);
98
- return true;
99
- }
100
- else if (events["detail-type"] && events.detail && events.resources) {
101
- yield this.handleAWSEvent("aws:scheduled-event", events);
102
- return true;
103
- }
104
- else if (events.awslogs) {
105
- yield this.handleAWSEvent("aws:cloudwatch-logs", events);
106
- return true;
107
- }
108
- else if (events["CodePipeline.job"]) {
109
- yield this.handleAWSEvent("aws:codepipeline", events);
110
- return true;
111
- }
112
- else if (events.identityPoolId) {
113
- yield this.handleAWSEvent("aws:cognito", events);
114
- return true;
115
- }
116
- else if (events.configRuleId) {
117
- yield this.handleAWSEvent("aws:config", events);
118
- return true;
119
- }
120
- else if (events.jobDefinition || events.jobId) {
121
- yield this.handleAWSEvent("aws:batch", events);
122
- return true;
123
- }
124
- return false;
125
- });
62
+ async handleAWSEvents(events) {
63
+ if (events.Records) {
64
+ await this.handleAWSEvent(events.Records[0].eventSource, events);
65
+ return true;
66
+ }
67
+ else if (events.invocationId && events.records) {
68
+ await this.handleAWSEvent("aws:kinesis", events);
69
+ return true;
70
+ }
71
+ else if (events["detail-type"] && events.detail && events.resources) {
72
+ await this.handleAWSEvent("aws:scheduled-event", events);
73
+ return true;
74
+ }
75
+ else if (events.awslogs) {
76
+ await this.handleAWSEvent("aws:cloudwatch-logs", events);
77
+ return true;
78
+ }
79
+ else if (events["CodePipeline.job"]) {
80
+ await this.handleAWSEvent("aws:codepipeline", events);
81
+ return true;
82
+ }
83
+ else if (events.identityPoolId) {
84
+ await this.handleAWSEvent("aws:cognito", events);
85
+ return true;
86
+ }
87
+ else if (events.configRuleId) {
88
+ await this.handleAWSEvent("aws:config", events);
89
+ return true;
90
+ }
91
+ else if (events.jobDefinition || events.jobId) {
92
+ await this.handleAWSEvent("aws:batch", events);
93
+ return true;
94
+ }
95
+ return false;
126
96
  }
127
97
  /**
128
98
  * Need to unit test this part, with sample of data coming from the API Gateway
129
99
  *
130
100
  * @ignore
131
101
  */
132
- handleRequest(sourceEvent, context) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- yield this.init();
135
- // Handle AWS event
136
- if (yield this.handleAWSEvents(sourceEvent)) {
137
- this.log("INFO", "Handled AWS event", sourceEvent);
102
+ async handleRequest(sourceEvent, context) {
103
+ await this.init();
104
+ // Handle AWS event
105
+ if (await this.handleAWSEvents(sourceEvent)) {
106
+ this.log("INFO", "Handled AWS event", sourceEvent);
107
+ return;
108
+ }
109
+ // Manual launch of webda
110
+ if (sourceEvent.command === "launch" && sourceEvent.service && sourceEvent.method) {
111
+ let commandEvent = sourceEvent;
112
+ let args = commandEvent.args || [];
113
+ this.log("INFO", "Executing", commandEvent.method, "on", commandEvent.service, "with", args);
114
+ let service = this.getService(commandEvent.service);
115
+ if (!service) {
116
+ this.log("ERROR", "Cannot find", commandEvent.service);
138
117
  return;
139
118
  }
140
- // Manual launch of webda
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
- if (!service) {
147
- this.log("ERROR", "Cannot find", commandEvent.service);
148
- return;
149
- }
150
- if (typeof service[commandEvent.method] !== "function") {
151
- this.log("ERROR", "Cannot find method", commandEvent.method, "on", commandEvent.service);
152
- return;
153
- }
154
- service[commandEvent.method](...args);
155
- this.log("INFO", "Finished");
119
+ if (typeof service[commandEvent.method] !== "function") {
120
+ this.log("ERROR", "Cannot find method", commandEvent.method, "on", commandEvent.service);
156
121
  return;
157
122
  }
158
- let event = sourceEvent;
159
- context.callbackWaitsForEmptyEventLoop =
160
- (this.getConfiguration().parameters && this.getConfiguration().parameters.waitForEmptyEventLoop) || false;
161
- this._result = {};
162
- var vhost;
163
- var i;
164
- var headers = event.headers || {};
165
- vhost = headers.Host;
166
- var method = event.httpMethod || "GET";
167
- var protocol = headers["CloudFront-Forwarded-Proto"] || "https";
168
- var port = headers["X-Forwarded-Port"] || 443;
169
- if (typeof port === "string") {
170
- port = Number(port);
171
- if (isNaN(port)) {
172
- port = 443;
173
- }
174
- }
175
- var resourcePath = event.path;
176
- // Rebuild query string
177
- if (event.queryStringParameters) {
178
- var sep = "?";
179
- for (i in event.queryStringParameters) {
180
- // If additional error code it will be contained so need to check for &
181
- // May need to add urlencode
182
- resourcePath += sep + i + "=" + event.queryStringParameters[i];
183
- sep = "&";
184
- }
185
- }
186
- this.log("INFO", event.httpMethod || "GET", event.path);
187
- let httpContext = new core_1.HttpContext(vhost, method, resourcePath, protocol, port, headers);
188
- if (["PUT", "PATCH", "POST", "DELETE"].includes(method)) {
189
- httpContext.setBody(event.body);
123
+ await service[commandEvent.method](...args);
124
+ this.log("INFO", "Finished");
125
+ return;
126
+ }
127
+ let event = sourceEvent;
128
+ context.callbackWaitsForEmptyEventLoop =
129
+ (this.getConfiguration().parameters && this.getConfiguration().parameters.waitForEmptyEventLoop) || false;
130
+ this._result = {};
131
+ let vhost;
132
+ let i;
133
+ let headers = event.headers || {};
134
+ vhost = headers.Host;
135
+ let method = event.httpMethod || "GET";
136
+ let protocol = headers["CloudFront-Forwarded-Proto"] || "https";
137
+ let port = headers["X-Forwarded-Port"] || 443;
138
+ if (typeof port === "string") {
139
+ port = Number(port);
140
+ if (isNaN(port)) {
141
+ port = 443;
190
142
  }
191
- this.computePrefix(event, httpContext);
192
- var ctx = yield this.newContext(httpContext);
193
- // TODO Get all client info
194
- // event['requestContext']['identity']['sourceIp']
195
- ctx.clientInfo = this.getClientInfo(event.requestContext);
196
- ctx.clientInfo.locale = headers["Accept-Language"];
197
- ctx.clientInfo.referer = headers["Referer"] || headers.referer;
198
- // Debug mode
199
- yield this.emitSync("Webda.Request", { context: ctx });
200
- if (this.getConfiguration().parameters.lambdaRequestHeader) {
201
- ctx.setHeader(this.getConfiguration().parameters.lambdaRequestHeader, context.awsRequestId);
143
+ }
144
+ let resourcePath = event.path;
145
+ // Rebuild query string
146
+ if (event.queryStringParameters) {
147
+ let sep = "?";
148
+ for (i in event.queryStringParameters) {
149
+ // If additional error code it will be contained so need to check for &
150
+ // May need to add urlencode
151
+ resourcePath += sep + i + "=" + event.queryStringParameters[i];
152
+ sep = "&";
202
153
  }
203
- // Fallback on reference as Origin is not always set by Edge
204
- let origin = headers.Origin || headers.origin || ctx.clientInfo.referer;
205
- try {
206
- // Set predefined headers for CORS
207
- if (yield this.checkCORSRequest(ctx)) {
208
- if (origin) {
209
- ctx.setHeader("Access-Control-Allow-Origin", origin);
210
- }
211
- }
212
- else {
213
- // Prevent CSRF
214
- this.log("INFO", "CSRF denied from", origin);
215
- ctx.statusCode = 401;
216
- return this.handleLambdaReturn(ctx);
217
- }
218
- // Check request overall
219
- if (!(yield this.checkRequest(ctx))) {
220
- this.log("WARN", "Request refused");
221
- throw 403;
154
+ }
155
+ this.log("INFO", event.httpMethod || "GET", event.path);
156
+ let httpContext = new HttpContext(vhost, method, resourcePath, protocol, port, headers).setClientIp(headers["X-Real-Ip"]); // Might use identity.sourceIp
157
+ if (["PUT", "PATCH", "POST", "DELETE"].includes(method)) {
158
+ httpContext.setBody(event.body);
159
+ }
160
+ this.computePrefix(event, httpContext);
161
+ let ctx = await this.newContext(httpContext);
162
+ // TODO Get all client info
163
+ // event['requestContext']['identity']['sourceIp']
164
+ // Debug mode
165
+ await this.emitSync("Webda.Request", { context: ctx });
166
+ if (this.getConfiguration().parameters.lambdaRequestHeader) {
167
+ ctx.setHeader(this.getConfiguration().parameters.lambdaRequestHeader, context.awsRequestId);
168
+ }
169
+ // Fallback on reference as Origin is not always set by Edge
170
+ let origin = headers.Origin || headers.origin || headers.Referer || headers.referer;
171
+ try {
172
+ // Set predefined headers for CORS
173
+ if (await this.checkCORSRequest(ctx)) {
174
+ if (origin) {
175
+ ctx.setHeader("Access-Control-Allow-Origin", origin);
222
176
  }
223
177
  }
224
- catch (err) {
225
- if (typeof err === "number") {
226
- ctx.statusCode = err;
227
- return this.handleLambdaReturn(ctx);
228
- }
229
- throw err;
178
+ else {
179
+ // Prevent CSRF
180
+ this.log("INFO", "CSRF denied from", origin);
181
+ ctx.statusCode = 401;
182
+ return this.handleLambdaReturn(ctx);
230
183
  }
231
- if (protocol === "https") {
232
- // Add the HSTS header
233
- ctx.setHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload");
184
+ // Check request overall
185
+ if (!(await this.checkRequest(ctx))) {
186
+ this.log("WARN", "Request refused");
187
+ throw 403;
234
188
  }
235
- // Might want to customize this one
236
- ctx.setHeader("Access-Control-Max-Age", 3600);
237
- ctx.setHeader("Access-Control-Allow-Credentials", "true");
238
- ctx.setHeader("Access-Control-Allow-Headers", headers["access-control-request-headers"] || "content-type");
239
- if (method === "OPTIONS") {
240
- // Return allow all methods for now
241
- let routes = this.router.getRouteMethodsFromUrl(ctx.getHttpContext().getRelativeUri());
242
- if (routes.length == 0) {
243
- ctx.statusCode = 404;
244
- return this.handleLambdaReturn(ctx);
245
- }
246
- routes.push("OPTIONS");
247
- ctx.setHeader("Access-Control-Allow-Methods", routes.join(","));
189
+ }
190
+ catch (err) {
191
+ if (typeof err === "number") {
192
+ ctx.statusCode = err;
248
193
  return this.handleLambdaReturn(ctx);
249
194
  }
250
- if (!this.updateContextWithRoute(ctx)) {
251
- this.emitSync("Webda.404", { context: ctx });
195
+ throw err;
196
+ }
197
+ if (protocol === "https") {
198
+ // Add the HSTS header
199
+ ctx.setHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload");
200
+ }
201
+ // Might want to customize this one
202
+ ctx.setHeader("Access-Control-Max-Age", 3600);
203
+ ctx.setHeader("Access-Control-Allow-Credentials", "true");
204
+ ctx.setHeader("Access-Control-Allow-Headers", headers["access-control-request-headers"] || "content-type");
205
+ if (method === "OPTIONS") {
206
+ // Return allow all methods for now
207
+ let routes = this.router.getRouteMethodsFromUrl(ctx.getHttpContext().getRelativeUri());
208
+ if (routes.length == 0) {
252
209
  ctx.statusCode = 404;
253
210
  return this.handleLambdaReturn(ctx);
254
211
  }
255
- yield ctx.init();
256
- try {
257
- yield ctx.execute();
258
- return this.handleLambdaReturn(ctx);
212
+ routes.push("OPTIONS");
213
+ ctx.setHeader("Access-Control-Allow-Methods", routes.join(","));
214
+ return this.handleLambdaReturn(ctx);
215
+ }
216
+ if (!this.updateContextWithRoute(ctx)) {
217
+ this.emitSync("Webda.404", { context: ctx });
218
+ ctx.statusCode = 404;
219
+ return this.handleLambdaReturn(ctx);
220
+ }
221
+ await ctx.init();
222
+ try {
223
+ await ctx.execute();
224
+ return this.handleLambdaReturn(ctx);
225
+ }
226
+ catch (err) {
227
+ if (typeof err === "number") {
228
+ ctx.statusCode = err;
259
229
  }
260
- catch (err) {
261
- if (typeof err === "number") {
262
- ctx.statusCode = err;
263
- }
264
- else {
265
- this.log("ERROR", err);
266
- ctx.statusCode = 500;
267
- }
268
- return this.handleLambdaReturn(ctx);
230
+ else {
231
+ this.log("ERROR", err);
232
+ ctx.statusCode = 500;
269
233
  }
270
- });
234
+ return this.handleLambdaReturn(ctx);
235
+ }
271
236
  }
272
237
  /**
273
238
  * Based on API Gateway event compute the prefix if any
@@ -290,15 +255,12 @@ class LambdaServer extends core_1.Core {
290
255
  * @param context
291
256
  * @returns
292
257
  */
293
- handleLambdaReturn(context) {
294
- return __awaiter(this, void 0, void 0, function* () {
295
- yield this.emitSync("Webda.Result", { context });
296
- yield context.end();
297
- // TODO Clean to use ...this._result
298
- return this._result;
299
- });
258
+ async handleLambdaReturn(context) {
259
+ await this.emitSync("Webda.Result", { context });
260
+ await context.end();
261
+ // TODO Clean to use ...this._result
262
+ return this._result;
300
263
  }
301
264
  }
302
- exports.default = LambdaServer;
303
- exports.LambdaServer = LambdaServer;
265
+ export { LambdaServer };
304
266
  //# sourceMappingURL=lambdaserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lambdaserver.js","sourceRoot":"","sources":["../../src/services/lambdaserver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lambdaserver.js","sourceRoot":"","sources":["../../src/services/lambdaserver.ts"],"names":[],"mappings":"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"}