@budibase/server 2.2.26 → 2.2.27-alpha.1
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/Dockerfile +1 -1
- package/__mocks__/aws-sdk.ts +20 -1
- package/__mocks__/node-fetch.ts +80 -0
- package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
- package/builder/assets/bg.29e85dd5.png +0 -0
- package/builder/assets/bulgaria.bd68393d.png +0 -0
- package/builder/assets/covanta.72c46c1e.png +0 -0
- package/builder/assets/index.3dd03883.css +6 -0
- package/builder/assets/index.77ae0e4d.js +1802 -0
- package/builder/assets/schnellecke.cf1837a8.png +0 -0
- package/builder/index.html +3 -3
- package/coverage/clover.xml +12565 -8055
- package/coverage/coverage-final.json +365 -276
- package/coverage/lcov-report/index.html +721 -466
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/application.ts.html +364 -268
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +61 -61
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +89 -77
- package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +122 -98
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +21 -18
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +21 -21
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +142 -196
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +33 -33
- package/coverage/lcov-report/src/api/controllers/index.html +125 -125
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +35 -35
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +62 -62
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +56 -56
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +75 -24
- package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +391 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +116 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +116 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +796 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +116 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +805 -0
- package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +116 -0
- package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +568 -0
- package/coverage/lcov-report/src/api/controllers/query/index.html +20 -20
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +131 -107
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +56 -41
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +87 -57
- package/coverage/lcov-report/src/api/controllers/row/index.html +66 -66
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +26 -26
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +171 -96
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +30 -21
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +143 -26
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +31 -31
- package/coverage/lcov-report/src/api/controllers/script.ts.html +19 -19
- package/coverage/lcov-report/src/api/controllers/static/index.html +18 -18
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +56 -71
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +61 -61
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +56 -50
- package/coverage/lcov-report/src/api/controllers/table/index.html +51 -51
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +157 -70
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +68 -71
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +109 -112
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/user.ts.html +161 -137
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
- package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +97 -133
- package/coverage/lcov-report/src/api/controllers/view/tests/index.html +116 -0
- package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +277 -0
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +31 -31
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +37 -37
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +78 -72
- package/coverage/lcov-report/src/api/index.html +15 -15
- package/coverage/lcov-report/src/api/index.ts.html +40 -40
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/application.ts.html +46 -13
- package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -14
- package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
- package/coverage/lcov-report/src/api/routes/index.html +68 -68
- package/coverage/lcov-report/src/api/routes/index.ts.html +49 -40
- package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +147 -15
- package/coverage/lcov-report/src/api/routes/public/index.html +27 -27
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +583 -0
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +41 -11
- package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +199 -0
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
- package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/row.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
- package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
- package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +271 -0
- package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +259 -0
- package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1066 -0
- package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +154 -0
- package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1123 -0
- package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +223 -0
- package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +262 -0
- package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +178 -0
- package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +799 -0
- package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +202 -0
- package/coverage/lcov-report/src/api/routes/tests/index.html +521 -0
- package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +238 -0
- package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +670 -0
- package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +259 -0
- package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +280 -0
- package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +358 -0
- package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +484 -0
- package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +622 -0
- package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1696 -0
- package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +478 -0
- package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +430 -0
- package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1804 -0
- package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +391 -0
- package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +541 -0
- package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +991 -0
- package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +154 -0
- package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +688 -0
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +116 -47
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +27 -27
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +42 -36
- package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1342 -0
- package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +484 -0
- package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
- package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
- package/coverage/lcov-report/src/app.ts.html +57 -48
- package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +127 -55
- package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
- package/coverage/lcov-report/src/automations/index.html +58 -58
- package/coverage/lcov-report/src/automations/index.ts.html +23 -23
- package/coverage/lcov-report/src/automations/logging/index.html +3 -3
- package/coverage/lcov-report/src/automations/logging/index.ts.html +15 -15
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/index.html +129 -129
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +19 -19
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +18 -18
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
- package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +337 -0
- package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +187 -0
- package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +223 -0
- package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +133 -0
- package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +250 -0
- package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +166 -0
- package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +229 -0
- package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +229 -0
- package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +232 -0
- package/coverage/lcov-report/src/automations/tests/index.html +341 -0
- package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +220 -0
- package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +202 -0
- package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +436 -0
- package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +298 -0
- package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +151 -0
- package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +217 -0
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +32 -32
- package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +166 -0
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggers.ts.html +61 -46
- package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +280 -0
- package/coverage/lcov-report/src/automations/unitTests/index.html +116 -0
- package/coverage/lcov-report/src/automations/utils.ts.html +84 -84
- package/coverage/lcov-report/src/constants/index.html +19 -19
- package/coverage/lcov-report/src/constants/index.ts.html +103 -103
- package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
- package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
- package/coverage/lcov-report/src/db/index.html +43 -43
- package/coverage/lcov-report/src/db/index.ts.html +20 -20
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
- package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +27 -27
- package/coverage/lcov-report/src/db/newid.ts.html +5 -5
- package/coverage/lcov-report/src/db/tests/index.html +131 -0
- package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +793 -0
- package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +277 -0
- package/coverage/lcov-report/src/db/utils.ts.html +92 -92
- package/coverage/lcov-report/src/definitions/automations.ts.html +9 -6
- package/coverage/lcov-report/src/definitions/index.html +5 -20
- package/coverage/lcov-report/src/environment.ts.html +49 -37
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
- package/coverage/lcov-report/src/events/index.html +20 -20
- package/coverage/lcov-report/src/events/index.ts.html +7 -7
- package/coverage/lcov-report/src/events/utils.ts.html +11 -11
- package/coverage/lcov-report/src/index.html +48 -48
- package/coverage/lcov-report/src/index.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
- package/coverage/lcov-report/src/integrations/base/index.html +29 -29
- package/coverage/lcov-report/src/integrations/base/query.ts.html +15 -9
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +38 -38
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +23 -23
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +109 -31
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +17 -17
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +27 -15
- package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +42 -42
- package/coverage/lcov-report/src/integrations/index.html +130 -130
- package/coverage/lcov-report/src/integrations/index.ts.html +50 -62
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
- package/coverage/lcov-report/src/integrations/mysql.ts.html +28 -28
- package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
- package/coverage/lcov-report/src/integrations/postgres.ts.html +54 -54
- package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +24 -159
- package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/rest.ts.html +43 -52
- package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +310 -0
- package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +199 -0
- package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +349 -0
- package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +550 -0
- package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +331 -0
- package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +376 -0
- package/coverage/lcov-report/src/integrations/tests/index.html +230 -5
- package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +253 -0
- package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1087 -0
- package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +484 -0
- package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +373 -0
- package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +328 -0
- package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +337 -0
- package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1870 -0
- package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +421 -0
- package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1753 -0
- package/coverage/lcov-report/src/integrations/utils.ts.html +54 -54
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
- package/coverage/lcov-report/src/middleware/authorized.ts.html +49 -37
- package/coverage/lcov-report/src/middleware/builder.ts.html +26 -26
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +60 -57
- package/coverage/lcov-report/src/middleware/index.html +44 -44
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
- package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +574 -0
- package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +814 -0
- package/coverage/lcov-report/src/middleware/tests/index.html +161 -0
- package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +397 -0
- package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +214 -0
- package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +17 -14
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
- package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +163 -0
- package/coverage/lcov-report/src/migrations/functions/tests/index.html +161 -0
- package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +163 -0
- package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +517 -0
- package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +190 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +131 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +190 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +244 -0
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/index.html +15 -15
- package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/tests/index.html +26 -11
- package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +535 -0
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/applications/index.html +20 -20
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
- package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +14 -14
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +45 -57
- package/coverage/lcov-report/src/sdk/app/backups/index.html +42 -42
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
- package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
- package/coverage/lcov-report/src/{utilities/statusCodes.ts.html → sdk/app/queries/index.ts.html} +22 -28
- package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
- package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/tables/index.html +15 -15
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +30 -21
- package/coverage/lcov-report/src/sdk/index.html +7 -7
- package/coverage/lcov-report/src/sdk/index.ts.html +24 -12
- package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +313 -0
- package/coverage/lcov-report/src/sdk/tests/index.html +116 -0
- package/coverage/lcov-report/src/sdk/users/index.html +10 -10
- package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +35 -35
- package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
- package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
- package/coverage/lcov-report/src/startup.ts.html +48 -63
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +421 -187
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
- package/coverage/lcov-report/src/tests/utilities/index.html +35 -35
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +236 -47
- package/coverage/lcov-report/src/threads/automation.ts.html +212 -251
- package/coverage/lcov-report/src/threads/index.html +46 -46
- package/coverage/lcov-report/src/threads/index.ts.html +39 -39
- package/coverage/lcov-report/src/threads/query.ts.html +140 -101
- package/coverage/lcov-report/src/threads/utils.ts.html +29 -29
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +20 -20
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +88 -28
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
- package/coverage/lcov-report/src/utilities/global.ts.html +60 -60
- package/coverage/lcov-report/src/utilities/index.html +102 -117
- package/coverage/lcov-report/src/utilities/index.ts.html +47 -179
- package/coverage/lcov-report/src/utilities/redis.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/{plugins.ts.html → retry.ts.html} +31 -43
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +34 -34
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +72 -45
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
- package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +116 -0
- package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +256 -0
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +52 -52
- package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +33 -33
- package/coverage/lcov-report/src/utilities/security.ts.html +30 -30
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +37 -37
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +92 -65
- package/coverage/lcov-report/src/watch.ts.html +20 -20
- package/coverage/lcov-report/src/websocket.ts.html +15 -15
- package/coverage/lcov.info +24966 -17056
- package/dist/api/controllers/application.js +120 -109
- package/dist/api/controllers/cloud.js +6 -2
- package/dist/api/controllers/datasource.js +24 -15
- package/dist/api/controllers/deploy/index.js +43 -60
- package/dist/api/controllers/plugin/index.js +6 -6
- package/dist/api/controllers/public/applications.js +22 -1
- package/dist/api/controllers/query/index.js +23 -13
- package/dist/api/controllers/row/ExternalRequest.js +12 -4
- package/dist/api/controllers/row/external.js +20 -13
- package/dist/api/controllers/row/internal.js +52 -27
- package/dist/api/controllers/row/staticFormula.js +1 -1
- package/dist/api/controllers/row/utils.js +35 -3
- package/dist/api/controllers/static/index.js +47 -47
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/dist/api/controllers/table/external.js +16 -35
- package/dist/api/controllers/table/index.js +44 -15
- package/dist/api/controllers/table/internal.js +6 -7
- package/dist/api/controllers/table/utils.js +9 -9
- package/dist/api/controllers/user.js +14 -6
- package/dist/api/controllers/view/exporters.js +22 -6
- package/dist/api/controllers/view/index.js +23 -58
- package/dist/api/controllers/view/viewBuilder.js +15 -2
- package/dist/api/controllers/webhook.js +45 -43
- package/dist/api/routes/analytics.js +2 -1
- package/dist/api/routes/apikeys.js +2 -1
- package/dist/api/routes/application.js +5 -1
- package/dist/api/routes/auth.js +2 -1
- package/dist/api/routes/automation.js +2 -1
- package/dist/api/routes/backup.js +2 -1
- package/dist/api/routes/cloud.js +2 -1
- package/dist/api/routes/component.js +2 -1
- package/dist/api/routes/datasource.js +2 -1
- package/dist/api/routes/deploy.js +3 -3
- package/dist/api/routes/dev.js +2 -1
- package/dist/api/routes/index.js +2 -0
- package/dist/api/routes/integration.js +2 -1
- package/dist/api/routes/layout.js +2 -1
- package/dist/api/routes/metadata.js +2 -1
- package/dist/api/routes/migrations.js +2 -1
- package/dist/api/routes/permission.js +2 -1
- package/dist/api/routes/public/applications.js +37 -0
- package/dist/api/routes/public/middleware/mapper.js +3 -0
- package/dist/api/routes/query.js +2 -1
- package/dist/api/routes/role.js +2 -1
- package/dist/api/routes/routing.js +2 -1
- package/dist/api/routes/row.js +2 -2
- package/dist/api/routes/screen.js +2 -1
- package/dist/api/routes/script.js +2 -1
- package/dist/api/routes/static.js +6 -5
- package/dist/api/routes/table.js +8 -38
- package/dist/api/routes/templates.js +2 -1
- package/dist/api/routes/user.js +2 -1
- package/dist/api/routes/utils/validators.js +1 -1
- package/dist/api/routes/view.js +2 -1
- package/dist/api/routes/webhook.js +2 -1
- package/dist/app.js +10 -8
- package/dist/automations/automationUtils.js +26 -1
- package/dist/automations/logging/index.js +5 -25
- package/dist/automations/triggers.js +1 -0
- package/dist/db/index.js +5 -2
- package/dist/db/linkedRows/LinkController.js +2 -1
- package/dist/db/linkedRows/LinkDocument.js +2 -1
- package/dist/db/newid.js +4 -2
- package/dist/definitions/datasource.js +0 -6
- package/dist/environment.js +7 -2
- package/dist/events/AutomationEmitter.js +2 -1
- package/dist/events/BudibaseEmitter.js +2 -1
- package/dist/events/index.js +2 -1
- package/dist/index.js +2 -2
- package/dist/integrations/base/query.js +7 -2
- package/dist/integrations/base/sqlTable.js +14 -14
- package/dist/integrations/couchdb.js +34 -8
- package/dist/integrations/dynamodb.js +8 -5
- package/dist/integrations/elasticsearch.js +7 -3
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +6 -7
- package/dist/integrations/mongodb.js +311 -271
- package/dist/integrations/mysql.js +2 -2
- package/dist/integrations/queries/sql.js +73 -100
- package/dist/integrations/rest.js +16 -18
- package/dist/middleware/authorized.js +2 -1
- package/dist/middleware/builder.js +4 -2
- package/dist/middleware/currentapp.js +6 -3
- package/dist/middleware/publicApi.js +4 -2
- package/dist/middleware/selfhost.js +4 -1
- package/dist/migrations/functions/backfill/global/configs.js +4 -4
- package/dist/package.json +14 -8
- package/dist/sdk/app/backups/imports.js +2 -6
- package/dist/sdk/app/datasources/datasources.js +147 -0
- package/dist/sdk/app/datasources/index.js +27 -0
- package/dist/sdk/app/queries/index.js +27 -0
- package/dist/sdk/app/queries/queries.js +60 -0
- package/dist/sdk/app/tables/index.js +6 -2
- package/dist/sdk/index.js +4 -0
- package/dist/sdk/utils/index.js +29 -0
- package/dist/startup.js +17 -17
- package/dist/threads/automation.js +22 -35
- package/dist/threads/index.js +4 -4
- package/dist/threads/query.js +27 -13
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/app.js +97 -0
- package/dist/utilities/fileSystem/clientLibrary.js +3 -3
- package/dist/utilities/fileSystem/filesystem.js +184 -0
- package/dist/utilities/fileSystem/index.js +18 -342
- package/dist/utilities/fileSystem/plugin.js +66 -0
- package/dist/utilities/fileSystem/template.js +47 -0
- package/dist/utilities/index.js +1 -44
- package/dist/utilities/retry.js +30 -0
- package/dist/utilities/rowProcessor/index.js +12 -4
- package/dist/utilities/schema.js +108 -0
- package/dist/utilities/scriptRunner.js +2 -1
- package/dist/utilities/statusCodes.js +2 -1
- package/dist/utilities/workerRequests.js +2 -0
- package/dist/watch.js +2 -25
- package/jest-testcontainers-config.js +8 -0
- package/jest.config.ts +33 -13
- package/package.json +15 -9
- package/scripts/dev/manage.js +3 -2
- package/specs/openapi.json +84 -0
- package/specs/openapi.yaml +53 -0
- package/specs/resources/application.js +19 -0
- package/src/api/controllers/application.ts +142 -110
- package/src/api/controllers/auth.ts +2 -2
- package/src/api/controllers/cloud.ts +10 -6
- package/src/api/controllers/datasource.ts +33 -25
- package/src/api/controllers/deploy/Deployment.ts +1 -0
- package/src/api/controllers/deploy/index.ts +40 -58
- package/src/api/controllers/plugin/index.ts +14 -9
- package/src/api/controllers/public/applications.ts +17 -0
- package/src/api/controllers/query/import/tests/index.spec.js +1 -1
- package/src/api/controllers/query/index.ts +49 -41
- package/src/api/controllers/row/ExternalRequest.ts +8 -3
- package/src/api/controllers/row/external.ts +24 -14
- package/src/api/controllers/row/internal.ts +66 -41
- package/src/api/controllers/row/staticFormula.ts +5 -2
- package/src/api/controllers/row/utils.ts +42 -3
- package/src/api/controllers/static/index.ts +22 -27
- package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/src/api/controllers/table/external.ts +18 -16
- package/src/api/controllers/table/index.ts +46 -17
- package/src/api/controllers/table/internal.ts +6 -7
- package/src/api/controllers/table/utils.ts +12 -13
- package/src/api/controllers/user.ts +21 -13
- package/src/api/controllers/view/exporters.ts +20 -5
- package/src/api/controllers/view/index.ts +30 -42
- package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
- package/src/api/controllers/view/viewBuilder.ts +1 -1
- package/src/api/controllers/webhook.ts +48 -46
- package/src/api/routes/analytics.ts +1 -1
- package/src/api/routes/apikeys.ts +1 -1
- package/src/api/routes/application.ts +12 -1
- package/src/api/routes/auth.ts +1 -1
- package/src/api/routes/automation.ts +1 -1
- package/src/api/routes/backup.ts +1 -1
- package/src/api/routes/cloud.ts +1 -1
- package/src/api/routes/component.ts +1 -1
- package/src/api/routes/datasource.ts +1 -1
- package/src/api/routes/deploy.ts +1 -2
- package/src/api/routes/dev.ts +1 -1
- package/src/api/routes/index.ts +6 -3
- package/src/api/routes/integration.ts +1 -1
- package/src/api/routes/layout.ts +1 -1
- package/src/api/routes/metadata.ts +1 -1
- package/src/api/routes/migrations.ts +1 -1
- package/src/api/routes/permission.ts +1 -1
- package/src/api/routes/public/applications.ts +44 -0
- package/src/api/routes/public/middleware/mapper.ts +4 -0
- package/src/api/routes/query.ts +1 -1
- package/src/api/routes/role.ts +1 -1
- package/src/api/routes/routing.ts +1 -1
- package/src/api/routes/row.ts +1 -1
- package/src/api/routes/screen.ts +1 -1
- package/src/api/routes/script.ts +1 -1
- package/src/api/routes/static.ts +2 -2
- package/src/api/routes/table.ts +16 -39
- package/src/api/routes/templates.ts +1 -1
- package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +1 -1
- package/src/api/routes/tests/analytics.spec.js +4 -1
- package/src/api/routes/tests/apikeys.spec.js +1 -1
- package/src/api/routes/tests/{application.spec.js → application.spec.ts} +112 -22
- package/src/api/routes/tests/auth.spec.js +2 -2
- package/src/api/routes/tests/automation.spec.js +5 -1
- package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -15
- package/src/api/routes/tests/cloud.seq.spec.ts +59 -0
- package/src/api/routes/tests/component.spec.js +1 -1
- package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
- package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
- package/src/api/routes/tests/data/export-test.tar.gz +0 -0
- package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +76 -17
- package/src/api/routes/tests/dev.spec.js +1 -1
- package/src/api/routes/tests/integration.spec.js +1 -1
- package/src/api/routes/tests/layout.spec.js +1 -1
- package/src/api/routes/tests/metadata.spec.js +1 -1
- package/src/api/routes/tests/misc.spec.js +5 -11
- package/src/api/routes/tests/permissions.spec.js +5 -2
- package/src/api/routes/tests/plugin.spec.ts +179 -0
- package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +21 -1
- package/src/api/routes/tests/role.spec.js +6 -1
- package/src/api/routes/tests/routing.spec.js +2 -3
- package/src/api/routes/tests/row.spec.js +15 -5
- package/src/api/routes/tests/screen.spec.js +1 -1
- package/src/api/routes/tests/static.spec.js +4 -18
- package/src/api/routes/tests/table.spec.js +17 -33
- package/src/api/routes/tests/templates.spec.js +1 -1
- package/src/api/routes/tests/user.spec.js +108 -0
- package/src/api/routes/tests/utilities/TestFunctions.ts +26 -3
- package/src/api/routes/tests/utilities/index.ts +7 -5
- package/src/api/routes/tests/view.spec.js +4 -1
- package/src/api/routes/tests/webhook.spec.js +12 -3
- package/src/api/routes/user.ts +1 -1
- package/src/api/routes/utils/validators.ts +1 -1
- package/src/api/routes/view.ts +1 -1
- package/src/api/routes/webhook.ts +1 -1
- package/src/app.ts +7 -4
- package/src/automations/automationUtils.ts +24 -0
- package/src/automations/logging/index.ts +1 -1
- package/src/automations/tests/automation.spec.js +4 -4
- package/src/automations/tests/bash.spec.js +34 -0
- package/src/automations/tests/discord.spec.js +27 -0
- package/src/automations/tests/executeQuery.spec.js +48 -0
- package/src/automations/tests/executeScript.spec.js +48 -0
- package/src/automations/tests/loop.spec.ts +45 -0
- package/src/automations/tests/outgoingWebhook.spec.js +1 -1
- package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
- package/src/automations/tests/serverLog.spec.js +22 -0
- package/src/automations/tests/updateRow.spec.js +1 -1
- package/src/automations/tests/utilities/index.ts +2 -2
- package/src/automations/tests/zapier.spec.js +27 -0
- package/src/automations/triggers.ts +6 -1
- package/src/automations/unitTests/automationUtils.spec.ts +65 -0
- package/src/db/index.ts +1 -1
- package/src/db/linkedRows/LinkController.ts +1 -1
- package/src/db/linkedRows/LinkDocument.ts +1 -1
- package/src/db/newid.ts +1 -1
- package/src/db/tests/linkController.spec.js +5 -2
- package/src/db/tests/linkTests.spec.js +1 -1
- package/src/definitions/automations.ts +1 -0
- package/src/definitions/datasource.ts +0 -41
- package/src/definitions/openapi.ts +10 -0
- package/src/environment.ts +6 -2
- package/src/events/AutomationEmitter.ts +1 -1
- package/src/events/BudibaseEmitter.ts +1 -1
- package/src/events/index.ts +1 -1
- package/src/index.ts +1 -1
- package/src/integrations/base/query.ts +3 -1
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/couchdb.ts +40 -14
- package/src/integrations/dynamodb.ts +3 -3
- package/src/integrations/elasticsearch.ts +8 -4
- package/src/integrations/googlesheets.ts +1 -1
- package/src/integrations/index.ts +5 -9
- package/src/integrations/mongodb.ts +315 -271
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/queries/sql.ts +5 -50
- package/src/integrations/rest.ts +16 -19
- package/src/integrations/tests/couchdb.spec.ts +33 -21
- package/src/integrations/tests/rest.spec.ts +19 -15
- package/src/middleware/authorized.ts +5 -1
- package/src/middleware/builder.ts +1 -1
- package/src/middleware/currentapp.ts +4 -3
- package/src/middleware/publicApi.ts +1 -1
- package/src/middleware/selfhost.ts +1 -1
- package/src/middleware/tests/authorized.spec.js +1 -1
- package/src/middleware/tests/currentapp.spec.js +1 -1
- package/src/middleware/tests/selfhost.spec.js +1 -1
- package/src/migrations/functions/backfill/global/configs.ts +5 -4
- package/src/migrations/functions/tests/appUrls.spec.js +1 -1
- package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
- package/src/migrations/tests/index.spec.ts +3 -2
- package/src/sdk/app/backups/imports.ts +2 -6
- package/src/sdk/app/datasources/datasources.ts +136 -0
- package/src/sdk/app/datasources/index.ts +5 -0
- package/src/sdk/app/queries/index.ts +5 -0
- package/src/sdk/app/queries/queries.ts +50 -0
- package/src/sdk/app/tables/index.ts +6 -3
- package/src/sdk/index.ts +4 -0
- package/src/sdk/tests/attachments.spec.ts +1 -4
- package/src/sdk/utils/index.ts +16 -0
- package/src/startup.ts +3 -8
- package/src/tests/jestEnv.ts +9 -0
- package/src/tests/jestSetup.ts +8 -20
- package/src/tests/utilities/TestConfiguration.ts +127 -49
- package/src/tests/utilities/structures.ts +65 -2
- package/src/threads/automation.ts +22 -35
- package/src/threads/definitions.ts +3 -0
- package/src/threads/index.ts +1 -1
- package/src/threads/query.ts +28 -15
- package/src/utilities/fileSystem/app.ts +86 -0
- package/src/utilities/fileSystem/clientLibrary.ts +1 -1
- package/src/utilities/fileSystem/filesystem.ts +172 -0
- package/src/utilities/fileSystem/index.ts +5 -348
- package/src/utilities/fileSystem/plugin.ts +64 -0
- package/src/utilities/fileSystem/template.ts +36 -0
- package/src/utilities/index.ts +1 -45
- package/src/utilities/retry.ts +18 -0
- package/src/utilities/rowProcessor/index.ts +17 -8
- package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
- package/src/utilities/schema.ts +141 -0
- package/src/utilities/scriptRunner.ts +1 -1
- package/src/utilities/statusCodes.ts +1 -1
- package/src/utilities/workerRequests.ts +10 -1
- package/src/watch.ts +1 -1
- package/tsconfig.build.json +2 -0
- package/tsconfig.json +2 -1
- package/builder/assets/index.96b9ffed.css +0 -6
- package/builder/assets/index.fae8f9eb.js +0 -1024
- package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
- package/dist/api/routes/tests/utilities/index.js +0 -131
- package/dist/automations/tests/utilities/index.js +0 -81
- package/dist/tests/utilities/TestConfiguration.js +0 -562
- package/dist/tests/utilities/controllers.js +0 -40
- package/dist/tests/utilities/structures.js +0 -168
- package/dist/utilities/csvParser.js +0 -152
- package/dist/utilities/plugins.js +0 -26
- package/src/api/routes/tests/deployment.spec.ts +0 -25
- package/src/automations/unitTests/automationUtils.spec.js +0 -17
- package/src/utilities/csvParser.ts +0 -161
- package/src/utilities/plugins.ts +0 -22
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
- package/src/utilities/tests/csvParser.spec.js +0 -112
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const setup = require("./utilities")
|
|
2
|
+
|
|
3
|
+
describe("test the execute script action", () => {
|
|
4
|
+
let config = setup.getConfig()
|
|
5
|
+
|
|
6
|
+
beforeAll(async () => {
|
|
7
|
+
await config.init()
|
|
8
|
+
})
|
|
9
|
+
afterAll(setup.afterAll)
|
|
10
|
+
|
|
11
|
+
it("should be able to execute a script", async () => {
|
|
12
|
+
|
|
13
|
+
let res = await setup.runStep(setup.actions.EXECUTE_SCRIPT.stepId,
|
|
14
|
+
inputs = {
|
|
15
|
+
code: "return 1 + 1"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
)
|
|
19
|
+
expect(res.value).toEqual(2)
|
|
20
|
+
expect(res.success).toEqual(true)
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
it("should handle a null value", async () => {
|
|
24
|
+
|
|
25
|
+
let res = await setup.runStep(setup.actions.EXECUTE_SCRIPT.stepId,
|
|
26
|
+
inputs = {
|
|
27
|
+
code: null
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
)
|
|
32
|
+
expect(res.response.message).toEqual("Invalid inputs")
|
|
33
|
+
expect(res.success).toEqual(false)
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
it("should be able to handle an error gracefully", async () => {
|
|
37
|
+
|
|
38
|
+
let res = await setup.runStep(setup.actions.EXECUTE_SCRIPT.stepId,
|
|
39
|
+
inputs = {
|
|
40
|
+
code: "return something.map(x => x.name)"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
)
|
|
44
|
+
expect(res.response).toEqual("ReferenceError: something is not defined")
|
|
45
|
+
expect(res.success).toEqual(false)
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
})
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as automation from "../index"
|
|
2
|
+
import * as triggers from "../triggers"
|
|
3
|
+
import { loopAutomation } from "../../tests/utilities/structures"
|
|
4
|
+
import { context } from "@budibase/backend-core"
|
|
5
|
+
import * as setup from "./utilities"
|
|
6
|
+
|
|
7
|
+
describe("Attempt to run a basic loop automation", () => {
|
|
8
|
+
let config = setup.getConfig(),
|
|
9
|
+
table: any,
|
|
10
|
+
row: any
|
|
11
|
+
|
|
12
|
+
beforeEach(async () => {
|
|
13
|
+
await automation.init()
|
|
14
|
+
await config.init()
|
|
15
|
+
table = await config.createTable()
|
|
16
|
+
row = await config.createRow()
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
afterAll(setup.afterAll)
|
|
20
|
+
|
|
21
|
+
async function runLoop(loopOpts?: any) {
|
|
22
|
+
const appId = config.getAppId()
|
|
23
|
+
return await context.doInAppContext(appId, async () => {
|
|
24
|
+
const params = { fields: { appId } }
|
|
25
|
+
return await triggers.externalTrigger(
|
|
26
|
+
loopAutomation(table._id, loopOpts),
|
|
27
|
+
params,
|
|
28
|
+
{ getResponses: true }
|
|
29
|
+
)
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
it("attempt to run a basic loop", async () => {
|
|
34
|
+
const resp = await runLoop()
|
|
35
|
+
expect(resp.steps[2].outputs.iterations).toBe(1)
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it("test a loop with a string", async () => {
|
|
39
|
+
const resp = await runLoop({
|
|
40
|
+
type: "String",
|
|
41
|
+
binding: "a,b,c",
|
|
42
|
+
})
|
|
43
|
+
expect(resp.steps[2].outputs.iterations).toBe(3)
|
|
44
|
+
})
|
|
45
|
+
})
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
|
|
2
|
+
function generateResponse(to, from) {
|
|
3
|
+
return {
|
|
4
|
+
"success": true,
|
|
5
|
+
"response": {
|
|
6
|
+
"accepted": [
|
|
7
|
+
to
|
|
8
|
+
],
|
|
9
|
+
"envelope": {
|
|
10
|
+
"from": from,
|
|
11
|
+
"to": [
|
|
12
|
+
to
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"message": `Email sent to ${to}.`
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const mockFetch = jest.fn(() => ({
|
|
22
|
+
headers: {
|
|
23
|
+
raw: () => {
|
|
24
|
+
return { "content-type": ["application/json"] }
|
|
25
|
+
},
|
|
26
|
+
get: () => ["application/json"],
|
|
27
|
+
},
|
|
28
|
+
json: jest.fn(() => response),
|
|
29
|
+
status: 200,
|
|
30
|
+
text: jest.fn(),
|
|
31
|
+
}))
|
|
32
|
+
jest.mock("node-fetch", () => mockFetch)
|
|
33
|
+
const setup = require("./utilities")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
describe("test the outgoing webhook action", () => {
|
|
37
|
+
let inputs
|
|
38
|
+
let config = setup.getConfig()
|
|
39
|
+
beforeAll(async () => {
|
|
40
|
+
await config.init()
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
afterAll(setup.afterAll)
|
|
44
|
+
|
|
45
|
+
it("should be able to run the action", async () => {
|
|
46
|
+
inputs = {
|
|
47
|
+
to: "user1@test.com",
|
|
48
|
+
from: "admin@test.com",
|
|
49
|
+
subject: "hello",
|
|
50
|
+
contents: "testing",
|
|
51
|
+
}
|
|
52
|
+
let resp = generateResponse(inputs.to, inputs.from)
|
|
53
|
+
mockFetch.mockImplementationOnce(() => ({
|
|
54
|
+
headers: {
|
|
55
|
+
raw: () => {
|
|
56
|
+
return { "content-type": ["application/json"] }
|
|
57
|
+
},
|
|
58
|
+
get: () => ["application/json"],
|
|
59
|
+
},
|
|
60
|
+
json: jest.fn(() => resp),
|
|
61
|
+
status: 200,
|
|
62
|
+
text: jest.fn(),
|
|
63
|
+
}))
|
|
64
|
+
const res = await setup.runStep(setup.actions.SEND_EMAIL_SMTP.stepId, inputs)
|
|
65
|
+
expect(res.response).toEqual(resp)
|
|
66
|
+
expect(res.success).toEqual(true)
|
|
67
|
+
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
})
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const setup = require("./utilities")
|
|
2
|
+
|
|
3
|
+
describe("test the server log action", () => {
|
|
4
|
+
let config = setup.getConfig()
|
|
5
|
+
|
|
6
|
+
beforeAll(async () => {
|
|
7
|
+
await config.init()
|
|
8
|
+
inputs = {
|
|
9
|
+
text: "log message",
|
|
10
|
+
}
|
|
11
|
+
})
|
|
12
|
+
afterAll(setup.afterAll)
|
|
13
|
+
|
|
14
|
+
it("should be able to log the text", async () => {
|
|
15
|
+
|
|
16
|
+
let res = await setup.runStep(setup.actions.SERVER_LOG.stepId,
|
|
17
|
+
inputs
|
|
18
|
+
)
|
|
19
|
+
expect(res.message).toEqual(`App ${config.getAppId()} - ${inputs.text}`)
|
|
20
|
+
expect(res.success).toEqual(true)
|
|
21
|
+
})
|
|
22
|
+
})
|
|
@@ -31,7 +31,7 @@ export async function runInProd(fn: any) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
export async function runStep(stepId: string, inputs: any) {
|
|
34
|
+
export async function runStep(stepId: string, inputs: any, stepContext?: any) {
|
|
35
35
|
async function run() {
|
|
36
36
|
let step = await getAction(stepId)
|
|
37
37
|
expect(step).toBeDefined()
|
|
@@ -39,7 +39,7 @@ export async function runStep(stepId: string, inputs: any) {
|
|
|
39
39
|
throw new Error("No step found")
|
|
40
40
|
}
|
|
41
41
|
return step({
|
|
42
|
-
context: {},
|
|
42
|
+
context: stepContext || {},
|
|
43
43
|
inputs,
|
|
44
44
|
appId: config ? config.getAppId() : null,
|
|
45
45
|
// don't really need an API key, mocked out usage quota, not being tested here
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const setup = require("./utilities")
|
|
2
|
+
const fetch = require("node-fetch")
|
|
3
|
+
|
|
4
|
+
jest.mock("node-fetch")
|
|
5
|
+
|
|
6
|
+
describe("test the outgoing webhook action", () => {
|
|
7
|
+
let inputs
|
|
8
|
+
let config = setup.getConfig()
|
|
9
|
+
|
|
10
|
+
beforeAll(async () => {
|
|
11
|
+
await config.init()
|
|
12
|
+
inputs = {
|
|
13
|
+
value1: "test",
|
|
14
|
+
url: "http://www.test.com",
|
|
15
|
+
}
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
afterAll(setup.afterAll)
|
|
19
|
+
|
|
20
|
+
it("should be able to run the action", async () => {
|
|
21
|
+
const res = await setup.runStep(setup.actions.zapier.stepId, inputs)
|
|
22
|
+
expect(res.response.url).toEqual("http://www.test.com")
|
|
23
|
+
expect(res.response.method).toEqual("post")
|
|
24
|
+
expect(res.success).toEqual(true)
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
})
|
|
@@ -109,8 +109,13 @@ export async function externalTrigger(
|
|
|
109
109
|
}
|
|
110
110
|
params.fields = coercedFields
|
|
111
111
|
}
|
|
112
|
-
const data = { automation, event: params }
|
|
112
|
+
const data: Record<string, any> = { automation, event: params }
|
|
113
113
|
if (getResponses) {
|
|
114
|
+
data.event = {
|
|
115
|
+
...data.event,
|
|
116
|
+
appId: context.getAppId(),
|
|
117
|
+
automation,
|
|
118
|
+
}
|
|
114
119
|
return utils.processEvent({ data })
|
|
115
120
|
} else {
|
|
116
121
|
return automationQueue.add(data, JOB_OPTS)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const automationUtils = require("../automationUtils")
|
|
2
|
+
|
|
3
|
+
describe("automationUtils", () => {
|
|
4
|
+
describe("substituteLoopStep", () => {
|
|
5
|
+
it("should allow multiple loop binding substitutes", () => {
|
|
6
|
+
expect(
|
|
7
|
+
automationUtils.substituteLoopStep(
|
|
8
|
+
`{{ loop.currentItem._id }} {{ loop.currentItem._id }} {{ loop.currentItem._id }}`,
|
|
9
|
+
"step.2"
|
|
10
|
+
)
|
|
11
|
+
).toBe(
|
|
12
|
+
`{{ step.2.currentItem._id }} {{ step.2.currentItem._id }} {{ step.2.currentItem._id }}`
|
|
13
|
+
)
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
it("should handle not subsituting outside of curly braces", () => {
|
|
17
|
+
expect(
|
|
18
|
+
automationUtils.substituteLoopStep(
|
|
19
|
+
`loop {{ loop.currentItem._id }}loop loop{{ loop.currentItem._id }}loop`,
|
|
20
|
+
"step.2"
|
|
21
|
+
)
|
|
22
|
+
).toBe(
|
|
23
|
+
`loop {{ step.2.currentItem._id }}loop loop{{ step.2.currentItem._id }}loop`
|
|
24
|
+
)
|
|
25
|
+
})
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
describe("typeCastForLooping", () => {
|
|
29
|
+
it("should parse to correct type", () => {
|
|
30
|
+
expect(
|
|
31
|
+
automationUtils.typecastForLooping(
|
|
32
|
+
{ inputs: { option: "Array" } },
|
|
33
|
+
{ binding: [1, 2, 3] }
|
|
34
|
+
)
|
|
35
|
+
).toEqual([1, 2, 3])
|
|
36
|
+
expect(
|
|
37
|
+
automationUtils.typecastForLooping(
|
|
38
|
+
{ inputs: { option: "Array" } },
|
|
39
|
+
{ binding: "[1, 2, 3]" }
|
|
40
|
+
)
|
|
41
|
+
).toEqual([1, 2, 3])
|
|
42
|
+
expect(
|
|
43
|
+
automationUtils.typecastForLooping(
|
|
44
|
+
{ inputs: { option: "String" } },
|
|
45
|
+
{ binding: [1, 2, 3] }
|
|
46
|
+
)
|
|
47
|
+
).toEqual("1,2,3")
|
|
48
|
+
})
|
|
49
|
+
it("should handle null values", () => {
|
|
50
|
+
// expect it to handle where the binding is null
|
|
51
|
+
expect(
|
|
52
|
+
automationUtils.typecastForLooping(
|
|
53
|
+
{ inputs: { option: "Array" } },
|
|
54
|
+
{ binding: null }
|
|
55
|
+
)
|
|
56
|
+
).toEqual(null)
|
|
57
|
+
expect(() =>
|
|
58
|
+
automationUtils.typecastForLooping(
|
|
59
|
+
{ inputs: { option: "Array" } },
|
|
60
|
+
{ binding: "test" }
|
|
61
|
+
)
|
|
62
|
+
).toThrow()
|
|
63
|
+
})
|
|
64
|
+
})
|
|
65
|
+
})
|
package/src/db/index.ts
CHANGED
package/src/db/newid.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const TestConfig = require("../../tests/utilities/TestConfiguration")
|
|
2
2
|
const { basicRow, basicLinkedRow, basicTable } = require("../../tests/utilities/structures")
|
|
3
|
-
const LinkController = require("../linkedRows/LinkController")
|
|
3
|
+
const LinkController = require("../linkedRows/LinkController").default
|
|
4
4
|
const { context } = require("@budibase/backend-core")
|
|
5
5
|
const { RelationshipTypes } = require("../../constants")
|
|
6
6
|
const { cloneDeep } = require("lodash/fp")
|
|
@@ -9,9 +9,12 @@ describe("test the link controller", () => {
|
|
|
9
9
|
let config = new TestConfig(false)
|
|
10
10
|
let table1, table2, appId
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
beforeAll(async () => {
|
|
13
13
|
const app = await config.init()
|
|
14
14
|
appId = app.appId
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
beforeEach(async () => {
|
|
15
18
|
const { _id } = await config.createTable()
|
|
16
19
|
table2 = await config.createLinkedTable(RelationshipTypes.MANY_TO_MANY, ["link", "link2"])
|
|
17
20
|
// update table after creating link
|
|
@@ -7,44 +7,3 @@
|
|
|
7
7
|
export interface QueryOptions {
|
|
8
8
|
disableReturning?: boolean
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
export enum AuthType {
|
|
12
|
-
BASIC = "basic",
|
|
13
|
-
BEARER = "bearer",
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
interface AuthConfig {
|
|
17
|
-
_id: string
|
|
18
|
-
name: string
|
|
19
|
-
type: AuthType
|
|
20
|
-
config: BasicAuthConfig | BearerAuthConfig
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface BasicAuthConfig {
|
|
24
|
-
username: string
|
|
25
|
-
password: string
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface BearerAuthConfig {
|
|
29
|
-
token: string
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface RestConfig {
|
|
33
|
-
url: string
|
|
34
|
-
rejectUnauthorized: boolean
|
|
35
|
-
defaultHeaders: {
|
|
36
|
-
[key: string]: any
|
|
37
|
-
}
|
|
38
|
-
legacyHttpParser: boolean
|
|
39
|
-
authConfigs: AuthConfig[]
|
|
40
|
-
staticVariables: {
|
|
41
|
-
[key: string]: string
|
|
42
|
-
}
|
|
43
|
-
dynamicVariables: [
|
|
44
|
-
{
|
|
45
|
-
name: string
|
|
46
|
-
queryId: string
|
|
47
|
-
value: string
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
}
|
|
@@ -102,6 +102,16 @@ export interface components {
|
|
|
102
102
|
lockedBy?: { [key: string]: unknown };
|
|
103
103
|
};
|
|
104
104
|
};
|
|
105
|
+
deploymentOutput: {
|
|
106
|
+
data: {
|
|
107
|
+
/** @description The ID of the deployment. */
|
|
108
|
+
_id: string;
|
|
109
|
+
/** @description The status of the deployment. */
|
|
110
|
+
status: "SUCCESS" | "FAILURE";
|
|
111
|
+
/** @description The URL by which the published app is accessed. */
|
|
112
|
+
appUrl?: string;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
105
115
|
applicationSearch: {
|
|
106
116
|
data: {
|
|
107
117
|
/** @description The name of the app. */
|
package/src/environment.ts
CHANGED
|
@@ -79,7 +79,6 @@ const environment = {
|
|
|
79
79
|
// flags
|
|
80
80
|
ALLOW_DEV_AUTOMATIONS: process.env.ALLOW_DEV_AUTOMATIONS,
|
|
81
81
|
DISABLE_THREADING: process.env.DISABLE_THREADING,
|
|
82
|
-
DISABLE_DEVELOPER_LICENSE: process.env.DISABLE_DEVELOPER_LICENSE,
|
|
83
82
|
DISABLE_AUTOMATION_LOGS: process.env.DISABLE_AUTOMATION_LOGS,
|
|
84
83
|
MULTI_TENANCY: process.env.MULTI_TENANCY,
|
|
85
84
|
ENABLE_ANALYTICS: process.env.ENABLE_ANALYTICS,
|
|
@@ -119,6 +118,11 @@ for (let [key, value] of Object.entries(environment)) {
|
|
|
119
118
|
// @ts-ignore
|
|
120
119
|
environment[key] = 0
|
|
121
120
|
}
|
|
121
|
+
// handle the edge case of "false" to disable an environment variable
|
|
122
|
+
if (value === "false") {
|
|
123
|
+
// @ts-ignore
|
|
124
|
+
environment[key] = 0
|
|
125
|
+
}
|
|
122
126
|
}
|
|
123
127
|
|
|
124
|
-
export
|
|
128
|
+
export default environment
|
package/src/events/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { bootstrap } from "global-agent"
|
|
2
2
|
const fixPath = require("fix-path")
|
|
3
|
-
|
|
3
|
+
import { checkDevelopmentEnvironment } from "./utilities/fileSystem"
|
|
4
4
|
|
|
5
5
|
function runServer() {
|
|
6
6
|
// this will shutdown the system if development environment not ready
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { QueryJson, Datasource } from "@budibase/types"
|
|
2
|
-
|
|
2
|
+
import { getIntegration } from "../index"
|
|
3
|
+
import sdk from "../../sdk"
|
|
3
4
|
|
|
4
5
|
export async function makeExternalQuery(
|
|
5
6
|
datasource: Datasource,
|
|
6
7
|
json: QueryJson
|
|
7
8
|
) {
|
|
9
|
+
datasource = await sdk.datasources.enrich(datasource)
|
|
8
10
|
const Integration = await getIntegration(datasource.source)
|
|
9
11
|
// query is the opinionated function
|
|
10
12
|
if (Integration.prototype.query) {
|
|
@@ -3,7 +3,7 @@ import { Operation, QueryJson, RenameColumn, Table } from "@budibase/types"
|
|
|
3
3
|
import { breakExternalTableId } from "../utils"
|
|
4
4
|
import SchemaBuilder = Knex.SchemaBuilder
|
|
5
5
|
import CreateTableBuilder = Knex.CreateTableBuilder
|
|
6
|
-
|
|
6
|
+
import { FieldTypes, RelationshipTypes } from "../../constants"
|
|
7
7
|
|
|
8
8
|
function generateSchema(
|
|
9
9
|
schema: CreateTableBuilder,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Integration,
|
|
3
2
|
DatasourceFieldType,
|
|
4
|
-
|
|
3
|
+
Document,
|
|
4
|
+
Integration,
|
|
5
5
|
IntegrationBase,
|
|
6
|
+
QueryType,
|
|
6
7
|
} from "@budibase/types"
|
|
7
|
-
|
|
8
|
-
const PouchDB = require("pouchdb")
|
|
8
|
+
import { db as dbCore } from "@budibase/backend-core"
|
|
9
9
|
|
|
10
10
|
interface CouchDBConfig {
|
|
11
11
|
url: string
|
|
@@ -39,6 +39,15 @@ const SCHEMA: Integration = {
|
|
|
39
39
|
update: {
|
|
40
40
|
type: QueryType.JSON,
|
|
41
41
|
},
|
|
42
|
+
get: {
|
|
43
|
+
type: QueryType.FIELDS,
|
|
44
|
+
fields: {
|
|
45
|
+
id: {
|
|
46
|
+
type: DatasourceFieldType.STRING,
|
|
47
|
+
required: true,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
42
51
|
delete: {
|
|
43
52
|
type: QueryType.FIELDS,
|
|
44
53
|
fields: {
|
|
@@ -57,7 +66,7 @@ class CouchDBIntegration implements IntegrationBase {
|
|
|
57
66
|
|
|
58
67
|
constructor(config: CouchDBConfig) {
|
|
59
68
|
this.config = config
|
|
60
|
-
this.client =
|
|
69
|
+
this.client = dbCore.DatabaseWithConnection(config.database, config.url)
|
|
61
70
|
}
|
|
62
71
|
|
|
63
72
|
async query(
|
|
@@ -66,31 +75,48 @@ class CouchDBIntegration implements IntegrationBase {
|
|
|
66
75
|
query: { json?: object; id?: string }
|
|
67
76
|
) {
|
|
68
77
|
try {
|
|
69
|
-
|
|
70
|
-
await this.client.close()
|
|
71
|
-
return response
|
|
78
|
+
return await this.client[command](query.id || query.json)
|
|
72
79
|
} catch (err) {
|
|
73
80
|
console.error(errorMsg, err)
|
|
74
81
|
throw err
|
|
75
82
|
}
|
|
76
83
|
}
|
|
77
84
|
|
|
78
|
-
|
|
79
|
-
return
|
|
85
|
+
private parse(query: { json: string | object }) {
|
|
86
|
+
return typeof query.json === "string" ? JSON.parse(query.json) : query.json
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
async create(query: { json: string | object }) {
|
|
90
|
+
const parsed = this.parse(query)
|
|
91
|
+
return this.query("post", "Error writing to couchDB", { json: parsed })
|
|
80
92
|
}
|
|
81
93
|
|
|
82
|
-
async read(query: { json: object }) {
|
|
94
|
+
async read(query: { json: string | object }) {
|
|
95
|
+
const parsed = this.parse(query)
|
|
83
96
|
const result = await this.query("allDocs", "Error querying couchDB", {
|
|
84
97
|
json: {
|
|
85
98
|
include_docs: true,
|
|
86
|
-
...
|
|
99
|
+
...parsed,
|
|
87
100
|
},
|
|
88
101
|
})
|
|
89
102
|
return result.rows.map((row: { doc: object }) => row.doc)
|
|
90
103
|
}
|
|
91
104
|
|
|
92
|
-
async update(query: { json: object }) {
|
|
93
|
-
|
|
105
|
+
async update(query: { json: string | object }) {
|
|
106
|
+
const parsed: Document = this.parse(query)
|
|
107
|
+
if (!parsed?._rev && parsed?._id) {
|
|
108
|
+
const oldDoc = await this.get({ id: parsed._id })
|
|
109
|
+
parsed._rev = oldDoc._rev
|
|
110
|
+
}
|
|
111
|
+
return this.query("put", "Error updating couchDB document", {
|
|
112
|
+
json: parsed,
|
|
113
|
+
})
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
async get(query: { id: string }) {
|
|
117
|
+
return this.query("get", "Error retrieving couchDB document by ID", {
|
|
118
|
+
id: query.id,
|
|
119
|
+
})
|
|
94
120
|
}
|
|
95
121
|
|
|
96
122
|
async delete(query: { id: string }) {
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
IntegrationBase,
|
|
6
6
|
} from "@budibase/types"
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
import AWS from "aws-sdk"
|
|
9
|
+
import { AWS_REGION } from "../db/dynamoClient"
|
|
10
10
|
|
|
11
11
|
interface DynamoDBConfig {
|
|
12
12
|
region: string
|
|
@@ -182,7 +182,7 @@ class DynamoDBIntegration implements IntegrationBase {
|
|
|
182
182
|
return response
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
async describe(query: { table: string }) {
|
|
185
|
+
async describe(query: { table: string }): Promise<any> {
|
|
186
186
|
const params = {
|
|
187
187
|
TableName: query.table,
|
|
188
188
|
}
|