@budibase/server 1.0.44-alpha.3 → 1.0.44-alpha.7
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.5941b710.js → index.dc63b6b2.js} +68 -67
- package/builder/assets/{index.95f2c619.css → index.deca2e9d.css} +1 -1
- package/builder/index.html +2 -2
- package/coverage/clover.xml +2 -2
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- 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/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.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 +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.js.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/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.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/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.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 +1 -1
- 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/application.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/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.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/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/row.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/static.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- 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/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/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.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/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/automations/utils.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/client.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- 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 +1 -1
- 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/authorized.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +1 -1
- package/coverage/lcov-report/threads/index.js.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +1 -1
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/dist/integrations/utils.js +47 -7
- package/dist/package.json +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/integrations/utils.ts +50 -7
|
@@ -142,8 +142,40 @@ function isIsoDateString(str) {
|
|
|
142
142
|
return d.toISOString() === str;
|
|
143
143
|
}
|
|
144
144
|
exports.isIsoDateString = isIsoDateString;
|
|
145
|
-
|
|
146
|
-
function
|
|
145
|
+
/**
|
|
146
|
+
* This function will determine whether a column is a relationship and whether it
|
|
147
|
+
* is currently valid. The reason for the validity check is that tables can be deleted
|
|
148
|
+
* outside of Budibase control and if this is the case it will break Budibase relationships.
|
|
149
|
+
* The tableIds is a list passed down from the main finalise tables function, which is
|
|
150
|
+
* based on the tables that have just been fetched. This will only really be used on subsequent
|
|
151
|
+
* fetches to the first one - if the user is periodically refreshing Budibase knowledge of tables.
|
|
152
|
+
* @param column The column to check, to see if it is a valid relationship.
|
|
153
|
+
* @param tableIds The IDs of the tables which currently exist.
|
|
154
|
+
*/
|
|
155
|
+
function shouldCopyRelationship(column, tableIds) {
|
|
156
|
+
return column.type === constants_1.FieldTypes.LINK && column.tableId && tableIds.includes(column.tableId);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Similar function to the shouldCopyRelationship function, but instead this looks for options and boolean
|
|
160
|
+
* types. It is possible to switch a string -> options and a number -> boolean (and vice versus) need to make
|
|
161
|
+
* sure that these get copied over when tables are fetched. Also checks whether they are still valid, if a
|
|
162
|
+
* column has changed type in the external database then copying it over may not be possible.
|
|
163
|
+
* @param column The column to check for options or boolean type.
|
|
164
|
+
* @param fetchedColumn The fetched column to check for the type in the external database.
|
|
165
|
+
*/
|
|
166
|
+
function shouldCopySpecialColumn(column, fetchedColumn) {
|
|
167
|
+
return column.type === constants_1.FieldTypes.OPTIONS ||
|
|
168
|
+
((!fetchedColumn || fetchedColumn.type === constants_1.FieldTypes.NUMBER) && column.type === constants_1.FieldTypes.BOOLEAN);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Looks for columns which need to be copied over into the new table definitions, like relationships
|
|
172
|
+
* and options types.
|
|
173
|
+
* @param tableName The name of the table which is being checked.
|
|
174
|
+
* @param table The specific table which is being checked.
|
|
175
|
+
* @param entities All the tables that existed before - the old table definitions.
|
|
176
|
+
* @param tableIds The IDs of the tables which exist now, to check if anything has been removed.
|
|
177
|
+
*/
|
|
178
|
+
function copyExistingPropsOver(tableName, table, entities, tableIds) {
|
|
147
179
|
if (entities && entities[tableName]) {
|
|
148
180
|
if (entities[tableName].primaryDisplay) {
|
|
149
181
|
table.primaryDisplay = entities[tableName].primaryDisplay;
|
|
@@ -153,20 +185,28 @@ function copyExistingPropsOver(tableName, table, entities) {
|
|
|
153
185
|
if (!existingTableSchema.hasOwnProperty(key)) {
|
|
154
186
|
continue;
|
|
155
187
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
(
|
|
159
|
-
existingTableSchema[key].type === constants_1.FieldTypes.BOOLEAN)) {
|
|
188
|
+
const column = existingTableSchema[key];
|
|
189
|
+
if (shouldCopyRelationship(column, tableIds) ||
|
|
190
|
+
shouldCopySpecialColumn(column, table.schema[key])) {
|
|
160
191
|
table.schema[key] = existingTableSchema[key];
|
|
161
192
|
}
|
|
162
193
|
}
|
|
163
194
|
}
|
|
164
195
|
return table;
|
|
165
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Look through the final table definitions to see if anything needs to be
|
|
199
|
+
* copied over from the old and if any errors have occurred mark them so
|
|
200
|
+
* that the user can be made aware.
|
|
201
|
+
* @param tables The list of tables that have been retrieved from the external database.
|
|
202
|
+
* @param entities The old list of tables, if there was any to look for definitions in.
|
|
203
|
+
*/
|
|
166
204
|
function finaliseExternalTables(tables, entities) {
|
|
167
205
|
const invalidColumns = Object.values(constants_1.InvalidColumns);
|
|
168
206
|
let finalTables = {};
|
|
169
207
|
const errors = {};
|
|
208
|
+
// @ts-ignore
|
|
209
|
+
const tableIds = Object.values(tables).map(table => table._id);
|
|
170
210
|
for (let [name, table] of Object.entries(tables)) {
|
|
171
211
|
const schemaFields = Object.keys(table.schema);
|
|
172
212
|
// make sure every table has a key
|
|
@@ -179,7 +219,7 @@ function finaliseExternalTables(tables, entities) {
|
|
|
179
219
|
continue;
|
|
180
220
|
}
|
|
181
221
|
// make sure all previous props have been added back
|
|
182
|
-
finalTables[name] = copyExistingPropsOver(name, table, entities);
|
|
222
|
+
finalTables[name] = copyExistingPropsOver(name, table, entities, tableIds);
|
|
183
223
|
}
|
|
184
224
|
// sort the tables by name
|
|
185
225
|
finalTables = Object.entries(finalTables)
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.0.44-alpha.
|
|
4
|
+
"version": "1.0.44-alpha.6",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"license": "GPL-3.0",
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@apidevtools/swagger-parser": "^10.0.3",
|
|
73
|
-
"@budibase/backend-core": "^1.0.44-alpha.
|
|
74
|
-
"@budibase/client": "^1.0.44-alpha.
|
|
75
|
-
"@budibase/string-templates": "^1.0.44-alpha.
|
|
73
|
+
"@budibase/backend-core": "^1.0.44-alpha.6",
|
|
74
|
+
"@budibase/client": "^1.0.44-alpha.6",
|
|
75
|
+
"@budibase/string-templates": "^1.0.44-alpha.6",
|
|
76
76
|
"@bull-board/api": "^3.7.0",
|
|
77
77
|
"@bull-board/koa": "^3.7.0",
|
|
78
78
|
"@elastic/elasticsearch": "7.10.0",
|