@budibase/server 1.0.207-alpha.2 → 1.0.208
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.24307ca0.css +6 -0
- package/builder/assets/index.cd64626e.js +1315 -0
- package/builder/index.html +2 -2
- package/coverage/clover.xml +121 -123
- package/coverage/coverage-final.json +5 -5
- package/coverage/lcov-report/api/controllers/apikeys.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 +6 -9
- 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/index.html +7 -7
- 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/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 +23 -8
- package/coverage/lcov-report/api/controllers/row/index.html +16 -16
- 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 +8 -17
- 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/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 +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/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 +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/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.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 +5 -5
- 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 +4 -4
- 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 +10 -10
- 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 +6 -9
- 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 +22 -22
- 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 +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/publicApi.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/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/query.js.html +1 -1
- package/coverage/lcov-report/threads/utils.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/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 +1 -1
- package/coverage/lcov.info +215 -221
- package/dist/api/controllers/backup.js +2 -3
- package/dist/api/controllers/row/external.js +4 -2
- package/dist/api/controllers/row/utils.js +0 -3
- package/dist/automations/triggers.js +1 -1
- package/dist/db/utils.js +0 -1
- package/dist/definitions/datasource.js +0 -1
- package/dist/integrations/index.js +0 -4
- package/dist/integrations/mongodb.js +6 -0
- package/dist/package.json +6 -7
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +6 -16
- package/package.json +7 -8
- package/src/api/controllers/backup.js +2 -3
- package/src/api/controllers/row/external.js +7 -2
- package/src/api/controllers/row/utils.js +0 -3
- package/src/automations/triggers.js +1 -1
- package/src/db/utils.js +0 -1
- package/src/definitions/datasource.ts +0 -1
- package/src/integrations/index.ts +0 -4
- package/src/integrations/mongodb.ts +6 -0
- package/src/utilities/fileSystem/index.js +8 -22
- package/builder/assets/index.c6df2367.css +0 -6
- package/builder/assets/index.ec376520.js +0 -1313
- package/dist/integrations/snowflake.js +0 -101
- package/src/integrations/snowflake.ts +0 -98
|
@@ -17,7 +17,7 @@ const { ObjectStoreBuckets } = require("../../constants");
|
|
|
17
17
|
const { upload, retrieve, retrieveToTmp, streamUpload, deleteFolder, downloadTarball, } = require("./utilities");
|
|
18
18
|
const { updateClientLibrary } = require("./clientLibrary");
|
|
19
19
|
const env = require("../../environment");
|
|
20
|
-
const { USER_METDATA_PREFIX, LINK_USER_METADATA_PREFIX,
|
|
20
|
+
const { USER_METDATA_PREFIX, LINK_USER_METADATA_PREFIX, } = require("../../db/utils");
|
|
21
21
|
const MemoryStream = require("memorystream");
|
|
22
22
|
const { getAppId } = require("@budibase/backend-core/context");
|
|
23
23
|
const TOP_LEVEL_PATH = join(__dirname, "..", "..", "..");
|
|
@@ -98,17 +98,6 @@ exports.apiFileReturn = contents => {
|
|
|
98
98
|
fs.writeFileSync(path, contents);
|
|
99
99
|
return fs.createReadStream(path);
|
|
100
100
|
};
|
|
101
|
-
exports.defineFilter = excludeRows => {
|
|
102
|
-
if (excludeRows) {
|
|
103
|
-
return doc => !(doc._id.includes(USER_METDATA_PREFIX) ||
|
|
104
|
-
doc._id.includes(LINK_USER_METADATA_PREFIX) ||
|
|
105
|
-
doc._id.includes(TABLE_ROW_PREFIX));
|
|
106
|
-
}
|
|
107
|
-
else if (!excludeRows) {
|
|
108
|
-
return doc => !(doc._id.includes(USER_METDATA_PREFIX) ||
|
|
109
|
-
doc._id.includes(LINK_USER_METADATA_PREFIX));
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
101
|
/**
|
|
113
102
|
* Local utility to back up the database state for an app, excluding global user
|
|
114
103
|
* data or user relationships.
|
|
@@ -116,8 +105,9 @@ exports.defineFilter = excludeRows => {
|
|
|
116
105
|
* @param {object} config Config to send to export DB
|
|
117
106
|
* @returns {*} either a string or a stream of the backup
|
|
118
107
|
*/
|
|
119
|
-
const backupAppData = (appId, config
|
|
120
|
-
return yield exports.exportDB(appId, Object.assign(Object.assign({}, config), { filter:
|
|
108
|
+
const backupAppData = (appId, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
|
+
return yield exports.exportDB(appId, Object.assign(Object.assign({}, config), { filter: doc => !(doc._id.includes(USER_METDATA_PREFIX) ||
|
|
110
|
+
doc._id.includes(LINK_USER_METADATA_PREFIX)) }));
|
|
121
111
|
});
|
|
122
112
|
/**
|
|
123
113
|
* Takes a copy of the database state for an app to the object store.
|
|
@@ -133,8 +123,8 @@ exports.performBackup = (appId, backupName) => __awaiter(void 0, void 0, void 0,
|
|
|
133
123
|
* @param {string} appId The ID of the app which is to be backed up.
|
|
134
124
|
* @returns {*} a readable stream of the backup which is written in real time
|
|
135
125
|
*/
|
|
136
|
-
exports.streamBackup = (appId
|
|
137
|
-
return yield backupAppData(appId, { stream: true }
|
|
126
|
+
exports.streamBackup = (appId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
127
|
+
return yield backupAppData(appId, { stream: true });
|
|
138
128
|
});
|
|
139
129
|
/**
|
|
140
130
|
* Exports a DB to either file or a variable (memory).
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.208",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -77,10 +77,10 @@
|
|
|
77
77
|
"license": "GPL-3.0",
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"@apidevtools/swagger-parser": "10.0.3",
|
|
80
|
-
"@budibase/backend-core": "^1.0.
|
|
81
|
-
"@budibase/client": "^1.0.
|
|
82
|
-
"@budibase/pro": "1.0.207
|
|
83
|
-
"@budibase/string-templates": "^1.0.
|
|
80
|
+
"@budibase/backend-core": "^1.0.208",
|
|
81
|
+
"@budibase/client": "^1.0.208",
|
|
82
|
+
"@budibase/pro": "1.0.207",
|
|
83
|
+
"@budibase/string-templates": "^1.0.208",
|
|
84
84
|
"@bull-board/api": "3.7.0",
|
|
85
85
|
"@bull-board/koa": "3.9.4",
|
|
86
86
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -135,7 +135,6 @@
|
|
|
135
135
|
"pouchdb-replication-stream": "1.2.9",
|
|
136
136
|
"redis": "4",
|
|
137
137
|
"server-destroy": "1.0.1",
|
|
138
|
-
"snowflake-promise": "^4.5.0",
|
|
139
138
|
"svelte": "3.44.1",
|
|
140
139
|
"swagger-parser": "10.0.3",
|
|
141
140
|
"to-json-schema": "0.2.5",
|
|
@@ -151,7 +150,7 @@
|
|
|
151
150
|
"@babel/core": "7.17.4",
|
|
152
151
|
"@babel/preset-env": "7.16.11",
|
|
153
152
|
"@budibase/standard-components": "^0.9.139",
|
|
154
|
-
"@budibase/types": "^1.0.
|
|
153
|
+
"@budibase/types": "^1.0.208",
|
|
155
154
|
"@jest/test-sequencer": "24.9.0",
|
|
156
155
|
"@types/apidoc": "0.50.0",
|
|
157
156
|
"@types/bson": "4.2.0",
|
|
@@ -195,5 +194,5 @@
|
|
|
195
194
|
"optionalDependencies": {
|
|
196
195
|
"oracledb": "5.3.0"
|
|
197
196
|
},
|
|
198
|
-
"gitHead": "
|
|
197
|
+
"gitHead": "e750e91b585fec658bd3dd7ba4ed1733360f0492"
|
|
199
198
|
}
|
|
@@ -3,12 +3,11 @@ const { events, context } = require("@budibase/backend-core")
|
|
|
3
3
|
const { DocumentTypes } = require("../../db/utils")
|
|
4
4
|
|
|
5
5
|
exports.exportAppDump = async function (ctx) {
|
|
6
|
-
|
|
6
|
+
const { appId } = ctx.query
|
|
7
7
|
const appName = decodeURI(ctx.query.appname)
|
|
8
|
-
excludeRows = excludeRows === "true"
|
|
9
8
|
const backupIdentifier = `${appName}-export-${new Date().getTime()}.txt`
|
|
10
9
|
ctx.attachment(backupIdentifier)
|
|
11
|
-
ctx.body = await streamBackup(appId
|
|
10
|
+
ctx.body = await streamBackup(appId)
|
|
12
11
|
|
|
13
12
|
await context.doInAppContext(appId, async () => {
|
|
14
13
|
const appDb = context.getAppDB()
|
|
@@ -155,22 +155,27 @@ exports.validate = async () => {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
exports.exportRows = async ctx => {
|
|
158
|
-
const { datasourceId } = breakExternalTableId(ctx.params.tableId)
|
|
158
|
+
const { datasourceId, tableName } = breakExternalTableId(ctx.params.tableId)
|
|
159
159
|
const db = getAppDB()
|
|
160
160
|
let format = ctx.query.format
|
|
161
161
|
const datasource = await db.get(datasourceId)
|
|
162
162
|
if (!datasource || !datasource.entities) {
|
|
163
163
|
ctx.throw(400, "Datasource has not been configured for plus API.")
|
|
164
164
|
}
|
|
165
|
+
const tables = datasource.entities
|
|
166
|
+
const table = tables[tableName]
|
|
165
167
|
ctx.request.body = {
|
|
166
168
|
query: {
|
|
167
169
|
oneOf: {
|
|
168
|
-
|
|
170
|
+
[table.primaryDisplay]: ctx.request.body.rows.map(
|
|
171
|
+
id => breakRowIdField(id)[0]
|
|
172
|
+
),
|
|
169
173
|
},
|
|
170
174
|
},
|
|
171
175
|
}
|
|
172
176
|
|
|
173
177
|
let result = await exports.search(ctx)
|
|
178
|
+
|
|
174
179
|
let headers = Object.keys(result.rows[0])
|
|
175
180
|
const exporter = exporters[format]
|
|
176
181
|
const filename = `export.${format}`
|
|
@@ -64,9 +64,6 @@ exports.validate = async ({ tableId, row, table }) => {
|
|
|
64
64
|
// Validate.js doesn't seem to handle array
|
|
65
65
|
if (type === FieldTypes.ARRAY && row[fieldName]) {
|
|
66
66
|
if (row[fieldName].length) {
|
|
67
|
-
if (!Array.isArray(row[fieldName])) {
|
|
68
|
-
row[fieldName] = row[fieldName].split(",")
|
|
69
|
-
}
|
|
70
67
|
row[fieldName].map(val => {
|
|
71
68
|
if (
|
|
72
69
|
!constraints.inclusion.includes(val) &&
|
|
@@ -97,7 +97,7 @@ exports.externalTrigger = async function (
|
|
|
97
97
|
// values are likely to be submitted as strings, so we shall convert to correct type
|
|
98
98
|
const coercedFields = {}
|
|
99
99
|
const fields = automation.definition.trigger.inputs.fields
|
|
100
|
-
for (let key of Object.keys(fields
|
|
100
|
+
for (let key of Object.keys(fields)) {
|
|
101
101
|
coercedFields[key] = coerce(params.fields[key], fields[key])
|
|
102
102
|
}
|
|
103
103
|
params.fields = coercedFields
|
package/src/db/utils.js
CHANGED
|
@@ -74,7 +74,6 @@ exports.isDevAppID = isDevAppID
|
|
|
74
74
|
exports.isProdAppID = isProdAppID
|
|
75
75
|
exports.USER_METDATA_PREFIX = `${DocumentTypes.ROW}${SEPARATOR}${InternalTables.USER_METADATA}${SEPARATOR}`
|
|
76
76
|
exports.LINK_USER_METADATA_PREFIX = `${DocumentTypes.LINK}${SEPARATOR}${InternalTables.USER_METADATA}${SEPARATOR}`
|
|
77
|
-
exports.TABLE_ROW_PREFIX = `${DocumentTypes.ROW}${SEPARATOR}${DocumentTypes.TABLE}`
|
|
78
77
|
exports.ViewNames = ViewNames
|
|
79
78
|
exports.InternalTables = InternalTables
|
|
80
79
|
exports.DocumentTypes = DocumentTypes
|
|
@@ -12,7 +12,6 @@ const rest = require("./rest")
|
|
|
12
12
|
const googlesheets = require("./googlesheets")
|
|
13
13
|
const firebase = require("./firebase")
|
|
14
14
|
const redis = require("./redis")
|
|
15
|
-
const snowflake = require("./snowflake")
|
|
16
15
|
const { SourceNames } = require("../definitions/datasource")
|
|
17
16
|
const environment = require("../environment")
|
|
18
17
|
|
|
@@ -30,7 +29,6 @@ const DEFINITIONS = {
|
|
|
30
29
|
[SourceNames.REST]: rest.schema,
|
|
31
30
|
[SourceNames.FIRESTORE]: firebase.schema,
|
|
32
31
|
[SourceNames.REDIS]: redis.schema,
|
|
33
|
-
[SourceNames.SNOWFLAKE]: snowflake.schema,
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
const INTEGRATIONS = {
|
|
@@ -48,8 +46,6 @@ const INTEGRATIONS = {
|
|
|
48
46
|
[SourceNames.FIRESTORE]: firebase.integration,
|
|
49
47
|
[SourceNames.GOOGLE_SHEETS]: googlesheets.integration,
|
|
50
48
|
[SourceNames.REDIS]: redis.integration,
|
|
51
|
-
[SourceNames.FIREBASE]: firebase.integration,
|
|
52
|
-
[SourceNames.SNOWFLAKE]: snowflake.integration,
|
|
53
49
|
}
|
|
54
50
|
|
|
55
51
|
// optionally add oracle integration if the oracle binary can be installed
|
|
@@ -21,7 +21,6 @@ const env = require("../../environment")
|
|
|
21
21
|
const {
|
|
22
22
|
USER_METDATA_PREFIX,
|
|
23
23
|
LINK_USER_METADATA_PREFIX,
|
|
24
|
-
TABLE_ROW_PREFIX,
|
|
25
24
|
} = require("../../db/utils")
|
|
26
25
|
const MemoryStream = require("memorystream")
|
|
27
26
|
const { getAppId } = require("@budibase/backend-core/context")
|
|
@@ -110,23 +109,6 @@ exports.apiFileReturn = contents => {
|
|
|
110
109
|
return fs.createReadStream(path)
|
|
111
110
|
}
|
|
112
111
|
|
|
113
|
-
exports.defineFilter = excludeRows => {
|
|
114
|
-
if (excludeRows) {
|
|
115
|
-
return doc =>
|
|
116
|
-
!(
|
|
117
|
-
doc._id.includes(USER_METDATA_PREFIX) ||
|
|
118
|
-
doc._id.includes(LINK_USER_METADATA_PREFIX) ||
|
|
119
|
-
doc._id.includes(TABLE_ROW_PREFIX)
|
|
120
|
-
)
|
|
121
|
-
} else if (!excludeRows) {
|
|
122
|
-
return doc =>
|
|
123
|
-
!(
|
|
124
|
-
doc._id.includes(USER_METDATA_PREFIX) ||
|
|
125
|
-
doc._id.includes(LINK_USER_METADATA_PREFIX)
|
|
126
|
-
)
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
112
|
/**
|
|
131
113
|
* Local utility to back up the database state for an app, excluding global user
|
|
132
114
|
* data or user relationships.
|
|
@@ -134,10 +116,14 @@ exports.defineFilter = excludeRows => {
|
|
|
134
116
|
* @param {object} config Config to send to export DB
|
|
135
117
|
* @returns {*} either a string or a stream of the backup
|
|
136
118
|
*/
|
|
137
|
-
const backupAppData = async (appId, config
|
|
119
|
+
const backupAppData = async (appId, config) => {
|
|
138
120
|
return await exports.exportDB(appId, {
|
|
139
121
|
...config,
|
|
140
|
-
filter:
|
|
122
|
+
filter: doc =>
|
|
123
|
+
!(
|
|
124
|
+
doc._id.includes(USER_METDATA_PREFIX) ||
|
|
125
|
+
doc._id.includes(LINK_USER_METADATA_PREFIX)
|
|
126
|
+
),
|
|
141
127
|
})
|
|
142
128
|
}
|
|
143
129
|
|
|
@@ -156,8 +142,8 @@ exports.performBackup = async (appId, backupName) => {
|
|
|
156
142
|
* @param {string} appId The ID of the app which is to be backed up.
|
|
157
143
|
* @returns {*} a readable stream of the backup which is written in real time
|
|
158
144
|
*/
|
|
159
|
-
exports.streamBackup = async
|
|
160
|
-
return await backupAppData(appId, { stream: true }
|
|
145
|
+
exports.streamBackup = async appId => {
|
|
146
|
+
return await backupAppData(appId, { stream: true })
|
|
161
147
|
}
|
|
162
148
|
|
|
163
149
|
/**
|