@budibase/server 2.3.20 → 2.3.21-alpha.0
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 +1 -1
- package/__mocks__/node-fetch.ts +3 -0
- package/builder/assets/blankScreenPreview.72634dd1.png +0 -0
- package/builder/assets/{index.3faec52d.js → index.90fba548.js} +439 -426
- package/builder/assets/index.b24b9dea.css +6 -0
- package/builder/assets/listScreenPreview.599c0aae.png +0 -0
- package/builder/index.html +2 -2
- package/dist/api/controllers/automation.js +11 -2
- package/dist/api/controllers/cloud.js +2 -2
- package/dist/api/controllers/query/index.js +2 -0
- package/dist/api/controllers/row/ExternalRequest.js +50 -23
- package/dist/api/controllers/row/external.js +12 -1
- package/dist/api/controllers/row/internalSearch.js +6 -450
- package/dist/api/controllers/row/utils.js +1 -3
- package/dist/api/controllers/table/external.js +8 -8
- package/dist/api/index.js +1 -21
- package/dist/api/routes/automation.js +1 -1
- package/dist/api/routes/public/applications.js +7 -7
- package/dist/api/routes/public/queries.js +2 -2
- package/dist/api/routes/public/rows.js +5 -5
- package/dist/api/routes/public/tables.js +5 -5
- package/dist/api/routes/public/users.js +5 -5
- package/dist/app.js +9 -1
- package/dist/constants/index.js +4 -24
- package/dist/db/defaultData/datasource_bb_default.js +6 -5
- package/dist/db/index.js +25 -2
- package/dist/db/linkedRows/LinkController.js +9 -8
- package/dist/db/utils.js +2 -5
- package/dist/db/views/staticViews.js +2 -1
- package/dist/ddApm.js +11 -0
- package/dist/elasticApm.js +14 -0
- package/dist/integrations/base/sql.js +6 -3
- package/dist/integrations/googlesheets.js +17 -20
- package/dist/middleware/authorized.js +5 -3
- package/dist/middleware/builder.js +6 -3
- package/dist/migrations/functions/backfill/global/configs.js +10 -4
- package/dist/migrations/tests/helpers.js +1 -1
- package/dist/migrations/tests/structures.js +1 -1
- package/dist/package.json +14 -9
- package/dist/sdk/app/backups/constants.js +2 -1
- package/dist/sdk/app/backups/exports.js +20 -7
- package/dist/sdk/app/datasources/datasources.js +3 -0
- package/dist/sdk/app/rows/attachments.js +1 -1
- package/dist/startup.js +3 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/redis.js +2 -0
- package/dist/utilities/retry.js +30 -0
- package/jest-testcontainers-config.js +8 -0
- package/jest.config.ts +35 -22
- package/package.json +15 -10
- package/scripts/load/create-many-apps.js +24 -0
- package/scripts/load/create-many-rows.js +30 -0
- package/scripts/load/utils.js +66 -0
- package/scripts/test.sh +12 -0
- package/specs/{generate.js → generate.ts} +7 -9
- package/specs/openapi.json +30 -30
- package/specs/openapi.yaml +27 -27
- package/specs/{parameters.js → parameters.ts} +6 -6
- package/specs/resources/{application.js → application.ts} +4 -4
- package/specs/resources/{index.js → index.ts} +8 -8
- package/specs/resources/{misc.js → misc.ts} +3 -3
- package/specs/resources/{query.js → query.ts} +4 -4
- package/specs/resources/{row.js → row.ts} +3 -4
- package/specs/resources/{table.js → table.ts} +5 -5
- package/specs/resources/{user.js → user.ts} +3 -3
- package/specs/resources/utils/Resource.ts +39 -0
- package/specs/resources/utils/{index.js → index.ts} +1 -1
- package/specs/{security.js → security.ts} +1 -1
- package/src/api/controllers/automation.ts +13 -2
- package/src/api/controllers/cloud.ts +2 -2
- package/src/api/controllers/query/import/tests/index.spec.js +1 -1
- package/src/api/controllers/query/index.ts +2 -0
- package/src/api/controllers/row/ExternalRequest.ts +98 -27
- package/src/api/controllers/row/external.ts +13 -1
- package/src/api/controllers/row/internalSearch.ts +11 -524
- package/src/api/controllers/row/utils.ts +1 -2
- package/src/api/controllers/table/external.ts +3 -2
- package/src/api/index.ts +3 -22
- package/src/api/routes/automation.ts +1 -1
- package/src/api/routes/public/applications.ts +7 -8
- package/src/api/routes/public/queries.ts +2 -2
- package/src/api/routes/public/rows.ts +5 -5
- package/src/api/routes/public/tables.ts +5 -5
- package/src/api/routes/public/tests/{compare.spec.js → compare.spec.ts} +45 -26
- package/src/api/routes/public/tests/users.spec.js +1 -1
- package/src/api/routes/public/tests/utils.ts +25 -8
- package/src/api/routes/public/users.ts +5 -5
- package/src/api/routes/tests/__snapshots__/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.ts +20 -6
- package/src/api/routes/tests/auth.spec.js +2 -2
- package/src/api/routes/tests/automation.spec.js +6 -2
- package/src/api/routes/tests/backup.spec.ts +4 -14
- package/src/api/routes/tests/cloud.spec.ts +20 -31
- package/src/api/routes/tests/component.spec.js +1 -1
- package/src/api/routes/tests/datasource.spec.ts +20 -3
- package/src/api/routes/tests/dev.spec.js +1 -1
- package/src/api/routes/tests/environmentVariables.spec.ts +144 -0
- 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 +1 -1
- package/src/api/routes/tests/permissions.spec.js +4 -1
- package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +22 -1
- package/src/api/routes/tests/role.spec.js +6 -1
- package/src/api/routes/tests/routing.spec.js +1 -1
- package/src/api/routes/tests/row.spec.js +11 -3
- package/src/api/routes/tests/screen.spec.js +1 -1
- package/src/api/routes/tests/static.spec.js +2 -13
- package/src/api/routes/tests/table.spec.js +1 -1
- package/src/api/routes/tests/templates.spec.js +1 -1
- package/src/api/routes/tests/user.spec.js +11 -12
- package/src/api/routes/tests/utilities/TestFunctions.ts +25 -3
- package/src/api/routes/tests/utilities/index.ts +5 -3
- package/src/api/routes/tests/view.spec.js +4 -1
- package/src/api/routes/tests/webhook.spec.js +11 -2
- package/src/app.ts +12 -1
- package/src/automations/tests/automation.spec.js +4 -4
- package/src/automations/tests/bash.spec.js +1 -1
- package/src/automations/tests/discord.spec.js +1 -1
- package/src/automations/tests/executeQuery.spec.js +2 -3
- package/src/automations/tests/executeScript.spec.js +1 -1
- package/src/automations/tests/outgoingWebhook.spec.js +1 -1
- package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
- package/src/automations/tests/serverLog.spec.js +1 -1
- package/src/automations/tests/updateRow.spec.js +1 -1
- package/src/automations/tests/zapier.spec.js +1 -1
- package/src/constants/index.ts +1 -23
- package/src/db/defaultData/datasource_bb_default.ts +6 -10
- package/src/db/index.ts +2 -2
- package/src/db/linkedRows/LinkController.ts +2 -1
- package/src/db/tests/linkController.spec.js +4 -1
- package/src/db/tests/linkTests.spec.js +1 -1
- package/src/db/utils.ts +0 -4
- package/src/db/views/staticViews.ts +3 -3
- package/src/ddApm.ts +7 -0
- package/src/definitions/openapi.ts +449 -63
- package/src/elasticApm.ts +10 -0
- package/src/integration-test/postgres.spec.ts +1032 -0
- package/src/integrations/base/sql.ts +11 -5
- package/src/integrations/googlesheets.ts +21 -22
- package/src/integrations/oracle.ts +1 -1
- package/src/integrations/tests/couchdb.spec.ts +0 -2
- package/src/integrations/tests/googlesheets.spec.ts +122 -0
- package/src/middleware/authorized.ts +6 -4
- package/src/middleware/builder.ts +8 -3
- package/src/migrations/functions/backfill/global/configs.ts +15 -9
- 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 +4 -5
- package/src/migrations/tests/helpers.ts +2 -2
- package/src/migrations/tests/index.spec.ts +13 -20
- package/src/migrations/tests/structures.ts +1 -0
- package/src/sdk/app/backups/constants.ts +1 -0
- package/src/sdk/app/backups/exports.ts +32 -10
- package/src/sdk/app/datasources/datasources.ts +3 -0
- package/src/sdk/app/rows/attachments.ts +1 -1
- package/src/startup.ts +4 -1
- package/src/tests/jestEnv.ts +9 -11
- package/src/tests/jestSetup.ts +9 -7
- package/src/tests/logging.ts +34 -0
- package/src/tests/utilities/TestConfiguration.ts +187 -101
- package/src/tests/utilities/structures.ts +16 -4
- package/src/utilities/redis.ts +2 -0
- package/src/utilities/retry.ts +18 -0
- package/tsconfig.build.json +1 -0
- package/builder/assets/index.4488f38d.css +0 -6
- package/coverage/clover.xml +0 -11774
- package/coverage/coverage-final.json +0 -284
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -1031
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +0 -247
- package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -1987
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +0 -940
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +0 -442
- package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +0 -1135
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -262
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -694
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +0 -472
- package/coverage/lcov-report/src/api/controllers/index.html +0 -431
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +0 -226
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +0 -211
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +0 -127
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +0 -619
- 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 -499
- 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 -136
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -385
- 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 -325
- 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 -1000
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +0 -235
- package/coverage/lcov-report/src/api/controllers/role.ts.html +0 -397
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +0 -370
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2305
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +0 -931
- package/coverage/lcov-report/src/api/controllers/row/index.html +0 -206
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +0 -1609
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +0 -1678
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +0 -595
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +0 -556
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
- package/coverage/lcov-report/src/api/controllers/script.ts.html +0 -121
- package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -679
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +0 -649
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +0 -1153
- package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +0 -514
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -658
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1273
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +0 -214
- package/coverage/lcov-report/src/api/controllers/user.ts.html +0 -634
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +0 -214
- package/coverage/lcov-report/src/api/controllers/view/index.html +0 -161
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +0 -661
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +0 -580
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +0 -694
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -385
- package/coverage/lcov-report/src/api/index.html +0 -116
- package/coverage/lcov-report/src/api/index.ts.html +0 -352
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
- package/coverage/lcov-report/src/api/routes/application.ts.html +0 -256
- package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
- package/coverage/lcov-report/src/api/routes/automation.ts.html +0 -346
- package/coverage/lcov-report/src/api/routes/backup.ts.html +0 -127
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +0 -139
- package/coverage/lcov-report/src/api/routes/component.ts.html +0 -127
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -145
- package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
- package/coverage/lcov-report/src/api/routes/index.html +0 -551
- package/coverage/lcov-report/src/api/routes/index.ts.html +0 -298
- package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
- package/coverage/lcov-report/src/api/routes/layout.ts.html +0 -133
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +0 -199
- 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 -673
- package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
- 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 -340
- 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/tests/index.html +0 -116
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +0 -169
- 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/query.ts.html +0 -268
- package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
- package/coverage/lcov-report/src/api/routes/routing.ts.html +0 -127
- 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/script.ts.html +0 -115
- package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
- package/coverage/lcov-report/src/api/routes/table.ts.html +0 -595
- package/coverage/lcov-report/src/api/routes/templates.ts.html +0 -133
- 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.ts.html +0 -367
- package/coverage/lcov-report/src/api/routes/user.ts.html +0 -238
- package/coverage/lcov-report/src/api/routes/utils/index.html +0 -116
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +0 -805
- package/coverage/lcov-report/src/api/routes/view.ts.html +0 -187
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
- package/coverage/lcov-report/src/app.ts.html +0 -424
- package/coverage/lcov-report/src/automations/actions.ts.html +0 -316
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +0 -562
- package/coverage/lcov-report/src/automations/bullboard.ts.html +0 -199
- package/coverage/lcov-report/src/automations/index.html +0 -191
- package/coverage/lcov-report/src/automations/index.ts.html +0 -163
- 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/bash.ts.html +0 -319
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +0 -217
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +0 -397
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +0 -370
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +0 -325
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +0 -394
- package/coverage/lcov-report/src/automations/steps/index.html +0 -371
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +0 -409
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +0 -241
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +0 -499
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +0 -664
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +0 -355
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +0 -256
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +0 -340
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +0 -439
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +0 -223
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +0 -403
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +0 -193
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +0 -206
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +0 -196
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +0 -220
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +0 -220
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +0 -208
- package/coverage/lcov-report/src/automations/triggers.ts.html +0 -553
- package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
- package/coverage/lcov-report/src/constants/index.html +0 -146
- package/coverage/lcov-report/src/constants/index.ts.html +0 -697
- package/coverage/lcov-report/src/constants/layouts.ts.html +0 -526
- package/coverage/lcov-report/src/constants/screens.ts.html +0 -229
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
- package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +0 -250
- package/coverage/lcov-report/src/db/index.html +0 -176
- package/coverage/lcov-report/src/db/index.ts.html +0 -133
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +0 -1417
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
- package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +0 -736
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +0 -460
- package/coverage/lcov-report/src/db/newid.ts.html +0 -100
- package/coverage/lcov-report/src/db/utils.ts.html +0 -913
- package/coverage/lcov-report/src/definitions/automations.ts.html +0 -184
- package/coverage/lcov-report/src/definitions/index.html +0 -116
- package/coverage/lcov-report/src/environment.ts.html +0 -472
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +0 -259
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +0 -172
- package/coverage/lcov-report/src/events/index.html +0 -161
- package/coverage/lcov-report/src/events/index.ts.html +0 -100
- package/coverage/lcov-report/src/events/utils.ts.html +0 -319
- 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 -139
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -2017
- 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 -484
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -646
- package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
- package/coverage/lcov-report/src/integrations/index.html +0 -371
- package/coverage/lcov-report/src/integrations/index.ts.html +0 -460
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1012
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1999
- package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -979
- package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1387
- package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1087
- package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -328
- package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
- package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1372
- 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/tests/TestConfiguration.js.html +0 -85
- package/coverage/lcov-report/src/integrations/tests/index.html +0 -116
- package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1036
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +0 -145
- package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -472
- package/coverage/lcov-report/src/middleware/builder.ts.html +0 -361
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +0 -508
- package/coverage/lcov-report/src/middleware/index.html +0 -236
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +0 -205
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +0 -148
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +0 -283
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +0 -121
- package/coverage/lcov-report/src/middleware/utils.ts.html +0 -112
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -166
- 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 -286
- 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 -161
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
- 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.html +0 -116
- package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
- 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/applications/index.html +0 -146
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +0 -106
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +0 -268
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +0 -136
- 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 -640
- 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/datasources/datasources.ts.html +0 -562
- package/coverage/lcov-report/src/sdk/app/datasources/index.html +0 -131
- package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +0 -100
- package/coverage/lcov-report/src/sdk/app/queries/index.html +0 -131
- package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +0 -100
- package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +0 -235
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +0 -265
- package/coverage/lcov-report/src/sdk/app/rows/index.html +0 -146
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +0 -106
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +0 -139
- package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -274
- package/coverage/lcov-report/src/sdk/index.html +0 -116
- package/coverage/lcov-report/src/sdk/index.ts.html +0 -151
- package/coverage/lcov-report/src/sdk/users/index.html +0 -131
- package/coverage/lcov-report/src/sdk/users/index.ts.html +0 -100
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +0 -277
- package/coverage/lcov-report/src/sdk/utils/index.html +0 -116
- package/coverage/lcov-report/src/sdk/utils/index.ts.html +0 -133
- package/coverage/lcov-report/src/startup.ts.html +0 -484
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -2032
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
- package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +0 -118
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -856
- package/coverage/lcov-report/src/threads/automation.ts.html +0 -1555
- 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 -1000
- package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +0 -94
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +0 -151
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +0 -343
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +0 -601
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +0 -206
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -100
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +0 -277
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +0 -193
- package/coverage/lcov-report/src/utilities/global.ts.html +0 -499
- package/coverage/lcov-report/src/utilities/index.html +0 -251
- package/coverage/lcov-report/src/utilities/index.ts.html +0 -487
- package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
- package/coverage/lcov-report/src/utilities/routing/index.html +0 -116
- 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/index.ts.html +0 -922
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +0 -373
- package/coverage/lcov-report/src/utilities/schema.ts.html +0 -508
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +0 -169
- package/coverage/lcov-report/src/utilities/security.ts.html +0 -280
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +0 -131
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +0 -325
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +0 -139
- package/coverage/lcov-report/src/utilities/users.ts.html +0 -232
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +0 -646
- package/coverage/lcov-report/src/watch.ts.html +0 -196
- package/coverage/lcov-report/src/websocket.ts.html +0 -163
- package/coverage/lcov.info +0 -21777
- package/dist/api/routes/public/tests/utils.js +0 -33
- package/dist/integrations/base/utils.js +0 -16
- package/specs/resources/utils/Resource.js +0 -26
- package/src/integrations/base/utils.ts +0 -12
|
@@ -11,7 +11,7 @@ const read = [], write = [];
|
|
|
11
11
|
* @openapi
|
|
12
12
|
* /tables/{tableId}/rows:
|
|
13
13
|
* post:
|
|
14
|
-
* operationId:
|
|
14
|
+
* operationId: rowCreate
|
|
15
15
|
* summary: Create a row
|
|
16
16
|
* description: Creates a row within the specified table.
|
|
17
17
|
* tags:
|
|
@@ -45,7 +45,7 @@ write.push(new Endpoint_1.default("post", "/tables/:tableId/rows", rows_1.defaul
|
|
|
45
45
|
* @openapi
|
|
46
46
|
* /tables/{tableId}/rows/{rowId}:
|
|
47
47
|
* put:
|
|
48
|
-
* operationId:
|
|
48
|
+
* operationId: rowUpdate
|
|
49
49
|
* summary: Update a row
|
|
50
50
|
* description: Updates a row within the specified table.
|
|
51
51
|
* tags:
|
|
@@ -79,7 +79,7 @@ write.push(new Endpoint_1.default("put", "/tables/:tableId/rows/:rowId", rows_1.
|
|
|
79
79
|
* @openapi
|
|
80
80
|
* /tables/{tableId}/rows/{rowId}:
|
|
81
81
|
* delete:
|
|
82
|
-
* operationId:
|
|
82
|
+
* operationId: rowDestroy
|
|
83
83
|
* summary: Delete a row
|
|
84
84
|
* description: Deletes a row within the specified table.
|
|
85
85
|
* tags:
|
|
@@ -104,7 +104,7 @@ write.push(new Endpoint_1.default("delete", "/tables/:tableId/rows/:rowId", rows
|
|
|
104
104
|
* @openapi
|
|
105
105
|
* /tables/{tableId}/rows/{rowId}:
|
|
106
106
|
* get:
|
|
107
|
-
* operationId:
|
|
107
|
+
* operationId: rowGetById
|
|
108
108
|
* summary: Retrieve a row
|
|
109
109
|
* description: This gets a single row, it will be enriched with the full related rows, rather than
|
|
110
110
|
* the squashed "primaryDisplay" format returned by the search endpoint.
|
|
@@ -130,7 +130,7 @@ read.push(new Endpoint_1.default("get", "/tables/:tableId/rows/:rowId", rows_1.d
|
|
|
130
130
|
* @openapi
|
|
131
131
|
* /tables/{tableId}/rows/search:
|
|
132
132
|
* post:
|
|
133
|
-
* operationId:
|
|
133
|
+
* operationId: rowSearch
|
|
134
134
|
* summary: Search for rows
|
|
135
135
|
* tags:
|
|
136
136
|
* - rows
|
|
@@ -11,7 +11,7 @@ const read = [], write = [];
|
|
|
11
11
|
* @openapi
|
|
12
12
|
* /tables:
|
|
13
13
|
* post:
|
|
14
|
-
* operationId:
|
|
14
|
+
* operationId: tableCreate
|
|
15
15
|
* summary: Create a table
|
|
16
16
|
* description: Create a table, this could be internal or external.
|
|
17
17
|
* tags:
|
|
@@ -43,7 +43,7 @@ write.push(new Endpoint_1.default("post", "/tables", tables_1.default.create).ad
|
|
|
43
43
|
* @openapi
|
|
44
44
|
* /tables/{tableId}:
|
|
45
45
|
* put:
|
|
46
|
-
* operationId:
|
|
46
|
+
* operationId: tableUpdate
|
|
47
47
|
* summary: Update a table
|
|
48
48
|
* description: Update a table, this could be internal or external.
|
|
49
49
|
* tags:
|
|
@@ -75,7 +75,7 @@ write.push(new Endpoint_1.default("put", "/tables/:tableId", tables_1.default.up
|
|
|
75
75
|
* @openapi
|
|
76
76
|
* /tables/{tableId}:
|
|
77
77
|
* delete:
|
|
78
|
-
* operationId:
|
|
78
|
+
* operationId: tableDestroy
|
|
79
79
|
* summary: Delete a table
|
|
80
80
|
* description: Delete a table, this could be internal or external.
|
|
81
81
|
* tags:
|
|
@@ -99,7 +99,7 @@ write.push(new Endpoint_1.default("delete", "/tables/:tableId", tables_1.default
|
|
|
99
99
|
* @openapi
|
|
100
100
|
* /tables/{tableId}:
|
|
101
101
|
* get:
|
|
102
|
-
* operationId:
|
|
102
|
+
* operationId: tableGetById
|
|
103
103
|
* summary: Retrieve a table
|
|
104
104
|
* description: Lookup a table, this could be internal or external.
|
|
105
105
|
* tags:
|
|
@@ -123,7 +123,7 @@ read.push(new Endpoint_1.default("get", "/tables/:tableId", tables_1.default.rea
|
|
|
123
123
|
* @openapi
|
|
124
124
|
* /tables/search:
|
|
125
125
|
* post:
|
|
126
|
-
* operationId:
|
|
126
|
+
* operationId: tableSearch
|
|
127
127
|
* summary: Search for tables
|
|
128
128
|
* description: Based on table properties (currently only name) search for tables. This could be
|
|
129
129
|
* an internal or an external table.
|
|
@@ -11,7 +11,7 @@ const read = [], write = [];
|
|
|
11
11
|
* @openapi
|
|
12
12
|
* /users:
|
|
13
13
|
* post:
|
|
14
|
-
* operationId:
|
|
14
|
+
* operationId: userCreate
|
|
15
15
|
* summary: Create a user
|
|
16
16
|
* tags:
|
|
17
17
|
* - users
|
|
@@ -37,7 +37,7 @@ write.push(new Endpoint_1.default("post", "/users", users_1.default.create));
|
|
|
37
37
|
* @openapi
|
|
38
38
|
* /users/{userId}:
|
|
39
39
|
* put:
|
|
40
|
-
* operationId:
|
|
40
|
+
* operationId: userUpdate
|
|
41
41
|
* summary: Update a user
|
|
42
42
|
* tags:
|
|
43
43
|
* - users
|
|
@@ -65,7 +65,7 @@ write.push(new Endpoint_1.default("put", "/users/:userId", users_1.default.updat
|
|
|
65
65
|
* @openapi
|
|
66
66
|
* /users/{userId}:
|
|
67
67
|
* delete:
|
|
68
|
-
* operationId:
|
|
68
|
+
* operationId: userDestroy
|
|
69
69
|
* summary: Delete a user
|
|
70
70
|
* tags:
|
|
71
71
|
* - users
|
|
@@ -87,7 +87,7 @@ write.push(new Endpoint_1.default("delete", "/users/:userId", users_1.default.de
|
|
|
87
87
|
* @openapi
|
|
88
88
|
* /users/{userId}:
|
|
89
89
|
* get:
|
|
90
|
-
* operationId:
|
|
90
|
+
* operationId: userGetById
|
|
91
91
|
* summary: Retrieve a user
|
|
92
92
|
* tags:
|
|
93
93
|
* - users
|
|
@@ -109,7 +109,7 @@ read.push(new Endpoint_1.default("get", "/users/:userId", users_1.default.read))
|
|
|
109
109
|
* @openapi
|
|
110
110
|
* /users/search:
|
|
111
111
|
* post:
|
|
112
|
-
* operationId:
|
|
112
|
+
* operationId: userSearch
|
|
113
113
|
* summary: Search for users
|
|
114
114
|
* description: Based on user properties (currently only name) search for users.
|
|
115
115
|
* tags:
|
package/dist/app.js
CHANGED
|
@@ -35,6 +35,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
if (process.env.DD_APM_ENABLED) {
|
|
39
|
+
require("./ddApm");
|
|
40
|
+
}
|
|
41
|
+
if (process.env.ELASTIC_APM_ENABLED) {
|
|
42
|
+
require("./elasticApm");
|
|
43
|
+
}
|
|
38
44
|
// need to load environment first
|
|
39
45
|
const environment_1 = __importDefault(require("./environment"));
|
|
40
46
|
// enable APM if configured
|
|
@@ -58,6 +64,7 @@ const websocket_1 = require("./websocket");
|
|
|
58
64
|
const startup_1 = require("./startup");
|
|
59
65
|
const Sentry = require("@sentry/node");
|
|
60
66
|
const destroyable = require("server-destroy");
|
|
67
|
+
const { userAgent } = require("koa-useragent");
|
|
61
68
|
const app = new koa_1.default();
|
|
62
69
|
let mbNumber = parseInt(environment_1.default.HTTP_MB_LIMIT || "10");
|
|
63
70
|
if (!mbNumber || isNaN(mbNumber)) {
|
|
@@ -74,6 +81,7 @@ app.use((0, koa_body_1.default)({
|
|
|
74
81
|
parsedMethods: ["POST", "PUT", "PATCH", "DELETE"],
|
|
75
82
|
}));
|
|
76
83
|
app.use(backend_core_1.middleware.logging);
|
|
84
|
+
app.use(userAgent);
|
|
77
85
|
if (environment_1.default.isProd()) {
|
|
78
86
|
environment_1.default._set("NODE_ENV", "production");
|
|
79
87
|
Sentry.init();
|
|
@@ -99,7 +107,7 @@ server.on("close", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
99
107
|
console.log("Server Closed");
|
|
100
108
|
yield automations.shutdown();
|
|
101
109
|
yield redis.shutdown();
|
|
102
|
-
|
|
110
|
+
backend_core_1.events.shutdown();
|
|
103
111
|
yield threads_1.Thread.shutdown();
|
|
104
112
|
api.shutdown();
|
|
105
113
|
if (!environment_1.default.isTest()) {
|
package/dist/constants/index.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAX_AUTOMATION_RECURRING_ERRORS = exports.ObjectStoreBuckets = exports.AutomationErrors = exports.BuildSchemaErrors = exports.InvalidColumns = exports.MetadataTypes = exports.BaseQueryVerbs = exports.OBJ_STORE_DIRECTORY = exports.AutoFieldDefaultNames = exports.AutoFieldSubTypes = exports.USERS_TABLE_SCHEMA = exports.SortDirection = exports.DatasourceAuthTypes = exports.DataSourceOperation = exports.AuthTypes = exports.FormulaTypes = exports.
|
|
3
|
+
exports.MAX_AUTOMATION_RECURRING_ERRORS = exports.ObjectStoreBuckets = exports.AutomationErrors = exports.BuildSchemaErrors = exports.InvalidColumns = exports.MetadataTypes = exports.BaseQueryVerbs = exports.OBJ_STORE_DIRECTORY = exports.AutoFieldDefaultNames = exports.AutoFieldSubTypes = exports.USERS_TABLE_SCHEMA = exports.SortDirection = exports.DatasourceAuthTypes = exports.DataSourceOperation = exports.AuthTypes = exports.FormulaTypes = exports.SwitchableTypes = exports.CanSwitchTypes = exports.NoEmptyFilterStrings = exports.FilterTypes = exports.RelationshipTypes = exports.FieldTypes = void 0;
|
|
4
4
|
const backend_core_1 = require("@budibase/backend-core");
|
|
5
|
+
var types_1 = require("@budibase/types");
|
|
6
|
+
Object.defineProperty(exports, "FieldTypes", { enumerable: true, get: function () { return types_1.FieldType; } });
|
|
7
|
+
Object.defineProperty(exports, "RelationshipTypes", { enumerable: true, get: function () { return types_1.RelationshipTypes; } });
|
|
5
8
|
var FilterTypes;
|
|
6
9
|
(function (FilterTypes) {
|
|
7
10
|
FilterTypes["STRING"] = "string";
|
|
@@ -23,23 +26,6 @@ exports.NoEmptyFilterStrings = [
|
|
|
23
26
|
FilterTypes.CONTAINS,
|
|
24
27
|
FilterTypes.NOT_CONTAINS,
|
|
25
28
|
];
|
|
26
|
-
var FieldTypes;
|
|
27
|
-
(function (FieldTypes) {
|
|
28
|
-
FieldTypes["STRING"] = "string";
|
|
29
|
-
FieldTypes["BARCODEQR"] = "barcodeqr";
|
|
30
|
-
FieldTypes["LONGFORM"] = "longform";
|
|
31
|
-
FieldTypes["OPTIONS"] = "options";
|
|
32
|
-
FieldTypes["NUMBER"] = "number";
|
|
33
|
-
FieldTypes["BOOLEAN"] = "boolean";
|
|
34
|
-
FieldTypes["ARRAY"] = "array";
|
|
35
|
-
FieldTypes["DATETIME"] = "datetime";
|
|
36
|
-
FieldTypes["ATTACHMENT"] = "attachment";
|
|
37
|
-
FieldTypes["LINK"] = "link";
|
|
38
|
-
FieldTypes["FORMULA"] = "formula";
|
|
39
|
-
FieldTypes["AUTO"] = "auto";
|
|
40
|
-
FieldTypes["JSON"] = "json";
|
|
41
|
-
FieldTypes["INTERNAL"] = "internal";
|
|
42
|
-
})(FieldTypes = exports.FieldTypes || (exports.FieldTypes = {}));
|
|
43
29
|
exports.CanSwitchTypes = [
|
|
44
30
|
[exports.FieldTypes.JSON, exports.FieldTypes.ARRAY],
|
|
45
31
|
[
|
|
@@ -51,12 +37,6 @@ exports.CanSwitchTypes = [
|
|
|
51
37
|
[exports.FieldTypes.BOOLEAN, exports.FieldTypes.NUMBER],
|
|
52
38
|
];
|
|
53
39
|
exports.SwitchableTypes = exports.CanSwitchTypes.reduce((prev, current) => prev ? prev.concat(current) : current);
|
|
54
|
-
var RelationshipTypes;
|
|
55
|
-
(function (RelationshipTypes) {
|
|
56
|
-
RelationshipTypes["ONE_TO_MANY"] = "one-to-many";
|
|
57
|
-
RelationshipTypes["MANY_TO_ONE"] = "many-to-one";
|
|
58
|
-
RelationshipTypes["MANY_TO_MANY"] = "many-to-many";
|
|
59
|
-
})(RelationshipTypes = exports.RelationshipTypes || (exports.RelationshipTypes = {}));
|
|
60
40
|
var FormulaTypes;
|
|
61
41
|
(function (FormulaTypes) {
|
|
62
42
|
FormulaTypes["STATIC"] = "static";
|
|
@@ -13,6 +13,7 @@ const employeeImport_1 = require("./employeeImport");
|
|
|
13
13
|
const jobsImport_1 = require("./jobsImport");
|
|
14
14
|
const expensesImport_1 = require("./expensesImport");
|
|
15
15
|
const backend_core_1 = require("@budibase/backend-core");
|
|
16
|
+
const types_1 = require("@budibase/types");
|
|
16
17
|
exports.DEFAULT_JOBS_TABLE_ID = "ta_bb_jobs";
|
|
17
18
|
exports.DEFAULT_INVENTORY_TABLE_ID = "ta_bb_inventory";
|
|
18
19
|
exports.DEFAULT_EXPENSES_TABLE_ID = "ta_bb_expenses";
|
|
@@ -260,7 +261,7 @@ exports.DEFAULT_EMPLOYEE_TABLE_SCHEMA = {
|
|
|
260
261
|
name: "Employee Level",
|
|
261
262
|
sortable: false,
|
|
262
263
|
}, "Badge Photo": {
|
|
263
|
-
type:
|
|
264
|
+
type: constants_1.FieldTypes.ATTACHMENT,
|
|
264
265
|
constraints: {
|
|
265
266
|
type: constants_1.FieldTypes.ARRAY,
|
|
266
267
|
presence: false,
|
|
@@ -275,7 +276,7 @@ exports.DEFAULT_EMPLOYEE_TABLE_SCHEMA = {
|
|
|
275
276
|
},
|
|
276
277
|
fieldName: "Assigned",
|
|
277
278
|
name: "Jobs",
|
|
278
|
-
relationshipType:
|
|
279
|
+
relationshipType: types_1.RelationshipTypes.MANY_TO_MANY,
|
|
279
280
|
tableId: exports.DEFAULT_JOBS_TABLE_ID,
|
|
280
281
|
}, "Start Date": {
|
|
281
282
|
type: constants_1.FieldTypes.DATETIME,
|
|
@@ -419,10 +420,10 @@ exports.DEFAULT_JOBS_TABLE_SCHEMA = {
|
|
|
419
420
|
type: constants_1.FieldTypes.LINK,
|
|
420
421
|
tableId: exports.DEFAULT_EMPLOYEE_TABLE_ID,
|
|
421
422
|
fieldName: "Jobs",
|
|
422
|
-
relationshipType:
|
|
423
|
+
relationshipType: types_1.RelationshipTypes.MANY_TO_MANY,
|
|
423
424
|
// sortable: true,
|
|
424
425
|
}, "Works End": {
|
|
425
|
-
type:
|
|
426
|
+
type: constants_1.FieldTypes.DATETIME,
|
|
426
427
|
constraints: {
|
|
427
428
|
type: "string",
|
|
428
429
|
length: {},
|
|
@@ -435,7 +436,7 @@ exports.DEFAULT_JOBS_TABLE_SCHEMA = {
|
|
|
435
436
|
name: "Works End",
|
|
436
437
|
ignoreTimezones: true,
|
|
437
438
|
}, "Updated Price": {
|
|
438
|
-
type:
|
|
439
|
+
type: constants_1.FieldTypes.NUMBER,
|
|
439
440
|
constraints: {
|
|
440
441
|
type: "number",
|
|
441
442
|
presence: false,
|
package/dist/db/index.js
CHANGED
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.init = void 0;
|
|
7
|
-
const
|
|
30
|
+
const core = __importStar(require("@budibase/backend-core"));
|
|
8
31
|
const environment_1 = __importDefault(require("../environment"));
|
|
9
32
|
function init() {
|
|
10
33
|
const dbConfig = {
|
|
@@ -15,6 +38,6 @@ function init() {
|
|
|
15
38
|
dbConfig.inMemory = true;
|
|
16
39
|
dbConfig.allDbs = true;
|
|
17
40
|
}
|
|
18
|
-
|
|
41
|
+
core.init({ db: dbConfig });
|
|
19
42
|
}
|
|
20
43
|
exports.init = init;
|
|
@@ -18,6 +18,7 @@ const node_1 = __importDefault(require("@sentry/node"));
|
|
|
18
18
|
const constants_1 = require("../../constants");
|
|
19
19
|
const backend_core_1 = require("@budibase/backend-core");
|
|
20
20
|
const LinkDocument_1 = __importDefault(require("./LinkDocument"));
|
|
21
|
+
const types_1 = require("@budibase/types");
|
|
21
22
|
class LinkController {
|
|
22
23
|
constructor({ tableId, row, table, oldTable }) {
|
|
23
24
|
this._db = backend_core_1.context.getAppDB();
|
|
@@ -124,17 +125,17 @@ class LinkController {
|
|
|
124
125
|
*/
|
|
125
126
|
handleRelationshipType(linkerField, linkedField) {
|
|
126
127
|
if (!linkerField.relationshipType ||
|
|
127
|
-
linkerField.relationshipType ===
|
|
128
|
-
linkedField.relationshipType =
|
|
128
|
+
linkerField.relationshipType === types_1.RelationshipTypes.MANY_TO_MANY) {
|
|
129
|
+
linkedField.relationshipType = types_1.RelationshipTypes.MANY_TO_MANY;
|
|
129
130
|
// make sure by default all are many to many (if not specified)
|
|
130
|
-
linkerField.relationshipType =
|
|
131
|
+
linkerField.relationshipType = types_1.RelationshipTypes.MANY_TO_MANY;
|
|
131
132
|
}
|
|
132
|
-
else if (linkerField.relationshipType ===
|
|
133
|
+
else if (linkerField.relationshipType === types_1.RelationshipTypes.MANY_TO_ONE) {
|
|
133
134
|
// Ensure that the other side of the relationship is locked to one record
|
|
134
|
-
linkedField.relationshipType =
|
|
135
|
+
linkedField.relationshipType = types_1.RelationshipTypes.ONE_TO_MANY;
|
|
135
136
|
}
|
|
136
|
-
else if (linkerField.relationshipType ===
|
|
137
|
-
linkedField.relationshipType =
|
|
137
|
+
else if (linkerField.relationshipType === types_1.RelationshipTypes.ONE_TO_MANY) {
|
|
138
|
+
linkedField.relationshipType = types_1.RelationshipTypes.MANY_TO_ONE;
|
|
138
139
|
}
|
|
139
140
|
return { linkerField, linkedField };
|
|
140
141
|
}
|
|
@@ -178,7 +179,7 @@ class LinkController {
|
|
|
178
179
|
}
|
|
179
180
|
// iterate through the link IDs in the row field, see if any don't exist already
|
|
180
181
|
for (let linkId of rowField) {
|
|
181
|
-
if ((linkedSchema === null || linkedSchema === void 0 ? void 0 : linkedSchema.relationshipType) ===
|
|
182
|
+
if ((linkedSchema === null || linkedSchema === void 0 ? void 0 : linkedSchema.relationshipType) === types_1.RelationshipTypes.ONE_TO_MANY) {
|
|
182
183
|
let links = (yield (0, linkUtils_1.getLinkDocuments)({
|
|
183
184
|
tableId: field.tableId,
|
|
184
185
|
rowId: linkId,
|
package/dist/db/utils.js
CHANGED
|
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.generateMemoryViewID = exports.getMetadataParams = exports.generateMetadataID = exports.generateUserFlagID = exports.getQueryParams = exports.getAutomationMetadataParams = exports.generateAutomationMetadataID = exports.generateQueryID = exports.getDatasourceParams = exports.generateDatasourceID = exports.getWebhookParams = exports.generateWebhookID = exports.getScreenParams = exports.generateScreenID = exports.getLayoutParams = exports.generateLayoutID = exports.getLinkParams = exports.generateLinkID = exports.generateAutomationID = exports.getAutomationParams = exports.getTableIDFromRowID = exports.generateTableID = exports.getTableParams = exports.getGlobalIDFromUserMetadataID = exports.generateUserMetadataID = exports.getUserMetadataParams = exports.generateRowID = exports.getRowParams = exports.getDocParams = exports.getQueryIndex = exports.getRoleParams = exports.generateRoleID = exports.generateDevAppID = exports.generateAppID = exports.UNICODE_MAX = exports.InternalTables = exports.ViewName = exports.TABLE_ROW_PREFIX = exports.LINK_USER_METADATA_PREFIX = exports.USER_METDATA_PREFIX = exports.isProdAppID = exports.isDevAppID = exports.APP_DEV_PREFIX = exports.APP_PREFIX = exports.DocumentType = exports.StaticDatabases = exports.SEPARATOR = exports.BudibaseInternalDB = exports.
|
|
7
|
-
exports.getMultiIDParams = exports.generatePluginID =
|
|
6
|
+
exports.getMemoryViewParams = exports.generateMemoryViewID = exports.getMetadataParams = exports.generateMetadataID = exports.generateUserFlagID = exports.getQueryParams = exports.getAutomationMetadataParams = exports.generateAutomationMetadataID = exports.generateQueryID = exports.getDatasourceParams = exports.generateDatasourceID = exports.getWebhookParams = exports.generateWebhookID = exports.getScreenParams = exports.generateScreenID = exports.getLayoutParams = exports.generateLayoutID = exports.getLinkParams = exports.generateLinkID = exports.generateAutomationID = exports.getAutomationParams = exports.getTableIDFromRowID = exports.generateTableID = exports.getTableParams = exports.getGlobalIDFromUserMetadataID = exports.generateUserMetadataID = exports.getUserMetadataParams = exports.generateRowID = exports.getRowParams = exports.getDocParams = exports.getQueryIndex = exports.getRoleParams = exports.generateRoleID = exports.generateDevAppID = exports.generateAppID = exports.UNICODE_MAX = exports.InternalTables = exports.ViewName = exports.TABLE_ROW_PREFIX = exports.LINK_USER_METADATA_PREFIX = exports.USER_METDATA_PREFIX = exports.isProdAppID = exports.isDevAppID = exports.APP_DEV_PREFIX = exports.APP_PREFIX = exports.DocumentType = exports.StaticDatabases = exports.SEPARATOR = exports.BudibaseInternalDB = exports.AppStatus = void 0;
|
|
7
|
+
exports.getMultiIDParams = exports.generatePluginID = void 0;
|
|
8
8
|
const newid_1 = __importDefault(require("./newid"));
|
|
9
9
|
const backend_core_1 = require("@budibase/backend-core");
|
|
10
10
|
exports.AppStatus = {
|
|
@@ -12,9 +12,6 @@ exports.AppStatus = {
|
|
|
12
12
|
ALL: "all",
|
|
13
13
|
DEPLOYED: "published",
|
|
14
14
|
};
|
|
15
|
-
exports.SearchIndexes = {
|
|
16
|
-
ROWS: "rows",
|
|
17
|
-
};
|
|
18
15
|
exports.BudibaseInternalDB = {
|
|
19
16
|
_id: "bb_internal",
|
|
20
17
|
type: backend_core_1.db.BUDIBASE_DATASOURCE_TYPE,
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.createAllSearchIndex = exports.createRoutingView = exports.createLinkView = void 0;
|
|
13
13
|
const backend_core_1 = require("@budibase/backend-core");
|
|
14
14
|
const utils_1 = require("../utils");
|
|
15
|
+
const types_1 = require("@budibase/types");
|
|
15
16
|
const SCREEN_PREFIX = utils_1.DocumentType.SCREEN + utils_1.SEPARATOR;
|
|
16
17
|
/**************************************************
|
|
17
18
|
* INFORMATION *
|
|
@@ -99,7 +100,7 @@ function searchIndex(indexName, fnString) {
|
|
|
99
100
|
}
|
|
100
101
|
function createAllSearchIndex() {
|
|
101
102
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
yield searchIndex(
|
|
103
|
+
yield searchIndex(types_1.SearchIndex.ROWS, function (doc) {
|
|
103
104
|
function idx(input, prev) {
|
|
104
105
|
for (let key of Object.keys(input)) {
|
|
105
106
|
let idxKey = prev != null ? `${prev}.${key}` : key;
|
package/dist/ddApm.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const dd_trace_1 = __importDefault(require("dd-trace"));
|
|
7
|
+
// enable APM if configured
|
|
8
|
+
if (process.env.DD_APM_ENABLED) {
|
|
9
|
+
console.log("Starting dd-trace");
|
|
10
|
+
dd_trace_1.default.init();
|
|
11
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const elastic_apm_node_1 = __importDefault(require("elastic-apm-node"));
|
|
7
|
+
// enable APM if configured
|
|
8
|
+
if (process.env.ELASTIC_APM_ENABLED) {
|
|
9
|
+
console.log("Starting elastic-apm-node");
|
|
10
|
+
elastic_apm_node_1.default.start({
|
|
11
|
+
serviceName: process.env.SERVICE,
|
|
12
|
+
environment: process.env.BUDIBASE_ENVIRONMENT,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -14,10 +14,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const knex_1 = require("knex");
|
|
16
16
|
const types_1 = require("@budibase/types");
|
|
17
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
17
18
|
const utils_1 = require("../utils");
|
|
18
19
|
const sqlTable_1 = __importDefault(require("./sqlTable"));
|
|
19
20
|
const environment_1 = __importDefault(require("../../environment"));
|
|
20
|
-
const utils_2 = require("./utils");
|
|
21
21
|
const envLimit = environment_1.default.SQL_MAX_ROWS
|
|
22
22
|
? parseInt(environment_1.default.SQL_MAX_ROWS)
|
|
23
23
|
: null;
|
|
@@ -90,6 +90,9 @@ function parseFilters(filters) {
|
|
|
90
90
|
function generateSelectStatement(json, knex) {
|
|
91
91
|
var _a;
|
|
92
92
|
const { resource, meta } = json;
|
|
93
|
+
if (!resource) {
|
|
94
|
+
return "*";
|
|
95
|
+
}
|
|
93
96
|
const schema = (_a = meta === null || meta === void 0 ? void 0 : meta.table) === null || _a === void 0 ? void 0 : _a.schema;
|
|
94
97
|
return resource.fields.map(field => {
|
|
95
98
|
const fieldNames = field.split(/\./g);
|
|
@@ -114,7 +117,7 @@ class InternalBuilder {
|
|
|
114
117
|
addFilters(query, filters, opts) {
|
|
115
118
|
function iterate(structure, fn) {
|
|
116
119
|
for (let [key, value] of Object.entries(structure)) {
|
|
117
|
-
const updatedKey =
|
|
120
|
+
const updatedKey = backend_core_1.db.removeKeyNumbering(key);
|
|
118
121
|
const isRelationshipField = updatedKey.includes(".");
|
|
119
122
|
if (!opts.relationship && !isRelationshipField) {
|
|
120
123
|
fn(`${opts.tableName}.${updatedKey}`, value);
|
|
@@ -473,7 +476,7 @@ class InternalBuilder {
|
|
|
473
476
|
return query.delete();
|
|
474
477
|
}
|
|
475
478
|
else {
|
|
476
|
-
return query.delete().returning(
|
|
479
|
+
return query.delete().returning(generateSelectStatement(json, knex));
|
|
477
480
|
}
|
|
478
481
|
}
|
|
479
482
|
}
|
|
@@ -17,9 +17,8 @@ const google_auth_library_1 = require("google-auth-library");
|
|
|
17
17
|
const utils_1 = require("./utils");
|
|
18
18
|
const constants_1 = require("../constants");
|
|
19
19
|
const google_spreadsheet_1 = require("google-spreadsheet");
|
|
20
|
-
const
|
|
20
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
21
21
|
const backend_core_1 = require("@budibase/backend-core");
|
|
22
|
-
const fetch = require("node-fetch");
|
|
23
22
|
const SCHEMA = {
|
|
24
23
|
plus: true,
|
|
25
24
|
auth: {
|
|
@@ -120,7 +119,7 @@ class GoogleSheetsIntegration {
|
|
|
120
119
|
}
|
|
121
120
|
fetchAccessToken(payload) {
|
|
122
121
|
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
const response = yield
|
|
122
|
+
const response = yield (0, node_fetch_1.default)("https://www.googleapis.com/oauth2/v4/token", {
|
|
124
123
|
method: "POST",
|
|
125
124
|
body: JSON.stringify(Object.assign(Object.assign({}, payload), { grant_type: "refresh_token" })),
|
|
126
125
|
headers: {
|
|
@@ -138,15 +137,9 @@ class GoogleSheetsIntegration {
|
|
|
138
137
|
return __awaiter(this, void 0, void 0, function* () {
|
|
139
138
|
try {
|
|
140
139
|
// Initialise oAuth client
|
|
141
|
-
|
|
142
|
-
let googleConfig = yield backend_core_1.db.getScopedConfig(db, {
|
|
143
|
-
type: backend_core_1.constants.Config.GOOGLE,
|
|
144
|
-
});
|
|
140
|
+
let googleConfig = yield backend_core_1.configs.getGoogleDatasourceConfig();
|
|
145
141
|
if (!googleConfig) {
|
|
146
|
-
|
|
147
|
-
clientID: environment_1.default.GOOGLE_CLIENT_ID,
|
|
148
|
-
clientSecret: environment_1.default.GOOGLE_CLIENT_SECRET,
|
|
149
|
-
};
|
|
142
|
+
throw new backend_core_1.HTTPError("Google config not found", 400);
|
|
150
143
|
}
|
|
151
144
|
const oauthClient = new google_auth_library_1.OAuth2Client({
|
|
152
145
|
clientId: googleConfig.clientID,
|
|
@@ -173,7 +166,7 @@ class GoogleSheetsIntegration {
|
|
|
173
166
|
buildSchema(datasourceId) {
|
|
174
167
|
return __awaiter(this, void 0, void 0, function* () {
|
|
175
168
|
yield this.connect();
|
|
176
|
-
const sheets =
|
|
169
|
+
const sheets = this.client.sheetsByIndex;
|
|
177
170
|
const tables = {};
|
|
178
171
|
for (let sheet of sheets) {
|
|
179
172
|
// must fetch rows to determine schema
|
|
@@ -254,7 +247,7 @@ class GoogleSheetsIntegration {
|
|
|
254
247
|
return __awaiter(this, void 0, void 0, function* () {
|
|
255
248
|
try {
|
|
256
249
|
yield this.connect();
|
|
257
|
-
const sheet =
|
|
250
|
+
const sheet = this.client.sheetsByTitle[table.name];
|
|
258
251
|
yield sheet.loadHeaderRow();
|
|
259
252
|
if (table._rename) {
|
|
260
253
|
const headers = [];
|
|
@@ -269,8 +262,12 @@ class GoogleSheetsIntegration {
|
|
|
269
262
|
yield sheet.setHeaderRow(headers);
|
|
270
263
|
}
|
|
271
264
|
else {
|
|
272
|
-
|
|
273
|
-
|
|
265
|
+
const updatedHeaderValues = [...sheet.headerValues];
|
|
266
|
+
const newField = Object.keys(table.schema).find(key => !sheet.headerValues.includes(key));
|
|
267
|
+
if (newField) {
|
|
268
|
+
updatedHeaderValues.push(newField);
|
|
269
|
+
}
|
|
270
|
+
yield sheet.setHeaderRow(updatedHeaderValues);
|
|
274
271
|
}
|
|
275
272
|
}
|
|
276
273
|
catch (err) {
|
|
@@ -283,7 +280,7 @@ class GoogleSheetsIntegration {
|
|
|
283
280
|
return __awaiter(this, void 0, void 0, function* () {
|
|
284
281
|
try {
|
|
285
282
|
yield this.connect();
|
|
286
|
-
const sheetToDelete =
|
|
283
|
+
const sheetToDelete = this.client.sheetsByTitle[sheet];
|
|
287
284
|
return yield sheetToDelete.delete();
|
|
288
285
|
}
|
|
289
286
|
catch (err) {
|
|
@@ -296,7 +293,7 @@ class GoogleSheetsIntegration {
|
|
|
296
293
|
return __awaiter(this, void 0, void 0, function* () {
|
|
297
294
|
try {
|
|
298
295
|
yield this.connect();
|
|
299
|
-
const sheet =
|
|
296
|
+
const sheet = this.client.sheetsByTitle[query.sheet];
|
|
300
297
|
const rowToInsert = typeof query.row === "string" ? JSON.parse(query.row) : query.row;
|
|
301
298
|
const row = yield sheet.addRow(rowToInsert);
|
|
302
299
|
return [
|
|
@@ -313,7 +310,7 @@ class GoogleSheetsIntegration {
|
|
|
313
310
|
return __awaiter(this, void 0, void 0, function* () {
|
|
314
311
|
try {
|
|
315
312
|
yield this.connect();
|
|
316
|
-
const sheet =
|
|
313
|
+
const sheet = this.client.sheetsByTitle[query.sheet];
|
|
317
314
|
const rows = yield sheet.getRows();
|
|
318
315
|
const headerValues = sheet.headerValues;
|
|
319
316
|
const response = [];
|
|
@@ -332,7 +329,7 @@ class GoogleSheetsIntegration {
|
|
|
332
329
|
return __awaiter(this, void 0, void 0, function* () {
|
|
333
330
|
try {
|
|
334
331
|
yield this.connect();
|
|
335
|
-
const sheet =
|
|
332
|
+
const sheet = this.client.sheetsByTitle[query.sheet];
|
|
336
333
|
const rows = yield sheet.getRows();
|
|
337
334
|
const row = rows[query.rowIndex];
|
|
338
335
|
if (row) {
|
|
@@ -358,7 +355,7 @@ class GoogleSheetsIntegration {
|
|
|
358
355
|
delete(query) {
|
|
359
356
|
return __awaiter(this, void 0, void 0, function* () {
|
|
360
357
|
yield this.connect();
|
|
361
|
-
const sheet =
|
|
358
|
+
const sheet = this.client.sheetsByTitle[query.sheet];
|
|
362
359
|
const rows = yield sheet.getRows();
|
|
363
360
|
const row = rows[query.rowIndex];
|
|
364
361
|
if (row) {
|
|
@@ -66,9 +66,6 @@ exports.default = (permType, permLevel = null, opts = { schema: false }) => (ctx
|
|
|
66
66
|
if (!ctx.user) {
|
|
67
67
|
return ctx.throw(403, "No user info found");
|
|
68
68
|
}
|
|
69
|
-
// check general builder stuff, this middleware is a good way
|
|
70
|
-
// to find API endpoints which are builder focused
|
|
71
|
-
yield (0, builder_1.default)(ctx, permType);
|
|
72
69
|
// get the resource roles
|
|
73
70
|
let resourceRoles = [];
|
|
74
71
|
let otherLevelRoles = [];
|
|
@@ -92,6 +89,11 @@ exports.default = (permType, permLevel = null, opts = { schema: false }) => (ctx
|
|
|
92
89
|
if (!ctx.isAuthenticated) {
|
|
93
90
|
return ctx.throw(403, "Session not authenticated");
|
|
94
91
|
}
|
|
92
|
+
// check general builder stuff, this middleware is a good way
|
|
93
|
+
// to find API endpoints which are builder focused
|
|
94
|
+
if (permType === backend_core_1.permissions.PermissionType.BUILDER) {
|
|
95
|
+
yield (0, builder_1.default)(ctx);
|
|
96
|
+
}
|
|
95
97
|
try {
|
|
96
98
|
// check authorized
|
|
97
99
|
yield checkAuthorized(ctx, resourceRoles, permType, permLevel);
|
|
@@ -61,14 +61,17 @@ function updateAppUpdatedAt(ctx) {
|
|
|
61
61
|
}));
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
-
function builder(ctx
|
|
64
|
+
function builder(ctx) {
|
|
65
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
66
|
const appId = ctx.appId;
|
|
67
67
|
// this only functions within an app context
|
|
68
68
|
if (!appId) {
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
// check authenticated
|
|
72
|
+
if (!ctx.isAuthenticated) {
|
|
73
|
+
return ctx.throw(403, "Session not authenticated");
|
|
74
|
+
}
|
|
72
75
|
const referer = ctx.headers["referer"];
|
|
73
76
|
const overviewPath = "/builder/portal/overview/";
|
|
74
77
|
const overviewContext = !referer ? false : referer.includes(overviewPath);
|
|
@@ -78,7 +81,7 @@ function builder(ctx, permType) {
|
|
|
78
81
|
const hasAppId = !referer ? false : referer.includes(appId);
|
|
79
82
|
const editingApp = referer ? hasAppId : false;
|
|
80
83
|
// check this is a builder call and editing
|
|
81
|
-
if (!
|
|
84
|
+
if (!editingApp) {
|
|
82
85
|
return;
|
|
83
86
|
}
|
|
84
87
|
// check locks
|
|
@@ -12,14 +12,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.backfill = void 0;
|
|
15
|
+
exports.backfill = exports.getConfigParams = void 0;
|
|
16
16
|
const backend_core_1 = require("@budibase/backend-core");
|
|
17
17
|
const types_1 = require("@budibase/types");
|
|
18
18
|
const environment_1 = __importDefault(require("./../../../../environment"));
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const getConfigParams = () => {
|
|
20
|
+
return {
|
|
21
21
|
include_docs: true,
|
|
22
|
-
|
|
22
|
+
startkey: `${backend_core_1.DocumentType.CONFIG}${backend_core_1.SEPARATOR}`,
|
|
23
|
+
endkey: `${backend_core_1.DocumentType.CONFIG}${backend_core_1.SEPARATOR}${backend_core_1.UNICODE_MAX}`,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.getConfigParams = getConfigParams;
|
|
27
|
+
const getConfigs = (globalDb) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
const response = yield globalDb.allDocs((0, exports.getConfigParams)());
|
|
23
29
|
return response.rows.map((row) => row.doc);
|
|
24
30
|
});
|
|
25
31
|
const backfill = (globalDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
|