@budibase/server 1.3.21-alpha.1 → 1.3.21
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__/mongodb.ts +1 -1
- package/builder/assets/index.8d12d461.css +6 -0
- package/builder/assets/index.d354271c.js +879 -0
- package/builder/assets/vendor.5e1fe644.css +1 -0
- package/builder/assets/vendor.67dbd8fa.js +248 -0
- package/builder/index.html +4 -2
- package/coverage/clover.xml +390 -451
- package/coverage/coverage-final.json +21 -21
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +8 -41
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +11 -68
- package/coverage/lcov-report/api/controllers/datasource.js.html +34 -73
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +46 -46
- package/coverage/lcov-report/api/controllers/integration.js.html +6 -6
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +12 -207
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +13 -13
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +2 -2
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/utils/index.html +9 -9
- package/coverage/lcov-report/api/routes/utils/validators.js.html +12 -75
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +18 -18
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +2 -2
- package/coverage/lcov-report/db/utils.js.html +20 -56
- package/coverage/lcov-report/events/AutomationEmitter.js.html +3 -3
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +46 -46
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +12 -12
- package/coverage/lcov-report/middleware/currentapp.js.html +40 -46
- package/coverage/lcov-report/middleware/index.html +15 -15
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
- package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +16 -16
- package/coverage/lcov-report/utilities/index.html +15 -15
- package/coverage/lcov-report/utilities/index.js.html +24 -24
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +2 -2
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +8 -32
- package/coverage/lcov.info +672 -798
- package/dist/api/controllers/application.js +5 -5
- package/dist/api/controllers/auth.js +0 -9
- package/dist/api/controllers/component.js +1 -14
- package/dist/api/controllers/datasource.js +8 -21
- package/dist/api/controllers/deploy/index.js +8 -1
- package/dist/api/controllers/integration.js +4 -4
- package/dist/api/controllers/row/external.js +1 -1
- package/dist/api/controllers/screen.js +2 -52
- package/dist/api/controllers/static/index.js +0 -1
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -10
- package/dist/api/controllers/static/templates/preview.hbs +1 -5
- package/dist/api/index.js +1 -1
- package/dist/api/routes/application.js +2 -3
- package/dist/api/routes/index.js +0 -2
- package/dist/api/routes/public/rows.js +82 -1
- package/dist/api/routes/public/tables.js +1 -1
- package/dist/api/routes/table.js +1 -1
- package/dist/api/routes/utils/validators.js +2 -20
- package/dist/app.js +1 -16
- package/dist/db/utils.js +1 -10
- package/dist/environment.js +0 -1
- package/dist/integrations/airtable.js +129 -126
- package/dist/integrations/arangodb.js +89 -86
- package/dist/integrations/base/query.js +2 -2
- package/dist/integrations/base/sqlTable.js +1 -3
- package/dist/integrations/couchdb.js +83 -80
- package/dist/integrations/dynamodb.js +164 -161
- package/dist/integrations/elasticsearch.js +138 -135
- package/dist/integrations/firebase.js +157 -154
- package/dist/integrations/googlesheets.js +327 -323
- package/dist/integrations/index.js +51 -99
- package/dist/integrations/microsoftSqlServer.js +243 -240
- package/dist/integrations/mongodb.js +242 -239
- package/dist/integrations/mysql.js +219 -215
- package/dist/integrations/oracle.js +322 -318
- package/dist/integrations/postgres.js +265 -262
- package/dist/integrations/redis.js +139 -134
- package/dist/integrations/rest.js +292 -289
- package/dist/integrations/s3.js +64 -61
- package/dist/integrations/snowflake.js +86 -83
- package/dist/middleware/currentapp.js +0 -2
- package/dist/migrations/functions/backfill/global.js +3 -0
- package/dist/migrations/functions/developerQuota.js +49 -0
- package/dist/{api/routes/plugin.js → migrations/functions/publishedAppsQuota.js} +21 -13
- package/dist/{api/controllers/plugin/url.js → migrations/functions/usageQuotas/syncDevelopers.js} +13 -13
- package/dist/{api/controllers/plugin/file.js → migrations/functions/usageQuotas/syncPublishedApps.js} +15 -13
- package/dist/migrations/index.js +10 -0
- package/dist/package.json +6 -9
- package/dist/tests/utilities/TestConfiguration.js +1 -1
- package/dist/threads/query.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +1 -111
- package/dist/utilities/workerRequests.js +0 -4
- package/package.json +7 -10
- package/scripts/dev/manage.js +0 -4
- package/scripts/localdomain.js +1 -3
- package/specs/openapi.json +112 -115
- package/specs/openapi.yaml +94 -96
- package/specs/resources/misc.js +0 -116
- package/specs/resources/query.js +1 -1
- package/src/api/controllers/application.ts +2 -1
- package/src/api/controllers/auth.js +0 -11
- package/src/api/controllers/component.js +2 -21
- package/src/api/controllers/datasource.js +8 -21
- package/src/api/controllers/deploy/index.ts +6 -1
- package/src/api/controllers/integration.js +4 -4
- package/src/api/controllers/public/mapping/types.ts +0 -8
- package/src/api/controllers/row/external.js +1 -1
- package/src/api/controllers/screen.js +1 -66
- package/src/api/controllers/static/index.ts +1 -1
- package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -10
- package/src/api/controllers/static/templates/preview.hbs +1 -5
- package/src/api/index.js +1 -1
- package/src/api/routes/application.ts +2 -13
- package/src/api/routes/index.ts +0 -2
- package/src/api/routes/public/rows.ts +82 -1
- package/src/api/routes/public/tables.ts +1 -1
- package/src/api/routes/table.js +1 -1
- package/src/api/routes/tests/query.spec.js +25 -8
- package/src/api/routes/tests/user.spec.js +2 -0
- package/src/api/routes/utils/validators.js +5 -26
- package/src/app.ts +2 -25
- package/src/db/utils.js +0 -12
- package/src/definitions/openapi.ts +55 -56
- package/src/environment.js +0 -1
- package/src/integrations/airtable.ts +118 -116
- package/src/integrations/arangodb.ts +89 -87
- package/src/integrations/base/query.ts +2 -2
- package/src/integrations/base/sqlTable.ts +1 -3
- package/src/integrations/couchdb.ts +89 -83
- package/src/integrations/dynamodb.ts +175 -173
- package/src/integrations/elasticsearch.ts +122 -120
- package/src/integrations/firebase.ts +159 -157
- package/src/integrations/googlesheets.ts +338 -328
- package/src/integrations/index.ts +21 -64
- package/src/integrations/microsoftSqlServer.ts +251 -249
- package/src/integrations/mongodb.ts +258 -261
- package/src/integrations/mysql.ts +234 -229
- package/src/integrations/oracle.ts +380 -373
- package/src/integrations/postgres.ts +268 -264
- package/src/integrations/redis.ts +132 -128
- package/src/integrations/rest.ts +329 -324
- package/src/integrations/s3.ts +71 -68
- package/src/integrations/snowflake.ts +82 -80
- package/src/integrations/tests/{airtable.spec.ts → airtable.spec.js} +18 -21
- package/src/integrations/tests/{arangodb.spec.ts → arangodb.spec.js} +9 -12
- package/src/integrations/tests/{couchdb.spec.ts → couchdb.spec.js} +27 -33
- package/src/integrations/tests/{dynamodb.spec.ts → dynamodb.spec.js} +41 -45
- package/src/integrations/tests/{elasticsearch.spec.ts → elasticsearch.spec.js} +21 -22
- package/src/integrations/tests/{firebase.spec.ts → firebase.spec.js} +28 -33
- package/src/integrations/tests/{microsoftSqlServer.spec.ts → microsoftSqlServer.spec.js} +11 -12
- package/src/integrations/tests/{mongo.spec.ts → mongo.spec.js} +35 -46
- package/src/integrations/tests/{mysql.spec.ts → mysql.spec.js} +15 -17
- package/src/integrations/tests/{oracle.spec.ts → oracle.spec.js} +17 -19
- package/src/integrations/tests/{postgres.spec.ts → postgres.spec.js} +17 -19
- package/src/integrations/tests/{redis.spec.ts → redis.spec.js} +18 -27
- package/src/integrations/tests/{rest.spec.ts → rest.spec.js} +14 -22
- package/src/integrations/tests/{s3.spec.ts → s3.spec.js} +8 -10
- package/src/integrations/tests/{sql.spec.ts → sql.spec.js} +177 -228
- package/src/middleware/currentapp.js +0 -2
- package/src/migrations/functions/backfill/global.ts +3 -0
- package/src/migrations/functions/developerQuota.ts +15 -0
- package/src/migrations/functions/publishedAppsQuota.ts +13 -0
- package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
- package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
- package/src/migrations/index.ts +16 -0
- package/src/module.d.ts +0 -2
- package/src/tests/utilities/TestConfiguration.js +1 -1
- package/src/threads/query.ts +2 -2
- package/src/utilities/fileSystem/index.js +0 -130
- package/src/utilities/workerRequests.js +0 -8
- package/builder/assets/index.c9d3f9e8.js +0 -1005
- package/builder/assets/index.f1b70f52.css +0 -6
- package/dist/api/controllers/plugin/github.js +0 -69
- package/dist/api/controllers/plugin/index.js +0 -200
- package/dist/api/controllers/plugin/npm.js +0 -58
- package/dist/api/controllers/plugin/uploaders.js +0 -11
- package/dist/api/controllers/plugin/utils.js +0 -26
- package/dist/watch.js +0 -77
- package/dist/websocket.js +0 -22
- package/src/api/controllers/plugin/file.ts +0 -15
- package/src/api/controllers/plugin/github.ts +0 -75
- package/src/api/controllers/plugin/index.ts +0 -215
- package/src/api/controllers/plugin/npm.ts +0 -56
- package/src/api/controllers/plugin/uploaders.ts +0 -4
- package/src/api/controllers/plugin/url.ts +0 -12
- package/src/api/controllers/plugin/utils.ts +0 -19
- package/src/api/routes/plugin.ts +0 -14
- package/src/watch.ts +0 -38
- package/src/websocket.ts +0 -26
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
export let favicon = ""
|
|
4
4
|
|
|
5
5
|
export let clientLibPath
|
|
6
|
-
export let usedPlugins
|
|
7
6
|
</script>
|
|
8
7
|
|
|
9
8
|
<svelte:head>
|
|
@@ -84,15 +83,6 @@
|
|
|
84
83
|
</script>
|
|
85
84
|
<script type="application/javascript" src={clientLibPath}>
|
|
86
85
|
</script>
|
|
87
|
-
<!-- Custom components need inserted after the core client library -->
|
|
88
|
-
<!-- But before loadBudibase is called -->
|
|
89
|
-
{#if usedPlugins?.length}
|
|
90
|
-
{#each usedPlugins as plugin}
|
|
91
|
-
<script
|
|
92
|
-
type="application/javascript"
|
|
93
|
-
src={`/plugins/${plugin.jsUrl}`}></script>
|
|
94
|
-
{/each}
|
|
95
|
-
{/if}
|
|
96
86
|
<script type="application/javascript">
|
|
97
87
|
if (window.loadBudibase) {
|
|
98
88
|
window.loadBudibase()
|
|
@@ -66,9 +66,7 @@
|
|
|
66
66
|
customTheme,
|
|
67
67
|
previewDevice,
|
|
68
68
|
navigation,
|
|
69
|
-
hiddenComponentIds
|
|
70
|
-
usedPlugins,
|
|
71
|
-
location
|
|
69
|
+
hiddenComponentIds
|
|
72
70
|
} = parsed
|
|
73
71
|
|
|
74
72
|
// Set some flags so the app knows we're in the builder
|
|
@@ -83,8 +81,6 @@
|
|
|
83
81
|
window["##BUDIBASE_PREVIEW_DEVICE##"] = previewDevice
|
|
84
82
|
window["##BUDIBASE_PREVIEW_NAVIGATION##"] = navigation
|
|
85
83
|
window["##BUDIBASE_HIDDEN_COMPONENT_IDS##"] = hiddenComponentIds
|
|
86
|
-
window["##BUDIBASE_USED_PLUGINS##"] = usedPlugins
|
|
87
|
-
window["##BUDIBASE_LOCATION##"] = location
|
|
88
84
|
|
|
89
85
|
// Initialise app
|
|
90
86
|
try {
|
package/src/api/index.js
CHANGED
|
@@ -2,27 +2,16 @@ import Router from "@koa/router"
|
|
|
2
2
|
import * as controller from "../controllers/application"
|
|
3
3
|
import authorized from "../../middleware/authorized"
|
|
4
4
|
import { BUILDER } from "@budibase/backend-core/permissions"
|
|
5
|
-
import { applicationValidator } from "./utils/validators"
|
|
6
5
|
|
|
7
6
|
const router = new Router()
|
|
8
7
|
|
|
9
8
|
router
|
|
10
9
|
.post("/api/applications/:appId/sync", authorized(BUILDER), controller.sync)
|
|
11
|
-
.post(
|
|
12
|
-
"/api/applications",
|
|
13
|
-
authorized(BUILDER),
|
|
14
|
-
applicationValidator(),
|
|
15
|
-
controller.create
|
|
16
|
-
)
|
|
10
|
+
.post("/api/applications", authorized(BUILDER), controller.create)
|
|
17
11
|
.get("/api/applications/:appId/definition", controller.fetchAppDefinition)
|
|
18
12
|
.get("/api/applications", controller.fetch)
|
|
19
13
|
.get("/api/applications/:appId/appPackage", controller.fetchAppPackage)
|
|
20
|
-
.put(
|
|
21
|
-
"/api/applications/:appId",
|
|
22
|
-
authorized(BUILDER),
|
|
23
|
-
applicationValidator({ isCreate: false }),
|
|
24
|
-
controller.update
|
|
25
|
-
)
|
|
14
|
+
.put("/api/applications/:appId", authorized(BUILDER), controller.update)
|
|
26
15
|
.post(
|
|
27
16
|
"/api/applications/:appId/client/update",
|
|
28
17
|
authorized(BUILDER),
|
package/src/api/routes/index.ts
CHANGED
|
@@ -24,7 +24,6 @@ import metadataRoutes from "./metadata"
|
|
|
24
24
|
import devRoutes from "./dev"
|
|
25
25
|
import cloudRoutes from "./cloud"
|
|
26
26
|
import migrationRoutes from "./migrations"
|
|
27
|
-
import pluginRoutes from "./plugin"
|
|
28
27
|
|
|
29
28
|
export { default as staticRoutes } from "./static"
|
|
30
29
|
export { default as publicRoutes } from "./public"
|
|
@@ -58,5 +57,4 @@ export const mainRoutes = [
|
|
|
58
57
|
tableRoutes,
|
|
59
58
|
rowRoutes,
|
|
60
59
|
migrationRoutes,
|
|
61
|
-
pluginRoutes,
|
|
62
60
|
]
|
|
@@ -143,7 +143,88 @@ read.push(new Endpoint("get", "/tables/:tableId/rows/:rowId", controller.read))
|
|
|
143
143
|
* content:
|
|
144
144
|
* application/json:
|
|
145
145
|
* schema:
|
|
146
|
-
*
|
|
146
|
+
* type: object
|
|
147
|
+
* required:
|
|
148
|
+
* - query
|
|
149
|
+
* properties:
|
|
150
|
+
* query:
|
|
151
|
+
* type: object
|
|
152
|
+
* properties:
|
|
153
|
+
* allOr:
|
|
154
|
+
* type: boolean
|
|
155
|
+
* description: Specifies that a row should be returned if it satisfies
|
|
156
|
+
* any of the specified options, rather than requiring it to fulfill all
|
|
157
|
+
* the search parameters. This defaults to false, meaning AND logic will be used.
|
|
158
|
+
* string:
|
|
159
|
+
* type: object
|
|
160
|
+
* example:
|
|
161
|
+
* columnName1: value
|
|
162
|
+
* columnName2: value
|
|
163
|
+
* description: A map of field name to the string to search for,
|
|
164
|
+
* this will look for rows that have a value starting with the
|
|
165
|
+
* string value.
|
|
166
|
+
* additionalProperties:
|
|
167
|
+
* type: string
|
|
168
|
+
* description: The value to search for in the column.
|
|
169
|
+
* fuzzy:
|
|
170
|
+
* type: object
|
|
171
|
+
* description: A fuzzy search, only supported by internal tables.
|
|
172
|
+
* range:
|
|
173
|
+
* type: object
|
|
174
|
+
* description: Searches within a range, the format of this must be
|
|
175
|
+
* in the format of an object with a "low" and "high" property.
|
|
176
|
+
* example:
|
|
177
|
+
* columnName1: { low: 10, high: 20 }
|
|
178
|
+
* equal:
|
|
179
|
+
* type: object
|
|
180
|
+
* description: Searches for rows that have a column value that is
|
|
181
|
+
* exactly the value set.
|
|
182
|
+
* notEqual:
|
|
183
|
+
* type: object
|
|
184
|
+
* description: Searches for any row which does not contain the specified
|
|
185
|
+
* column value.
|
|
186
|
+
* empty:
|
|
187
|
+
* type: object
|
|
188
|
+
* description: Searches for rows which do not contain the specified column.
|
|
189
|
+
* The object should simply contain keys of the column names, these
|
|
190
|
+
* can map to any value.
|
|
191
|
+
* example:
|
|
192
|
+
* columnName1: ""
|
|
193
|
+
* notEmpty:
|
|
194
|
+
* type: object
|
|
195
|
+
* description: Searches for rows which have the specified column.
|
|
196
|
+
* oneOf:
|
|
197
|
+
* type: object
|
|
198
|
+
* description: Searches for rows which have a column value that is any
|
|
199
|
+
* of the specified values. The format of this must be columnName -> [value1, value2].
|
|
200
|
+
* paginate:
|
|
201
|
+
* type: boolean
|
|
202
|
+
* description: Enables pagination, by default this is disabled.
|
|
203
|
+
* bookmark:
|
|
204
|
+
* oneOf:
|
|
205
|
+
* - type: string
|
|
206
|
+
* - type: integer
|
|
207
|
+
* description: If retrieving another page, the bookmark from the previous request must be supplied.
|
|
208
|
+
* limit:
|
|
209
|
+
* type: integer
|
|
210
|
+
* description: The maximum number of rows to return, useful when paginating, for internal tables this
|
|
211
|
+
* will be limited to 1000, for SQL tables it will be 5000.
|
|
212
|
+
* sort:
|
|
213
|
+
* type: object
|
|
214
|
+
* description: A set of parameters describing the sort behaviour of the search.
|
|
215
|
+
* properties:
|
|
216
|
+
* order:
|
|
217
|
+
* type: string
|
|
218
|
+
* enum: [ascending, descending]
|
|
219
|
+
* description: The order of the sort, by default this is ascending.
|
|
220
|
+
* column:
|
|
221
|
+
* type: string
|
|
222
|
+
* description: The name of the column by which the rows will be sorted.
|
|
223
|
+
* type:
|
|
224
|
+
* type: string
|
|
225
|
+
* enum: [string, number]
|
|
226
|
+
* description: Defines whether the column should be treated as a string
|
|
227
|
+
* or as numbers when sorting.
|
|
147
228
|
* responses:
|
|
148
229
|
* 200:
|
|
149
230
|
* description: The response will contain an array of rows that match the search parameters.
|
|
@@ -26,7 +26,7 @@ const read = [],
|
|
|
26
26
|
* responses:
|
|
27
27
|
* 200:
|
|
28
28
|
* description: Returns the created table, including the ID which has been generated for it. This can be
|
|
29
|
-
* internal or external
|
|
29
|
+
* internal or external data sources.
|
|
30
30
|
* content:
|
|
31
31
|
* application/json:
|
|
32
32
|
* schema:
|
package/src/api/routes/table.js
CHANGED
|
@@ -55,7 +55,7 @@ router
|
|
|
55
55
|
* @apiParam (Body) {string} [_rev] If updating an existing internal table then the revision must also be specified.
|
|
56
56
|
* @apiParam (Body) {string} type] This should either be "internal" or "external" depending on the table type -
|
|
57
57
|
* this will default to internal.
|
|
58
|
-
* @apiParam (Body) {string} [sourceId] If creating an external table then this should be set to the
|
|
58
|
+
* @apiParam (Body) {string} [sourceId] If creating an external table then this should be set to the data source ID. If
|
|
59
59
|
* building an internal table this does not need to be set, although it will be returned as "bb_internal".
|
|
60
60
|
* @apiParam (Body) {string} name The name of the table, this will be used in the UI. To rename the table simply
|
|
61
61
|
* supply the table structure to this endpoint with the name changed.
|
|
@@ -231,6 +231,20 @@ describe("/queries", () => {
|
|
|
231
231
|
url: `/api/queries/preview`,
|
|
232
232
|
})
|
|
233
233
|
})
|
|
234
|
+
|
|
235
|
+
it("should fail with invalid integration type", async () => {
|
|
236
|
+
const { datasource } = await createInvalidIntegration()
|
|
237
|
+
await request
|
|
238
|
+
.post(`/api/queries/preview`)
|
|
239
|
+
.send({
|
|
240
|
+
datasourceId: datasource._id,
|
|
241
|
+
parameters: {},
|
|
242
|
+
fields: {},
|
|
243
|
+
queryVerb: "read",
|
|
244
|
+
})
|
|
245
|
+
.set(config.defaultHeaders())
|
|
246
|
+
.expect(400)
|
|
247
|
+
})
|
|
234
248
|
})
|
|
235
249
|
|
|
236
250
|
describe("execute", () => {
|
|
@@ -247,14 +261,17 @@ describe("/queries", () => {
|
|
|
247
261
|
})
|
|
248
262
|
|
|
249
263
|
it("should fail with invalid integration type", async () => {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
264
|
+
const { query, datasource } = await createInvalidIntegration()
|
|
265
|
+
await request
|
|
266
|
+
.post(`/api/queries/${query._id}`)
|
|
267
|
+
.send({
|
|
268
|
+
datasourceId: datasource._id,
|
|
269
|
+
parameters: {},
|
|
270
|
+
fields: {},
|
|
271
|
+
queryVerb: "read",
|
|
272
|
+
})
|
|
273
|
+
.set(config.defaultHeaders())
|
|
274
|
+
.expect(400)
|
|
258
275
|
})
|
|
259
276
|
})
|
|
260
277
|
|
|
@@ -23,6 +23,7 @@ describe("/users", () => {
|
|
|
23
23
|
})
|
|
24
24
|
|
|
25
25
|
describe("fetch", () => {
|
|
26
|
+
|
|
26
27
|
it("returns a list of users from an instance db", async () => {
|
|
27
28
|
await config.createUser("uuidx")
|
|
28
29
|
await config.createUser("uuidy")
|
|
@@ -37,6 +38,7 @@ describe("/users", () => {
|
|
|
37
38
|
expect(res.body.find(u => u._id === `ro_ta_users_us_uuidy`)).toBeDefined()
|
|
38
39
|
})
|
|
39
40
|
|
|
41
|
+
|
|
40
42
|
it("should apply authorization to endpoint", async () => {
|
|
41
43
|
await config.createUser()
|
|
42
44
|
await checkPermissionsEndpoint({
|
|
@@ -10,7 +10,6 @@ const Joi = require("joi")
|
|
|
10
10
|
const OPTIONAL_STRING = Joi.string().optional().allow(null).allow("")
|
|
11
11
|
const OPTIONAL_NUMBER = Joi.number().optional().allow(null)
|
|
12
12
|
const OPTIONAL_BOOLEAN = Joi.boolean().optional().allow(null)
|
|
13
|
-
const APP_NAME_REGEX = /^[\w\s]+$/
|
|
14
13
|
|
|
15
14
|
exports.tableValidator = () => {
|
|
16
15
|
// prettier-ignore
|
|
@@ -210,35 +209,15 @@ exports.automationValidator = (existing = false) => {
|
|
|
210
209
|
}).unknown(true))
|
|
211
210
|
}
|
|
212
211
|
|
|
213
|
-
exports.applicationValidator = (
|
|
212
|
+
exports.applicationValidator = () => {
|
|
214
213
|
// prettier-ignore
|
|
215
|
-
|
|
214
|
+
return joiValidator.body(Joi.object({
|
|
216
215
|
_id: OPTIONAL_STRING,
|
|
217
216
|
_rev: OPTIONAL_STRING,
|
|
217
|
+
name: Joi.string().required(),
|
|
218
218
|
url: OPTIONAL_STRING,
|
|
219
219
|
template: Joi.object({
|
|
220
220
|
templateString: OPTIONAL_STRING,
|
|
221
|
-
})
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
const appNameValidator = Joi.string()
|
|
225
|
-
.pattern(new RegExp(APP_NAME_REGEX))
|
|
226
|
-
.error(new Error("App name must be letters, numbers and spaces only"))
|
|
227
|
-
if (opts.isCreate) {
|
|
228
|
-
base.name = appNameValidator.required()
|
|
229
|
-
} else {
|
|
230
|
-
base.name = appNameValidator.optional()
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
return joiValidator.body(
|
|
234
|
-
Joi.object({
|
|
235
|
-
_id: OPTIONAL_STRING,
|
|
236
|
-
_rev: OPTIONAL_STRING,
|
|
237
|
-
name: appNameValidator,
|
|
238
|
-
url: OPTIONAL_STRING,
|
|
239
|
-
template: Joi.object({
|
|
240
|
-
templateString: OPTIONAL_STRING,
|
|
241
|
-
}).unknown(true),
|
|
242
|
-
}).unknown(true)
|
|
243
|
-
)
|
|
221
|
+
}).unknown(true),
|
|
222
|
+
}).unknown(true))
|
|
244
223
|
}
|
package/src/app.ts
CHANGED
|
@@ -26,17 +26,10 @@ const bullboard = require("./automations/bullboard")
|
|
|
26
26
|
const { logAlert } = require("@budibase/backend-core/logging")
|
|
27
27
|
const { pinoSettings } = require("@budibase/backend-core")
|
|
28
28
|
const { Thread } = require("./threads")
|
|
29
|
-
const fs = require("fs")
|
|
30
29
|
import redis from "./utilities/redis"
|
|
31
30
|
import * as migrations from "./migrations"
|
|
32
31
|
import { events, installation, tenancy } from "@budibase/backend-core"
|
|
33
|
-
import {
|
|
34
|
-
createAdminUser,
|
|
35
|
-
generateApiKey,
|
|
36
|
-
getChecklist,
|
|
37
|
-
} from "./utilities/workerRequests"
|
|
38
|
-
import { watch } from "./watch"
|
|
39
|
-
import { initialise as initialiseWebsockets } from "./websocket"
|
|
32
|
+
import { createAdminUser, getChecklist } from "./utilities/workerRequests"
|
|
40
33
|
|
|
41
34
|
const app = new Koa()
|
|
42
35
|
|
|
@@ -81,7 +74,6 @@ if (env.isProd()) {
|
|
|
81
74
|
|
|
82
75
|
const server = http.createServer(app.callback())
|
|
83
76
|
destroyable(server)
|
|
84
|
-
initialiseWebsockets(server)
|
|
85
77
|
|
|
86
78
|
let shuttingDown = false,
|
|
87
79
|
errCode = 0
|
|
@@ -131,16 +123,11 @@ module.exports = server.listen(env.PORT || 0, async () => {
|
|
|
131
123
|
if (!checklist?.adminUser?.checked) {
|
|
132
124
|
try {
|
|
133
125
|
const tenantId = tenancy.getTenantId()
|
|
134
|
-
|
|
126
|
+
await createAdminUser(
|
|
135
127
|
env.BB_ADMIN_USER_EMAIL,
|
|
136
128
|
env.BB_ADMIN_USER_PASSWORD,
|
|
137
129
|
tenantId
|
|
138
130
|
)
|
|
139
|
-
// Need to set up an API key for automated integration tests
|
|
140
|
-
if (env.isTest()) {
|
|
141
|
-
await generateApiKey(user._id)
|
|
142
|
-
}
|
|
143
|
-
|
|
144
131
|
console.log(
|
|
145
132
|
"Admin account automatically created for",
|
|
146
133
|
env.BB_ADMIN_USER_EMAIL
|
|
@@ -152,16 +139,6 @@ module.exports = server.listen(env.PORT || 0, async () => {
|
|
|
152
139
|
}
|
|
153
140
|
}
|
|
154
141
|
|
|
155
|
-
// monitor plugin directory if required
|
|
156
|
-
if (
|
|
157
|
-
env.SELF_HOSTED &&
|
|
158
|
-
!env.MULTI_TENANCY &&
|
|
159
|
-
env.PLUGINS_DIR &&
|
|
160
|
-
fs.existsSync(env.PLUGINS_DIR)
|
|
161
|
-
) {
|
|
162
|
-
watch()
|
|
163
|
-
}
|
|
164
|
-
|
|
165
142
|
// check for version updates
|
|
166
143
|
await installation.checkInstallVersion()
|
|
167
144
|
|
package/src/db/utils.js
CHANGED
|
@@ -42,7 +42,6 @@ const DocumentType = {
|
|
|
42
42
|
MEM_VIEW: "view",
|
|
43
43
|
USER_FLAG: "flag",
|
|
44
44
|
AUTOMATION_METADATA: "meta_au",
|
|
45
|
-
PLUGIN: "plg",
|
|
46
45
|
}
|
|
47
46
|
|
|
48
47
|
const InternalTables = {
|
|
@@ -371,10 +370,6 @@ exports.getMemoryViewParams = (otherProps = {}) => {
|
|
|
371
370
|
return getDocParams(DocumentType.MEM_VIEW, null, otherProps)
|
|
372
371
|
}
|
|
373
372
|
|
|
374
|
-
exports.generatePluginID = name => {
|
|
375
|
-
return `${DocumentType.PLUGIN}${SEPARATOR}${name}`
|
|
376
|
-
}
|
|
377
|
-
|
|
378
373
|
/**
|
|
379
374
|
* This can be used with the db.allDocs to get a list of IDs
|
|
380
375
|
*/
|
|
@@ -384,10 +379,3 @@ exports.getMultiIDParams = ids => {
|
|
|
384
379
|
include_docs: true,
|
|
385
380
|
}
|
|
386
381
|
}
|
|
387
|
-
|
|
388
|
-
/**
|
|
389
|
-
* Gets parameters for retrieving automations, this is a utility function for the getDocParams function.
|
|
390
|
-
*/
|
|
391
|
-
exports.getPluginParams = (pluginId = null, otherProps = {}) => {
|
|
392
|
-
return getDocParams(DocumentType.PLUGIN, pluginId, otherProps)
|
|
393
|
-
}
|
|
@@ -278,7 +278,58 @@ export interface paths {
|
|
|
278
278
|
};
|
|
279
279
|
requestBody: {
|
|
280
280
|
content: {
|
|
281
|
-
"application/json":
|
|
281
|
+
"application/json": {
|
|
282
|
+
query: {
|
|
283
|
+
/** @description Specifies that a row should be returned if it satisfies any of the specified options, rather than requiring it to fulfill all the search parameters. This defaults to false, meaning AND logic will be used. */
|
|
284
|
+
allOr?: boolean;
|
|
285
|
+
/**
|
|
286
|
+
* @description A map of field name to the string to search for, this will look for rows that have a value starting with the string value.
|
|
287
|
+
* @example [object Object]
|
|
288
|
+
*/
|
|
289
|
+
string?: { [key: string]: string };
|
|
290
|
+
/** @description A fuzzy search, only supported by internal tables. */
|
|
291
|
+
fuzzy?: { [key: string]: unknown };
|
|
292
|
+
/**
|
|
293
|
+
* @description Searches within a range, the format of this must be in the format of an object with a "low" and "high" property.
|
|
294
|
+
* @example [object Object]
|
|
295
|
+
*/
|
|
296
|
+
range?: { [key: string]: unknown };
|
|
297
|
+
/** @description Searches for rows that have a column value that is exactly the value set. */
|
|
298
|
+
equal?: { [key: string]: unknown };
|
|
299
|
+
/** @description Searches for any row which does not contain the specified column value. */
|
|
300
|
+
notEqual?: { [key: string]: unknown };
|
|
301
|
+
/**
|
|
302
|
+
* @description Searches for rows which do not contain the specified column. The object should simply contain keys of the column names, these can map to any value.
|
|
303
|
+
* @example [object Object]
|
|
304
|
+
*/
|
|
305
|
+
empty?: { [key: string]: unknown };
|
|
306
|
+
/** @description Searches for rows which have the specified column. */
|
|
307
|
+
notEmpty?: { [key: string]: unknown };
|
|
308
|
+
/** @description Searches for rows which have a column value that is any of the specified values. The format of this must be columnName -> [value1, value2]. */
|
|
309
|
+
oneOf?: { [key: string]: unknown };
|
|
310
|
+
};
|
|
311
|
+
/** @description Enables pagination, by default this is disabled. */
|
|
312
|
+
paginate?: boolean;
|
|
313
|
+
/** @description If retrieving another page, the bookmark from the previous request must be supplied. */
|
|
314
|
+
bookmark?: string | number;
|
|
315
|
+
/** @description The maximum number of rows to return, useful when paginating, for internal tables this will be limited to 1000, for SQL tables it will be 5000. */
|
|
316
|
+
limit?: number;
|
|
317
|
+
/** @description A set of parameters describing the sort behaviour of the search. */
|
|
318
|
+
sort?: {
|
|
319
|
+
/**
|
|
320
|
+
* @description The order of the sort, by default this is ascending.
|
|
321
|
+
* @enum {string}
|
|
322
|
+
*/
|
|
323
|
+
order?: "ascending" | "descending";
|
|
324
|
+
/** @description The name of the column by which the rows will be sorted. */
|
|
325
|
+
column?: string;
|
|
326
|
+
/**
|
|
327
|
+
* @description Defines whether the column should be treated as a string or as numbers when sorting.
|
|
328
|
+
* @enum {string}
|
|
329
|
+
*/
|
|
330
|
+
type?: "string" | "number";
|
|
331
|
+
};
|
|
332
|
+
};
|
|
282
333
|
};
|
|
283
334
|
};
|
|
284
335
|
};
|
|
@@ -293,7 +344,7 @@ export interface paths {
|
|
|
293
344
|
};
|
|
294
345
|
};
|
|
295
346
|
responses: {
|
|
296
|
-
/** Returns the created table, including the ID which has been generated for it. This can be internal or external
|
|
347
|
+
/** Returns the created table, including the ID which has been generated for it. This can be internal or external data sources. */
|
|
297
348
|
200: {
|
|
298
349
|
content: {
|
|
299
350
|
"application/json": components["schemas"]["tableOutput"];
|
|
@@ -914,7 +965,7 @@ export interface components {
|
|
|
914
965
|
query: {
|
|
915
966
|
/** @description The ID of the query. */
|
|
916
967
|
_id: string;
|
|
917
|
-
/** @description The ID of the
|
|
968
|
+
/** @description The ID of the data source the query belongs to. */
|
|
918
969
|
datasourceId?: string;
|
|
919
970
|
/** @description The bindings which are required to perform this query. */
|
|
920
971
|
parameters?: string[];
|
|
@@ -938,7 +989,7 @@ export interface components {
|
|
|
938
989
|
data: {
|
|
939
990
|
/** @description The ID of the query. */
|
|
940
991
|
_id: string;
|
|
941
|
-
/** @description The ID of the
|
|
992
|
+
/** @description The ID of the data source the query belongs to. */
|
|
942
993
|
datasourceId?: string;
|
|
943
994
|
/** @description The bindings which are required to perform this query. */
|
|
944
995
|
parameters?: string[];
|
|
@@ -1054,58 +1105,6 @@ export interface components {
|
|
|
1054
1105
|
_id: string;
|
|
1055
1106
|
}[];
|
|
1056
1107
|
};
|
|
1057
|
-
rowSearch: {
|
|
1058
|
-
query: {
|
|
1059
|
-
/** @description Specifies that a row should be returned if it satisfies any of the specified options, rather than requiring it to fulfill all the search parameters. This defaults to false, meaning AND logic will be used. */
|
|
1060
|
-
allOr?: boolean;
|
|
1061
|
-
/**
|
|
1062
|
-
* @description A map of field name to the string to search for, this will look for rows that have a value starting with the string value.
|
|
1063
|
-
* @example [object Object]
|
|
1064
|
-
*/
|
|
1065
|
-
string?: { [key: string]: string };
|
|
1066
|
-
/** @description A fuzzy search, only supported by internal tables. */
|
|
1067
|
-
fuzzy?: { [key: string]: unknown };
|
|
1068
|
-
/**
|
|
1069
|
-
* @description Searches within a range, the format of this must be in the format of an object with a "low" and "high" property.
|
|
1070
|
-
* @example [object Object]
|
|
1071
|
-
*/
|
|
1072
|
-
range?: { [key: string]: unknown };
|
|
1073
|
-
/** @description Searches for rows that have a column value that is exactly the value set. */
|
|
1074
|
-
equal?: { [key: string]: unknown };
|
|
1075
|
-
/** @description Searches for any row which does not contain the specified column value. */
|
|
1076
|
-
notEqual?: { [key: string]: unknown };
|
|
1077
|
-
/**
|
|
1078
|
-
* @description Searches for rows which do not contain the specified column. The object should simply contain keys of the column names, these can map to any value.
|
|
1079
|
-
* @example [object Object]
|
|
1080
|
-
*/
|
|
1081
|
-
empty?: { [key: string]: unknown };
|
|
1082
|
-
/** @description Searches for rows which have the specified column. */
|
|
1083
|
-
notEmpty?: { [key: string]: unknown };
|
|
1084
|
-
/** @description Searches for rows which have a column value that is any of the specified values. The format of this must be columnName -> [value1, value2]. */
|
|
1085
|
-
oneOf?: { [key: string]: unknown };
|
|
1086
|
-
};
|
|
1087
|
-
/** @description Enables pagination, by default this is disabled. */
|
|
1088
|
-
paginate?: boolean;
|
|
1089
|
-
/** @description If retrieving another page, the bookmark from the previous request must be supplied. */
|
|
1090
|
-
bookmark?: string | number;
|
|
1091
|
-
/** @description The maximum number of rows to return, useful when paginating, for internal tables this will be limited to 1000, for SQL tables it will be 5000. */
|
|
1092
|
-
limit?: number;
|
|
1093
|
-
/** @description A set of parameters describing the sort behaviour of the search. */
|
|
1094
|
-
sort?: {
|
|
1095
|
-
/**
|
|
1096
|
-
* @description The order of the sort, by default this is ascending.
|
|
1097
|
-
* @enum {string}
|
|
1098
|
-
*/
|
|
1099
|
-
order?: "ascending" | "descending";
|
|
1100
|
-
/** @description The name of the column by which the rows will be sorted. */
|
|
1101
|
-
column?: string;
|
|
1102
|
-
/**
|
|
1103
|
-
* @description Defines whether the column should be treated as a string or as numbers when sorting.
|
|
1104
|
-
* @enum {string}
|
|
1105
|
-
*/
|
|
1106
|
-
type?: "string" | "number";
|
|
1107
|
-
};
|
|
1108
|
-
};
|
|
1109
1108
|
nameSearch: {
|
|
1110
1109
|
/** @description The name to be used when searching - this will be used in a case insensitive starts with match. */
|
|
1111
1110
|
name: string;
|
package/src/environment.js
CHANGED
|
@@ -74,7 +74,6 @@ module.exports = {
|
|
|
74
74
|
SQL_MAX_ROWS: process.env.SQL_MAX_ROWS,
|
|
75
75
|
BB_ADMIN_USER_EMAIL: process.env.BB_ADMIN_USER_EMAIL,
|
|
76
76
|
BB_ADMIN_USER_PASSWORD: process.env.BB_ADMIN_USER_PASSWORD,
|
|
77
|
-
PLUGINS_DIR: process.env.PLUGINS_DIR || "/plugins",
|
|
78
77
|
// flags
|
|
79
78
|
ALLOW_DEV_AUTOMATIONS: process.env.ALLOW_DEV_AUTOMATIONS,
|
|
80
79
|
DISABLE_THREADING: process.env.DISABLE_THREADING,
|