@webda/aws 4.0.0-beta.2 → 4.0.0-beta.4

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 (169) hide show
  1. package/README.md +64 -7
  2. package/lib/deployers/awsdeployer.d.ts +340 -0
  3. package/lib/deployers/awsdeployer.d.ts.map +1 -0
  4. package/lib/deployers/awsdeployer.js +673 -0
  5. package/lib/deployers/awsdeployer.js.map +1 -0
  6. package/lib/deployers/cloudformation.service.d.ts +438 -0
  7. package/lib/deployers/cloudformation.service.d.ts.map +1 -0
  8. package/lib/deployers/cloudformation.service.js +889 -0
  9. package/lib/deployers/cloudformation.service.js.map +1 -0
  10. package/lib/deployers/index.d.ts +4 -254
  11. package/lib/deployers/index.d.ts.map +1 -1
  12. package/lib/deployers/index.js +4 -542
  13. package/lib/deployers/index.js.map +1 -1
  14. package/lib/deployers/lambda-entrypoint.d.ts +33 -1
  15. package/lib/deployers/lambda-entrypoint.d.ts.map +1 -1
  16. package/lib/deployers/lambda-entrypoint.js +44 -10
  17. package/lib/deployers/lambda-entrypoint.js.map +1 -1
  18. package/lib/deployers/lambdapackager.service.d.ts +123 -0
  19. package/lib/deployers/lambdapackager.service.d.ts.map +1 -0
  20. package/lib/deployers/lambdapackager.service.js +149 -0
  21. package/lib/deployers/lambdapackager.service.js.map +1 -0
  22. package/lib/deployers/zip.d.ts +42 -0
  23. package/lib/deployers/zip.d.ts.map +1 -0
  24. package/lib/deployers/zip.js +129 -0
  25. package/lib/deployers/zip.js.map +1 -0
  26. package/lib/index.d.ts +1 -0
  27. package/lib/index.d.ts.map +1 -1
  28. package/lib/index.js +1 -0
  29. package/lib/index.js.map +1 -1
  30. package/lib/services/aws-parameters.d.ts +33 -0
  31. package/lib/services/aws-parameters.d.ts.map +1 -0
  32. package/lib/services/aws-parameters.js +18 -0
  33. package/lib/services/aws-parameters.js.map +1 -0
  34. package/lib/services/awscommands.service.d.ts +39 -0
  35. package/lib/services/awscommands.service.d.ts.map +1 -0
  36. package/lib/services/awscommands.service.js +127 -0
  37. package/lib/services/awscommands.service.js.map +1 -0
  38. package/lib/services/cloudwatchlogger.service.d.ts +131 -0
  39. package/lib/services/cloudwatchlogger.service.d.ts.map +1 -0
  40. package/lib/services/{cloudwatchlogger.js → cloudwatchlogger.service.js} +60 -28
  41. package/lib/services/cloudwatchlogger.service.js.map +1 -0
  42. package/lib/services/contributors.d.ts +36 -0
  43. package/lib/services/contributors.d.ts.map +1 -0
  44. package/lib/services/contributors.js +2 -0
  45. package/lib/services/contributors.js.map +1 -0
  46. package/lib/services/dynamodb.service.d.ts +298 -0
  47. package/lib/services/dynamodb.service.d.ts.map +1 -0
  48. package/lib/services/dynamodb.service.js +986 -0
  49. package/lib/services/dynamodb.service.js.map +1 -0
  50. package/lib/services/index.d.ts +11 -31
  51. package/lib/services/index.d.ts.map +1 -1
  52. package/lib/services/index.js +11 -8
  53. package/lib/services/index.js.map +1 -1
  54. package/lib/services/lambdacaller.service.d.ts +81 -0
  55. package/lib/services/lambdacaller.service.d.ts.map +1 -0
  56. package/lib/services/lambdacaller.service.js +75 -0
  57. package/lib/services/lambdacaller.service.js.map +1 -0
  58. package/lib/services/lambdaserver.service.d.ts +127 -0
  59. package/lib/services/lambdaserver.service.d.ts.map +1 -0
  60. package/lib/services/lambdaserver.service.js +294 -0
  61. package/lib/services/lambdaserver.service.js.map +1 -0
  62. package/lib/services/{route53.d.ts → route53.service.d.ts} +21 -12
  63. package/lib/services/route53.service.d.ts.map +1 -0
  64. package/lib/services/{route53.js → route53.service.js} +25 -28
  65. package/lib/services/route53.service.js.map +1 -0
  66. package/lib/services/s3binary.service.d.ts +215 -0
  67. package/lib/services/s3binary.service.d.ts.map +1 -0
  68. package/lib/services/{s3binary.js → s3binary.service.js} +93 -55
  69. package/lib/services/s3binary.service.js.map +1 -0
  70. package/lib/services/secretsmanager.service.d.ts +102 -0
  71. package/lib/services/secretsmanager.service.d.ts.map +1 -0
  72. package/lib/services/{secretsmanager.js → secretsmanager.service.js} +40 -22
  73. package/lib/services/secretsmanager.service.js.map +1 -0
  74. package/lib/services/{sqsqueue.d.ts → sqsqueue.service.d.ts} +60 -35
  75. package/lib/services/sqsqueue.service.d.ts.map +1 -0
  76. package/lib/services/{sqsqueue.js → sqsqueue.service.js} +53 -28
  77. package/lib/services/sqsqueue.service.js.map +1 -0
  78. package/package.json +56 -64
  79. package/webda.module.json +1425 -264
  80. package/lib/deployers/cloudformation.d.ts +0 -317
  81. package/lib/deployers/cloudformation.d.ts.map +0 -1
  82. package/lib/deployers/cloudformation.js +0 -837
  83. package/lib/deployers/cloudformation.js.map +0 -1
  84. package/lib/deployers/cloudformation.spec.d.ts +0 -2
  85. package/lib/deployers/cloudformation.spec.d.ts.map +0 -1
  86. package/lib/deployers/cloudformation.spec.js +0 -530
  87. package/lib/deployers/cloudformation.spec.js.map +0 -1
  88. package/lib/deployers/index.spec.d.ts +0 -9
  89. package/lib/deployers/index.spec.d.ts.map +0 -1
  90. package/lib/deployers/index.spec.js +0 -595
  91. package/lib/deployers/index.spec.js.map +0 -1
  92. package/lib/deployers/lambdapackager.d.ts +0 -28
  93. package/lib/deployers/lambdapackager.d.ts.map +0 -1
  94. package/lib/deployers/lambdapackager.js +0 -26
  95. package/lib/deployers/lambdapackager.js.map +0 -1
  96. package/lib/deployers/lambdapackager.spec.d.ts +0 -2
  97. package/lib/deployers/lambdapackager.spec.d.ts.map +0 -1
  98. package/lib/deployers/lambdapackager.spec.js +0 -44
  99. package/lib/deployers/lambdapackager.spec.js.map +0 -1
  100. package/lib/index.spec.d.ts +0 -11
  101. package/lib/index.spec.d.ts.map +0 -1
  102. package/lib/index.spec.js +0 -42
  103. package/lib/index.spec.js.map +0 -1
  104. package/lib/services/aws-mixin.d.ts +0 -25
  105. package/lib/services/aws-mixin.d.ts.map +0 -1
  106. package/lib/services/aws-mixin.js +0 -18
  107. package/lib/services/aws-mixin.js.map +0 -1
  108. package/lib/services/cloudwatchlogger.d.ts +0 -82
  109. package/lib/services/cloudwatchlogger.d.ts.map +0 -1
  110. package/lib/services/cloudwatchlogger.js.map +0 -1
  111. package/lib/services/cloudwatchlogger.spec.d.ts +0 -2
  112. package/lib/services/cloudwatchlogger.spec.d.ts.map +0 -1
  113. package/lib/services/cloudwatchlogger.spec.js +0 -104
  114. package/lib/services/cloudwatchlogger.spec.js.map +0 -1
  115. package/lib/services/dynamodb.d.ts +0 -174
  116. package/lib/services/dynamodb.d.ts.map +0 -1
  117. package/lib/services/dynamodb.js +0 -711
  118. package/lib/services/dynamodb.js.map +0 -1
  119. package/lib/services/dynamodb.spec.d.ts +0 -24
  120. package/lib/services/dynamodb.spec.d.ts.map +0 -1
  121. package/lib/services/dynamodb.spec.js +0 -344
  122. package/lib/services/dynamodb.spec.js.map +0 -1
  123. package/lib/services/lambdacaller.d.ts +0 -69
  124. package/lib/services/lambdacaller.d.ts.map +0 -1
  125. package/lib/services/lambdacaller.js +0 -63
  126. package/lib/services/lambdacaller.js.map +0 -1
  127. package/lib/services/lambdacaller.spec.d.ts +0 -2
  128. package/lib/services/lambdacaller.spec.d.ts.map +0 -1
  129. package/lib/services/lambdacaller.spec.js +0 -70
  130. package/lib/services/lambdacaller.spec.js.map +0 -1
  131. package/lib/services/lambdaserver.d.ts +0 -87
  132. package/lib/services/lambdaserver.d.ts.map +0 -1
  133. package/lib/services/lambdaserver.js +0 -263
  134. package/lib/services/lambdaserver.js.map +0 -1
  135. package/lib/services/lambdaserver.spec.d.ts +0 -2
  136. package/lib/services/lambdaserver.spec.d.ts.map +0 -1
  137. package/lib/services/lambdaserver.spec.js +0 -417
  138. package/lib/services/lambdaserver.spec.js.map +0 -1
  139. package/lib/services/route53.d.ts.map +0 -1
  140. package/lib/services/route53.js.map +0 -1
  141. package/lib/services/route53.spec.d.ts +0 -2
  142. package/lib/services/route53.spec.d.ts.map +0 -1
  143. package/lib/services/route53.spec.js +0 -102
  144. package/lib/services/route53.spec.js.map +0 -1
  145. package/lib/services/s3binary.d.ts +0 -163
  146. package/lib/services/s3binary.d.ts.map +0 -1
  147. package/lib/services/s3binary.js.map +0 -1
  148. package/lib/services/s3binary.spec.d.ts +0 -2
  149. package/lib/services/s3binary.spec.d.ts.map +0 -1
  150. package/lib/services/s3binary.spec.js +0 -284
  151. package/lib/services/s3binary.spec.js.map +0 -1
  152. package/lib/services/secretsmanager.d.ts +0 -81
  153. package/lib/services/secretsmanager.d.ts.map +0 -1
  154. package/lib/services/secretsmanager.js.map +0 -1
  155. package/lib/services/secretsmanager.spec.d.ts +0 -2
  156. package/lib/services/secretsmanager.spec.d.ts.map +0 -1
  157. package/lib/services/secretsmanager.spec.js +0 -66
  158. package/lib/services/secretsmanager.spec.js.map +0 -1
  159. package/lib/services/sqsqueue.d.ts.map +0 -1
  160. package/lib/services/sqsqueue.js.map +0 -1
  161. package/lib/services/sqsqueue.spec.d.ts +0 -2
  162. package/lib/services/sqsqueue.spec.d.ts.map +0 -1
  163. package/lib/services/sqsqueue.spec.js +0 -157
  164. package/lib/services/sqsqueue.spec.js.map +0 -1
  165. package/lib/shell.d.ts +0 -13
  166. package/lib/shell.d.ts.map +0 -1
  167. package/lib/shell.js +0 -42
  168. package/lib/shell.js.map +0 -1
  169. package/webda.shell.json +0 -11
