@budibase/server 1.0.123 → 1.0.125
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/builder/assets/index.3d890df7.js +1299 -0
- package/builder/assets/index.89795487.css +6 -0
- package/builder/assets/{vendor.8e34a169.js → vendor.5240f480.js} +1 -1
- package/builder/index.html +3 -3
- package/coverage/clover.xml +695 -1678
- package/coverage/coverage-final.json +28 -43
- package/coverage/lcov-report/api/controllers/analytics.js.html +8 -3
- package/coverage/lcov-report/api/controllers/apikeys.js.html +9 -4
- package/coverage/lcov-report/api/controllers/auth.js.html +8 -3
- package/coverage/lcov-report/api/controllers/automation.js.html +8 -3
- package/coverage/lcov-report/api/controllers/backup.js.html +8 -3
- package/coverage/lcov-report/api/controllers/cloud.js.html +8 -3
- package/coverage/lcov-report/api/controllers/component.js.html +8 -3
- package/coverage/lcov-report/api/controllers/datasource.js.html +11 -6
- package/coverage/lcov-report/api/controllers/dev.js.html +8 -3
- package/coverage/lcov-report/api/controllers/index.html +16 -26
- package/coverage/lcov-report/api/controllers/integration.js.html +8 -3
- package/coverage/lcov-report/api/controllers/layout.js.html +8 -3
- package/coverage/lcov-report/api/controllers/metadata.js.html +8 -3
- package/coverage/lcov-report/api/controllers/migrations.js.html +8 -3
- package/coverage/lcov-report/api/controllers/permission.js.html +8 -3
- package/coverage/lcov-report/api/controllers/query/index.html +16 -26
- package/coverage/lcov-report/api/controllers/query/validation.js.html +8 -3
- package/coverage/lcov-report/api/controllers/role.js.html +10 -5
- package/coverage/lcov-report/api/controllers/routing.js.html +9 -4
- package/coverage/lcov-report/api/controllers/row/external.js.html +8 -3
- package/coverage/lcov-report/api/controllers/row/index.html +25 -35
- package/coverage/lcov-report/api/controllers/row/internal.js.html +32 -24
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +21 -16
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -19
- package/coverage/lcov-report/api/controllers/row/utils.js.html +33 -19
- package/coverage/lcov-report/api/controllers/screen.js.html +9 -4
- package/coverage/lcov-report/api/controllers/script.js.html +8 -3
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +55 -50
- package/coverage/lcov-report/api/controllers/table/external.js.html +8 -3
- package/coverage/lcov-report/api/controllers/table/index.html +19 -44
- package/coverage/lcov-report/api/controllers/table/index.js.html +20 -15
- package/coverage/lcov-report/api/controllers/templates.js.html +8 -3
- package/coverage/lcov-report/api/controllers/user.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/index.html +8 -3
- package/coverage/lcov-report/api/controllers/view/index.js.html +10 -5
- package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -3
- package/coverage/lcov-report/api/controllers/webhook.js.html +10 -5
- package/coverage/lcov-report/api/index.html +18 -13
- package/coverage/lcov-report/api/index.js.html +28 -8
- package/coverage/lcov-report/api/routes/analytics.js.html +8 -3
- package/coverage/lcov-report/api/routes/apikeys.js.html +8 -3
- package/coverage/lcov-report/api/routes/auth.js.html +8 -3
- package/coverage/lcov-report/api/routes/automation.js.html +8 -3
- package/coverage/lcov-report/api/routes/backup.js.html +8 -3
- package/coverage/lcov-report/api/routes/cloud.js.html +8 -3
- package/coverage/lcov-report/api/routes/component.js.html +8 -3
- package/coverage/lcov-report/api/routes/datasource.js.html +8 -3
- package/coverage/lcov-report/api/routes/deploy.js.html +8 -3
- package/coverage/lcov-report/api/routes/dev.js.html +9 -4
- package/coverage/lcov-report/api/routes/index.html +13 -68
- package/coverage/lcov-report/api/routes/integration.js.html +8 -3
- package/coverage/lcov-report/api/routes/layout.js.html +8 -3
- package/coverage/lcov-report/api/routes/metadata.js.html +8 -3
- package/coverage/lcov-report/api/routes/migrations.js.html +8 -3
- package/coverage/lcov-report/api/routes/permission.js.html +8 -3
- package/coverage/lcov-report/api/routes/query.js.html +8 -3
- package/coverage/lcov-report/api/routes/role.js.html +8 -3
- package/coverage/lcov-report/api/routes/routing.js.html +8 -3
- package/coverage/lcov-report/api/routes/screen.js.html +8 -3
- package/coverage/lcov-report/api/routes/script.js.html +8 -3
- package/coverage/lcov-report/api/routes/table.js.html +8 -3
- package/coverage/lcov-report/api/routes/templates.js.html +8 -3
- package/coverage/lcov-report/api/routes/user.js.html +8 -3
- package/coverage/lcov-report/api/routes/utils/index.html +8 -3
- package/coverage/lcov-report/api/routes/utils/validators.js.html +8 -3
- package/coverage/lcov-report/api/routes/view.js.html +8 -3
- package/coverage/lcov-report/api/routes/webhook.js.html +8 -3
- package/coverage/lcov-report/automations/actions.js.html +21 -7
- package/coverage/lcov-report/automations/automationUtils.js.html +64 -23
- package/coverage/lcov-report/automations/bullboard.js.html +8 -3
- package/coverage/lcov-report/automations/index.html +27 -37
- package/coverage/lcov-report/automations/index.js.html +8 -3
- package/coverage/lcov-report/automations/steps/bash.js.html +8 -3
- package/coverage/lcov-report/automations/steps/delay.js.html +8 -3
- package/coverage/lcov-report/automations/steps/discord.js.html +8 -3
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +8 -3
- package/coverage/lcov-report/automations/steps/executeScript.js.html +8 -3
- package/coverage/lcov-report/automations/steps/filter.js.html +8 -3
- package/coverage/lcov-report/automations/steps/index.html +31 -41
- package/coverage/lcov-report/automations/steps/integromat.js.html +8 -3
- package/coverage/lcov-report/{api/routes/static.js.html → automations/steps/loop.js.html} +70 -80
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +9 -4
- package/coverage/lcov-report/automations/steps/queryRows.js.html +9 -4
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +8 -3
- package/coverage/lcov-report/automations/steps/serverLog.js.html +8 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +8 -3
- package/coverage/lcov-report/automations/steps/updateRow.js.html +8 -3
- package/coverage/lcov-report/automations/steps/utils.js.html +14 -9
- package/coverage/lcov-report/automations/steps/zapier.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/index.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +8 -3
- package/coverage/lcov-report/automations/triggers.js.html +16 -11
- package/coverage/lcov-report/block-navigation.js +8 -0
- package/coverage/lcov-report/constants/index.html +12 -7
- package/coverage/lcov-report/constants/index.js.html +55 -32
- package/coverage/lcov-report/constants/layouts.js.html +8 -3
- package/coverage/lcov-report/constants/screens.js.html +8 -3
- package/coverage/lcov-report/db/inMemoryView.js.html +8 -3
- package/coverage/lcov-report/db/index.html +8 -3
- package/coverage/lcov-report/db/index.js.html +9 -4
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +20 -15
- package/coverage/lcov-report/db/linkedRows/index.html +8 -3
- package/coverage/lcov-report/db/linkedRows/index.js.html +22 -17
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +12 -7
- package/coverage/lcov-report/db/newid.js.html +11 -6
- package/coverage/lcov-report/db/utils.js.html +84 -79
- package/coverage/lcov-report/events/AutomationEmitter.js.html +14 -9
- package/coverage/lcov-report/events/index.html +8 -3
- package/coverage/lcov-report/events/index.js.html +9 -4
- package/coverage/lcov-report/events/utils.js.html +18 -13
- package/coverage/lcov-report/index.html +125 -120
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +8 -3
- package/coverage/lcov-report/integrations/tests/index.html +8 -3
- package/coverage/lcov-report/middleware/appInfo.js.html +8 -3
- package/coverage/lcov-report/middleware/builder.js.html +8 -3
- package/coverage/lcov-report/middleware/currentapp.js.html +65 -15
- package/coverage/lcov-report/middleware/index.html +25 -50
- package/coverage/lcov-report/middleware/joi-validator.js.html +9 -4
- package/coverage/lcov-report/middleware/publicApi.js.html +8 -3
- package/coverage/lcov-report/middleware/resourceId.js.html +8 -3
- package/coverage/lcov-report/middleware/selfhost.js.html +9 -4
- package/coverage/lcov-report/middleware/utils.js.html +8 -3
- package/coverage/lcov-report/sorter.js +26 -0
- package/coverage/lcov-report/threads/automation.js.html +581 -90
- package/coverage/lcov-report/threads/index.html +30 -40
- package/coverage/lcov-report/threads/query.js.html +9 -4
- package/coverage/lcov-report/threads/utils.js.html +17 -9
- package/coverage/lcov-report/utilities/bcrypt.js.html +8 -3
- package/coverage/lcov-report/utilities/budibaseDir.js.html +8 -3
- package/coverage/lcov-report/utilities/centralPath.js.html +8 -3
- package/coverage/lcov-report/utilities/csvParser.js.html +10 -5
- package/coverage/lcov-report/utilities/global.js.html +9 -4
- package/coverage/lcov-report/utilities/index.html +8 -3
- package/coverage/lcov-report/utilities/index.js.html +11 -6
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +32 -9
- package/coverage/lcov-report/utilities/queue/index.html +12 -7
- package/coverage/lcov-report/utilities/routing/index.html +8 -3
- package/coverage/lcov-report/utilities/routing/index.js.html +8 -3
- package/coverage/lcov-report/utilities/rowProcessor/index.html +8 -3
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +48 -43
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +18 -13
- package/coverage/lcov-report/utilities/scriptRunner.js.html +8 -3
- package/coverage/lcov-report/utilities/security.js.html +9 -4
- package/coverage/lcov-report/utilities/statusCodes.js.html +8 -3
- package/coverage/lcov-report/utilities/usageQuota/index.html +24 -34
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +44 -39
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +8 -3
- package/coverage/lcov-report/utilities/users.js.html +8 -3
- package/coverage/lcov-report/utilities/workerRequests.js.html +9 -4
- package/coverage/lcov.info +1144 -2875
- package/dist/api/controllers/application.js +145 -73
- package/dist/api/controllers/deploy/index.js +68 -36
- package/dist/api/controllers/public/applications.js +29 -9
- package/dist/api/controllers/public/queries.js +27 -7
- package/dist/api/controllers/public/rows.js +32 -12
- package/dist/api/controllers/public/tables.js +2 -2
- package/dist/api/controllers/public/users.js +8 -8
- package/dist/api/controllers/public/utils.js +1 -1
- package/dist/api/controllers/query/import/index.js +3 -3
- package/dist/api/controllers/query/index.js +57 -44
- package/dist/api/controllers/row/ExternalRequest.js +27 -27
- package/dist/api/controllers/row/index.js +83 -60
- package/dist/api/controllers/row/internal.js +2 -1
- package/dist/api/controllers/row/utils.js +2 -1
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/dist/api/controllers/table/bulkFormula.js +2 -1
- package/dist/api/controllers/table/internal.js +41 -35
- package/dist/api/controllers/table/utils.js +271 -229
- package/dist/api/index.js +5 -0
- package/dist/api/routes/application.js +39 -13
- package/dist/api/routes/index.js +61 -56
- package/dist/api/routes/public/index.js +6 -9
- package/dist/api/routes/public/queries.js +1 -1
- package/dist/api/routes/public/rows.js +1 -1
- package/dist/api/routes/public/tables.js +3 -3
- package/dist/api/routes/public/users.js +1 -1
- package/dist/api/routes/row.js +43 -17
- package/dist/api/routes/static.js +40 -13
- package/dist/api/routes/tests/utilities/TestFunctions.js +75 -33
- package/dist/app.js +8 -4
- package/dist/automations/actions.js +3 -0
- package/dist/automations/automationUtils.js +10 -0
- package/dist/automations/steps/createRow.js +12 -12
- package/dist/automations/steps/deleteRow.js +13 -16
- package/dist/automations/steps/loop.js +51 -0
- package/dist/automations/tests/utilities/index.js +13 -11
- package/dist/automations/utils.js +187 -133
- package/dist/constants/index.js +5 -0
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +2 -3
- package/dist/index.js +4 -0
- package/dist/integrations/base/sql.js +2 -2
- package/dist/integrations/base/sqlTable.js +2 -2
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/microsoftSqlServer.js +8 -8
- package/dist/integrations/mysql.js +9 -9
- package/dist/integrations/oracle.js +7 -7
- package/dist/integrations/postgres.js +7 -7
- package/dist/integrations/queries/sql.js +2 -2
- package/dist/integrations/redis.js +158 -0
- package/dist/integrations/rest.js +1 -1
- package/dist/middleware/authorized.js +51 -51
- package/dist/middleware/currentapp.js +15 -1
- package/dist/migrations/functions/appUrls.js +1 -1
- package/dist/migrations/functions/developerQuota.js +49 -0
- package/dist/migrations/functions/publishedAppsQuota.js +47 -0
- package/dist/migrations/functions/quotas1.js +6 -2
- package/dist/migrations/functions/usageQuotas/index.js +0 -4
- package/dist/migrations/functions/usageQuotas/syncApps.js +4 -7
- package/dist/migrations/functions/usageQuotas/syncDevelopers.js +24 -0
- package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +26 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +5 -8
- package/dist/migrations/index.js +17 -1
- package/dist/package.json +14 -8
- package/dist/threads/automation.js +149 -27
- package/dist/threads/index.js +36 -10
- package/dist/threads/utils.js +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/utilities/queue/inMemoryQueue.js +6 -1
- package/nodemon.json +1 -1
- package/package.json +15 -9
- package/scripts/dev/manage.js +2 -0
- package/src/api/controllers/{application.js → application.ts} +118 -51
- package/src/api/controllers/deploy/{index.js → index.ts} +53 -29
- package/src/api/controllers/public/applications.ts +2 -2
- package/src/api/controllers/public/queries.ts +1 -1
- package/src/api/controllers/public/rows.ts +1 -1
- package/src/api/controllers/query/{index.js → index.ts} +51 -48
- package/src/api/controllers/row/ExternalRequest.ts +1 -1
- package/src/api/controllers/row/{index.js → index.ts} +24 -17
- package/src/api/controllers/row/internal.js +2 -1
- package/src/api/controllers/row/utils.js +4 -1
- package/src/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/src/api/controllers/table/bulkFormula.js +1 -1
- package/src/api/controllers/table/{internal.js → internal.ts} +30 -26
- package/src/api/controllers/table/{utils.js → utils.ts} +86 -69
- package/src/api/index.js +5 -0
- package/src/api/routes/{application.js → application.ts} +8 -14
- package/src/api/routes/index.ts +60 -0
- package/src/api/routes/public/index.ts +1 -4
- package/src/api/routes/{row.js → row.ts} +7 -15
- package/src/api/routes/{static.js → static.ts} +11 -11
- package/src/api/routes/tests/misc.spec.js +39 -37
- package/src/api/routes/tests/utilities/{TestFunctions.js → TestFunctions.ts} +57 -33
- package/src/app.ts +1 -2
- package/src/automations/actions.js +3 -0
- package/src/automations/automationUtils.js +12 -0
- package/src/automations/steps/{createRow.js → createRow.ts} +9 -15
- package/src/automations/steps/{deleteRow.js → deleteRow.ts} +10 -16
- package/src/automations/steps/loop.js +50 -0
- package/src/automations/tests/automation.spec.js +0 -1
- package/src/automations/tests/{createRow.spec.js → createRow.spec.ts} +4 -15
- package/src/automations/tests/{deleteRow.spec.js → deleteRow.spec.ts} +3 -5
- package/src/automations/tests/utilities/index.js +12 -10
- package/src/automations/{utils.js → utils.ts} +39 -28
- package/src/constants/index.js +6 -0
- package/src/definitions/common.ts +1 -0
- package/src/definitions/datasource.ts +1 -0
- package/src/environment.js +2 -3
- package/src/index.ts +3 -0
- package/src/integrations/index.ts +4 -0
- package/src/integrations/redis.ts +152 -0
- package/src/integrations/tests/redis.spec.js +60 -0
- package/src/middleware/{authorized.js → authorized.ts} +20 -14
- package/src/middleware/currentapp.js +16 -1
- package/src/middleware/tests/currentapp.spec.js +8 -4
- package/src/migrations/functions/developerQuota.ts +15 -0
- package/src/migrations/functions/publishedAppsQuota.ts +13 -0
- package/src/migrations/functions/tests/quotas1.spec.js +0 -2
- package/src/migrations/functions/usageQuotas/index.ts +0 -5
- package/src/migrations/functions/usageQuotas/syncApps.ts +3 -6
- package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
- package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
- package/src/migrations/functions/usageQuotas/syncRows.ts +3 -6
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +34 -0
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +40 -0
- package/src/migrations/index.ts +13 -1
- package/src/threads/automation.js +196 -34
- package/src/threads/{index.js → index.ts} +18 -14
- package/src/threads/utils.js +1 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -1
- package/tsconfig.build.json +10 -0
- package/tsconfig.json +2 -2
- package/builder/assets/index.68a7f4e3.css +0 -6
- package/builder/assets/index.8d4a5b33.js +0 -1291
- package/coverage/lcov-report/api/controllers/application.js.html +0 -1436
- package/coverage/lcov-report/api/controllers/query/index.js.html +0 -713
- package/coverage/lcov-report/api/controllers/row/index.js.html +0 -524
- package/coverage/lcov-report/api/controllers/table/internal.js.html +0 -620
- package/coverage/lcov-report/api/controllers/table/utils.js.html +0 -1331
- package/coverage/lcov-report/api/routes/application.js.html +0 -179
- package/coverage/lcov-report/api/routes/index.js.html +0 -266
- package/coverage/lcov-report/api/routes/row.js.html +0 -908
- package/coverage/lcov-report/automations/steps/createRow.js.html +0 -380
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +0 -347
- package/coverage/lcov-report/automations/utils.js.html +0 -665
- package/coverage/lcov-report/middleware/authorized.js.html +0 -458
- package/coverage/lcov-report/middleware/usageQuota.js.html +0 -572
- package/coverage/lcov-report/threads/index.js.html +0 -296
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
- package/dist/middleware/usageQuota.js +0 -154
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utilities/usageQuota/index.js +0 -86
- package/src/api/routes/index.js +0 -62
- package/src/middleware/tests/usageQuota.spec.js +0 -120
- package/src/middleware/usageQuota.js +0 -164
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -41
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -45
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
- package/src/utilities/usageQuota/index.js +0 -93
|
@@ -204,7 +204,7 @@ var OracleModule;
|
|
|
204
204
|
if (this.isBooleanType(column)) {
|
|
205
205
|
return constants_1.FieldTypes.BOOLEAN;
|
|
206
206
|
}
|
|
207
|
-
return utils_1.convertSqlType(column.type);
|
|
207
|
+
return (0, utils_1.convertSqlType)(column.type);
|
|
208
208
|
}
|
|
209
209
|
/**
|
|
210
210
|
* Fetches the tables from the oracle table and assigns them to the datasource.
|
|
@@ -223,7 +223,7 @@ var OracleModule;
|
|
|
223
223
|
let table = tables[oracleTable.name];
|
|
224
224
|
if (!table) {
|
|
225
225
|
table = {
|
|
226
|
-
_id: utils_1.buildExternalTableId(datasourceId, oracleTable.name),
|
|
226
|
+
_id: (0, utils_1.buildExternalTableId)(datasourceId, oracleTable.name),
|
|
227
227
|
primary: [],
|
|
228
228
|
name: oracleTable.name,
|
|
229
229
|
schema: {},
|
|
@@ -255,7 +255,7 @@ var OracleModule;
|
|
|
255
255
|
});
|
|
256
256
|
});
|
|
257
257
|
});
|
|
258
|
-
const final = utils_1.finaliseExternalTables(tables, entities);
|
|
258
|
+
const final = (0, utils_1.finaliseExternalTables)(tables, entities);
|
|
259
259
|
this.tables = final.tables;
|
|
260
260
|
this.schemaErrors = final.errors;
|
|
261
261
|
});
|
|
@@ -284,7 +284,7 @@ var OracleModule;
|
|
|
284
284
|
}
|
|
285
285
|
create(query) {
|
|
286
286
|
return __awaiter(this, void 0, void 0, function* () {
|
|
287
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
287
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
288
288
|
return response.rows && response.rows.length
|
|
289
289
|
? response.rows
|
|
290
290
|
: [{ created: true }];
|
|
@@ -292,13 +292,13 @@ var OracleModule;
|
|
|
292
292
|
}
|
|
293
293
|
read(query) {
|
|
294
294
|
return __awaiter(this, void 0, void 0, function* () {
|
|
295
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
295
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
296
296
|
return response.rows ? response.rows : [];
|
|
297
297
|
});
|
|
298
298
|
}
|
|
299
299
|
update(query) {
|
|
300
300
|
return __awaiter(this, void 0, void 0, function* () {
|
|
301
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
301
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
302
302
|
return response.rows && response.rows.length
|
|
303
303
|
? response.rows
|
|
304
304
|
: [{ updated: true }];
|
|
@@ -306,7 +306,7 @@ var OracleModule;
|
|
|
306
306
|
}
|
|
307
307
|
delete(query) {
|
|
308
308
|
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
309
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
310
310
|
return response.rows && response.rows.length
|
|
311
311
|
? response.rows
|
|
312
312
|
: [{ deleted: true }];
|
|
@@ -184,13 +184,13 @@ var PostgresModule;
|
|
|
184
184
|
// table key doesn't exist yet
|
|
185
185
|
if (!tables[tableName] || !tables[tableName].schema) {
|
|
186
186
|
tables[tableName] = {
|
|
187
|
-
_id: utils_1.buildExternalTableId(datasourceId, tableName),
|
|
187
|
+
_id: (0, utils_1.buildExternalTableId)(datasourceId, tableName),
|
|
188
188
|
primary: tableKeys[tableName] || [],
|
|
189
189
|
name: tableName,
|
|
190
190
|
schema: {},
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
|
-
const type = utils_1.convertSqlType(column.data_type);
|
|
193
|
+
const type = (0, utils_1.convertSqlType)(column.data_type);
|
|
194
194
|
const identity = !!(column.identity_generation ||
|
|
195
195
|
column.identity_start ||
|
|
196
196
|
column.identity_increment);
|
|
@@ -204,32 +204,32 @@ var PostgresModule;
|
|
|
204
204
|
type,
|
|
205
205
|
};
|
|
206
206
|
}
|
|
207
|
-
const final = utils_1.finaliseExternalTables(tables, entities);
|
|
207
|
+
const final = (0, utils_1.finaliseExternalTables)(tables, entities);
|
|
208
208
|
this.tables = final.tables;
|
|
209
209
|
this.schemaErrors = final.errors;
|
|
210
210
|
});
|
|
211
211
|
}
|
|
212
212
|
create(query) {
|
|
213
213
|
return __awaiter(this, void 0, void 0, function* () {
|
|
214
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
214
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
215
215
|
return response.rows.length ? response.rows : [{ created: true }];
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
read(query) {
|
|
219
219
|
return __awaiter(this, void 0, void 0, function* () {
|
|
220
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
220
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
221
221
|
return response.rows;
|
|
222
222
|
});
|
|
223
223
|
}
|
|
224
224
|
update(query) {
|
|
225
225
|
return __awaiter(this, void 0, void 0, function* () {
|
|
226
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
226
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
227
227
|
return response.rows.length ? response.rows : [{ updated: true }];
|
|
228
228
|
});
|
|
229
229
|
}
|
|
230
230
|
delete(query) {
|
|
231
231
|
return __awaiter(this, void 0, void 0, function* () {
|
|
232
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
232
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
233
233
|
return response.rows.length ? response.rows : [{ deleted: true }];
|
|
234
234
|
});
|
|
235
235
|
}
|
|
@@ -16,7 +16,7 @@ function enrichQueryFields(fields, parameters = {}) {
|
|
|
16
16
|
}
|
|
17
17
|
else if (typeof fields[key] === "string") {
|
|
18
18
|
// enrich string value as normal
|
|
19
|
-
enrichedQuery[key] = string_templates_1.processStringSync(fields[key], parameters, {
|
|
19
|
+
enrichedQuery[key] = (0, string_templates_1.processStringSync)(fields[key], parameters, {
|
|
20
20
|
noEscaping: true,
|
|
21
21
|
noHelpers: true,
|
|
22
22
|
escapeNewlines: true,
|
|
@@ -47,7 +47,7 @@ function interpolateSQL(fields, parameters, integration) {
|
|
|
47
47
|
if (!sql || typeof sql !== "string") {
|
|
48
48
|
return fields;
|
|
49
49
|
}
|
|
50
|
-
const bindings = string_templates_1.findHBSBlocks(sql);
|
|
50
|
+
const bindings = (0, string_templates_1.findHBSBlocks)(sql);
|
|
51
51
|
let variables = [], arrays = [];
|
|
52
52
|
for (let binding of bindings) {
|
|
53
53
|
// look for array/list operations in the SQL statement, which will need handled later
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const datasource_1 = require("../definitions/datasource");
|
|
16
|
+
const ioredis_1 = __importDefault(require("ioredis"));
|
|
17
|
+
var RedisModule;
|
|
18
|
+
(function (RedisModule) {
|
|
19
|
+
const SCHEMA = {
|
|
20
|
+
docs: "https://redis.io/docs/",
|
|
21
|
+
description: "",
|
|
22
|
+
friendlyName: "Redis",
|
|
23
|
+
datasource: {
|
|
24
|
+
host: {
|
|
25
|
+
type: "string",
|
|
26
|
+
required: true,
|
|
27
|
+
default: "localhost",
|
|
28
|
+
},
|
|
29
|
+
port: {
|
|
30
|
+
type: "number",
|
|
31
|
+
required: true,
|
|
32
|
+
default: 6379,
|
|
33
|
+
},
|
|
34
|
+
username: {
|
|
35
|
+
type: "string",
|
|
36
|
+
required: false,
|
|
37
|
+
},
|
|
38
|
+
password: {
|
|
39
|
+
type: "password",
|
|
40
|
+
required: false,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
query: {
|
|
44
|
+
create: {
|
|
45
|
+
type: datasource_1.QueryTypes.FIELDS,
|
|
46
|
+
fields: {
|
|
47
|
+
key: {
|
|
48
|
+
type: datasource_1.DatasourceFieldTypes.STRING,
|
|
49
|
+
required: true,
|
|
50
|
+
},
|
|
51
|
+
value: {
|
|
52
|
+
type: datasource_1.DatasourceFieldTypes.STRING,
|
|
53
|
+
required: true,
|
|
54
|
+
},
|
|
55
|
+
ttl: {
|
|
56
|
+
type: datasource_1.DatasourceFieldTypes.NUMBER,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
read: {
|
|
61
|
+
readable: true,
|
|
62
|
+
type: datasource_1.QueryTypes.FIELDS,
|
|
63
|
+
fields: {
|
|
64
|
+
key: {
|
|
65
|
+
type: datasource_1.DatasourceFieldTypes.STRING,
|
|
66
|
+
required: true,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
delete: {
|
|
71
|
+
type: datasource_1.QueryTypes.FIELDS,
|
|
72
|
+
fields: {
|
|
73
|
+
key: {
|
|
74
|
+
type: datasource_1.DatasourceFieldTypes.STRING,
|
|
75
|
+
required: true,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
command: {
|
|
80
|
+
readable: true,
|
|
81
|
+
displayName: "Redis Command",
|
|
82
|
+
type: datasource_1.QueryTypes.JSON,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
class RedisIntegration {
|
|
87
|
+
constructor(config) {
|
|
88
|
+
this.config = config;
|
|
89
|
+
this.client = new ioredis_1.default({
|
|
90
|
+
host: this.config.host,
|
|
91
|
+
port: this.config.port,
|
|
92
|
+
username: this.config.username,
|
|
93
|
+
password: this.config.password,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
disconnect() {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
this.client.disconnect();
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
redisContext(query) {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
try {
|
|
104
|
+
return yield query();
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
throw new Error(`Redis error: ${err}`);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
this.disconnect();
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
create(query) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
const response = yield this.client.set(query.key, query.value);
|
|
118
|
+
if (query.ttl) {
|
|
119
|
+
yield this.client.expire(query.key, query.ttl);
|
|
120
|
+
}
|
|
121
|
+
return response;
|
|
122
|
+
}));
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
read(query) {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
const response = yield this.client.get(query.key);
|
|
129
|
+
return response;
|
|
130
|
+
}));
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
delete(query) {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
const response = yield this.client.del(query.key);
|
|
137
|
+
return response;
|
|
138
|
+
}));
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
command(query) {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
+
return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
const commands = query.json.trim().split(" ");
|
|
145
|
+
const pipeline = this.client.pipeline([commands]);
|
|
146
|
+
const result = yield pipeline.exec();
|
|
147
|
+
return {
|
|
148
|
+
response: result[0][1],
|
|
149
|
+
};
|
|
150
|
+
}));
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
module.exports = {
|
|
155
|
+
schema: SCHEMA,
|
|
156
|
+
integration: RedisIntegration,
|
|
157
|
+
};
|
|
158
|
+
})(RedisModule || (RedisModule = {}));
|
|
@@ -149,7 +149,7 @@ var RestModule;
|
|
|
149
149
|
// Check if a pagination cursor exists in the response
|
|
150
150
|
let nextCursor = null;
|
|
151
151
|
if (pagination === null || pagination === void 0 ? void 0 : pagination.responseParam) {
|
|
152
|
-
nextCursor = lodash_1.get(data, pagination.responseParam);
|
|
152
|
+
nextCursor = (0, lodash_1.get)(data, pagination.responseParam);
|
|
153
153
|
}
|
|
154
154
|
return {
|
|
155
155
|
data,
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
const
|
|
11
|
+
const roles_1 = require("@budibase/backend-core/roles");
|
|
12
12
|
const { PermissionTypes, PermissionLevels, doesHaveBasePermission, } = require("@budibase/backend-core/permissions");
|
|
13
13
|
const builderMiddleware = require("./builder");
|
|
14
14
|
const { isWebhookEndpoint } = require("./utils");
|
|
@@ -38,15 +38,15 @@ const checkAuthorized = (ctx, resourceRoles, permType, permLevel) => __awaiter(v
|
|
|
38
38
|
});
|
|
39
39
|
const checkAuthorizedResource = (ctx, resourceRoles, permType, permLevel) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
40
|
// get the user's roles
|
|
41
|
-
const roleId = ctx.roleId || BUILTIN_ROLE_IDS.PUBLIC;
|
|
42
|
-
const userRoles = yield getUserRoleHierarchy(roleId, {
|
|
41
|
+
const roleId = ctx.roleId || roles_1.BUILTIN_ROLE_IDS.PUBLIC;
|
|
42
|
+
const userRoles = yield (0, roles_1.getUserRoleHierarchy)(roleId, {
|
|
43
43
|
idOnly: false,
|
|
44
44
|
});
|
|
45
45
|
const permError = "User does not have permission";
|
|
46
46
|
// check if the user has the required role
|
|
47
47
|
if (resourceRoles.length > 0) {
|
|
48
48
|
// deny access if the user doesn't have the required resource role
|
|
49
|
-
const found = userRoles.find(role => resourceRoles.indexOf(role._id) !== -1);
|
|
49
|
+
const found = userRoles.find((role) => resourceRoles.indexOf(role._id) !== -1);
|
|
50
50
|
if (!found) {
|
|
51
51
|
ctx.throw(403, permError);
|
|
52
52
|
}
|
|
@@ -56,53 +56,53 @@ const checkAuthorizedResource = (ctx, resourceRoles, permType, permLevel) => __a
|
|
|
56
56
|
ctx.throw(403, permError);
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
module.exports =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// if the resource is public, proceed
|
|
85
|
-
if (resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC) ||
|
|
86
|
-
(otherLevelRoles && otherLevelRoles.includes(BUILTIN_ROLE_IDS.PUBLIC))) {
|
|
87
|
-
return next();
|
|
88
|
-
}
|
|
89
|
-
// check authenticated
|
|
90
|
-
if (!ctx.isAuthenticated) {
|
|
91
|
-
return ctx.throw(403, "Session not authenticated");
|
|
59
|
+
module.exports = (permType, permLevel = null, opts = { schema: false }) => (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
+
// webhooks don't need authentication, each webhook unique
|
|
61
|
+
// also internal requests (between services) don't need authorized
|
|
62
|
+
if (isWebhookEndpoint(ctx) || ctx.internal) {
|
|
63
|
+
return next();
|
|
64
|
+
}
|
|
65
|
+
if (!ctx.user) {
|
|
66
|
+
return ctx.throw(403, "No user info found");
|
|
67
|
+
}
|
|
68
|
+
// check general builder stuff, this middleware is a good way
|
|
69
|
+
// to find API endpoints which are builder focused
|
|
70
|
+
yield builderMiddleware(ctx, permType);
|
|
71
|
+
// get the resource roles
|
|
72
|
+
let resourceRoles = [];
|
|
73
|
+
let otherLevelRoles = [];
|
|
74
|
+
const otherLevel = permLevel === PermissionLevels.READ
|
|
75
|
+
? PermissionLevels.WRITE
|
|
76
|
+
: PermissionLevels.READ;
|
|
77
|
+
const appId = getAppId();
|
|
78
|
+
if (appId && hasResource(ctx)) {
|
|
79
|
+
resourceRoles = yield (0, roles_1.getRequiredResourceRole)(permLevel, ctx);
|
|
80
|
+
if (opts && opts.schema) {
|
|
81
|
+
otherLevelRoles = yield (0, roles_1.getRequiredResourceRole)(otherLevel, ctx);
|
|
92
82
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
83
|
+
}
|
|
84
|
+
// if the resource is public, proceed
|
|
85
|
+
if (resourceRoles.includes(roles_1.BUILTIN_ROLE_IDS.PUBLIC) ||
|
|
86
|
+
(otherLevelRoles && otherLevelRoles.includes(roles_1.BUILTIN_ROLE_IDS.PUBLIC))) {
|
|
87
|
+
return next();
|
|
88
|
+
}
|
|
89
|
+
// check authenticated
|
|
90
|
+
if (!ctx.isAuthenticated) {
|
|
91
|
+
return ctx.throw(403, "Session not authenticated");
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
// check authorized
|
|
95
|
+
yield checkAuthorized(ctx, resourceRoles, permType, permLevel);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
// this is a schema, check if
|
|
99
|
+
if (opts && opts.schema && permLevel) {
|
|
100
|
+
yield checkAuthorized(ctx, otherLevelRoles, permType, otherLevel);
|
|
96
101
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (opts && opts.schema && permLevel) {
|
|
100
|
-
yield checkAuthorized(ctx, otherLevelRoles, permType, otherLevel);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
throw err;
|
|
104
|
-
}
|
|
102
|
+
else {
|
|
103
|
+
throw err;
|
|
105
104
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
}
|
|
106
|
+
// csrf protection
|
|
107
|
+
return csrf(ctx, next);
|
|
108
|
+
});
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
const { getAppIdFromCtx, setCookie, getCookie, clearCookie, } = require("@budibase/backend-core/utils");
|
|
12
|
-
const { Cookies } = require("@budibase/backend-core/constants");
|
|
12
|
+
const { Cookies, Headers } = require("@budibase/backend-core/constants");
|
|
13
13
|
const { getRole } = require("@budibase/backend-core/roles");
|
|
14
14
|
const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
|
|
15
15
|
const { generateUserMetadataID, isDevAppID } = require("../db/utils");
|
|
@@ -64,6 +64,20 @@ module.exports = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
64
64
|
appId = requestAppId;
|
|
65
65
|
// retrieving global user gets the right role
|
|
66
66
|
roleId = globalUser.roleId || roleId;
|
|
67
|
+
// Allow builders to specify their role via a header
|
|
68
|
+
const isBuilder = globalUser && globalUser.builder && globalUser.builder.global;
|
|
69
|
+
const isDevApp = appId && isDevAppID(appId);
|
|
70
|
+
const roleHeader = ctx.request && ctx.request.headers[Headers.PREVIEW_ROLE];
|
|
71
|
+
if (isBuilder && isDevApp && roleHeader) {
|
|
72
|
+
// Ensure the role is valid by ensuring a definition exists
|
|
73
|
+
try {
|
|
74
|
+
yield getRole(roleHeader);
|
|
75
|
+
roleId = roleHeader;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
// Swallow error and do nothing
|
|
79
|
+
}
|
|
80
|
+
}
|
|
67
81
|
}
|
|
68
82
|
// nothing more to do
|
|
69
83
|
if (!appId) {
|
|
@@ -38,7 +38,7 @@ const run = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
38
38
|
},
|
|
39
39
|
},
|
|
40
40
|
};
|
|
41
|
-
metadata.url = application_1.getAppUrl(context);
|
|
41
|
+
metadata.url = (0, application_1.getAppUrl)(context);
|
|
42
42
|
console.log(`Adding url to app: ${metadata.url}`);
|
|
43
43
|
yield appDb.put(metadata);
|
|
44
44
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.run = void 0;
|
|
36
|
+
const { createUserBuildersView } = require("@budibase/backend-core/db");
|
|
37
|
+
const syncDevelopers = __importStar(require("./usageQuotas/syncDevelopers"));
|
|
38
|
+
/**
|
|
39
|
+
* Date:
|
|
40
|
+
* March 2022
|
|
41
|
+
*
|
|
42
|
+
* Description:
|
|
43
|
+
* Create the builder users view and sync the developer count
|
|
44
|
+
*/
|
|
45
|
+
const run = (db) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
+
yield createUserBuildersView(db);
|
|
47
|
+
yield syncDevelopers.run();
|
|
48
|
+
});
|
|
49
|
+
exports.run = run;
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.run = void 0;
|
|
36
|
+
const syncPublishedApps = __importStar(require("./usageQuotas/syncPublishedApps"));
|
|
37
|
+
/**
|
|
38
|
+
* Date:
|
|
39
|
+
* March 2022
|
|
40
|
+
*
|
|
41
|
+
* Description:
|
|
42
|
+
* Sync the published apps count
|
|
43
|
+
*/
|
|
44
|
+
const run = (db) => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
yield syncPublishedApps.run();
|
|
46
|
+
});
|
|
47
|
+
exports.run = run;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -42,7 +46,7 @@ const syncRows = __importStar(require("./usageQuotas/syncRows"));
|
|
|
42
46
|
* weren't being decremented correctly.
|
|
43
47
|
*/
|
|
44
48
|
const run = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
-
yield usageQuotas_1.runQuotaMigration(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
yield (0, usageQuotas_1.runQuotaMigration)(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
50
|
yield syncApps.run();
|
|
47
51
|
yield syncRows.run();
|
|
48
52
|
}));
|
|
@@ -10,11 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.runQuotaMigration = void 0;
|
|
13
|
-
const { useQuotas } = require("../../../utilities/usageQuota");
|
|
14
13
|
const runQuotaMigration = (migration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
-
if (!useQuotas()) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
14
|
yield migration();
|
|
19
15
|
});
|
|
20
16
|
exports.runQuotaMigration = runQuotaMigration;
|
|
@@ -12,18 +12,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.run = void 0;
|
|
13
13
|
const tenancy_1 = require("@budibase/backend-core/tenancy");
|
|
14
14
|
const db_1 = require("@budibase/backend-core/db");
|
|
15
|
-
const
|
|
15
|
+
const pro_1 = require("@budibase/pro");
|
|
16
16
|
const run = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
-
const db = tenancy_1.getGlobalDB();
|
|
18
17
|
// get app count
|
|
19
18
|
// @ts-ignore
|
|
20
|
-
const devApps = yield db_1.getAllApps({ dev: true });
|
|
19
|
+
const devApps = yield (0, db_1.getAllApps)({ dev: true });
|
|
21
20
|
const appCount = devApps ? devApps.length : 0;
|
|
22
21
|
// sync app count
|
|
23
|
-
const tenantId = tenancy_1.getTenantId();
|
|
22
|
+
const tenantId = (0, tenancy_1.getTenantId)();
|
|
24
23
|
console.log(`[Tenant: ${tenantId}] Syncing app count: ${appCount}`);
|
|
25
|
-
|
|
26
|
-
usageDoc.usageQuota.apps = appCount;
|
|
27
|
-
yield db.put(usageDoc);
|
|
24
|
+
yield pro_1.quotas.setUsage(appCount, pro_1.StaticQuotaName.APPS, pro_1.QuotaUsageType.STATIC);
|
|
28
25
|
});
|
|
29
26
|
exports.run = run;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.run = void 0;
|
|
13
|
+
const tenancy_1 = require("@budibase/backend-core/tenancy");
|
|
14
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
15
|
+
const pro_1 = require("@budibase/pro");
|
|
16
|
+
const run = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
// get developer count
|
|
18
|
+
const developerCount = yield backend_core_1.utils.getBuildersCount();
|
|
19
|
+
// sync developer count
|
|
20
|
+
const tenantId = (0, tenancy_1.getTenantId)();
|
|
21
|
+
console.log(`[Tenant: ${tenantId}] Syncing developer count: ${developerCount}`);
|
|
22
|
+
yield pro_1.quotas.setUsage(developerCount, pro_1.StaticQuotaName.DEVELOPERS, pro_1.QuotaUsageType.STATIC);
|
|
23
|
+
});
|
|
24
|
+
exports.run = run;
|