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