package/webda.module.json CHANGED
@@ -1,327 +1,1488 @@
1
1
  {
2
+ "$schema": "https://webda.io/schemas/webda.module.v4.json",
2
3
  "beans": {},
3
- "deployers": {
4
- "WebdaAWSDeployer/CloudFormation": "lib/deployers/cloudformation:default",
5
- "WebdaAWSDeployer/LambdaPackager": "lib/deployers/lambdapackager:default"
6
- },
4
+ "deployers": {},
7
5
  "moddas": {
8
- "Webda/AWSSecretsManager": "lib/services/secretsmanager:default",
9
- "Webda/CloudWatchLogger": "lib/services/cloudwatchlogger:default",
10
- "Webda/DynamoStore": "lib/services/dynamodb:default",
11
- "Webda/LambdaCaller": "lib/services/lambdacaller:LambdaCaller",
12
- "Webda/S3Binary": "lib/services/s3binary:default",
13
- "Webda/SQSQueue": "lib/services/sqsqueue:default"
14
- },
15
- "models": {
16
- "graph": {},
17
- "tree": {},
18
- "plurals": {},
19
- "list": {},
20
- "reflections": {}
21
- },
22
- "schemas": {
23
- "Webda/AWSSecretsManager": {
24
- "type": "object",
25
- "properties": {
26
- "type": {
27
- "type": "string",
28
- "description": "Type of the service"
29
- },
30
- "url": {
31
- "type": "string",
32
- "description": "URL on which to serve the content"
6
+ "Webda/AWSCommands": {
7
+ "Import": "lib/services/awscommands.service:AWSCommands",
8
+ "Schema": {
9
+ "$schema": "http://json-schema.org/draft-07/schema#",
10
+ "additionalProperties": false,
11
+ "description": "Interface to specify the Service parameters",
12
+ "properties": {
13
+ "type": {
14
+ "description": "Type of the service",
15
+ "type": "string"
16
+ },
17
+ "openapi": {
18
+ "type": "object",
19
+ "additionalProperties": true
20
+ }
33
21
  },
34
- "openapi": {
35
- "type": "object",
36
- "additionalProperties": true
37
- }
22
+ "required": [
23
+ "type"
24
+ ],
25
+ "type": "object",
26
+ "title": "AWSCommands"
38
27
  },
39
- "required": [
40
- "type"
41
- ],
42
- "description": "Interface to specify the Service parameters",
43
- "$schema": "http://json-schema.org/draft-07/schema#",
44
- "title": "CloudWatchLogger"
45
- },
46
- "Webda/BinaryFile": {
47
- "type": "object",
48
- "properties": {
49
- "hash": {
50
- "type": "string",
51
- "description": "Will be computed by the service\n\nhash of the content"
28
+ "Configuration": "node_modules/@webda/core/lib/services/serviceparameters:ServiceParameters",
29
+ "commands": {
30
+ "aws route53 export": {
31
+ "description": "Export a Route53 domain to a json file",
32
+ "method": "route53Export",
33
+ "args": {
34
+ "domain": {
35
+ "type": "string",
36
+ "required": true
37
+ },
38
+ "file": {
39
+ "type": "string",
40
+ "required": true
41
+ }
42
+ },
43
+ "requires": [
44
+ "aws-commands"
45
+ ],
46
+ "phase": "resolved"
52
47
  },
53
- "challenge": {
54
- "type": "string",
55
- "description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'"
48
+ "aws route53 import": {
49
+ "description": "Import a Route53 exported format to Route53",
50
+ "method": "route53Import",
51
+ "args": {
52
+ "file": {
53
+ "type": "string",
54
+ "required": true
55
+ }
56
+ },
57
+ "requires": [
58
+ "aws-commands"
59
+ ],
60
+ "phase": "resolved"
56
61
  },
57
- "size": {
58
- "type": "number",
59
- "description": "Size of the binary"
62
+ "aws route53 sync": {
63
+ "description": "Sync a Route53 exported format to Route53 (remove all others entries)",
64
+ "method": "route53Sync",
65
+ "args": {
66
+ "file": {
67
+ "type": "string",
68
+ "required": true
69
+ },
70
+ "pretend": {
71
+ "type": "boolean",
72
+ "default": false
73
+ }
74
+ },
75
+ "requires": [
76
+ "aws-commands"
77
+ ],
78
+ "phase": "resolved"
60
79
  },
61
- "name": {
62
- "type": "string",
63
- "description": "Current name"
80
+ "aws copyTable": {
81
+ "description": "Copy a DynamoDB table content to another table",
82
+ "method": "copyTable",
83
+ "args": {
84
+ "sourceTable": {
85
+ "type": "string",
86
+ "required": true
87
+ },
88
+ "targetTable": {
89
+ "type": "string",
90
+ "required": true
91
+ }
92
+ },
93
+ "requires": [
94
+ "aws-commands"
95
+ ],
96
+ "phase": "resolved"
97
+ }
98
+ }
99
+ },
100
+ "Webda/AWSSecretsManager": {
101
+ "Import": "lib/services/secretsmanager.service:default",
102
+ "Schema": {
103
+ "$schema": "http://json-schema.org/draft-07/schema#",
104
+ "additionalProperties": false,
105
+ "definitions": {
106
+ "credentials": {
107
+ "additionalProperties": false,
108
+ "description": "Static credentials, default to the AWS environment variables",
109
+ "properties": {
110
+ "accessKeyId": {
111
+ "type": "string"
112
+ },
113
+ "secretAccessKey": {
114
+ "type": "string"
115
+ },
116
+ "sessionToken": {
117
+ "type": "string"
118
+ }
119
+ },
120
+ "required": [
121
+ "accessKeyId",
122
+ "secretAccessKey"
123
+ ],
124
+ "type": "object"
125
+ }
64
126
  },
65
- "mimetype": {
66
- "type": "string",
67
- "description": "Mimetype of the binary"
127
+ "description": "AWS SecretsManager parameters",
128
+ "properties": {
129
+ "credentials": {
130
+ "$ref": "#/definitions/credentials",
131
+ "description": "Static credentials, default to the AWS environment variables"
132
+ },
133
+ "endpoint": {
134
+ "description": "Custom endpoint (localstack, minio, ...)",
135
+ "type": "string"
136
+ },
137
+ "region": {
138
+ "default": "us-east-1",
139
+ "description": "AWS region",
140
+ "type": "string"
141
+ },
142
+ "type": {
143
+ "description": "Type of the service",
144
+ "type": "string"
145
+ },
146
+ "openapi": {
147
+ "type": "object",
148
+ "additionalProperties": true
149
+ }
68
150
  },
69
- "metadata": {
70
- "description": "Metadatas stored along with the binary"
151
+ "required": [
152
+ "type"
153
+ ],
154
+ "type": "object",
155
+ "title": "AWSSecretsManager"
156
+ },
157
+ "Configuration": "lib/services/secretsmanager.service:AWSSecretsManagerParameters"
158
+ },
159
+ "Webda/CloudFormationDeployer": {
160
+ "Import": "lib/deployers/cloudformation.service:CloudFormationDeployer",
161
+ "Schema": {
162
+ "$schema": "http://json-schema.org/draft-07/schema#",
163
+ "additionalProperties": false,
164
+ "definitions": {
165
+ "APIGateway": {
166
+ "additionalProperties": {},
167
+ "description": "Create an API Gateway for the Lambda function",
168
+ "properties": {
169
+ "Name": {
170
+ "type": "string"
171
+ }
172
+ },
173
+ "type": "object"
174
+ },
175
+ "APIGatewayBasePathMapping": {
176
+ "additionalProperties": false,
177
+ "description": "Base path mapping of the custom domain",
178
+ "properties": {
179
+ "BasePath": {
180
+ "type": "string"
181
+ },
182
+ "DomainName": {
183
+ "type": "string"
184
+ },
185
+ "RestApiId": {
186
+ "type": "string"
187
+ },
188
+ "Stage": {
189
+ "type": "string"
190
+ }
191
+ },
192
+ "type": "object"
193
+ },
194
+ "APIGatewayDomain": {
195
+ "additionalProperties": {},
196
+ "description": "Custom domain of the API Gateway",
197
+ "properties": {
198
+ "CertificateArn": {
199
+ "type": "string"
200
+ },
201
+ "DomainName": {
202
+ "type": "string"
203
+ },
204
+ "EndpointConfiguration": {
205
+ "$ref": "#/definitions/APIGatewayDomain%24EndpointConfiguration"
206
+ },
207
+ "SecurityPolicy": {
208
+ "type": "string"
209
+ }
210
+ },
211
+ "required": [
212
+ "DomainName"
213
+ ],
214
+ "type": "object"
215
+ },
216
+ "APIGatewayDomain$EndpointConfiguration": {
217
+ "additionalProperties": false,
218
+ "properties": {
219
+ "Types": {
220
+ "items": {
221
+ "type": "string"
222
+ },
223
+ "type": "array"
224
+ }
225
+ },
226
+ "required": [
227
+ "Types"
228
+ ],
229
+ "type": "object"
230
+ },
231
+ "APIGatewayStage": {
232
+ "additionalProperties": {},
233
+ "description": "Properties of the API Gateway stage",
234
+ "properties": {
235
+ "StageName": {
236
+ "default": "the deployment name",
237
+ "type": "string"
238
+ }
239
+ },
240
+ "type": "object"
241
+ },
242
+ "Certificates": {
243
+ "additionalProperties": {
244
+ "$ref": "#/definitions/Certificates%24%5Bkey%3A%20string%5D"
245
+ },
246
+ "description": "SSL certificates to create\n\nSample\n```\nCertificates: {\n \"test.webda.io\": {\n SubjectAlternativeNames: [\"test2.webda.io\"]\n }\n}\n```",
247
+ "type": "object"
248
+ },
249
+ "Certificates$[key: string]": {
250
+ "additionalProperties": {},
251
+ "properties": {
252
+ "SubjectAlternativeNames": {
253
+ "description": "Any alternative names to add to the certificate",
254
+ "items": {
255
+ "type": "string"
256
+ },
257
+ "type": "array"
258
+ },
259
+ "Tags": {
260
+ "anyOf": [
261
+ {
262
+ "items": {
263
+ "$ref": "#/definitions/Certificates%24%5Bkey%3A%20string%5D%24Tags%231%5B%5D"
264
+ },
265
+ "type": "array"
266
+ },
267
+ {
268
+ "$ref": "#/definitions/Certificates%24%5Bkey%3A%20string%5D%24Tags%232"
269
+ }
270
+ ],
271
+ "description": "Tags as an AWS array or as a map"
272
+ }
273
+ },
274
+ "type": "object"
275
+ },
276
+ "Certificates$[key: string]$Tags#1[]": {
277
+ "additionalProperties": false,
278
+ "properties": {
279
+ "Key": {
280
+ "type": "string"
281
+ },
282
+ "Value": {
283
+ "type": "string"
284
+ }
285
+ },
286
+ "required": [
287
+ "Key",
288
+ "Value"
289
+ ],
290
+ "type": "object"
291
+ },
292
+ "Certificates$[key: string]$Tags#2": {
293
+ "additionalProperties": {
294
+ "type": "string"
295
+ },
296
+ "type": "object"
297
+ },
298
+ "Lambda": {
299
+ "additionalProperties": {},
300
+ "description": "Deploy a Lambda package with your application",
301
+ "properties": {
302
+ "FunctionName": {
303
+ "description": "FunctionName to create",
304
+ "type": "string"
305
+ },
306
+ "Handler": {
307
+ "default": "node_modules/@webda/aws/lib/deployers/lambda-entrypoint.handler",
308
+ "description": "Should not require to be overriden",
309
+ "type": "string"
310
+ },
311
+ "MemorySize": {
312
+ "default": 2048,
313
+ "description": "Memory to set on the Lambda\n\nLess memory is less expensive/ms but slower",
314
+ "type": "number"
315
+ },
316
+ "Role": {
317
+ "description": "Role to set on the function"
318
+ },
319
+ "Runtime": {
320
+ "default": "nodejs22.x",
321
+ "description": "Type of Runtime to use",
322
+ "type": "string"
323
+ },
324
+ "Timeout": {
325
+ "default": 30,
326
+ "description": "Timeout in seconds for your Lambda",
327
+ "type": "number"
328
+ }
329
+ },
330
+ "type": "object"
331
+ },
332
+ "LambdaPackageOptions": {
333
+ "additionalProperties": false,
334
+ "description": "Options to build a Lambda package",
335
+ "properties": {
336
+ "customAwsSdk": {
337
+ "default": false,
338
+ "description": "The application includes its own aws-sdk v2: by default `aws-sdk` is excluded",
339
+ "type": "boolean"
340
+ },
341
+ "entrypoint": {
342
+ "description": "File to add as `entrypoint.js` at the root of the package\n\nThe default handler is `node_modules/@webda/aws/lib/deployers/lambda-entrypoint.handler`\nso it is not needed",
343
+ "type": "string"
344
+ },
345
+ "package": {
346
+ "$ref": "#/definitions/PackageOptions",
347
+ "description": "How to select the files of the application"
348
+ },
349
+ "zipPath": {
350
+ "default": "dist/lambda.zip",
351
+ "description": "Path of the zip to create",
352
+ "type": "string"
353
+ }
354
+ },
355
+ "type": "object"
356
+ },
357
+ "LambdaPackager$package$modules": {
358
+ "additionalProperties": false,
359
+ "properties": {
360
+ "excludes": {
361
+ "items": {
362
+ "type": "string"
363
+ },
364
+ "type": "array"
365
+ },
366
+ "includes": {
367
+ "items": {
368
+ "type": "string"
369
+ },
370
+ "type": "array"
371
+ }
372
+ },
373
+ "type": "object"
374
+ },
375
+ "PackageOptions": {
376
+ "additionalProperties": false,
377
+ "description": "Options of {@link packageApplication}",
378
+ "properties": {
379
+ "excludePatterns": {
380
+ "default": [
381
+ "\\.d\\.ts$"
382
+ ],
383
+ "description": "Regular expressions on the source path of the files to skip",
384
+ "items": {
385
+ "type": "string"
386
+ },
387
+ "type": "array"
388
+ },
389
+ "ignores": {
390
+ "description": "Additional top-level entries of the application to skip",
391
+ "items": {
392
+ "type": "string"
393
+ },
394
+ "type": "array"
395
+ },
396
+ "modules": {
397
+ "$ref": "#/definitions/LambdaPackager%24package%24modules",
398
+ "description": "Dependencies to add or remove from the application production dependencies"
399
+ }
400
+ },
401
+ "type": "object"
402
+ },
403
+ "Policy": {
404
+ "additionalProperties": false,
405
+ "description": "Policy to create\n\nThis deployer can automatically create the policy tailored to your application needs\nAll the AWS services from this package advertise the type of permissions they need",
406
+ "properties": {
407
+ "Groups": {
408
+ "items": {},
409
+ "type": "array"
410
+ },
411
+ "PolicyDocument": {},
412
+ "PolicyName": {
413
+ "description": "PolicyName to use",
414
+ "type": "string"
415
+ },
416
+ "Roles": {
417
+ "items": {},
418
+ "type": "array"
419
+ },
420
+ "Users": {
421
+ "items": {},
422
+ "type": "array"
423
+ }
424
+ },
425
+ "type": "object"
426
+ },
427
+ "Role": {
428
+ "additionalProperties": {},
429
+ "description": "Role to create",
430
+ "properties": {
431
+ "AssumeRolePolicyDocument": {
432
+ "$ref": "#/definitions/Role%24AssumeRolePolicyDocument"
433
+ },
434
+ "Path": {
435
+ "type": "string"
436
+ },
437
+ "Policies": {
438
+ "items": {},
439
+ "type": "array"
440
+ },
441
+ "RoleName": {
442
+ "type": "string"
443
+ }
444
+ },
445
+ "type": "object"
446
+ },
447
+ "Role$AssumeRolePolicyDocument": {
448
+ "additionalProperties": false,
449
+ "properties": {
450
+ "Statement": {
451
+ "items": {},
452
+ "type": "array"
453
+ },
454
+ "Version": {
455
+ "type": "string"
456
+ }
457
+ },
458
+ "required": [
459
+ "Statement"
460
+ ],
461
+ "type": "object"
462
+ },
463
+ "Statics[]": {
464
+ "additionalProperties": false,
465
+ "properties": {
466
+ "AssetsPath": {
467
+ "description": "Path to store on the AssetsBucket",
468
+ "type": "string"
469
+ },
470
+ "Bucket": {
471
+ "description": "Bucket parameter to add, a bucket named after the domain is created"
472
+ },
473
+ "CloudFront": {
474
+ "description": "CloudFront parameter to add"
475
+ },
476
+ "DomainName": {
477
+ "description": "Domain name to deploy on",
478
+ "type": "string"
479
+ },
480
+ "Source": {
481
+ "description": "Source on local folder",
482
+ "type": "string"
483
+ }
484
+ },
485
+ "required": [
486
+ "DomainName",
487
+ "Source"
488
+ ],
489
+ "type": "object"
490
+ },
491
+ "Tags#1[]": {
492
+ "additionalProperties": false,
493
+ "properties": {
494
+ "Key": {
495
+ "type": "string"
496
+ },
497
+ "Value": {
498
+ "type": "string"
499
+ }
500
+ },
501
+ "required": [
502
+ "Key",
503
+ "Value"
504
+ ],
505
+ "type": "object"
506
+ },
507
+ "Tags#2": {
508
+ "additionalProperties": {
509
+ "type": "string"
510
+ },
511
+ "type": "object"
512
+ },
513
+ "endpoints": {
514
+ "additionalProperties": false,
515
+ "description": "Endpoints to use by differents services\nUsefull to test with localstack or other AWS emulations",
516
+ "properties": {
517
+ "ACM": {
518
+ "type": "string"
519
+ },
520
+ "APIGateway": {
521
+ "type": "string"
522
+ },
523
+ "CloudFormation": {
524
+ "type": "string"
525
+ },
526
+ "CloudFront": {
527
+ "type": "string"
528
+ },
529
+ "EC2": {
530
+ "type": "string"
531
+ },
532
+ "Route53": {
533
+ "type": "string"
534
+ },
535
+ "S3": {
536
+ "type": "string"
537
+ },
538
+ "STS": {
539
+ "type": "string"
540
+ }
541
+ },
542
+ "type": "object"
543
+ }
71
544
  },
72
- "originalname": {
73
- "type": "string",
74
- "description": "Original name"
75
- }
545
+ "description": "CloudFormation deployer parameters\n\nDefine how to generate CloudFormation resources",
546
+ "properties": {
547
+ "APIGateway": {
548
+ "$ref": "#/definitions/APIGateway",
549
+ "description": "Create an API Gateway for the Lambda function"
550
+ },
551
+ "APIGatewayBasePathMapping": {
552
+ "$ref": "#/definitions/APIGatewayBasePathMapping",
553
+ "description": "Base path mapping of the custom domain"
554
+ },
555
+ "APIGatewayDeployment": {
556
+ "description": "Properties of the API Gateway deployment",
557
+ "type": "object"
558
+ },
559
+ "APIGatewayDomain": {
560
+ "$ref": "#/definitions/APIGatewayDomain",
561
+ "description": "Custom domain of the API Gateway"
562
+ },
563
+ "APIGatewayImportOpenApi": {
564
+ "description": "Import Open API to APIGateway\n\nThis is the restApiId to import to",
565
+ "type": "string"
566
+ },
567
+ "APIGatewayStage": {
568
+ "$ref": "#/definitions/APIGatewayStage",
569
+ "description": "Properties of the API Gateway stage"
570
+ },
571
+ "AWSAccountId": {
572
+ "description": "AWS Account Id",
573
+ "type": "string"
574
+ },
575
+ "AssetsBucket": {
576
+ "description": "AssetsBucket to copy Lambda package, CloudFormation template and OpenAPI definitions\n\nDefault to the `webda.aws.AssetsBucket` of the package.json",
577
+ "type": "string"
578
+ },
579
+ "AssetsPrefix": {
580
+ "default": "${deployment}/${deployer.name}/",
581
+ "description": "Prefix to use when copying to the AssetsBucket",
582
+ "type": "string"
583
+ },
584
+ "Certificates": {
585
+ "$ref": "#/definitions/Certificates",
586
+ "description": "SSL certificates to create\n\nSample\n```\nCertificates: {\n \"test.webda.io\": {\n SubjectAlternativeNames: [\"test2.webda.io\"]\n }\n}\n```"
587
+ },
588
+ "ChangeSetType": {
589
+ "description": "CREATE is the default\n\nIMPORT is not well supported as AWS support seems weak aswell",
590
+ "enum": [
591
+ "CREATE",
592
+ "IMPORT"
593
+ ],
594
+ "type": "string"
595
+ },
596
+ "CustomResources": {
597
+ "description": "Any additional CloudFormation resources"
598
+ },
599
+ "Description": {
600
+ "description": "Description of the stack and the OpenAPI\nhttps://github.com/loopingz/webda.io/issues/17",
601
+ "type": "string"
602
+ },
603
+ "DomainName": {
604
+ "description": "Default DomainName",
605
+ "type": "string"
606
+ },
607
+ "Fargate": {
608
+ "description": "Add the ECS tasks principal to the generated Role",
609
+ "type": "object"
610
+ },
611
+ "FileName": {
612
+ "default": "cloudformation-${resources.name}",
613
+ "description": "Name of the template on the AssetsBucket",
614
+ "type": "string"
615
+ },
616
+ "Format": {
617
+ "default": "JSON",
618
+ "description": "Format for CloudFormation template\n\nYAML format can generate issue",
619
+ "enum": [
620
+ "JSON",
621
+ "YAML"
622
+ ],
623
+ "type": "string"
624
+ },
625
+ "Image": {
626
+ "description": "Container image of the application, built separately (`webda container build`)\n\nAvailable to the templates as `${resources.Image}`",
627
+ "type": "string"
628
+ },
629
+ "KeepPackage": {
630
+ "default": false,
631
+ "description": "Keep locally the Lambda package after S3 uploads",
632
+ "type": "boolean"
633
+ },
634
+ "Lambda": {
635
+ "$ref": "#/definitions/Lambda",
636
+ "description": "Deploy a Lambda package with your application"
637
+ },
638
+ "LambdaPackager": {
639
+ "$ref": "#/definitions/LambdaPackageOptions",
640
+ "description": "How to build the Lambda package"
641
+ },
642
+ "OpenAPIFileName": {
643
+ "default": "${resources.name}-openapi-${package.version}",
644
+ "description": "Name of your OpenAPI inside the AssetsBucket",
645
+ "type": "string"
646
+ },
647
+ "OpenAPITitle": {
648
+ "description": "Title for your OpenAPI definition\nhttps://github.com/loopingz/webda.io/issues/17",
649
+ "type": "string"
650
+ },
651
+ "Policy": {
652
+ "$ref": "#/definitions/Policy",
653
+ "description": "Policy to create\n\nThis deployer can automatically create the policy tailored to your application needs\nAll the AWS services from this package advertise the type of permissions they need"
654
+ },
655
+ "Resources": {
656
+ "description": "Add the CloudFormation contributions of the application services\n({@link CloudFormationContributor})"
657
+ },
658
+ "ResourcesToImport": {
659
+ "description": "Resources to import in the template",
660
+ "items": {},
661
+ "type": "array"
662
+ },
663
+ "Role": {
664
+ "$ref": "#/definitions/Role",
665
+ "description": "Role to create"
666
+ },
667
+ "StackName": {
668
+ "default": "the unit name",
669
+ "description": "Name of the CloudFormation stack",
670
+ "type": "string"
671
+ },
672
+ "StackOptions": {
673
+ "description": "Options of the stack: Tags, NotificationARNs, ..."
674
+ },
675
+ "Statics": {
676
+ "description": "Deploy static website",
677
+ "items": {
678
+ "$ref": "#/definitions/Statics%5B%5D"
679
+ },
680
+ "type": "array"
681
+ },
682
+ "Tags": {
683
+ "anyOf": [
684
+ {
685
+ "items": {
686
+ "$ref": "#/definitions/Tags%231%5B%5D"
687
+ },
688
+ "type": "array"
689
+ },
690
+ {
691
+ "$ref": "#/definitions/Tags%232"
692
+ }
693
+ ],
694
+ "description": "Default Tags to use with resources created by deployers"
695
+ },
696
+ "accessKeyId": {
697
+ "description": "AWS_ACCESS_KEY_ID to use\n\nUsing static key is not recommended",
698
+ "type": "string"
699
+ },
700
+ "endpoints": {
701
+ "$ref": "#/definitions/endpoints",
702
+ "description": "Endpoints to use by differents services\nUsefull to test with localstack or other AWS emulations"
703
+ },
704
+ "name": {
705
+ "description": "Name of the unit",
706
+ "type": "string"
707
+ },
708
+ "region": {
709
+ "default": "us-east-1",
710
+ "description": "AWS_REGION to use",
711
+ "type": "string"
712
+ },
713
+ "secretAccessKey": {
714
+ "description": "AWS_SECRET_ACCESS_KEY to use\n\nUsing static key is not recommended",
715
+ "type": "string"
716
+ },
717
+ "sessionToken": {
718
+ "description": "AWS_SESSION_TOKEN Token\n\nEven if it is possible to add it here\nIt is not sustainable as this token at its best will\nhave a lifetime of 12 hours",
719
+ "type": "string"
720
+ },
721
+ "type": {
722
+ "description": "Type of the service",
723
+ "type": "string"
724
+ },
725
+ "openapi": {
726
+ "type": "object",
727
+ "additionalProperties": true
728
+ }
729
+ },
730
+ "required": [
731
+ "type"
732
+ ],
733
+ "type": "object",
734
+ "title": "CloudFormationDeployer"
76
735
  },
77
- "required": [
78
- "mimetype",
79
- "name",
80
- "size"
736
+ "Configuration": "lib/deployers/cloudformation.service:CloudFormationDeployerParameters",
737
+ "capabilities": [
738
+ "deployer"
81
739
  ],
82
- "description": "Represent a file to store",
83
- "$schema": "http://json-schema.org/draft-07/schema#",
84
- "title": "BinaryFile"
740
+ "commands": {
741
+ "deploy": {
742
+ "description": "Deploy the application with AWS CloudFormation",
743
+ "method": "deploy",
744
+ "args": {},
745
+ "requires": [
746
+ "router",
747
+ "rest-domain"
748
+ ]
749
+ }
750
+ }
85
751
  },
86
752
  "Webda/CloudWatchLogger": {
87
- "type": "object",
88
- "properties": {
89
- "type": {
90
- "type": "string",
91
- "description": "Type of the service"
753
+ "Import": "lib/services/cloudwatchlogger.service:CloudWatchLogger",
754
+ "Schema": {
755
+ "$schema": "http://json-schema.org/draft-07/schema#",
756
+ "additionalProperties": false,
757
+ "definitions": {
758
+ "credentials": {
759
+ "additionalProperties": false,
760
+ "description": "Static credentials, default to the AWS environment variables",
761
+ "properties": {
762
+ "accessKeyId": {
763
+ "type": "string"
764
+ },
765
+ "secretAccessKey": {
766
+ "type": "string"
767
+ },
768
+ "sessionToken": {
769
+ "type": "string"
770
+ }
771
+ },
772
+ "required": [
773
+ "accessKeyId",
774
+ "secretAccessKey"
775
+ ],
776
+ "type": "object"
777
+ }
92
778
  },
93
- "url": {
94
- "type": "string",
95
- "description": "URL on which to serve the content"
779
+ "description": "Send webda log to CloudWatch",
780
+ "properties": {
781
+ "CloudFormation": {
782
+ "description": "CloudFormation customization"
783
+ },
784
+ "CloudFormationSkip": {
785
+ "default": false,
786
+ "description": "Skip CloudFormation on deploy",
787
+ "type": "boolean"
788
+ },
789
+ "credentials": {
790
+ "$ref": "#/definitions/credentials",
791
+ "description": "Static credentials, default to the AWS environment variables"
792
+ },
793
+ "endpoint": {
794
+ "description": "Custom endpoint (localstack, minio, ...)",
795
+ "type": "string"
796
+ },
797
+ "kmsKeyId": {
798
+ "description": "KMS key to use when creating the log group",
799
+ "type": "string"
800
+ },
801
+ "logGroupName": {
802
+ "description": "logGroupName to send logStream to",
803
+ "type": "string"
804
+ },
805
+ "logLevel": {
806
+ "default": "INFO",
807
+ "description": "Minimum level of logs to send",
808
+ "enum": [
809
+ "ERROR",
810
+ "WARN",
811
+ "INFO",
812
+ "DEBUG",
813
+ "TRACE"
814
+ ],
815
+ "type": "string"
816
+ },
817
+ "logStreamNamePrefix": {
818
+ "description": "Prefix of the log stream name, a random uuid is appended",
819
+ "type": "string"
820
+ },
821
+ "region": {
822
+ "default": "us-east-1",
823
+ "description": "AWS region",
824
+ "type": "string"
825
+ },
826
+ "singlePush": {
827
+ "default": false,
828
+ "description": "Send each log line as soon as it is produced",
829
+ "type": "boolean"
830
+ },
831
+ "tags": {
832
+ "description": "Tags to add when creating the log group"
833
+ },
834
+ "type": {
835
+ "description": "Type of the service",
836
+ "type": "string"
837
+ },
838
+ "openapi": {
839
+ "type": "object",
840
+ "additionalProperties": true
841
+ }
96
842
  },
97
- "openapi": {
98
- "type": "object",
99
- "additionalProperties": true
100
- }
843
+ "required": [
844
+ "logGroupName",
845
+ "type"
846
+ ],
847
+ "type": "object",
848
+ "title": "CloudWatchLogger"
101
849
  },
102
- "required": [
103
- "type"
104
- ],
105
- "description": "Interface to specify the Service parameters",
106
- "$schema": "http://json-schema.org/draft-07/schema#",
107
- "title": "CloudWatchLogger"
850
+ "Configuration": "lib/services/cloudwatchlogger.service:CloudWatchLoggerParameters"
108
851
  },
109
852
  "Webda/DynamoStore": {
110
- "type": "object",
111
- "properties": {
112
- "type": {
113
- "type": "string",
114
- "description": "Type of the service"
115
- },
116
- "url": {
117
- "type": "string",
118
- "description": "URL on which to serve the content"
119
- },
120
- "model": {
121
- "type": "string",
122
- "description": "Webda model to use within the Store",
123
- "default": "Webda/CoreModel"
853
+ "Import": "lib/services/dynamodb.service:DynamoStore",
854
+ "Schema": {
855
+ "$schema": "http://json-schema.org/draft-07/schema#",
856
+ "additionalProperties": false,
857
+ "definitions": {
858
+ "DynamoGlobalIndexes": {
859
+ "additionalProperties": {
860
+ "$ref": "#/definitions/globalIndexes%24%5Bkey%3A%20string%5D"
861
+ },
862
+ "description": "DynamoDB global secondary indexes definition",
863
+ "type": "object"
864
+ },
865
+ "credentials": {
866
+ "additionalProperties": false,
867
+ "description": "Static credentials, default to the AWS environment variables",
868
+ "properties": {
869
+ "accessKeyId": {
870
+ "type": "string"
871
+ },
872
+ "secretAccessKey": {
873
+ "type": "string"
874
+ },
875
+ "sessionToken": {
876
+ "type": "string"
877
+ }
878
+ },
879
+ "required": [
880
+ "accessKeyId",
881
+ "secretAccessKey"
882
+ ],
883
+ "type": "object"
884
+ },
885
+ "globalIndexes$[key: string]": {
886
+ "additionalProperties": false,
887
+ "properties": {
888
+ "key": {
889
+ "description": "Hash key of the index",
890
+ "type": "string"
891
+ },
892
+ "sort": {
893
+ "description": "Range key of the index",
894
+ "type": "string"
895
+ }
896
+ },
897
+ "required": [
898
+ "key"
899
+ ],
900
+ "type": "object"
901
+ },
902
+ "modelAliases": {
903
+ "additionalProperties": {
904
+ "type": "string"
905
+ },
906
+ "description": "Model Aliases to allow easier rename of Model",
907
+ "type": "object"
908
+ },
909
+ "tables": {
910
+ "additionalProperties": {
911
+ "type": "string"
912
+ },
913
+ "description": "Per-model table name overrides, keyed by model identifier\n\nModels not listed use `table`",
914
+ "type": "object"
915
+ }
124
916
  },
125
- "additionalModels": {
126
- "type": "array",
127
- "items": {
917
+ "description": "Define DynamoDB parameters",
918
+ "properties": {
919
+ "CloudFormation": {
920
+ "description": "CloudFormation customization"
921
+ },
922
+ "CloudFormationSkip": {
923
+ "default": false,
924
+ "description": "Skip CloudFormation on deploy",
925
+ "type": "boolean"
926
+ },
927
+ "credentials": {
928
+ "$ref": "#/definitions/credentials",
929
+ "description": "Static credentials, default to the AWS environment variables"
930
+ },
931
+ "defaultModel": {
932
+ "default": true,
933
+ "description": "When __type model not found, use the model\nIf strict is setup this parameter is not used",
934
+ "type": "boolean"
935
+ },
936
+ "endpoint": {
937
+ "description": "Custom endpoint (localstack, minio, ...)",
128
938
  "type": "string"
129
939
  },
130
- "description": "Additional models\n\nAllow this store to manage other models",
131
- "default": []
132
- },
133
- "strict": {
134
- "type": "boolean",
135
- "description": "Allow to load object that does not have the type data\n\nIf set to true, then the Store will only managed the defined _model and no model extending this one",
136
- "default": false
940
+ "forceModel": {
941
+ "default": false,
942
+ "description": "If set, Store will ignore the __type",
943
+ "type": "boolean"
944
+ },
945
+ "globalIndexes": {
946
+ "$ref": "#/definitions/DynamoGlobalIndexes",
947
+ "description": "Additional global indexes"
948
+ },
949
+ "modelAliases": {
950
+ "$ref": "#/definitions/modelAliases",
951
+ "description": "Model Aliases to allow easier rename of Model"
952
+ },
953
+ "models": {
954
+ "default": [
955
+ "Webda/RegistryEntry"
956
+ ],
957
+ "description": "Models managed by this Store.",
958
+ "items": {
959
+ "type": "string"
960
+ },
961
+ "type": "array"
962
+ },
963
+ "noCache": {
964
+ "default": false,
965
+ "description": "Disable default memory cache",
966
+ "type": "boolean"
967
+ },
968
+ "region": {
969
+ "default": "us-east-1",
970
+ "description": "AWS region",
971
+ "type": "string"
972
+ },
973
+ "scanPage": {
974
+ "description": "Number of items to retrieve per scan page",
975
+ "type": "number"
976
+ },
977
+ "slowQueryThreshold": {
978
+ "default": 30000,
979
+ "description": "Slow query threshold",
980
+ "type": "number"
981
+ },
982
+ "strict": {
983
+ "default": false,
984
+ "description": "Allow to load object that does not have the type data\n\nIf set to true, then the Store will only managed the defined _model and no\nmodel extending this one",
985
+ "type": "boolean"
986
+ },
987
+ "table": {
988
+ "description": "Table name",
989
+ "type": "string"
990
+ },
991
+ "tables": {
992
+ "$ref": "#/definitions/tables",
993
+ "description": "Per-model table name overrides, keyed by model identifier\n\nModels not listed use `table`"
994
+ },
995
+ "type": {
996
+ "description": "Type of the service",
997
+ "type": "string"
998
+ },
999
+ "openapi": {
1000
+ "type": "object",
1001
+ "additionalProperties": true
1002
+ }
137
1003
  },
138
- "defaultModel": {
139
- "type": "boolean",
140
- "description": "When __type model not found, use the model If strict is setup this parameter is not used",
141
- "default": true
1004
+ "required": [
1005
+ "table",
1006
+ "type"
1007
+ ],
1008
+ "type": "object",
1009
+ "title": "DynamoStore"
1010
+ },
1011
+ "Configuration": "lib/services/dynamodb.service:DynamoStoreParameters"
1012
+ },
1013
+ "Webda/LambdaCaller": {
1014
+ "Import": "lib/services/lambdacaller.service:LambdaCaller",
1015
+ "Schema": {
1016
+ "$schema": "http://json-schema.org/draft-07/schema#",
1017
+ "additionalProperties": false,
1018
+ "definitions": {
1019
+ "credentials": {
1020
+ "additionalProperties": false,
1021
+ "description": "Static credentials, default to the AWS environment variables",
1022
+ "properties": {
1023
+ "accessKeyId": {
1024
+ "type": "string"
1025
+ },
1026
+ "secretAccessKey": {
1027
+ "type": "string"
1028
+ },
1029
+ "sessionToken": {
1030
+ "type": "string"
1031
+ }
1032
+ },
1033
+ "required": [
1034
+ "accessKeyId",
1035
+ "secretAccessKey"
1036
+ ],
1037
+ "type": "object"
1038
+ }
142
1039
  },
143
- "forceModel": {
144
- "type": "boolean",
145
- "description": "If set, Store will ignore the __type",
146
- "default": false
1040
+ "description": "LambdaCaller parameters",
1041
+ "properties": {
1042
+ "actions": {
1043
+ "default": [],
1044
+ "description": "Actions managed by the runner",
1045
+ "items": {
1046
+ "type": "string"
1047
+ },
1048
+ "type": "array"
1049
+ },
1050
+ "arn": {
1051
+ "description": "Default ARN to use",
1052
+ "type": "string"
1053
+ },
1054
+ "credentials": {
1055
+ "$ref": "#/definitions/credentials",
1056
+ "description": "Static credentials, default to the AWS environment variables"
1057
+ },
1058
+ "endpoint": {
1059
+ "description": "Custom endpoint (localstack, minio, ...)",
1060
+ "type": "string"
1061
+ },
1062
+ "region": {
1063
+ "default": "us-east-1",
1064
+ "description": "AWS region",
1065
+ "type": "string"
1066
+ },
1067
+ "type": {
1068
+ "description": "Type of the service",
1069
+ "type": "string"
1070
+ },
1071
+ "openapi": {
1072
+ "type": "object",
1073
+ "additionalProperties": true
1074
+ }
147
1075
  },
148
- "slowQueryThreshold": {
149
- "type": "number",
150
- "description": "Slow query threshold",
151
- "default": 30000
1076
+ "required": [
1077
+ "arn",
1078
+ "type"
1079
+ ],
1080
+ "type": "object",
1081
+ "title": "LambdaCaller"
1082
+ },
1083
+ "Configuration": "lib/services/lambdacaller.service:LambdaCallerParameters"
1084
+ },
1085
+ "Webda/LambdaPackager": {
1086
+ "Import": "lib/deployers/lambdapackager.service:LambdaPackager",
1087
+ "Schema": {
1088
+ "$schema": "http://json-schema.org/draft-07/schema#",
1089
+ "additionalProperties": false,
1090
+ "definitions": {
1091
+ "PackageOptions": {
1092
+ "additionalProperties": false,
1093
+ "description": "Options of {@link packageApplication}",
1094
+ "properties": {
1095
+ "excludePatterns": {
1096
+ "default": [
1097
+ "\\.d\\.ts$"
1098
+ ],
1099
+ "description": "Regular expressions on the source path of the files to skip",
1100
+ "items": {
1101
+ "type": "string"
1102
+ },
1103
+ "type": "array"
1104
+ },
1105
+ "ignores": {
1106
+ "description": "Additional top-level entries of the application to skip",
1107
+ "items": {
1108
+ "type": "string"
1109
+ },
1110
+ "type": "array"
1111
+ },
1112
+ "modules": {
1113
+ "$ref": "#/definitions/package%24modules",
1114
+ "description": "Dependencies to add or remove from the application production dependencies"
1115
+ }
1116
+ },
1117
+ "type": "object"
1118
+ },
1119
+ "package$modules": {
1120
+ "additionalProperties": false,
1121
+ "properties": {
1122
+ "excludes": {
1123
+ "items": {
1124
+ "type": "string"
1125
+ },
1126
+ "type": "array"
1127
+ },
1128
+ "includes": {
1129
+ "items": {
1130
+ "type": "string"
1131
+ },
1132
+ "type": "array"
1133
+ }
1134
+ },
1135
+ "type": "object"
1136
+ }
152
1137
  },
153
- "modelAliases": {
154
- "type": "object",
155
- "additionalProperties": {
1138
+ "description": "Lambda Packager parameters",
1139
+ "properties": {
1140
+ "customAwsSdk": {
1141
+ "default": false,
1142
+ "description": "The application includes its own aws-sdk v2",
1143
+ "type": "boolean"
1144
+ },
1145
+ "entrypoint": {
1146
+ "description": "File to add as `entrypoint.js` at the root of the package",
156
1147
  "type": "string"
157
1148
  },
158
- "description": "Model Aliases to allow easier rename of Model"
159
- },
160
- "noCache": {
161
- "type": "boolean",
162
- "description": "Disable default memory cache"
1149
+ "name": {
1150
+ "description": "Name of the unit",
1151
+ "type": "string"
1152
+ },
1153
+ "package": {
1154
+ "$ref": "#/definitions/PackageOptions",
1155
+ "description": "How to select the files of the application"
1156
+ },
1157
+ "type": {
1158
+ "description": "Type of the service",
1159
+ "type": "string"
1160
+ },
1161
+ "zipPath": {
1162
+ "default": "dist/lambda-${package.version}.zip",
1163
+ "description": "Path of the zip to create",
1164
+ "type": "string"
1165
+ },
1166
+ "openapi": {
1167
+ "type": "object",
1168
+ "additionalProperties": true
1169
+ }
163
1170
  },
164
- "openapi": {
165
- "type": "object",
166
- "additionalProperties": true
167
- }
1171
+ "required": [
1172
+ "type"
1173
+ ],
1174
+ "type": "object",
1175
+ "title": "LambdaPackager"
168
1176
  },
169
- "required": [
170
- "slowQueryThreshold",
171
- "type"
1177
+ "Configuration": "lib/deployers/lambdapackager.service:LambdaPackagerParameters",
1178
+ "capabilities": [
1179
+ "deployer"
172
1180
  ],
173
- "description": "Store parameter",
174
- "$schema": "http://json-schema.org/draft-07/schema#",
175
- "title": "DynamoStore"
1181
+ "commands": {
1182
+ "aws package": {
1183
+ "description": "Package the application as an AWS Lambda zip",
1184
+ "method": "package",
1185
+ "args": {},
1186
+ "phase": "resolved"
1187
+ }
1188
+ }
176
1189
  },
177
- "Webda/LambdaCaller": {
178
- "type": "object",
179
- "properties": {
180
- "type": {
181
- "type": "string",
182
- "description": "Type of the service"
183
- },
184
- "url": {
185
- "type": "string",
186
- "description": "URL on which to serve the content"
187
- },
188
- "actions": {
189
- "type": "array",
190
- "items": {
1190
+ "Webda/LambdaServer": {
1191
+ "Import": "lib/services/lambdaserver.service:LambdaServer",
1192
+ "Schema": {
1193
+ "$schema": "http://json-schema.org/draft-07/schema#",
1194
+ "additionalProperties": false,
1195
+ "description": "LambdaServer parameters",
1196
+ "properties": {
1197
+ "lambdaRequestHeader": {
1198
+ "description": "Header to add to the response with the Lambda request id",
1199
+ "type": "string"
1200
+ },
1201
+ "type": {
1202
+ "description": "Type of the service",
191
1203
  "type": "string"
192
1204
  },
193
- "description": "Actions managed by the runner",
194
- "default": []
1205
+ "waitForEmptyEventLoop": {
1206
+ "default": false,
1207
+ "description": "Set the Lambda callbackWaitsForEmptyEventLoop",
1208
+ "type": "boolean"
1209
+ },
1210
+ "openapi": {
1211
+ "type": "object",
1212
+ "additionalProperties": true
1213
+ }
195
1214
  },
196
- "openapi": {
197
- "type": "object",
198
- "additionalProperties": true
199
- }
1215
+ "required": [
1216
+ "type"
1217
+ ],
1218
+ "type": "object",
1219
+ "title": "LambdaServer"
200
1220
  },
201
- "required": [
202
- "type"
203
- ],
204
- "$schema": "http://json-schema.org/draft-07/schema#",
205
- "title": "LambdaCaller"
1221
+ "Configuration": "lib/services/lambdaserver.service:LambdaServerParameters"
206
1222
  },
207
1223
  "Webda/S3Binary": {
208
- "type": "object",
209
- "properties": {
210
- "type": {
211
- "type": "string",
212
- "description": "Type of the service"
213
- },
214
- "url": {
215
- "type": "string",
216
- "description": "URL on which to serve the content"
217
- },
218
- "models": {
219
- "type": "object",
220
- "additionalProperties": {
221
- "type": "array",
222
- "items": {
223
- "type": "string"
224
- }
1224
+ "Import": "lib/services/s3binary.service:S3Binary",
1225
+ "Schema": {
1226
+ "$schema": "http://json-schema.org/draft-07/schema#",
1227
+ "additionalProperties": false,
1228
+ "definitions": {
1229
+ "credentials": {
1230
+ "additionalProperties": false,
1231
+ "description": "Static credentials, default to the AWS environment variables",
1232
+ "properties": {
1233
+ "accessKeyId": {
1234
+ "type": "string"
1235
+ },
1236
+ "secretAccessKey": {
1237
+ "type": "string"
1238
+ },
1239
+ "sessionToken": {
1240
+ "type": "string"
1241
+ }
1242
+ },
1243
+ "required": [
1244
+ "accessKeyId",
1245
+ "secretAccessKey"
1246
+ ],
1247
+ "type": "object"
225
1248
  },
226
- "description": "Define the map of models\n* indicates all models\n\nkey is a Store name the string[] represent all valids attributes to store files in * indicates all attributes"
227
- },
228
- "maxFileSize": {
229
- "type": "number",
230
- "description": "Define the maximum filesize to accept as direct upload",
231
- "default": "10*1024*1024"
1249
+ "models": {
1250
+ "additionalProperties": {
1251
+ "items": {
1252
+ "type": "string"
1253
+ },
1254
+ "type": "array"
1255
+ },
1256
+ "description": "Define the map of models\n* indicates all models\n\nkey is a Store name\nthe string[] represent all valids attributes to store files in * indicates all attributes",
1257
+ "type": "object"
1258
+ }
232
1259
  },
233
- "prefix": {
234
- "type": "string"
1260
+ "description": "S3Binary parameters",
1261
+ "properties": {
1262
+ "CloudFormation": {
1263
+ "description": "CloudFormation customization"
1264
+ },
1265
+ "CloudFormationSkip": {
1266
+ "default": false,
1267
+ "description": "Skip CloudFormation on deploy",
1268
+ "type": "boolean"
1269
+ },
1270
+ "bucket": {
1271
+ "description": "Bucket to store the binaries in",
1272
+ "type": "string"
1273
+ },
1274
+ "credentials": {
1275
+ "$ref": "#/definitions/credentials",
1276
+ "description": "Static credentials, default to the AWS environment variables"
1277
+ },
1278
+ "endpoint": {
1279
+ "description": "Custom endpoint (localstack, minio, ...)",
1280
+ "type": "string"
1281
+ },
1282
+ "forcePathStyle": {
1283
+ "default": false,
1284
+ "description": "Use path style url (required by localstack/minio)",
1285
+ "type": "boolean"
1286
+ },
1287
+ "maxFileSize": {
1288
+ "default": "10 MB",
1289
+ "description": "Define the maximum filesize to accept as direct upload\nGet the max file size in bytes",
1290
+ "returns": "the result number",
1291
+ "type": "number"
1292
+ },
1293
+ "models": {
1294
+ "$ref": "#/definitions/models",
1295
+ "description": "Define the map of models\n* indicates all models\n\nkey is a Store name\nthe string[] represent all valids attributes to store files in * indicates all attributes"
1296
+ },
1297
+ "prefix": {
1298
+ "type": "string"
1299
+ },
1300
+ "region": {
1301
+ "default": "us-east-1",
1302
+ "description": "AWS region",
1303
+ "type": "string"
1304
+ },
1305
+ "type": {
1306
+ "description": "Type of the service",
1307
+ "type": "string"
1308
+ },
1309
+ "openapi": {
1310
+ "type": "object",
1311
+ "additionalProperties": true
1312
+ }
235
1313
  },
236
- "openapi": {
237
- "type": "object",
238
- "additionalProperties": true
239
- }
1314
+ "required": [
1315
+ "bucket",
1316
+ "models",
1317
+ "type"
1318
+ ],
1319
+ "type": "object",
1320
+ "title": "S3Binary"
240
1321
  },
241
- "required": [
242
- "models",
243
- "type"
244
- ],
245
- "description": "Default binary parameters",
246
- "$schema": "http://json-schema.org/draft-07/schema#",
247
- "title": "S3Binary"
1322
+ "Configuration": "lib/services/s3binary.service:S3BinaryParameters"
248
1323
  },
249
1324
  "Webda/SQSQueue": {
250
- "type": "object",
251
- "properties": {
252
- "type": {
253
- "type": "string",
254
- "description": "Type of the service"
255
- },
256
- "url": {
257
- "type": "string",
258
- "description": "URL on which to serve the content"
259
- },
260
- "workerDelayer": {
261
- "type": "object",
262
- "properties": {
263
- "interval": {
264
- "type": "number",
265
- "description": "Interval"
266
- },
267
- "type": {
268
- "type": "string",
269
- "description": "Type of delayer registered in WaitDelayerFactoryRegistry"
270
- }
1325
+ "Import": "lib/services/sqsqueue.service:default",
1326
+ "Schema": {
1327
+ "$schema": "http://json-schema.org/draft-07/schema#",
1328
+ "additionalProperties": false,
1329
+ "definitions": {
1330
+ "WaitDelayerDefinition": {
1331
+ "additionalProperties": false,
1332
+ "description": "Configuration object for selecting and parameterizing a `WaitDelayer` from the registry.",
1333
+ "properties": {
1334
+ "interval": {
1335
+ "description": "Base interval in milliseconds passed to the delayer factory.",
1336
+ "type": "number"
1337
+ },
1338
+ "type": {
1339
+ "description": "Key identifying the factory in `WaitDelayerFactories.registry` (e.g. `\"linear\"`, `\"exponential\"`).",
1340
+ "type": "string"
1341
+ }
1342
+ },
1343
+ "required": [
1344
+ "interval",
1345
+ "type"
1346
+ ],
1347
+ "type": "object"
271
1348
  },
272
- "required": [
273
- "interval",
274
- "type"
275
- ],
276
- "description": "Delayer between two failed attempts to process messages"
277
- },
278
- "workerParallelism": {
279
- "type": "boolean",
280
- "description": "Define if worker should process multi message received in //",
281
- "default": true
1349
+ "credentials": {
1350
+ "additionalProperties": false,
1351
+ "description": "Static credentials, default to the AWS environment variables",
1352
+ "properties": {
1353
+ "accessKeyId": {
1354
+ "type": "string"
1355
+ },
1356
+ "secretAccessKey": {
1357
+ "type": "string"
1358
+ },
1359
+ "sessionToken": {
1360
+ "type": "string"
1361
+ }
1362
+ },
1363
+ "required": [
1364
+ "accessKeyId",
1365
+ "secretAccessKey"
1366
+ ],
1367
+ "type": "object"
1368
+ }
282
1369
  },
283
- "maxConsumers": {
284
- "type": "number",
285
- "description": "Max number of queue consumers Queue will auto increase to this max number if queue is loaded and it will decrease to just one consumer if no messages are available",
286
- "default": 10
1370
+ "description": "SQS Queue parameters",
1371
+ "properties": {
1372
+ "CloudFormation": {
1373
+ "description": "Any additional CloudFormation parameters"
1374
+ },
1375
+ "CloudFormationSkip": {
1376
+ "default": false,
1377
+ "description": "Skip CloudFormation on deploy",
1378
+ "type": "boolean"
1379
+ },
1380
+ "MessageGroupId": {
1381
+ "description": "MessageGroupId to pass to send and receive",
1382
+ "type": "string"
1383
+ },
1384
+ "WaitTimeSeconds": {
1385
+ "default": 20,
1386
+ "description": "Time to wait pending for an item",
1387
+ "type": "number"
1388
+ },
1389
+ "credentials": {
1390
+ "$ref": "#/definitions/credentials",
1391
+ "description": "Static credentials, default to the AWS environment variables"
1392
+ },
1393
+ "endpoint": {
1394
+ "description": "Custom endpoint (localstack, minio, ...)",
1395
+ "type": "string"
1396
+ },
1397
+ "maxConsumers": {
1398
+ "default": 10,
1399
+ "description": "Max number of queue consumers\nQueue will auto increase to this max number if queue is loaded\nand it will decrease to just one consumer if no messages are available",
1400
+ "type": "number"
1401
+ },
1402
+ "queue": {
1403
+ "default": "",
1404
+ "description": "Queue URL",
1405
+ "type": "string"
1406
+ },
1407
+ "region": {
1408
+ "default": "us-east-1",
1409
+ "description": "AWS region",
1410
+ "type": "string"
1411
+ },
1412
+ "type": {
1413
+ "description": "Type of the service",
1414
+ "type": "string"
1415
+ },
1416
+ "workerDelayer": {
1417
+ "$ref": "#/definitions/WaitDelayerDefinition",
1418
+ "description": "Delayer between two failed attempts to process messages"
1419
+ },
1420
+ "workerParallelism": {
1421
+ "default": true,
1422
+ "description": "Define if worker should process multi message received in //",
1423
+ "type": "boolean"
1424
+ },
1425
+ "openapi": {
1426
+ "type": "object",
1427
+ "additionalProperties": true
1428
+ }
287
1429
  },
288
- "openapi": {
289
- "type": "object",
290
- "additionalProperties": true
291
- }
1430
+ "required": [
1431
+ "type"
1432
+ ],
1433
+ "type": "object",
1434
+ "title": "SQSQueue"
292
1435
  },
293
- "required": [
294
- "maxConsumers",
295
- "type"
296
- ],
1436
+ "Configuration": "lib/services/sqsqueue.service:SQSQueueParameters"
1437
+ }
1438
+ },
1439
+ "models": {},
1440
+ "schemas": {
1441
+ "Webda/BinaryFile": {
297
1442
  "$schema": "http://json-schema.org/draft-07/schema#",
298
- "title": "SQSQueue"
299
- },
300
- "WebdaAWSDeployer/CloudFormation": {
301
- "type": "object",
1443
+ "WebdaSchema": true,
1444
+ "additionalProperties": false,
1445
+ "description": "Represent a file to store",
302
1446
  "properties": {
303
- "name": {
1447
+ "challenge": {
1448
+ "description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'",
304
1449
  "type": "string"
305
1450
  },
306
- "type": {
1451
+ "hash": {
1452
+ "description": "Will be computed by the service\n\nhash of the content",
307
1453
  "type": "string"
308
- }
309
- },
310
- "$schema": "http://json-schema.org/draft-07/schema#",
311
- "title": "LambdaPackager"
312
- },
313
- "WebdaAWSDeployer/LambdaPackager": {
314
- "type": "object",
315
- "properties": {
1454
+ },
1455
+ "metadata": {
1456
+ "description": "Metadatas stored along with the binary"
1457
+ },
1458
+ "mimetype": {
1459
+ "description": "Mimetype of the binary",
1460
+ "type": "string"
1461
+ },
316
1462
  "name": {
1463
+ "description": "Current name",
317
1464
  "type": "string"
318
1465
  },
319
- "type": {
1466
+ "originalname": {
1467
+ "description": "Original name",
320
1468
  "type": "string"
1469
+ },
1470
+ "size": {
1471
+ "description": "Size of the binary",
1472
+ "type": "number"
321
1473
  }
322
1474
  },
323
- "$schema": "http://json-schema.org/draft-07/schema#",
324
- "title": "LambdaPackager"
1475
+ "required": [
1476
+ "mimetype",
1477
+ "name",
1478
+ "size"
1479
+ ],
1480
+ "type": "object",
1481
+ "title": "BinaryFile"
325
1482
  }
1483
+ },
1484
+ "behaviors": {},
1485
+ "capabilities": {
1486
+ "aws-commands": "Webda/AWSCommands"
326
1487
  }
327
1488
  }