@webda/aws 4.0.0-beta.1 → 4.0.0-beta.3

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