@budibase/server 2.1.32-alpha.8 → 2.1.33
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__/aws-sdk.ts +0 -14
- package/__mocks__/node-fetch.ts +1 -5
- package/builder/assets/{index.7176fd99.css → index.534f6c29.css} +1 -1
- package/builder/assets/{index.3efa93e2.js → index.d2995f56.js} +316 -316
- package/builder/index.html +2 -2
- package/coverage/clover.xml +3681 -10588
- package/coverage/coverage-final.json +77 -225
- package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +26 -26
- package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +75 -75
- package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +47 -47
- package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +87 -246
- package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +71 -53
- package/coverage/lcov-report/api/controllers/index.html +326 -0
- package/coverage/lcov-report/{src/api → api}/controllers/integration.js.html +10 -10
- package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +26 -26
- package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +23 -26
- package/coverage/lcov-report/{src/api → api}/controllers/migrations.js.html +10 -10
- package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +71 -80
- package/coverage/lcov-report/{src/utilities/routing → api/controllers/query}/index.html +8 -8
- package/coverage/lcov-report/{src/api/controllers/query/validation.ts.html → api/controllers/query/validation.js.html} +17 -17
- package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +56 -44
- package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +56 -65
- package/coverage/lcov-report/{src/api → api}/controllers/row/external.js.html +13 -13
- package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +46 -76
- package/coverage/lcov-report/{src/api → api}/controllers/row/internal.js.html +29 -26
- package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +110 -182
- package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +54 -69
- package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +43 -64
- package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +14 -17
- package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +54 -96
- package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +100 -196
- package/coverage/lcov-report/{src/utilities/fileSystem → api/controllers/table}/index.html +44 -44
- package/coverage/lcov-report/{src/api/controllers/table/index.ts.html → api/controllers/table/index.js.html} +35 -35
- package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +25 -34
- package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +85 -79
- package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +14 -20
- package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +30 -30
- package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +48 -75
- package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +43 -61
- package/coverage/lcov-report/{src/api → api}/controllers/view/viewBuilder.js.html +10 -10
- package/coverage/lcov-report/{src/api → api}/index.html +23 -23
- package/coverage/lcov-report/{src/api/index.ts.html → api/index.js.html} +56 -35
- package/coverage/lcov-report/{src/api/routes/analytics.ts.html → api/routes/analytics.js.html} +14 -14
- package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/routes/apikeys.js.html} +27 -27
- package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +42 -48
- package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +21 -21
- package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +17 -17
- package/coverage/lcov-report/{src/api/routes/datasource.ts.html → api/routes/datasource.js.html} +33 -60
- package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +22 -25
- package/coverage/lcov-report/{src/api/routes/webhook.ts.html → api/routes/dev.js.html} +43 -46
- package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
- package/coverage/lcov-report/{src/api/routes/apikeys.ts.html → api/routes/integration.js.html} +18 -18
- package/coverage/lcov-report/{src/api/routes/layout.ts.html → api/routes/layout.js.html} +18 -18
- package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +24 -24
- package/coverage/lcov-report/{src/sdk/index.ts.html → api/routes/migrations.js.html} +21 -24
- package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/permission.js.html} +37 -40
- package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +42 -33
- package/coverage/lcov-report/api/routes/role.js.html +130 -0
- package/coverage/lcov-report/{src/api/routes/routing.ts.html → api/routes/routing.js.html} +17 -17
- package/coverage/lcov-report/api/routes/screen.js.html +139 -0
- package/coverage/lcov-report/{src/api/routes/script.ts.html → api/routes/script.js.html} +17 -17
- package/coverage/lcov-report/{src/api/routes/table.ts.html → api/routes/table.js.html} +33 -24
- package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +18 -18
- package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +35 -29
- package/coverage/lcov-report/{src/api → api}/routes/utils/index.html +15 -15
- package/coverage/lcov-report/{src/api/routes/utils/validators.ts.html → api/routes/utils/validators.js.html} +58 -46
- package/coverage/lcov-report/{src/definitions/automations.ts.html → api/routes/view.js.html} +41 -44
- package/coverage/lcov-report/{src/automations → automations}/actions.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/automationUtils.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/bullboard.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/index.html +24 -39
- package/coverage/lcov-report/{src/automations → automations}/index.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/bash.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/delay.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/discord.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/executeQuery.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/executeScript.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/filter.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/index.html +26 -56
- package/coverage/lcov-report/{src/automations → automations}/steps/integromat.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/loop.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/outgoingWebhook.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/queryRows.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/sendSmtpEmail.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/serverLog.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/slack.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/updateRow.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/utils.js.html +19 -19
- package/coverage/lcov-report/{src/automations → automations}/steps/zapier.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/app.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/cron.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowDeleted.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowSaved.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowUpdated.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/webhook.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggers.js.html +23 -20
- package/coverage/lcov-report/{src/constants → constants}/index.html +14 -14
- package/coverage/lcov-report/{src/constants → constants}/index.js.html +22 -16
- package/coverage/lcov-report/{src/constants → constants}/layouts.js.html +10 -10
- package/coverage/lcov-report/{src/constants → constants}/screens.js.html +12 -12
- package/coverage/lcov-report/{src/db → db}/inMemoryView.js.html +13 -13
- package/coverage/lcov-report/{src/db → db}/index.html +27 -42
- package/coverage/lcov-report/{src/db → db}/index.js.html +18 -18
- package/coverage/lcov-report/{src/db → db}/linkedRows/LinkController.js.html +160 -22
- package/coverage/lcov-report/{src/db → db}/linkedRows/index.html +22 -37
- package/coverage/lcov-report/{src/db → db}/linkedRows/index.js.html +12 -12
- package/coverage/lcov-report/{src/db → db}/linkedRows/linkUtils.js.html +13 -13
- package/coverage/lcov-report/{src/db → db}/newid.js.html +10 -10
- package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +153 -105
- package/coverage/lcov-report/{src/events → events}/AutomationEmitter.js.html +10 -10
- package/coverage/lcov-report/{src/events → events}/index.html +10 -10
- package/coverage/lcov-report/{src/events → events}/index.js.html +10 -10
- package/coverage/lcov-report/{src/events → events}/utils.js.html +10 -10
- package/coverage/lcov-report/index.html +161 -671
- package/coverage/lcov-report/{src/integrations → integrations}/tests/TestConfiguration.js.html +10 -10
- package/coverage/lcov-report/{src/integrations → integrations}/tests/index.html +10 -10
- package/coverage/lcov-report/{src/middleware/appInfo.ts.html → middleware/appInfo.js.html} +28 -31
- package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +37 -43
- package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +68 -77
- package/coverage/lcov-report/{src/middleware → middleware}/index.html +63 -78
- package/coverage/lcov-report/{src/middleware/joi-validator.ts.html → middleware/joi-validator.js.html} +22 -25
- package/coverage/lcov-report/{src/middleware/publicApi.ts.html → middleware/publicApi.js.html} +24 -24
- package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +25 -40
- package/coverage/lcov-report/{src/tests/utilities/index.js.html → middleware/selfhost.js.html} +30 -33
- package/coverage/lcov-report/{src/middleware/utils.ts.html → middleware/utils.js.html} +13 -19
- package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +12 -12
- package/coverage/lcov-report/{src/utilities → utilities}/centralPath.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/csvParser.js.html +10 -10
- package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +74 -107
- package/coverage/lcov-report/{src/utilities → utilities}/index.html +61 -76
- package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +53 -77
- package/coverage/lcov-report/{src/utilities → utilities}/plugins.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/queue/inMemoryQueue.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/queue/index.html +10 -10
- package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
- package/coverage/lcov-report/{src/api/routes/role.ts.html → utilities/routing/index.js.html} +42 -39
- package/coverage/lcov-report/{src/migrations → utilities/rowProcessor}/index.html +37 -22
- package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +344 -113
- package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +38 -50
- package/coverage/lcov-report/{src/utilities → utilities}/scriptRunner.js.html +10 -10
- package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +74 -56
- package/coverage/lcov-report/{src/utilities → utilities}/statusCodes.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +27 -27
- package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +46 -34
- package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/usageQuoteReset.js.html +10 -10
- package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +35 -29
- package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +61 -76
- package/coverage/lcov.info +6772 -19273
- package/dist/api/controllers/apikeys.js +9 -12
- package/dist/api/controllers/application.js +45 -48
- package/dist/api/controllers/automation.js +84 -104
- package/dist/api/controllers/cloud.js +71 -84
- package/dist/api/controllers/component.js +2 -4
- package/dist/api/controllers/datasource.js +92 -144
- package/dist/api/controllers/deploy/Deployment.js +6 -10
- package/dist/api/controllers/deploy/index.js +16 -13
- package/dist/api/controllers/dev.js +81 -96
- package/dist/api/controllers/layout.js +15 -18
- package/dist/api/controllers/metadata.js +37 -51
- package/dist/api/controllers/permission.js +43 -52
- package/dist/api/controllers/plugin/index.js +7 -6
- package/dist/api/controllers/public/applications.js +9 -17
- package/dist/api/controllers/public/tables.js +9 -29
- package/dist/api/controllers/query/import/index.js +2 -1
- package/dist/api/controllers/query/index.js +13 -10
- package/dist/api/controllers/query/validation.js +33 -41
- package/dist/api/controllers/role.js +27 -29
- package/dist/api/controllers/routing.js +58 -71
- package/dist/api/controllers/row/ExternalRequest.js +8 -12
- package/dist/api/controllers/row/external.js +3 -3
- package/dist/api/controllers/row/index.js +7 -16
- package/dist/api/controllers/row/internal.js +12 -11
- package/dist/api/controllers/row/internalSearch.js +80 -95
- package/dist/api/controllers/row/staticFormula.js +75 -85
- package/dist/api/controllers/row/utils.js +84 -118
- package/dist/api/controllers/screen.js +66 -81
- package/dist/api/controllers/script.js +6 -13
- package/dist/api/controllers/static/index.js +11 -9
- package/dist/api/controllers/table/bulkFormula.js +35 -47
- package/dist/api/controllers/table/external.js +57 -67
- package/dist/api/controllers/table/index.js +33 -66
- package/dist/api/controllers/table/internal.js +6 -5
- package/dist/api/controllers/table/utils.js +35 -39
- package/dist/api/controllers/templates.js +10 -17
- package/dist/api/controllers/user.js +70 -82
- package/dist/api/controllers/view/exporters.js +4 -8
- package/dist/api/controllers/view/index.js +153 -201
- package/dist/api/controllers/view/utils.js +121 -151
- package/dist/api/index.js +34 -38
- package/dist/api/routes/analytics.js +3 -29
- package/dist/api/routes/apikeys.js +7 -33
- package/dist/api/routes/application.js +9 -8
- package/dist/api/routes/auth.js +2 -1
- package/dist/api/routes/automation.js +20 -46
- package/dist/api/routes/backup.js +4 -3
- package/dist/api/routes/cloud.js +6 -32
- package/dist/api/routes/component.js +6 -32
- package/dist/api/routes/datasource.js +13 -39
- package/dist/api/routes/deploy.js +8 -34
- package/dist/api/routes/dev.js +10 -36
- package/dist/api/routes/integration.js +7 -10
- package/dist/api/routes/layout.js +7 -33
- package/dist/api/routes/metadata.js +10 -36
- package/dist/api/routes/migrations.js +6 -32
- package/dist/api/routes/permission.js +12 -38
- package/dist/api/routes/plugin.js +5 -5
- package/dist/api/routes/public/index.js +9 -9
- package/dist/api/routes/query.js +15 -42
- package/dist/api/routes/role.js +10 -36
- package/dist/api/routes/routing.js +6 -32
- package/dist/api/routes/row.js +11 -12
- package/dist/api/routes/screen.js +9 -35
- package/dist/api/routes/script.js +6 -32
- package/dist/api/routes/static.js +9 -9
- package/dist/api/routes/table.js +13 -40
- package/dist/api/routes/templates.js +7 -33
- package/dist/api/routes/tests/utilities/TestFunctions.js +8 -6
- package/dist/api/routes/user.js +13 -40
- package/dist/api/routes/utils/validators.js +126 -142
- package/dist/api/routes/view.js +12 -38
- package/dist/api/routes/webhook.js +2 -1
- package/dist/app.js +4 -3
- package/dist/automations/tests/utilities/index.js +12 -21
- package/dist/automations/triggers.js +6 -5
- package/dist/automations/utils.js +8 -9
- package/dist/constants/index.js +5 -3
- package/dist/constants/screens.js +2 -2
- package/dist/db/inMemoryView.js +3 -3
- package/dist/db/linkedRows/LinkController.js +31 -4
- package/dist/db/linkedRows/index.js +2 -2
- package/dist/db/linkedRows/linkUtils.js +3 -3
- package/dist/db/utils.js +119 -146
- package/dist/db/views/staticViews.js +4 -4
- package/dist/integrations/elasticsearch.js +2 -26
- package/dist/integrations/googlesheets.js +6 -4
- package/dist/integrations/index.js +6 -15
- package/dist/integrations/s3.js +1 -157
- package/dist/middleware/appInfo.js +9 -14
- package/dist/middleware/authorized.js +21 -22
- package/dist/middleware/builder.js +40 -41
- package/dist/middleware/currentapp.js +37 -39
- package/dist/middleware/joi-validator.js +10 -17
- package/dist/middleware/publicApi.js +6 -5
- package/dist/middleware/resourceId.js +9 -16
- package/dist/middleware/selfhost.js +4 -5
- package/dist/middleware/utils.js +2 -5
- package/dist/migrations/functions/appUrls.js +2 -2
- package/dist/migrations/functions/backfill/global.js +1 -1
- package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
- package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
- package/dist/migrations/functions/userEmailViewCasing.js +3 -3
- package/dist/package.json +44 -10
- package/dist/sdk/app/backups/exports.js +2 -1
- package/dist/sdk/app/backups/imports.js +3 -2
- package/dist/sdk/app/tables/index.js +5 -5
- package/dist/startup.js +4 -4
- package/dist/tests/utilities/TestConfiguration.js +36 -30
- package/dist/tests/utilities/structures.js +4 -3
- package/dist/threads/automation.js +16 -15
- package/dist/threads/query.js +20 -17
- package/dist/threads/utils.js +9 -11
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/budibaseDir.js +2 -4
- package/dist/utilities/fileSystem/clientLibrary.js +12 -12
- package/dist/utilities/fileSystem/index.js +3 -3
- package/dist/utilities/fileSystem/utilities.js +22 -0
- package/dist/utilities/global.js +66 -87
- package/dist/utilities/index.js +75 -102
- package/dist/utilities/redis.js +65 -100
- package/dist/utilities/routing/index.js +23 -27
- package/dist/utilities/rowProcessor/index.js +191 -124
- package/dist/utilities/rowProcessor/utils.js +26 -35
- package/dist/utilities/security.js +35 -39
- package/dist/utilities/usageQuota/rows.js +49 -56
- package/dist/utilities/users.js +28 -31
- package/dist/utilities/workerRequests.js +82 -115
- package/dist/watch.js +2 -1
- package/package.json +45 -11
- package/scripts/exportAppTemplate.js +2 -2
- package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
- package/scripts/localdomain.js +6 -34
- package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
- package/src/api/controllers/application.ts +42 -56
- package/src/api/controllers/auth.ts +3 -4
- package/src/api/controllers/{automation.ts → automation.js} +48 -48
- package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
- package/src/api/controllers/component.ts +1 -2
- package/src/api/controllers/{datasource.ts → datasource.js} +47 -100
- package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
- package/src/api/controllers/deploy/index.ts +25 -13
- package/src/api/controllers/{dev.ts → dev.js} +37 -31
- package/src/api/controllers/{layout.ts → layout.js} +8 -8
- package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
- package/src/api/controllers/{permission.ts → permission.js} +46 -49
- package/src/api/controllers/plugin/index.ts +5 -4
- package/src/api/controllers/public/applications.ts +9 -15
- package/src/api/controllers/public/tables.ts +2 -2
- package/src/api/controllers/query/import/index.ts +3 -2
- package/src/api/controllers/query/index.ts +14 -11
- package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
- package/src/api/controllers/{role.ts → role.js} +25 -21
- package/src/api/controllers/{routing.ts → routing.js} +34 -37
- package/src/api/controllers/row/ExternalRequest.ts +11 -9
- package/src/api/controllers/row/external.js +3 -3
- package/src/api/controllers/row/index.ts +9 -17
- package/src/api/controllers/row/internal.js +12 -11
- package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
- package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +23 -28
- package/src/api/controllers/row/{utils.ts → utils.js} +18 -25
- package/src/api/controllers/screen.ts +6 -10
- package/src/api/controllers/script.js +11 -0
- package/src/api/controllers/static/index.ts +13 -9
- package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
- package/src/api/controllers/table/{external.ts → external.js} +54 -86
- package/src/api/controllers/table/{index.ts → index.js} +17 -17
- package/src/api/controllers/table/internal.ts +6 -5
- package/src/api/controllers/table/utils.ts +21 -26
- package/src/api/controllers/{templates.ts → templates.js} +7 -10
- package/src/api/controllers/{user.ts → user.js} +49 -47
- package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
- package/src/api/controllers/view/{index.ts → index.js} +27 -36
- package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
- package/src/api/{index.ts → index.js} +22 -15
- package/src/api/routes/analytics.js +9 -0
- package/src/api/routes/apikeys.js +12 -0
- package/src/api/routes/application.ts +9 -17
- package/src/api/routes/auth.ts +2 -2
- package/src/api/routes/automation.js +85 -0
- package/src/api/routes/backup.ts +4 -8
- package/src/api/routes/cloud.js +14 -0
- package/src/api/routes/component.js +14 -0
- package/src/api/routes/datasource.js +51 -0
- package/src/api/routes/deploy.js +17 -0
- package/src/api/routes/dev.js +26 -0
- package/src/api/routes/integration.js +12 -0
- package/src/api/routes/layout.js +16 -0
- package/src/api/routes/{metadata.ts → metadata.js} +13 -13
- package/src/api/routes/migrations.js +14 -0
- package/src/api/routes/permission.js +33 -0
- package/src/api/routes/plugin.ts +6 -14
- package/src/api/routes/public/index.ts +10 -10
- package/src/api/routes/public/tests/compare.spec.js +1 -1
- package/src/api/routes/{query.ts → query.js} +22 -19
- package/src/api/routes/role.js +15 -0
- package/src/api/routes/routing.js +14 -0
- package/src/api/routes/row.ts +15 -13
- package/src/api/routes/screen.js +18 -0
- package/src/api/routes/script.js +10 -0
- package/src/api/routes/static.ts +10 -7
- package/src/api/routes/{table.ts → table.js} +13 -10
- package/src/api/routes/templates.js +16 -0
- package/src/api/routes/tests/analytics.spec.js +1 -1
- package/src/api/routes/tests/backup.spec.js +1 -9
- package/src/api/routes/tests/permissions.spec.js +1 -2
- package/src/api/routes/tests/query.spec.js +10 -15
- package/src/api/routes/tests/role.spec.js +9 -7
- package/src/api/routes/tests/routing.spec.js +1 -2
- package/src/api/routes/tests/row.spec.js +4 -3
- package/src/api/routes/tests/static.spec.js +2 -2
- package/src/api/routes/tests/table.spec.js +35 -38
- package/src/api/routes/tests/user.spec.js +1 -2
- package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
- package/src/api/routes/user.js +53 -0
- package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
- package/src/api/routes/view.js +31 -0
- package/src/api/routes/webhook.ts +2 -2
- package/src/app.ts +4 -3
- package/src/automations/tests/updateRow.spec.js +1 -0
- package/src/automations/tests/utilities/index.js +4 -10
- package/src/automations/triggers.js +6 -5
- package/src/automations/utils.ts +12 -9
- package/src/constants/index.js +5 -3
- package/src/constants/screens.js +2 -2
- package/src/db/inMemoryView.js +3 -3
- package/src/db/linkedRows/LinkController.js +50 -4
- package/src/db/linkedRows/index.js +2 -2
- package/src/db/linkedRows/linkUtils.js +3 -3
- package/src/db/tests/linkController.spec.js +57 -73
- package/src/db/tests/linkTests.spec.js +14 -17
- package/src/db/{utils.ts → utils.js} +93 -77
- package/src/db/views/staticViews.js +4 -4
- package/src/integrations/base/sql.ts +1 -1
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/elasticsearch.ts +2 -32
- package/src/integrations/googlesheets.ts +7 -4
- package/src/integrations/index.ts +41 -45
- package/src/integrations/s3.ts +3 -179
- package/src/integrations/tests/s3.spec.ts +1 -85
- package/src/middleware/appInfo.js +19 -0
- package/src/middleware/authorized.ts +28 -21
- package/src/middleware/{builder.ts → builder.js} +15 -17
- package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
- package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
- package/src/middleware/publicApi.js +21 -0
- package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
- package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
- package/src/middleware/tests/authorized.spec.js +6 -5
- package/src/middleware/tests/currentapp.spec.js +63 -118
- package/src/middleware/{utils.ts → utils.js} +1 -3
- package/src/migrations/functions/appUrls.ts +2 -2
- package/src/migrations/functions/backfill/app/tables.ts +5 -2
- package/src/migrations/functions/backfill/global.ts +1 -1
- package/src/migrations/functions/tests/appUrls.spec.js +4 -4
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
- package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
- package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
- package/src/migrations/functions/userEmailViewCasing.ts +3 -3
- package/src/module.d.ts +14 -0
- package/src/sdk/app/backups/exports.ts +3 -5
- package/src/sdk/app/backups/imports.ts +14 -7
- package/src/sdk/app/backups/statistics.ts +18 -9
- package/src/sdk/app/tables/index.ts +8 -7
- package/src/startup.ts +2 -2
- package/src/tests/utilities/TestConfiguration.js +36 -42
- package/src/tests/utilities/structures.js +4 -3
- package/src/threads/automation.ts +16 -15
- package/src/threads/query.ts +17 -12
- package/src/threads/utils.ts +5 -4
- package/src/utilities/budibaseDir.js +3 -0
- package/src/utilities/fileSystem/clientLibrary.js +12 -12
- package/src/utilities/fileSystem/index.js +8 -8
- package/src/utilities/fileSystem/utilities.js +36 -0
- package/src/utilities/global.js +127 -0
- package/src/utilities/{index.ts → index.js} +32 -40
- package/src/utilities/{redis.ts → redis.js} +20 -21
- package/src/utilities/routing/index.js +25 -0
- package/src/utilities/rowProcessor/{index.ts → index.js} +142 -65
- package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
- package/src/utilities/security.js +71 -0
- package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
- package/src/utilities/{users.ts → users.js} +13 -11
- package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
- package/src/watch.ts +3 -2
- package/tsconfig.json +1 -3
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
- package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
- package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
- package/coverage/lcov-report/src/api/controllers/index.html +0 -431
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -142
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
- package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
- package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2320
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
- package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -688
- package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
- package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
- package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
- package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
- package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
- package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
- package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
- package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -502
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
- package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
- package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
- package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.js.html +0 -367
- package/coverage/lcov-report/src/app.ts.html +0 -400
- package/coverage/lcov-report/src/automations/logging/index.html +0 -116
- package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -367
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -334
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
- package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +0 -256
- package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.js.html +0 -2023
- package/coverage/lcov-report/src/db/defaultData/employeeImport.js.html +0 -541
- package/coverage/lcov-report/src/db/defaultData/expensesImport.js.html +0 -427
- package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.js.html +0 -403
- package/coverage/lcov-report/src/db/defaultData/jobsImport.js.html +0 -559
- package/coverage/lcov-report/src/db/dynamoClient.js.html +0 -466
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.js.html +0 -226
- package/coverage/lcov-report/src/definitions/datasource.ts.html +0 -235
- package/coverage/lcov-report/src/definitions/index.html +0 -131
- package/coverage/lcov-report/src/environment.js.html +0 -445
- package/coverage/lcov-report/src/index.html +0 -191
- package/coverage/lcov-report/src/index.ts.html +0 -133
- package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
- package/coverage/lcov-report/src/integrations/base/index.html +0 -161
- package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
- package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1312
- package/coverage/lcov-report/src/integrations/index.html +0 -371
- package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
- package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -952
- package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
- package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
- package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
- package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
- package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
- package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
- package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1006
- package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
- package/coverage/lcov-report/src/migrations/functions/index.html +0 -146
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
- package/coverage/lcov-report/src/migrations/index.ts.html +0 -403
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
- package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
- package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
- package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
- package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
- package/coverage/lcov-report/src/startup.ts.html +0 -499
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +0 -1885
- package/coverage/lcov-report/src/tests/utilities/controllers.js.html +0 -133
- package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
- package/coverage/lcov-report/src/tests/utilities/structures.js.html +0 -649
- package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
- package/coverage/lcov-report/src/threads/index.html +0 -161
- package/coverage/lcov-report/src/threads/index.ts.html +0 -418
- package/coverage/lcov-report/src/threads/query.ts.html +0 -961
- package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +0 -547
- package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +0 -1141
- package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +0 -148
- package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
- package/coverage/lcov-report/src/utilities/rowProcessor/map.js.html +0 -370
- package/coverage/lcov-report/src/watch.ts.html +0 -196
- package/coverage/lcov-report/src/websocket.ts.html +0 -163
- package/dist/db/defaultData/datasource_bb_default.js +0 -565
- package/dist/db/defaultData/employeeImport.js +0 -153
- package/dist/db/defaultData/expensesImport.js +0 -115
- package/dist/db/defaultData/inventoryImport.js +0 -107
- package/dist/db/defaultData/jobsImport.js +0 -150
- package/dist/db/linkedRows/LinkDocument.js +0 -32
- package/dist/utilities/rowProcessor/map.js +0 -96
- package/jest.config.ts +0 -33
- package/src/api/controllers/script.ts +0 -12
- package/src/api/routes/analytics.ts +0 -9
- package/src/api/routes/apikeys.ts +0 -12
- package/src/api/routes/automation.ts +0 -87
- package/src/api/routes/cloud.ts +0 -18
- package/src/api/routes/component.ts +0 -14
- package/src/api/routes/datasource.ts +0 -60
- package/src/api/routes/deploy.ts +0 -21
- package/src/api/routes/dev.ts +0 -38
- package/src/api/routes/integration.ts +0 -16
- package/src/api/routes/layout.ts +0 -16
- package/src/api/routes/migrations.ts +0 -14
- package/src/api/routes/permission.ts +0 -41
- package/src/api/routes/role.ts +0 -24
- package/src/api/routes/routing.ts +0 -14
- package/src/api/routes/screen.ts +0 -23
- package/src/api/routes/script.ts +0 -10
- package/src/api/routes/templates.ts +0 -16
- package/src/api/routes/user.ts +0 -51
- package/src/api/routes/view.ts +0 -34
- package/src/db/defaultData/datasource_bb_default.js +0 -646
- package/src/db/defaultData/employeeImport.js +0 -152
- package/src/db/defaultData/expensesImport.js +0 -114
- package/src/db/defaultData/inventoryImport.js +0 -106
- package/src/db/defaultData/jobsImport.js +0 -158
- package/src/db/linkedRows/LinkDocument.js +0 -47
- package/src/middleware/appInfo.ts +0 -20
- package/src/middleware/publicApi.ts +0 -21
- package/src/utilities/budibaseDir.ts +0 -3
- package/src/utilities/global.ts +0 -138
- package/src/utilities/routing/index.ts +0 -32
- package/src/utilities/rowProcessor/map.js +0 -95
- package/src/utilities/security.ts +0 -65
|
@@ -8,13 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const KEYS_DOC = backend_core_1.db.StaticDatabases.GLOBAL.docs.apiKeys;
|
|
11
|
+
const { StaticDatabases } = require("@budibase/backend-core/db");
|
|
12
|
+
const { getGlobalDB } = require("@budibase/backend-core/tenancy");
|
|
13
|
+
const KEYS_DOC = StaticDatabases.GLOBAL.docs.apiKeys;
|
|
15
14
|
function getBuilderMainDoc() {
|
|
16
15
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
const db =
|
|
16
|
+
const db = getGlobalDB();
|
|
18
17
|
try {
|
|
19
18
|
return yield db.get(KEYS_DOC);
|
|
20
19
|
}
|
|
@@ -30,11 +29,11 @@ function setBuilderMainDoc(doc) {
|
|
|
30
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
30
|
// make sure to override the ID
|
|
32
31
|
doc._id = KEYS_DOC;
|
|
33
|
-
const db =
|
|
32
|
+
const db = getGlobalDB();
|
|
34
33
|
return db.put(doc);
|
|
35
34
|
});
|
|
36
35
|
}
|
|
37
|
-
function
|
|
36
|
+
exports.fetch = function (ctx) {
|
|
38
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
38
|
try {
|
|
40
39
|
const mainDoc = yield getBuilderMainDoc();
|
|
@@ -45,9 +44,8 @@ function fetch(ctx) {
|
|
|
45
44
|
ctx.throw(400, err);
|
|
46
45
|
}
|
|
47
46
|
});
|
|
48
|
-
}
|
|
49
|
-
exports.
|
|
50
|
-
function update(ctx) {
|
|
47
|
+
};
|
|
48
|
+
exports.update = function (ctx) {
|
|
51
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
50
|
const key = ctx.params.key;
|
|
53
51
|
const value = ctx.request.body.value;
|
|
@@ -68,5 +66,4 @@ function update(ctx) {
|
|
|
68
66
|
ctx.throw(400, err);
|
|
69
67
|
}
|
|
70
68
|
});
|
|
71
|
-
}
|
|
72
|
-
exports.update = update;
|
|
69
|
+
};
|
|
@@ -18,18 +18,23 @@ const package_json_1 = __importDefault(require("../../../package.json"));
|
|
|
18
18
|
const staticViews_1 = require("../../db/views/staticViews");
|
|
19
19
|
const fileSystem_1 = require("../../utilities/fileSystem");
|
|
20
20
|
const utils_1 = require("../../db/utils");
|
|
21
|
-
const
|
|
21
|
+
const { BUILTIN_ROLE_IDS, AccessController, } = require("@budibase/backend-core/roles");
|
|
22
|
+
const { CacheKeys, bustCache } = require("@budibase/backend-core/cache");
|
|
23
|
+
const { getAllApps, isDevAppID, getProdAppID, Replication, } = require("@budibase/backend-core/db");
|
|
22
24
|
const constants_1 = require("../../constants");
|
|
23
|
-
const datasource_bb_default_1 = require("../../db/defaultData/datasource_bb_default");
|
|
24
25
|
const workerRequests_1 = require("../../utilities/workerRequests");
|
|
25
26
|
const utilities_1 = require("../../utilities");
|
|
26
27
|
const redis_1 = require("../../utilities/redis");
|
|
27
28
|
const clientLibrary_1 = require("../../utilities/fileSystem/clientLibrary");
|
|
29
|
+
const { getTenantId, isMultiTenant } = require("@budibase/backend-core/tenancy");
|
|
28
30
|
const user_1 = require("./user");
|
|
31
|
+
const { app: appCache } = require("@budibase/backend-core/cache");
|
|
29
32
|
const utils_2 = require("../../automations/utils");
|
|
33
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
30
34
|
const logging_1 = require("../../automations/logging");
|
|
31
35
|
const rows_1 = require("../../utilities/usageQuota/rows");
|
|
32
36
|
const pro_1 = require("@budibase/pro");
|
|
37
|
+
const backend_core_2 = require("@budibase/backend-core");
|
|
33
38
|
const types_1 = require("@budibase/types");
|
|
34
39
|
const layouts_1 = require("../../constants/layouts");
|
|
35
40
|
const plugins_1 = require("../../utilities/plugins");
|
|
@@ -54,7 +59,7 @@ function getScreens() {
|
|
|
54
59
|
}
|
|
55
60
|
function getUserRoleId(ctx) {
|
|
56
61
|
return !ctx.user.role || !ctx.user.role._id
|
|
57
|
-
?
|
|
62
|
+
? BUILTIN_ROLE_IDS.PUBLIC
|
|
58
63
|
: ctx.user.role._id;
|
|
59
64
|
}
|
|
60
65
|
const getAppUrl = (ctx) => {
|
|
@@ -94,9 +99,9 @@ const checkAppName = (ctx, apps, name, currentAppId) => {
|
|
|
94
99
|
ctx.throw(400, "App name is already in use.");
|
|
95
100
|
}
|
|
96
101
|
};
|
|
97
|
-
function createInstance(template
|
|
102
|
+
function createInstance(template) {
|
|
98
103
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
const tenantId =
|
|
104
|
+
const tenantId = isMultiTenant() ? getTenantId() : null;
|
|
100
105
|
const baseAppId = (0, utils_1.generateAppID)(tenantId);
|
|
101
106
|
const appId = (0, utils_1.generateDevAppID)(baseAppId);
|
|
102
107
|
yield backend_core_1.context.updateAppId(appId);
|
|
@@ -126,23 +131,14 @@ function createInstance(template, includeSampleData) {
|
|
|
126
131
|
else {
|
|
127
132
|
// create the users table
|
|
128
133
|
yield db.put(constants_1.USERS_TABLE_SCHEMA);
|
|
129
|
-
if (includeSampleData) {
|
|
130
|
-
// create ootb stock db
|
|
131
|
-
yield addDefaultTables(db);
|
|
132
|
-
}
|
|
133
134
|
}
|
|
134
135
|
return { _id: appId };
|
|
135
136
|
});
|
|
136
137
|
}
|
|
137
|
-
const addDefaultTables = (db) => __awaiter(void 0, void 0, void 0, function* () {
|
|
138
|
-
const defaultDbDocs = (0, datasource_bb_default_1.buildDefaultDocs)();
|
|
139
|
-
// add in the default db data docs - tables, datasource, rows and links
|
|
140
|
-
yield db.bulkDocs([...defaultDbDocs]);
|
|
141
|
-
});
|
|
142
138
|
const fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
143
139
|
const dev = ctx.query && ctx.query.status === utils_1.AppStatus.DEV;
|
|
144
140
|
const all = ctx.query && ctx.query.status === utils_1.AppStatus.ALL;
|
|
145
|
-
const apps =
|
|
141
|
+
const apps = yield getAllApps({ dev, all });
|
|
146
142
|
const appIds = apps
|
|
147
143
|
.filter((app) => app.status === "development")
|
|
148
144
|
.map((app) => app.appId);
|
|
@@ -166,7 +162,7 @@ exports.fetch = fetch;
|
|
|
166
162
|
const fetchAppDefinition = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
167
163
|
const layouts = yield getLayouts();
|
|
168
164
|
const userRoleId = getUserRoleId(ctx);
|
|
169
|
-
const accessController = new
|
|
165
|
+
const accessController = new AccessController();
|
|
170
166
|
const screens = yield accessController.checkScreensAccess(yield getScreens(), userRoleId);
|
|
171
167
|
ctx.body = {
|
|
172
168
|
layouts,
|
|
@@ -185,7 +181,7 @@ const fetchAppPackage = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
185
181
|
// Only filter screens if the user is not a builder
|
|
186
182
|
if (!(ctx.user.builder && ctx.user.builder.global)) {
|
|
187
183
|
const userRoleId = getUserRoleId(ctx);
|
|
188
|
-
const accessController = new
|
|
184
|
+
const accessController = new AccessController();
|
|
189
185
|
screens = yield accessController.checkScreensAccess(screens, userRoleId);
|
|
190
186
|
}
|
|
191
187
|
ctx.body = {
|
|
@@ -197,7 +193,7 @@ const fetchAppPackage = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
197
193
|
});
|
|
198
194
|
exports.fetchAppPackage = fetchAppPackage;
|
|
199
195
|
const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
200
|
-
const apps = yield
|
|
196
|
+
const apps = yield getAllApps({ dev: true });
|
|
201
197
|
const name = ctx.request.body.name;
|
|
202
198
|
checkAppName(ctx, apps, name);
|
|
203
199
|
const url = (0, exports.getAppUrl)(ctx);
|
|
@@ -211,8 +207,7 @@ const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
211
207
|
if (ctx.request.files && ctx.request.files.templateFile) {
|
|
212
208
|
instanceConfig.file = ctx.request.files.templateFile;
|
|
213
209
|
}
|
|
214
|
-
const
|
|
215
|
-
const instance = yield createInstance(instanceConfig, includeSampleData);
|
|
210
|
+
const instance = yield createInstance(instanceConfig);
|
|
216
211
|
const appId = instance._id;
|
|
217
212
|
const db = backend_core_1.context.getAppDB();
|
|
218
213
|
let newApplication = {
|
|
@@ -226,7 +221,7 @@ const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
226
221
|
url: url,
|
|
227
222
|
template: templateKey,
|
|
228
223
|
instance,
|
|
229
|
-
tenantId:
|
|
224
|
+
tenantId: getTenantId(),
|
|
230
225
|
updatedAt: new Date().toISOString(),
|
|
231
226
|
createdAt: new Date().toISOString(),
|
|
232
227
|
status: utils_1.AppStatus.DEV,
|
|
@@ -281,7 +276,7 @@ const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
281
276
|
if (!environment_1.default.isTest()) {
|
|
282
277
|
yield (0, fileSystem_1.createApp)(appId);
|
|
283
278
|
}
|
|
284
|
-
yield
|
|
279
|
+
yield appCache.invalidateAppMetadata(appId, newApplication);
|
|
285
280
|
return newApplication;
|
|
286
281
|
});
|
|
287
282
|
const creationEvents = (request, app) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -291,25 +286,25 @@ const creationEvents = (request, app) => __awaiter(void 0, void 0, void 0, funct
|
|
|
291
286
|
if (body.useTemplate === "true") {
|
|
292
287
|
// from template
|
|
293
288
|
if (body.templateKey && body.templateKey !== "undefined") {
|
|
294
|
-
creationFns.push(a =>
|
|
289
|
+
creationFns.push(a => backend_core_2.events.app.templateImported(a, body.templateKey));
|
|
295
290
|
}
|
|
296
291
|
// from file
|
|
297
292
|
else if ((_a = request.files) === null || _a === void 0 ? void 0 : _a.templateFile) {
|
|
298
|
-
creationFns.push(a =>
|
|
293
|
+
creationFns.push(a => backend_core_2.events.app.fileImported(a));
|
|
299
294
|
}
|
|
300
295
|
// unknown
|
|
301
296
|
else {
|
|
302
297
|
console.error("Could not determine template creation event");
|
|
303
298
|
}
|
|
304
299
|
}
|
|
305
|
-
creationFns.push(a =>
|
|
300
|
+
creationFns.push(a => backend_core_2.events.app.created(a));
|
|
306
301
|
for (let fn of creationFns) {
|
|
307
302
|
yield fn(app);
|
|
308
303
|
}
|
|
309
304
|
});
|
|
310
305
|
const appPostCreate = (ctx, app) => __awaiter(void 0, void 0, void 0, function* () {
|
|
311
|
-
const tenantId =
|
|
312
|
-
yield
|
|
306
|
+
const tenantId = getTenantId();
|
|
307
|
+
yield backend_core_2.migrations.backPopulateMigrations({
|
|
313
308
|
type: types_1.MigrationType.APP,
|
|
314
309
|
tenantId,
|
|
315
310
|
appId: app.appId,
|
|
@@ -321,12 +316,10 @@ const appPostCreate = (ctx, app) => __awaiter(void 0, void 0, void 0, function*
|
|
|
321
316
|
const rowCount = rows ? rows.length : 0;
|
|
322
317
|
if (rowCount) {
|
|
323
318
|
try {
|
|
324
|
-
yield
|
|
325
|
-
return pro_1.quotas.addRows(rowCount);
|
|
326
|
-
});
|
|
319
|
+
yield pro_1.quotas.addRows(rowCount);
|
|
327
320
|
}
|
|
328
321
|
catch (err) {
|
|
329
|
-
if (err.code && err.code ===
|
|
322
|
+
if (err.code && err.code === backend_core_2.errors.codes.USAGE_LIMIT_EXCEEDED) {
|
|
330
323
|
// this import resulted in row usage exceeding the quota
|
|
331
324
|
// delete the app
|
|
332
325
|
// skip pre and post steps as no rows have been added to quotas yet
|
|
@@ -341,7 +334,7 @@ const appPostCreate = (ctx, app) => __awaiter(void 0, void 0, void 0, function*
|
|
|
341
334
|
const create = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
342
335
|
const newApplication = yield pro_1.quotas.addApp(() => performAppCreate(ctx));
|
|
343
336
|
yield appPostCreate(ctx, newApplication);
|
|
344
|
-
yield
|
|
337
|
+
yield bustCache(CacheKeys.CHECKLIST);
|
|
345
338
|
ctx.body = newApplication;
|
|
346
339
|
ctx.status = 200;
|
|
347
340
|
});
|
|
@@ -349,7 +342,7 @@ exports.create = create;
|
|
|
349
342
|
// This endpoint currently operates as a PATCH rather than a PUT
|
|
350
343
|
// Thus name and url fields are handled only if present
|
|
351
344
|
const update = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
352
|
-
const apps = yield
|
|
345
|
+
const apps = yield getAllApps({ dev: true });
|
|
353
346
|
// validation
|
|
354
347
|
const name = ctx.request.body.name;
|
|
355
348
|
if (name) {
|
|
@@ -361,7 +354,7 @@ const update = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
361
354
|
ctx.request.body.url = url;
|
|
362
355
|
}
|
|
363
356
|
const app = yield (0, exports.updateAppPackage)(ctx.request.body, ctx.params.appId);
|
|
364
|
-
yield
|
|
357
|
+
yield backend_core_2.events.app.updated(app);
|
|
365
358
|
ctx.status = 200;
|
|
366
359
|
ctx.body = app;
|
|
367
360
|
});
|
|
@@ -383,7 +376,7 @@ const updateClient = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
383
376
|
revertableVersion: currentVersion,
|
|
384
377
|
};
|
|
385
378
|
const app = yield (0, exports.updateAppPackage)(appPackageUpdates, ctx.params.appId);
|
|
386
|
-
yield
|
|
379
|
+
yield backend_core_2.events.app.versionUpdated(app, currentVersion, updatedToVersion);
|
|
387
380
|
ctx.status = 200;
|
|
388
381
|
ctx.body = app;
|
|
389
382
|
});
|
|
@@ -407,7 +400,7 @@ const revertClient = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
407
400
|
revertableVersion: null,
|
|
408
401
|
};
|
|
409
402
|
const app = yield (0, exports.updateAppPackage)(appPackageUpdates, ctx.params.appId);
|
|
410
|
-
yield
|
|
403
|
+
yield backend_core_2.events.app.versionReverted(app, currentVersion, revertedToVersion);
|
|
411
404
|
ctx.status = 200;
|
|
412
405
|
ctx.body = app;
|
|
413
406
|
});
|
|
@@ -416,17 +409,17 @@ const destroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
416
409
|
let appId = ctx.params.appId;
|
|
417
410
|
let isUnpublish = ctx.query && ctx.query.unpublish;
|
|
418
411
|
if (isUnpublish) {
|
|
419
|
-
appId =
|
|
412
|
+
appId = getProdAppID(appId);
|
|
420
413
|
}
|
|
421
414
|
const db = isUnpublish ? backend_core_1.context.getProdAppDB() : backend_core_1.context.getAppDB();
|
|
422
415
|
const app = yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
423
416
|
const result = yield db.destroy();
|
|
424
417
|
if (isUnpublish) {
|
|
425
|
-
yield
|
|
418
|
+
yield backend_core_2.events.app.unpublished(app);
|
|
426
419
|
}
|
|
427
420
|
else {
|
|
428
421
|
yield pro_1.quotas.removeApp();
|
|
429
|
-
yield
|
|
422
|
+
yield backend_core_2.events.app.deleted(app);
|
|
430
423
|
}
|
|
431
424
|
/* istanbul ignore next */
|
|
432
425
|
if (!environment_1.default.isTest() && !isUnpublish) {
|
|
@@ -440,7 +433,7 @@ const destroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
440
433
|
else {
|
|
441
434
|
yield (0, workerRequests_1.removeAppFromUserRoles)(ctx, appId);
|
|
442
435
|
}
|
|
443
|
-
yield
|
|
436
|
+
yield appCache.invalidateAppMetadata(appId);
|
|
444
437
|
return result;
|
|
445
438
|
});
|
|
446
439
|
const preDestroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -471,15 +464,19 @@ const sync = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
471
464
|
return next();
|
|
472
465
|
}
|
|
473
466
|
const appId = ctx.params.appId;
|
|
474
|
-
if (!
|
|
467
|
+
if (!isDevAppID(appId)) {
|
|
475
468
|
ctx.throw(400, "This action cannot be performed for production apps");
|
|
476
469
|
}
|
|
477
470
|
// replicate prod to dev
|
|
478
|
-
const prodAppId =
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
471
|
+
const prodAppId = getProdAppID(appId);
|
|
472
|
+
try {
|
|
473
|
+
// specific case, want to make sure setup is skipped
|
|
474
|
+
const prodDb = backend_core_1.context.getProdAppDB({ skip_setup: true });
|
|
475
|
+
const info = yield prodDb.info();
|
|
476
|
+
if (info.error)
|
|
477
|
+
throw info.error;
|
|
478
|
+
}
|
|
479
|
+
catch (err) {
|
|
483
480
|
// the database doesn't exist. Don't replicate
|
|
484
481
|
ctx.status = 200;
|
|
485
482
|
ctx.body = {
|
|
@@ -487,7 +484,7 @@ const sync = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
487
484
|
};
|
|
488
485
|
return next();
|
|
489
486
|
}
|
|
490
|
-
const replication = new
|
|
487
|
+
const replication = new Replication({
|
|
491
488
|
source: prodAppId,
|
|
492
489
|
target: appId,
|
|
493
490
|
});
|
|
@@ -526,7 +523,7 @@ const updateAppPackage = (appPackage, appId) => __awaiter(void 0, void 0, void 0
|
|
|
526
523
|
delete newAppPackage.lockedBy;
|
|
527
524
|
yield db.put(newAppPackage);
|
|
528
525
|
// remove any cached metadata, so that it will be updated
|
|
529
|
-
yield
|
|
526
|
+
yield appCache.invalidateAppMetadata(appId);
|
|
530
527
|
return newAppPackage;
|
|
531
528
|
}));
|
|
532
529
|
});
|
|
@@ -8,22 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const pro_1 = require("@budibase/pro");
|
|
25
|
-
const ACTION_DEFS = (0, utils_2.removeDeprecated)(actions_1.default.ACTION_DEFINITIONS);
|
|
26
|
-
const TRIGGER_DEFS = (0, utils_2.removeDeprecated)(triggers_1.default.TRIGGER_DEFINITIONS);
|
|
11
|
+
const actions = require("../../automations/actions");
|
|
12
|
+
const triggers = require("../../automations/triggers");
|
|
13
|
+
const { getAutomationParams, generateAutomationID, DocumentType, } = require("../../db/utils");
|
|
14
|
+
const { checkForWebhooks, updateTestHistory, removeDeprecated, } = require("../../automations/utils");
|
|
15
|
+
const { deleteEntityMetadata } = require("../../utilities");
|
|
16
|
+
const { MetadataTypes } = require("../../constants");
|
|
17
|
+
const { setTestFlag, clearTestFlag } = require("../../utilities/redis");
|
|
18
|
+
const { getAppDB, getProdAppDB, doInAppContext, } = require("@budibase/backend-core/context");
|
|
19
|
+
const { events } = require("@budibase/backend-core");
|
|
20
|
+
const { app } = require("@budibase/backend-core/cache");
|
|
21
|
+
const { automations } = require("@budibase/pro");
|
|
22
|
+
const ACTION_DEFS = removeDeprecated(actions.ACTION_DEFINITIONS);
|
|
23
|
+
const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS);
|
|
27
24
|
/*************************
|
|
28
25
|
* *
|
|
29
26
|
* BUILDER FUNCTIONS *
|
|
@@ -31,8 +28,8 @@ const TRIGGER_DEFS = (0, utils_2.removeDeprecated)(triggers_1.default.TRIGGER_DE
|
|
|
31
28
|
*************************/
|
|
32
29
|
function cleanupAutomationMetadata(automationId) {
|
|
33
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
yield
|
|
35
|
-
yield
|
|
31
|
+
yield deleteEntityMetadata(MetadataTypes.AUTOMATION_TEST_INPUT, automationId);
|
|
32
|
+
yield deleteEntityMetadata(MetadataTypes.AUTOMATION_TEST_HISTORY, automationId);
|
|
36
33
|
});
|
|
37
34
|
}
|
|
38
35
|
function cleanAutomationInputs(automation) {
|
|
@@ -58,25 +55,25 @@ function cleanAutomationInputs(automation) {
|
|
|
58
55
|
}
|
|
59
56
|
return automation;
|
|
60
57
|
}
|
|
61
|
-
function
|
|
58
|
+
exports.create = function (ctx) {
|
|
62
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
const db =
|
|
60
|
+
const db = getAppDB();
|
|
64
61
|
let automation = ctx.request.body;
|
|
65
62
|
automation.appId = ctx.appId;
|
|
66
63
|
// call through to update if already exists
|
|
67
64
|
if (automation._id && automation._rev) {
|
|
68
|
-
return update(ctx);
|
|
65
|
+
return exports.update(ctx);
|
|
69
66
|
}
|
|
70
|
-
automation._id =
|
|
67
|
+
automation._id = generateAutomationID();
|
|
71
68
|
automation.type = "automation";
|
|
72
69
|
automation = cleanAutomationInputs(automation);
|
|
73
|
-
automation = yield
|
|
70
|
+
automation = yield checkForWebhooks({
|
|
74
71
|
newAuto: automation,
|
|
75
72
|
});
|
|
76
73
|
const response = yield db.put(automation);
|
|
77
|
-
yield
|
|
74
|
+
yield events.automation.created(automation);
|
|
78
75
|
for (let step of automation.definition.steps) {
|
|
79
|
-
yield
|
|
76
|
+
yield events.automation.stepCreated(automation, step);
|
|
80
77
|
}
|
|
81
78
|
automation._rev = response.rev;
|
|
82
79
|
ctx.status = 200;
|
|
@@ -85,41 +82,35 @@ function create(ctx) {
|
|
|
85
82
|
automation: Object.assign(Object.assign({}, automation), response),
|
|
86
83
|
};
|
|
87
84
|
});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function getNewSteps(oldAutomation, automation) {
|
|
85
|
+
};
|
|
86
|
+
const getNewSteps = (oldAutomation, automation) => {
|
|
91
87
|
const oldStepIds = oldAutomation.definition.steps.map(s => s.id);
|
|
92
88
|
return automation.definition.steps.filter(s => !oldStepIds.includes(s.id));
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function getDeletedSteps(oldAutomation, automation) {
|
|
89
|
+
};
|
|
90
|
+
const getDeletedSteps = (oldAutomation, automation) => {
|
|
96
91
|
const stepIds = automation.definition.steps.map(s => s.id);
|
|
97
92
|
return oldAutomation.definition.steps.filter(s => !stepIds.includes(s.id));
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
exports.handleStepEvents = handleStepEvents;
|
|
115
|
-
function update(ctx) {
|
|
93
|
+
};
|
|
94
|
+
const handleStepEvents = (oldAutomation, automation) => __awaiter(void 0, void 0, void 0, function* () {
|
|
95
|
+
// new steps
|
|
96
|
+
const newSteps = getNewSteps(oldAutomation, automation);
|
|
97
|
+
for (let step of newSteps) {
|
|
98
|
+
yield events.automation.stepCreated(automation, step);
|
|
99
|
+
}
|
|
100
|
+
// old steps
|
|
101
|
+
const deletedSteps = getDeletedSteps(oldAutomation, automation);
|
|
102
|
+
for (let step of deletedSteps) {
|
|
103
|
+
yield events.automation.stepDeleted(automation, step);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
exports.update = function (ctx) {
|
|
116
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
const db =
|
|
108
|
+
const db = getAppDB();
|
|
118
109
|
let automation = ctx.request.body;
|
|
119
110
|
automation.appId = ctx.appId;
|
|
120
111
|
const oldAutomation = yield db.get(automation._id);
|
|
121
112
|
automation = cleanAutomationInputs(automation);
|
|
122
|
-
automation = yield
|
|
113
|
+
automation = yield checkForWebhooks({
|
|
123
114
|
oldAuto: oldAutomation,
|
|
124
115
|
newAuto: automation,
|
|
125
116
|
});
|
|
@@ -133,8 +124,8 @@ function update(ctx) {
|
|
|
133
124
|
: {};
|
|
134
125
|
// trigger has been updated, remove the test inputs
|
|
135
126
|
if (oldAutoTrigger && oldAutoTrigger.id !== newAutoTrigger.id) {
|
|
136
|
-
yield
|
|
137
|
-
yield (
|
|
127
|
+
yield events.automation.triggerUpdated(automation);
|
|
128
|
+
yield deleteEntityMetadata(ctx.appId, MetadataTypes.AUTOMATION_TEST_INPUT, automation._id);
|
|
138
129
|
}
|
|
139
130
|
yield handleStepEvents(oldAutomation, automation);
|
|
140
131
|
ctx.status = 200;
|
|
@@ -143,52 +134,47 @@ function update(ctx) {
|
|
|
143
134
|
automation: Object.assign(Object.assign({}, automation), { _rev: response.rev, _id: response.id }),
|
|
144
135
|
};
|
|
145
136
|
});
|
|
146
|
-
}
|
|
147
|
-
exports.
|
|
148
|
-
function fetch(ctx) {
|
|
137
|
+
};
|
|
138
|
+
exports.fetch = function (ctx) {
|
|
149
139
|
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
-
const db =
|
|
151
|
-
const response = yield db.allDocs(
|
|
140
|
+
const db = getAppDB();
|
|
141
|
+
const response = yield db.allDocs(getAutomationParams(null, {
|
|
152
142
|
include_docs: true,
|
|
153
143
|
}));
|
|
154
144
|
ctx.body = response.rows.map(row => row.doc);
|
|
155
145
|
});
|
|
156
|
-
}
|
|
157
|
-
exports.
|
|
158
|
-
function find(ctx) {
|
|
146
|
+
};
|
|
147
|
+
exports.find = function (ctx) {
|
|
159
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
-
const db =
|
|
149
|
+
const db = getAppDB();
|
|
161
150
|
ctx.body = yield db.get(ctx.params.id);
|
|
162
151
|
});
|
|
163
|
-
}
|
|
164
|
-
exports.
|
|
165
|
-
function destroy(ctx) {
|
|
152
|
+
};
|
|
153
|
+
exports.destroy = function (ctx) {
|
|
166
154
|
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
-
const db =
|
|
155
|
+
const db = getAppDB();
|
|
168
156
|
const automationId = ctx.params.id;
|
|
169
157
|
const oldAutomation = yield db.get(automationId);
|
|
170
|
-
yield
|
|
158
|
+
yield checkForWebhooks({
|
|
171
159
|
oldAuto: oldAutomation,
|
|
172
160
|
});
|
|
173
161
|
// delete metadata first
|
|
174
162
|
yield cleanupAutomationMetadata(automationId);
|
|
175
163
|
ctx.body = yield db.remove(automationId, ctx.params.rev);
|
|
176
|
-
yield
|
|
164
|
+
yield events.automation.deleted(oldAutomation);
|
|
177
165
|
});
|
|
178
|
-
}
|
|
179
|
-
exports.
|
|
180
|
-
function logSearch(ctx) {
|
|
166
|
+
};
|
|
167
|
+
exports.logSearch = function (ctx) {
|
|
181
168
|
return __awaiter(this, void 0, void 0, function* () {
|
|
182
|
-
ctx.body = yield
|
|
169
|
+
ctx.body = yield automations.logs.logSearch(ctx.request.body);
|
|
183
170
|
});
|
|
184
|
-
}
|
|
185
|
-
exports.
|
|
186
|
-
function clearLogError(ctx) {
|
|
171
|
+
};
|
|
172
|
+
exports.clearLogError = function (ctx) {
|
|
187
173
|
return __awaiter(this, void 0, void 0, function* () {
|
|
188
174
|
const { automationId, appId } = ctx.request.body;
|
|
189
|
-
yield
|
|
190
|
-
const db =
|
|
191
|
-
const metadata = yield db.get(
|
|
175
|
+
yield doInAppContext(appId, () => __awaiter(this, void 0, void 0, function* () {
|
|
176
|
+
const db = getProdAppDB();
|
|
177
|
+
const metadata = yield db.get(DocumentType.APP_METADATA);
|
|
192
178
|
if (!automationId) {
|
|
193
179
|
delete metadata.automationErrors;
|
|
194
180
|
}
|
|
@@ -197,50 +183,45 @@ function clearLogError(ctx) {
|
|
|
197
183
|
delete metadata.automationErrors[automationId];
|
|
198
184
|
}
|
|
199
185
|
yield db.put(metadata);
|
|
200
|
-
yield
|
|
186
|
+
yield app.invalidateAppMetadata(metadata.appId, metadata);
|
|
201
187
|
ctx.body = { message: `Error logs cleared.` };
|
|
202
188
|
}));
|
|
203
189
|
});
|
|
204
|
-
}
|
|
205
|
-
exports.
|
|
206
|
-
function getActionList(ctx) {
|
|
190
|
+
};
|
|
191
|
+
exports.getActionList = function (ctx) {
|
|
207
192
|
return __awaiter(this, void 0, void 0, function* () {
|
|
208
193
|
ctx.body = ACTION_DEFS;
|
|
209
194
|
});
|
|
210
|
-
}
|
|
211
|
-
exports.
|
|
212
|
-
function getTriggerList(ctx) {
|
|
195
|
+
};
|
|
196
|
+
exports.getTriggerList = function (ctx) {
|
|
213
197
|
return __awaiter(this, void 0, void 0, function* () {
|
|
214
198
|
ctx.body = TRIGGER_DEFS;
|
|
215
199
|
});
|
|
216
|
-
}
|
|
217
|
-
exports.
|
|
218
|
-
function getDefinitionList(ctx) {
|
|
200
|
+
};
|
|
201
|
+
module.exports.getDefinitionList = function (ctx) {
|
|
219
202
|
return __awaiter(this, void 0, void 0, function* () {
|
|
220
203
|
ctx.body = {
|
|
221
204
|
trigger: TRIGGER_DEFS,
|
|
222
205
|
action: ACTION_DEFS,
|
|
223
206
|
};
|
|
224
207
|
});
|
|
225
|
-
}
|
|
226
|
-
exports.getDefinitionList = getDefinitionList;
|
|
208
|
+
};
|
|
227
209
|
/*********************
|
|
228
210
|
* *
|
|
229
211
|
* API FUNCTIONS *
|
|
230
212
|
* *
|
|
231
213
|
*********************/
|
|
232
|
-
function
|
|
214
|
+
exports.trigger = function (ctx) {
|
|
233
215
|
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
-
const db =
|
|
216
|
+
const db = getAppDB();
|
|
235
217
|
let automation = yield db.get(ctx.params.id);
|
|
236
|
-
yield
|
|
218
|
+
yield triggers.externalTrigger(automation, Object.assign(Object.assign({}, ctx.request.body), { appId: ctx.appId }));
|
|
237
219
|
ctx.body = {
|
|
238
220
|
message: `Automation ${automation._id} has been triggered.`,
|
|
239
221
|
automation,
|
|
240
222
|
};
|
|
241
223
|
});
|
|
242
|
-
}
|
|
243
|
-
exports.trigger = trigger;
|
|
224
|
+
};
|
|
244
225
|
function prepareTestInput(input) {
|
|
245
226
|
// prepare the test parameters
|
|
246
227
|
if (input.id && input.row) {
|
|
@@ -251,18 +232,17 @@ function prepareTestInput(input) {
|
|
|
251
232
|
}
|
|
252
233
|
return input;
|
|
253
234
|
}
|
|
254
|
-
function
|
|
235
|
+
exports.test = function (ctx) {
|
|
255
236
|
return __awaiter(this, void 0, void 0, function* () {
|
|
256
|
-
const db =
|
|
237
|
+
const db = getAppDB();
|
|
257
238
|
let automation = yield db.get(ctx.params.id);
|
|
258
|
-
yield
|
|
239
|
+
yield setTestFlag(automation._id);
|
|
259
240
|
const testInput = prepareTestInput(ctx.request.body);
|
|
260
|
-
const response = yield
|
|
241
|
+
const response = yield triggers.externalTrigger(automation, Object.assign(Object.assign({}, testInput), { appId: ctx.appId }), { getResponses: true });
|
|
261
242
|
// save a test history run
|
|
262
|
-
yield
|
|
263
|
-
yield
|
|
243
|
+
yield updateTestHistory(ctx.appId, automation, Object.assign(Object.assign({}, ctx.request.body), { occurredAt: new Date().getTime() }));
|
|
244
|
+
yield clearTestFlag(automation._id);
|
|
264
245
|
ctx.body = response;
|
|
265
|
-
yield
|
|
246
|
+
yield events.automation.tested(automation);
|
|
266
247
|
});
|
|
267
|
-
}
|
|
268
|
-
exports.test = test;
|
|
248
|
+
};
|