@budibase/server 1.0.80-alpha.3 → 1.0.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mocks__/node-fetch.ts +0 -1
- package/builder/assets/index.22a39cc9.js +1352 -0
- package/builder/assets/{index.c57242d4.css → index.c8d1e8f0.css} +2 -2
- package/builder/assets/{vendor.a7c6ad0a.js → vendor.20f80cec.js} +216 -190
- package/builder/index.html +3 -3
- package/coverage/clover.xml +2327 -2390
- package/coverage/coverage-final.json +137 -138
- package/coverage/lcov-report/api/controllers/analytics.js.html +6 -6
- package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
- package/coverage/lcov-report/api/controllers/application.js.html +149 -152
- package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
- package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
- package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
- package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
- package/coverage/lcov-report/api/controllers/component.js.html +5 -5
- package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
- package/coverage/lcov-report/api/controllers/dev.js.html +19 -19
- package/coverage/lcov-report/api/controllers/index.html +16 -16
- package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
- package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
- package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
- package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
- package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
- package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
- package/coverage/lcov-report/api/controllers/row/index.html +27 -27
- package/coverage/lcov-report/api/controllers/row/index.js.html +46 -46
- package/coverage/lcov-report/api/controllers/row/internal.js.html +82 -94
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +204 -204
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -24
- package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -29
- package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +49 -49
- package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
- package/coverage/lcov-report/api/controllers/table/index.html +11 -11
- package/coverage/lcov-report/api/controllers/table/index.js.html +44 -47
- package/coverage/lcov-report/api/controllers/table/internal.js.html +50 -50
- package/coverage/lcov-report/api/controllers/table/utils.js.html +80 -80
- package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
- package/coverage/lcov-report/api/controllers/user.js.html +19 -19
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
- package/coverage/lcov-report/api/controllers/view/utils.js.html +12 -12
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +27 -18
- package/coverage/lcov-report/api/index.html +10 -10
- package/coverage/lcov-report/api/index.js.html +28 -37
- package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
- package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
- package/coverage/lcov-report/api/routes/application.js.html +9 -9
- package/coverage/lcov-report/api/routes/auth.js.html +6 -6
- package/coverage/lcov-report/api/routes/automation.js.html +109 -19
- package/coverage/lcov-report/api/routes/backup.js.html +8 -8
- package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
- package/coverage/lcov-report/api/routes/component.js.html +8 -8
- package/coverage/lcov-report/api/routes/datasource.js.html +156 -18
- package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
- package/coverage/lcov-report/api/routes/dev.js.html +13 -13
- package/coverage/lcov-report/api/routes/index.html +35 -35
- package/coverage/lcov-report/api/routes/index.js.html +32 -38
- package/coverage/lcov-report/api/routes/integration.js.html +8 -8
- package/coverage/lcov-report/api/routes/layout.js.html +8 -8
- package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
- package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
- package/coverage/lcov-report/api/routes/permission.js.html +58 -16
- package/coverage/lcov-report/api/routes/query.js.html +10 -10
- package/coverage/lcov-report/api/routes/role.js.html +78 -15
- package/coverage/lcov-report/api/routes/routing.js.html +8 -8
- package/coverage/lcov-report/api/routes/row.js.html +14 -17
- package/coverage/lcov-report/api/routes/screen.js.html +95 -14
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +13 -13
- package/coverage/lcov-report/api/routes/table.js.html +62 -17
- package/coverage/lcov-report/api/routes/templates.js.html +8 -8
- package/coverage/lcov-report/api/routes/user.js.html +8 -8
- package/coverage/lcov-report/api/routes/view.js.html +10 -10
- package/coverage/lcov-report/api/routes/webhook.js.html +62 -14
- package/coverage/lcov-report/automations/actions.js.html +24 -24
- package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +7 -7
- package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
- package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
- package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
- package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
- package/coverage/lcov-report/automations/steps/filter.js.html +9 -12
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
- package/coverage/lcov-report/automations/steps/queryRows.js.html +11 -11
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
- package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
- package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
- package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
- package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +26 -26
- package/coverage/lcov-report/automations/utils.js.html +35 -35
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +28 -40
- package/coverage/lcov-report/constants/layouts.js.html +5 -5
- package/coverage/lcov-report/constants/screens.js.html +4 -4
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
- package/coverage/lcov-report/db/index.html +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +21 -21
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +36 -36
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +30 -30
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +87 -123
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +8 -8
- package/coverage/lcov-report/events/utils.js.html +18 -18
- package/coverage/lcov-report/index.html +74 -89
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
- package/coverage/lcov-report/middleware/authorized.js.html +29 -29
- package/coverage/lcov-report/middleware/builder.js.html +16 -16
- package/coverage/lcov-report/middleware/currentapp.js.html +44 -44
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +14 -14
- package/coverage/lcov-report/middleware/resourceId.js.html +29 -29
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +17 -17
- package/coverage/lcov-report/middleware/utils.js.html +4 -4
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +19 -19
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +39 -123
- package/coverage/lcov-report/threads/utils.js.html +14 -14
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
- package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
- package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
- package/coverage/lcov-report/utilities/global.js.html +28 -28
- package/coverage/lcov-report/utilities/index.html +18 -18
- package/coverage/lcov-report/utilities/index.js.html +24 -24
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +60 -60
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +13 -13
- package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
- package/coverage/lcov-report/utilities/security.js.html +8 -8
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +12 -12
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +8 -8
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +5 -5
- package/coverage/lcov-report/utilities/workerRequests.js.html +53 -200
- package/coverage/lcov.info +3233 -3332
- package/dist/api/controllers/application.js +0 -1
- package/dist/api/controllers/row/internal.js +1 -4
- package/dist/api/controllers/table/index.js +1 -2
- package/dist/api/controllers/webhook.js +5 -3
- package/dist/api/index.js +1 -3
- package/dist/api/routes/automation.js +31 -3
- package/dist/api/routes/datasource.js +50 -3
- package/dist/api/routes/index.js +0 -2
- package/dist/api/routes/permission.js +14 -4
- package/dist/api/routes/role.js +19 -3
- package/dist/api/routes/row.js +4 -3
- package/dist/api/routes/screen.js +23 -2
- package/dist/api/routes/table.js +17 -3
- package/dist/api/routes/tests/utilities/index.js +0 -23
- package/dist/api/routes/webhook.js +17 -2
- package/dist/automations/steps/filter.js +2 -2
- package/dist/automations/steps/queryRows.js +1 -1
- package/dist/automations/utils.js +2 -2
- package/dist/constants/index.js +0 -3
- package/dist/db/utils.js +0 -11
- package/dist/environment.js +0 -1
- package/dist/integrations/base/sql.js +1 -16
- package/dist/integrations/base/sqlTable.js +4 -8
- package/dist/integrations/googlesheets.js +0 -3
- package/dist/integrations/microsoftSqlServer.js +43 -60
- package/dist/integrations/mysql.js +0 -3
- package/dist/integrations/oracle.js +19 -14
- package/dist/integrations/postgres.js +28 -34
- package/dist/integrations/utils.js +15 -32
- package/dist/package.json +7 -11
- package/dist/tests/utilities/TestConfiguration.js +8 -25
- package/dist/threads/query.js +8 -33
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/workerRequests.js +15 -50
- package/package.json +8 -12
- package/scripts/integrations/mssql/data/setup.sql +1 -18
- package/scripts/integrations/oracle/oracle.md +2 -2
- package/scripts/integrations/postgres/init.sql +3 -11
- package/scripts/likeCypress.ts +6 -9
- package/scripts/proxy/generateProxyConfig.js +70 -0
- package/src/api/controllers/application.js +0 -1
- package/src/api/controllers/row/ExternalRequest.ts +1 -1
- package/src/api/controllers/row/internal.js +0 -4
- package/src/api/controllers/table/index.js +1 -2
- package/src/api/controllers/webhook.js +6 -3
- package/src/api/index.js +1 -4
- package/src/api/routes/automation.js +33 -3
- package/src/api/routes/datasource.js +52 -6
- package/src/api/routes/index.js +0 -2
- package/src/api/routes/permission.js +18 -4
- package/src/api/routes/role.js +24 -3
- package/src/api/routes/row.js +2 -3
- package/src/api/routes/screen.js +29 -2
- package/src/api/routes/table.js +19 -4
- package/src/api/routes/tests/utilities/index.js +0 -24
- package/src/api/routes/webhook.js +18 -2
- package/src/automations/steps/filter.js +2 -3
- package/src/automations/steps/queryRows.js +1 -1
- package/src/automations/utils.js +2 -2
- package/src/constants/index.js +0 -4
- package/src/db/utils.js +0 -12
- package/src/definitions/common.ts +0 -4
- package/src/definitions/datasource.ts +0 -1
- package/src/environment.js +0 -1
- package/src/integrations/base/datasourcePlus.ts +0 -3
- package/src/integrations/base/sql.ts +1 -16
- package/src/integrations/base/sqlTable.ts +7 -11
- package/src/integrations/googlesheets.ts +2 -5
- package/src/integrations/microsoftSqlServer.ts +61 -86
- package/src/integrations/mysql.ts +0 -4
- package/src/integrations/oracle.ts +35 -27
- package/src/integrations/postgres.ts +26 -33
- package/src/integrations/utils.ts +15 -43
- package/src/tests/utilities/TestConfiguration.js +2 -23
- package/src/threads/query.js +9 -37
- package/src/utilities/workerRequests.js +16 -65
- package/builder/assets/index.f8c92447.js +0 -1288
- package/coverage/lcov-report/api/routes/utils/index.html +0 -111
- package/coverage/lcov-report/api/routes/utils/validators.js.html +0 -737
- package/dist/api/controllers/public/applications.js +0 -94
- package/dist/api/controllers/public/mapping/applications.js +0 -29
- package/dist/api/controllers/public/mapping/index.js +0 -11
- package/dist/api/controllers/public/mapping/queries.js +0 -36
- package/dist/api/controllers/public/mapping/rows.js +0 -24
- package/dist/api/controllers/public/mapping/tables.js +0 -23
- package/dist/api/controllers/public/mapping/types.js +0 -2
- package/dist/api/controllers/public/mapping/users.js +0 -29
- package/dist/api/controllers/public/queries.js +0 -38
- package/dist/api/controllers/public/rows.js +0 -97
- package/dist/api/controllers/public/tables.js +0 -75
- package/dist/api/controllers/public/users.js +0 -95
- package/dist/api/controllers/public/utils.js +0 -49
- package/dist/api/routes/public/applications.js +0 -141
- package/dist/api/routes/public/index.js +0 -101
- package/dist/api/routes/public/middleware/mapper.js +0 -94
- package/dist/api/routes/public/queries.js +0 -77
- package/dist/api/routes/public/rows.js +0 -229
- package/dist/api/routes/public/tables.js +0 -154
- package/dist/api/routes/public/users.js +0 -137
- package/dist/api/routes/public/utils/Endpoint.js +0 -36
- package/dist/api/routes/utils/validators.js +0 -200
- package/dist/definitions/openapi.js +0 -6
- package/specs/generate.js +0 -94
- package/specs/openapi.json +0 -2232
- package/specs/openapi.yaml +0 -1538
- package/specs/parameters.js +0 -59
- package/specs/resources/application.js +0 -101
- package/specs/resources/index.js +0 -24
- package/specs/resources/misc.js +0 -12
- package/specs/resources/query.js +0 -189
- package/specs/resources/row.js +0 -125
- package/specs/resources/table.js +0 -191
- package/specs/resources/user.js +0 -126
- package/specs/resources/utils/Resource.js +0 -26
- package/specs/resources/utils/index.js +0 -11
- package/specs/security.js +0 -7
- package/src/api/controllers/public/applications.ts +0 -74
- package/src/api/controllers/public/mapping/applications.ts +0 -32
- package/src/api/controllers/public/mapping/index.ts +0 -13
- package/src/api/controllers/public/mapping/queries.ts +0 -39
- package/src/api/controllers/public/mapping/rows.ts +0 -31
- package/src/api/controllers/public/mapping/tables.ts +0 -26
- package/src/api/controllers/public/mapping/types.ts +0 -13
- package/src/api/controllers/public/mapping/users.ts +0 -32
- package/src/api/controllers/public/queries.ts +0 -20
- package/src/api/controllers/public/rows.ts +0 -77
- package/src/api/controllers/public/tables.ts +0 -56
- package/src/api/controllers/public/users.ts +0 -82
- package/src/api/controllers/public/utils.ts +0 -38
- package/src/api/routes/public/applications.ts +0 -156
- package/src/api/routes/public/index.ts +0 -118
- package/src/api/routes/public/middleware/mapper.ts +0 -81
- package/src/api/routes/public/queries.ts +0 -81
- package/src/api/routes/public/rows.ts +0 -242
- package/src/api/routes/public/tables.ts +0 -169
- package/src/api/routes/public/tests/compare.spec.js +0 -184
- package/src/api/routes/public/users.ts +0 -144
- package/src/api/routes/public/utils/Endpoint.ts +0 -51
- package/src/api/routes/utils/validators.js +0 -219
- package/src/definitions/openapi.ts +0 -943
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>13/13</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">80% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>4/5</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/2</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>13/13</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -132,26 +132,72 @@
|
|
|
132
132
|
<a name='L73'></a><a href='#L73'>73</a>
|
|
133
133
|
<a name='L74'></a><a href='#L74'>74</a>
|
|
134
134
|
<a name='L75'></a><a href='#L75'>75</a>
|
|
135
|
-
<a name='L76'></a><a href='#L76'>76</a
|
|
136
|
-
<
|
|
137
|
-
<
|
|
135
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
136
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
137
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
138
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
139
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
140
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
141
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
142
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
143
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
144
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
145
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
165
|
+
<a name='L106'></a><a href='#L106'>106</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
166
|
+
<span class="cline-any cline-yes">23x</span>
|
|
167
|
+
<span class="cline-any cline-yes">23x</span>
|
|
168
|
+
<span class="cline-any cline-yes">23x</span>
|
|
169
|
+
<span class="cline-any cline-neutral"> </span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-yes">23x</span>
|
|
174
|
+
<span class="cline-any cline-yes">23x</span>
|
|
175
|
+
<span class="cline-any cline-yes">23x</span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
179
|
+
<span class="cline-any cline-yes">23x</span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-yes">23x</span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
185
|
+
<span class="cline-any cline-yes">92x</span>
|
|
186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
189
|
<span class="cline-any cline-neutral"> </span>
|
|
139
190
|
<span class="cline-any cline-neutral"> </span>
|
|
140
191
|
<span class="cline-any cline-neutral"> </span>
|
|
141
192
|
<span class="cline-any cline-neutral"> </span>
|
|
142
|
-
<span class="cline-any cline-yes">24x</span>
|
|
143
|
-
<span class="cline-any cline-yes">24x</span>
|
|
144
193
|
<span class="cline-any cline-neutral"> </span>
|
|
145
194
|
<span class="cline-any cline-neutral"> </span>
|
|
146
195
|
<span class="cline-any cline-neutral"> </span>
|
|
147
|
-
<span class="cline-any cline-yes">24x</span>
|
|
148
|
-
<span class="cline-any cline-yes">24x</span>
|
|
149
196
|
<span class="cline-any cline-neutral"> </span>
|
|
150
|
-
<span class="cline-any cline-yes">24x</span>
|
|
151
197
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-yes">24x</span>
|
|
153
198
|
<span class="cline-any cline-neutral"> </span>
|
|
154
199
|
<span class="cline-any cline-neutral"> </span>
|
|
200
|
+
<span class="cline-any cline-yes">46x</span>
|
|
155
201
|
<span class="cline-any cline-neutral"> </span>
|
|
156
202
|
<span class="cline-any cline-neutral"> </span>
|
|
157
203
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -163,6 +209,7 @@
|
|
|
163
209
|
<span class="cline-any cline-neutral"> </span>
|
|
164
210
|
<span class="cline-any cline-neutral"> </span>
|
|
165
211
|
<span class="cline-any cline-neutral"> </span>
|
|
212
|
+
<span class="cline-any cline-yes">23x</span>
|
|
166
213
|
<span class="cline-any cline-neutral"> </span>
|
|
167
214
|
<span class="cline-any cline-neutral"> </span>
|
|
168
215
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -206,24 +253,67 @@
|
|
|
206
253
|
<span class="cline-any cline-neutral"> </span>
|
|
207
254
|
<span class="cline-any cline-neutral"> </span>
|
|
208
255
|
<span class="cline-any cline-neutral"> </span>
|
|
209
|
-
<span class="cline-any cline-
|
|
256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-yes">23x</span>
|
|
210
270
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
|
|
211
271
|
const controller = require("../controllers/automation")
|
|
212
272
|
const authorized = require("../../middleware/authorized")
|
|
273
|
+
const joiValidator = require("../../middleware/joi-validator")
|
|
213
274
|
const {
|
|
214
275
|
BUILDER,
|
|
215
276
|
PermissionLevels,
|
|
216
277
|
PermissionTypes,
|
|
217
278
|
} = require("@budibase/backend-core/permissions")
|
|
279
|
+
const Joi = require("joi")
|
|
218
280
|
const { bodyResource, paramResource } = require("../../middleware/resourceId")
|
|
219
281
|
const {
|
|
220
282
|
middleware: appInfoMiddleware,
|
|
221
283
|
AppType,
|
|
222
284
|
} = require("../../middleware/appInfo")
|
|
223
|
-
const { automationValidator } = require("./utils/validators")
|
|
224
285
|
|
|
225
286
|
const router = Router()
|
|
226
287
|
|
|
288
|
+
// prettier-ignore
|
|
289
|
+
function generateStepSchema(allowStepTypes) {
|
|
290
|
+
return Joi.object({
|
|
291
|
+
stepId: Joi.string().required(),
|
|
292
|
+
id: Joi.string().required(),
|
|
293
|
+
description: Joi.string().required(),
|
|
294
|
+
name: Joi.string().required(),
|
|
295
|
+
tagline: Joi.string().required(),
|
|
296
|
+
icon: Joi.string().required(),
|
|
297
|
+
params: Joi.object(),
|
|
298
|
+
args: Joi.object(),
|
|
299
|
+
type: Joi.string().required().valid(...allowStepTypes),
|
|
300
|
+
}).unknown(true)
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
function generateValidator(existing = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
|
|
304
|
+
// prettier-ignore
|
|
305
|
+
return joiValidator.body(Joi.object({
|
|
306
|
+
_id: existing ? Joi.string().required() : Joi.string(),
|
|
307
|
+
_rev: existing ? Joi.string().required() : Joi.string(),
|
|
308
|
+
name: Joi.string().required(),
|
|
309
|
+
type: Joi.string().valid("automation").required(),
|
|
310
|
+
definition: Joi.object({
|
|
311
|
+
steps: Joi.array().required().items(generateStepSchema(["ACTION", "LOGIC"])),
|
|
312
|
+
trigger: generateStepSchema(["TRIGGER"]).allow(null),
|
|
313
|
+
}).required().unknown(true),
|
|
314
|
+
}).unknown(true))
|
|
315
|
+
}
|
|
316
|
+
|
|
227
317
|
router
|
|
228
318
|
.get(
|
|
229
319
|
"/api/automations/trigger/list",
|
|
@@ -251,13 +341,13 @@ router
|
|
|
251
341
|
"/api/automations",
|
|
252
342
|
bodyResource("_id"),
|
|
253
343
|
authorized(BUILDER),
|
|
254
|
-
|
|
344
|
+
generateValidator(true),
|
|
255
345
|
controller.update
|
|
256
346
|
)
|
|
257
347
|
.post(
|
|
258
348
|
"/api/automations",
|
|
259
349
|
authorized(BUILDER),
|
|
260
|
-
|
|
350
|
+
generateValidator(false),
|
|
261
351
|
controller.create
|
|
262
352
|
)
|
|
263
353
|
.delete(
|
|
@@ -289,7 +379,7 @@ module.exports = router
|
|
|
289
379
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
290
380
|
Code coverage generated by
|
|
291
381
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
292
|
-
at
|
|
382
|
+
at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
|
|
293
383
|
</div>
|
|
294
384
|
</div>
|
|
295
385
|
<script src="../../prettify.js"></script>
|
|
@@ -67,16 +67,16 @@
|
|
|
67
67
|
<a name='L8'></a><a href='#L8'>8</a>
|
|
68
68
|
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
69
|
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
|
-
<a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
71
|
-
<span class="cline-any cline-yes">
|
|
72
|
-
<span class="cline-any cline-yes">
|
|
73
|
-
<span class="cline-any cline-yes">
|
|
70
|
+
<a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
71
|
+
<span class="cline-any cline-yes">23x</span>
|
|
72
|
+
<span class="cline-any cline-yes">23x</span>
|
|
73
|
+
<span class="cline-any cline-yes">23x</span>
|
|
74
74
|
<span class="cline-any cline-neutral"> </span>
|
|
75
|
-
<span class="cline-any cline-yes">
|
|
75
|
+
<span class="cline-any cline-yes">23x</span>
|
|
76
76
|
<span class="cline-any cline-neutral"> </span>
|
|
77
|
-
<span class="cline-any cline-yes">
|
|
77
|
+
<span class="cline-any cline-yes">23x</span>
|
|
78
78
|
<span class="cline-any cline-neutral"> </span>
|
|
79
|
-
<span class="cline-any cline-yes">
|
|
79
|
+
<span class="cline-any cline-yes">23x</span>
|
|
80
80
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
|
|
81
81
|
const controller = require("../controllers/backup")
|
|
82
82
|
const authorized = require("../../middleware/authorized")
|
|
@@ -94,7 +94,7 @@ module.exports = router
|
|
|
94
94
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
95
95
|
Code coverage generated by
|
|
96
96
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
97
|
-
at
|
|
97
|
+
at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
|
|
98
98
|
</div>
|
|
99
99
|
</div>
|
|
100
100
|
<script src="../../prettify.js"></script>
|
|
@@ -71,20 +71,20 @@
|
|
|
71
71
|
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
72
|
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
73
|
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
|
-
<a name='L15'></a><a href='#L15'>15</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
75
|
-
<span class="cline-any cline-yes">
|
|
76
|
-
<span class="cline-any cline-yes">
|
|
77
|
-
<span class="cline-any cline-yes">
|
|
74
|
+
<a name='L15'></a><a href='#L15'>15</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
75
|
+
<span class="cline-any cline-yes">23x</span>
|
|
76
|
+
<span class="cline-any cline-yes">23x</span>
|
|
77
|
+
<span class="cline-any cline-yes">23x</span>
|
|
78
78
|
<span class="cline-any cline-neutral"> </span>
|
|
79
|
-
<span class="cline-any cline-yes">
|
|
79
|
+
<span class="cline-any cline-yes">23x</span>
|
|
80
80
|
<span class="cline-any cline-neutral"> </span>
|
|
81
|
-
<span class="cline-any cline-yes">
|
|
81
|
+
<span class="cline-any cline-yes">23x</span>
|
|
82
82
|
<span class="cline-any cline-neutral"> </span>
|
|
83
83
|
<span class="cline-any cline-neutral"> </span>
|
|
84
84
|
<span class="cline-any cline-neutral"> </span>
|
|
85
85
|
<span class="cline-any cline-neutral"> </span>
|
|
86
86
|
<span class="cline-any cline-neutral"> </span>
|
|
87
|
-
<span class="cline-any cline-yes">
|
|
87
|
+
<span class="cline-any cline-yes">23x</span>
|
|
88
88
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
|
|
89
89
|
const controller = require("../controllers/cloud")
|
|
90
90
|
const authorized = require("../../middleware/authorized")
|
|
@@ -106,7 +106,7 @@ module.exports = router
|
|
|
106
106
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
107
107
|
Code coverage generated by
|
|
108
108
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
109
|
-
at
|
|
109
|
+
at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
112
112
|
<script src="../../prettify.js"></script>
|
|
@@ -71,20 +71,20 @@
|
|
|
71
71
|
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
72
|
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
73
|
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
|
-
<a name='L15'></a><a href='#L15'>15</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
75
|
-
<span class="cline-any cline-yes">
|
|
76
|
-
<span class="cline-any cline-yes">
|
|
77
|
-
<span class="cline-any cline-yes">
|
|
74
|
+
<a name='L15'></a><a href='#L15'>15</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
75
|
+
<span class="cline-any cline-yes">23x</span>
|
|
76
|
+
<span class="cline-any cline-yes">23x</span>
|
|
77
|
+
<span class="cline-any cline-yes">23x</span>
|
|
78
78
|
<span class="cline-any cline-neutral"> </span>
|
|
79
|
-
<span class="cline-any cline-yes">
|
|
79
|
+
<span class="cline-any cline-yes">23x</span>
|
|
80
80
|
<span class="cline-any cline-neutral"> </span>
|
|
81
|
-
<span class="cline-any cline-yes">
|
|
81
|
+
<span class="cline-any cline-yes">23x</span>
|
|
82
82
|
<span class="cline-any cline-neutral"> </span>
|
|
83
83
|
<span class="cline-any cline-neutral"> </span>
|
|
84
84
|
<span class="cline-any cline-neutral"> </span>
|
|
85
85
|
<span class="cline-any cline-neutral"> </span>
|
|
86
86
|
<span class="cline-any cline-neutral"> </span>
|
|
87
|
-
<span class="cline-any cline-yes">
|
|
87
|
+
<span class="cline-any cline-yes">23x</span>
|
|
88
88
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
|
|
89
89
|
const controller = require("../controllers/component")
|
|
90
90
|
const authorized = require("../../middleware/authorized")
|
|
@@ -106,7 +106,7 @@ module.exports = router
|
|
|
106
106
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
107
107
|
Code coverage generated by
|
|
108
108
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
109
|
-
at
|
|
109
|
+
at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
112
112
|
<script src="../../prettify.js"></script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>12/12</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/2</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>12/12</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -108,22 +108,93 @@
|
|
|
108
108
|
<a name='L49'></a><a href='#L49'>49</a>
|
|
109
109
|
<a name='L50'></a><a href='#L50'>50</a>
|
|
110
110
|
<a name='L51'></a><a href='#L51'>51</a>
|
|
111
|
-
<a name='L52'></a><a href='#L52'>52</a
|
|
112
|
-
<
|
|
113
|
-
<
|
|
111
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
112
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
113
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
114
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
115
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
116
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
117
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
118
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
119
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
120
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
121
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
122
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
123
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
124
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
125
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
126
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
127
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
128
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
129
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
130
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
131
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
132
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
133
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
134
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
135
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
136
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
137
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
138
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
139
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
140
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
141
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
142
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
143
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
144
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
145
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
158
|
+
<span class="cline-any cline-yes">23x</span>
|
|
159
|
+
<span class="cline-any cline-yes">23x</span>
|
|
160
|
+
<span class="cline-any cline-yes">23x</span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
165
|
+
<span class="cline-any cline-yes">23x</span>
|
|
166
|
+
<span class="cline-any cline-yes">23x</span>
|
|
167
|
+
<span class="cline-any cline-yes">23x</span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-yes">23x</span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-yes">23x</span>
|
|
174
|
+
<span class="cline-any cline-neutral"> </span>
|
|
175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
179
|
+
<span class="cline-any cline-neutral"> </span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
185
|
+
<span class="cline-any cline-neutral"> </span>
|
|
186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
114
188
|
<span class="cline-any cline-neutral"> </span>
|
|
115
189
|
<span class="cline-any cline-neutral"> </span>
|
|
116
190
|
<span class="cline-any cline-neutral"> </span>
|
|
117
191
|
<span class="cline-any cline-neutral"> </span>
|
|
118
|
-
<span class="cline-any cline-yes">
|
|
192
|
+
<span class="cline-any cline-yes">23x</span>
|
|
119
193
|
<span class="cline-any cline-neutral"> </span>
|
|
120
194
|
<span class="cline-any cline-neutral"> </span>
|
|
121
195
|
<span class="cline-any cline-neutral"> </span>
|
|
122
|
-
<span class="cline-any cline-yes">24x</span>
|
|
123
196
|
<span class="cline-any cline-neutral"> </span>
|
|
124
|
-
<span class="cline-any cline-yes">24x</span>
|
|
125
197
|
<span class="cline-any cline-neutral"> </span>
|
|
126
|
-
<span class="cline-any cline-yes">24x</span>
|
|
127
198
|
<span class="cline-any cline-neutral"> </span>
|
|
128
199
|
<span class="cline-any cline-neutral"> </span>
|
|
129
200
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -144,6 +215,7 @@
|
|
|
144
215
|
<span class="cline-any cline-neutral"> </span>
|
|
145
216
|
<span class="cline-any cline-neutral"> </span>
|
|
146
217
|
<span class="cline-any cline-neutral"> </span>
|
|
218
|
+
<span class="cline-any cline-yes">23x</span>
|
|
147
219
|
<span class="cline-any cline-neutral"> </span>
|
|
148
220
|
<span class="cline-any cline-neutral"> </span>
|
|
149
221
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -158,22 +230,88 @@
|
|
|
158
230
|
<span class="cline-any cline-neutral"> </span>
|
|
159
231
|
<span class="cline-any cline-neutral"> </span>
|
|
160
232
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-yes">23x</span>
|
|
162
254
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
|
|
163
255
|
const datasourceController = require("../controllers/datasource")
|
|
164
256
|
const authorized = require("../../middleware/authorized")
|
|
257
|
+
const joiValidator = require("../../middleware/joi-validator")
|
|
165
258
|
const {
|
|
166
259
|
BUILDER,
|
|
167
260
|
PermissionLevels,
|
|
168
261
|
PermissionTypes,
|
|
169
262
|
} = require("@budibase/backend-core/permissions")
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
datasourceQueryValidator,
|
|
173
|
-
} = require("./utils/validators")
|
|
263
|
+
const Joi = require("joi")
|
|
264
|
+
const { DataSourceOperation } = require("../../constants")
|
|
174
265
|
|
|
175
266
|
const router = Router()
|
|
176
267
|
|
|
268
|
+
function generateDatasourceSchema() {
|
|
269
|
+
// prettier-ignore
|
|
270
|
+
return joiValidator.body(Joi.object({
|
|
271
|
+
_id: Joi.string(),
|
|
272
|
+
_rev: Joi.string(),
|
|
273
|
+
// source: Joi.string().valid("POSTGRES_PLUS"),
|
|
274
|
+
type: Joi.string().allow("datasource_plus"),
|
|
275
|
+
relationships: Joi.array().items(Joi.object({
|
|
276
|
+
from: Joi.string().required(),
|
|
277
|
+
to: Joi.string().required(),
|
|
278
|
+
cardinality: Joi.valid("1:N", "1:1", "N:N").required()
|
|
279
|
+
})),
|
|
280
|
+
// entities: Joi.array().items(Joi.object({
|
|
281
|
+
// type: Joi.string().valid(...Object.values(FieldTypes)).required(),
|
|
282
|
+
// name: Joi.string().required(),
|
|
283
|
+
// })),
|
|
284
|
+
}).unknown(true))
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function generateQueryDatasourceSchema() {
|
|
288
|
+
// prettier-ignore
|
|
289
|
+
return joiValidator.body(Joi.object({
|
|
290
|
+
endpoint: Joi.object({
|
|
291
|
+
datasourceId: Joi.string().required(),
|
|
292
|
+
operation: Joi.string().required().valid(...Object.values(DataSourceOperation)),
|
|
293
|
+
entityId: Joi.string().required(),
|
|
294
|
+
}).required(),
|
|
295
|
+
resource: Joi.object({
|
|
296
|
+
fields: Joi.array().items(Joi.string()).optional(),
|
|
297
|
+
}).optional(),
|
|
298
|
+
body: Joi.object().optional(),
|
|
299
|
+
sort: Joi.object().optional(),
|
|
300
|
+
filters: Joi.object({
|
|
301
|
+
string: Joi.object().optional(),
|
|
302
|
+
range: Joi.object().optional(),
|
|
303
|
+
equal: Joi.object().optional(),
|
|
304
|
+
notEqual: Joi.object().optional(),
|
|
305
|
+
empty: Joi.object().optional(),
|
|
306
|
+
notEmpty: Joi.object().optional(),
|
|
307
|
+
}).optional(),
|
|
308
|
+
paginate: Joi.object({
|
|
309
|
+
page: Joi.string().alphanum().optional(),
|
|
310
|
+
limit: Joi.number().optional(),
|
|
311
|
+
}).optional(),
|
|
312
|
+
}))
|
|
313
|
+
}
|
|
314
|
+
|
|
177
315
|
router
|
|
178
316
|
.get("/api/datasources", authorized(BUILDER), datasourceController.fetch)
|
|
179
317
|
.get(
|
|
@@ -189,7 +327,7 @@ router
|
|
|
189
327
|
.post(
|
|
190
328
|
"/api/datasources/query",
|
|
191
329
|
authorized(PermissionTypes.TABLE, PermissionLevels.READ),
|
|
192
|
-
|
|
330
|
+
generateQueryDatasourceSchema(),
|
|
193
331
|
datasourceController.query
|
|
194
332
|
)
|
|
195
333
|
.post(
|
|
@@ -200,7 +338,7 @@ router
|
|
|
200
338
|
.post(
|
|
201
339
|
"/api/datasources",
|
|
202
340
|
authorized(BUILDER),
|
|
203
|
-
|
|
341
|
+
generateDatasourceSchema(),
|
|
204
342
|
datasourceController.save
|
|
205
343
|
)
|
|
206
344
|
.delete(
|
|
@@ -217,7 +355,7 @@ module.exports = router
|
|
|
217
355
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
218
356
|
Code coverage generated by
|
|
219
357
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
220
|
-
at
|
|
358
|
+
at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
|
|
221
359
|
</div>
|
|
222
360
|
</div>
|
|
223
361
|
<script src="../../prettify.js"></script>
|
|
@@ -74,14 +74,14 @@
|
|
|
74
74
|
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
75
|
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
76
|
<a name='L17'></a><a href='#L17'>17</a>
|
|
77
|
-
<a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
78
|
-
<span class="cline-any cline-yes">
|
|
79
|
-
<span class="cline-any cline-yes">
|
|
80
|
-
<span class="cline-any cline-yes">
|
|
77
|
+
<a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
78
|
+
<span class="cline-any cline-yes">23x</span>
|
|
79
|
+
<span class="cline-any cline-yes">23x</span>
|
|
80
|
+
<span class="cline-any cline-yes">23x</span>
|
|
81
81
|
<span class="cline-any cline-neutral"> </span>
|
|
82
|
-
<span class="cline-any cline-yes">
|
|
82
|
+
<span class="cline-any cline-yes">23x</span>
|
|
83
83
|
<span class="cline-any cline-neutral"> </span>
|
|
84
|
-
<span class="cline-any cline-yes">
|
|
84
|
+
<span class="cline-any cline-yes">23x</span>
|
|
85
85
|
<span class="cline-any cline-neutral"> </span>
|
|
86
86
|
<span class="cline-any cline-neutral"> </span>
|
|
87
87
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
<span class="cline-any cline-neutral"> </span>
|
|
91
91
|
<span class="cline-any cline-neutral"> </span>
|
|
92
92
|
<span class="cline-any cline-neutral"> </span>
|
|
93
|
-
<span class="cline-any cline-yes">
|
|
93
|
+
<span class="cline-any cline-yes">23x</span>
|
|
94
94
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
|
|
95
95
|
const controller = require("../controllers/deploy")
|
|
96
96
|
const authorized = require("../../middleware/authorized")
|
|
@@ -115,7 +115,7 @@ module.exports = router
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
118
|
-
at
|
|
118
|
+
at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|