@budibase/server 1.0.211 → 1.0.212-alpha.2
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.44dea5cc.js +1312 -0
- package/builder/assets/index.c6912819.css +6 -0
- package/builder/index.html +2 -2
- package/coverage/clover.xml +296 -263
- package/coverage/coverage-final.json +10 -10
- 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 +9 -6
- 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 +111 -12
- package/coverage/lcov-report/api/controllers/index.html +21 -21
- 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 +47 -17
- package/coverage/lcov-report/api/controllers/row/index.html +22 -22
- 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 +17 -8
- 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 +5 -2
- 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 +57 -12
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +17 -17
- 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 +9 -6
- 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 +48 -48
- 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 +2 -2
- 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 +15 -15
- package/coverage/lcov-report/utilities/index.js.html +27 -9
- 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 +504 -449
- package/dist/api/controllers/application.js +1 -1
- package/dist/api/controllers/backup.js +3 -2
- package/dist/api/controllers/dev.js +25 -2
- package/dist/api/controllers/row/external.js +19 -7
- package/dist/api/controllers/row/utils.js +3 -0
- package/dist/api/controllers/static/index.js +31 -2
- package/dist/api/routes/dev.js +2 -1
- package/dist/api/routes/static.js +1 -0
- package/dist/automations/automationUtils.js +16 -4
- package/dist/automations/triggers.js +1 -1
- package/dist/db/utils.js +1 -0
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +1 -1
- package/dist/integrations/airtable.js +1 -0
- package/dist/integrations/arangodb.js +1 -0
- package/dist/integrations/base/sql.js +20 -3
- package/dist/integrations/couchdb.js +1 -0
- package/dist/integrations/dynamodb.js +1 -0
- package/dist/integrations/elasticsearch.js +1 -0
- package/dist/integrations/firebase.js +1 -0
- package/dist/integrations/googlesheets.js +1 -0
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/microsoftSqlServer.js +2 -1
- package/dist/integrations/mongodb.js +1 -0
- package/dist/integrations/mysql.js +2 -1
- package/dist/integrations/oracle.js +1 -0
- package/dist/integrations/postgres.js +2 -1
- package/dist/integrations/redis.js +1 -0
- package/dist/integrations/rest.js +1 -0
- package/dist/integrations/s3.js +1 -0
- package/dist/integrations/snowflake.js +102 -0
- package/dist/package.json +7 -6
- package/dist/threads/automation.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +16 -6
- package/dist/utilities/fileSystem/utilities.js +2 -1
- package/dist/utilities/index.js +5 -1
- package/package.json +8 -7
- package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
- package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +23 -0
- package/scripts/integrations/oracle/instantclient/linux/install.sh +10 -0
- package/src/api/controllers/application.ts +5 -1
- package/src/api/controllers/backup.js +3 -2
- package/src/api/controllers/dev.js +35 -2
- package/src/api/controllers/row/external.js +19 -9
- package/src/api/controllers/row/utils.js +3 -0
- package/src/api/controllers/static/index.js +41 -2
- package/src/api/routes/dev.js +1 -0
- package/src/api/routes/static.ts +1 -0
- package/src/automations/automationUtils.js +19 -4
- package/src/automations/triggers.js +1 -1
- package/src/db/utils.js +1 -0
- package/src/definitions/common.ts +1 -0
- package/src/definitions/datasource.ts +2 -0
- package/src/environment.js +2 -1
- package/src/integrations/airtable.ts +1 -0
- package/src/integrations/arangodb.ts +1 -0
- package/src/integrations/base/sql.ts +25 -11
- package/src/integrations/couchdb.ts +1 -0
- package/src/integrations/dynamodb.ts +1 -0
- package/src/integrations/elasticsearch.ts +1 -0
- package/src/integrations/firebase.ts +1 -0
- package/src/integrations/googlesheets.ts +1 -0
- package/src/integrations/index.ts +4 -0
- package/src/integrations/microsoftSqlServer.ts +2 -0
- package/src/integrations/mongodb.ts +1 -0
- package/src/integrations/mysql.ts +2 -0
- package/src/integrations/oracle.ts +1 -0
- package/src/integrations/postgres.ts +2 -0
- package/src/integrations/redis.ts +1 -0
- package/src/integrations/rest.ts +1 -0
- package/src/integrations/s3.ts +1 -0
- package/src/integrations/snowflake.ts +99 -0
- package/src/threads/automation.js +1 -1
- package/src/utilities/fileSystem/index.js +22 -8
- package/src/utilities/fileSystem/utilities.js +2 -0
- package/src/utilities/index.js +7 -1
- package/builder/assets/index.24307ca0.css +0 -6
- package/builder/assets/index.4c5e5a40.js +0 -1315
|
@@ -24,6 +24,7 @@ module MongoDBModule {
|
|
|
24
24
|
const SCHEMA: Integration = {
|
|
25
25
|
docs: "https://github.com/mongodb/node-mongodb-native",
|
|
26
26
|
friendlyName: "MongoDB",
|
|
27
|
+
type: "Non-relational",
|
|
27
28
|
description:
|
|
28
29
|
"MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era.",
|
|
29
30
|
datasource: {
|
|
@@ -36,6 +36,7 @@ module MySQLModule {
|
|
|
36
36
|
docs: "https://github.com/sidorares/node-mysql2",
|
|
37
37
|
plus: true,
|
|
38
38
|
friendlyName: "MySQL",
|
|
39
|
+
type: "Relational",
|
|
39
40
|
description:
|
|
40
41
|
"MySQL Database Service is a fully managed database service to deploy cloud-native applications. ",
|
|
41
42
|
datasource: {
|
|
@@ -232,6 +233,7 @@ module MySQLModule {
|
|
|
232
233
|
autocolumn: isAuto,
|
|
233
234
|
constraints,
|
|
234
235
|
...convertSqlType(column.Type),
|
|
236
|
+
externalType: column.Type,
|
|
235
237
|
}
|
|
236
238
|
}
|
|
237
239
|
if (!tables[tableName]) {
|
|
@@ -40,6 +40,7 @@ module OracleModule {
|
|
|
40
40
|
docs: "https://github.com/oracle/node-oracledb",
|
|
41
41
|
plus: true,
|
|
42
42
|
friendlyName: "Oracle",
|
|
43
|
+
type: "Relational",
|
|
43
44
|
description:
|
|
44
45
|
"Oracle Database is an object-relational database management system developed by Oracle Corporation",
|
|
45
46
|
datasource: {
|
|
@@ -47,6 +47,7 @@ module PostgresModule {
|
|
|
47
47
|
docs: "https://node-postgres.com",
|
|
48
48
|
plus: true,
|
|
49
49
|
friendlyName: "PostgreSQL",
|
|
50
|
+
type: "Relational",
|
|
50
51
|
description:
|
|
51
52
|
"PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.",
|
|
52
53
|
datasource: {
|
|
@@ -271,6 +272,7 @@ module PostgresModule {
|
|
|
271
272
|
autocolumn: isAuto,
|
|
272
273
|
name: columnName,
|
|
273
274
|
...convertSqlType(column.data_type),
|
|
275
|
+
externalType: column.data_type,
|
|
274
276
|
}
|
|
275
277
|
}
|
|
276
278
|
|
package/src/integrations/rest.ts
CHANGED
|
@@ -64,6 +64,7 @@ module RestModule {
|
|
|
64
64
|
description:
|
|
65
65
|
"With the REST API datasource, you can connect, query and pull data from multiple REST APIs. You can then use the retrieved data to build apps.",
|
|
66
66
|
friendlyName: "REST API",
|
|
67
|
+
type: "API",
|
|
67
68
|
datasource: {
|
|
68
69
|
url: {
|
|
69
70
|
type: DatasourceFieldTypes.STRING,
|
package/src/integrations/s3.ts
CHANGED
|
@@ -17,6 +17,7 @@ module S3Module {
|
|
|
17
17
|
description:
|
|
18
18
|
"Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.",
|
|
19
19
|
friendlyName: "Amazon S3",
|
|
20
|
+
type: "Object store",
|
|
20
21
|
datasource: {
|
|
21
22
|
region: {
|
|
22
23
|
type: "string",
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Integration, QueryTypes, SqlQuery } from "../definitions/datasource"
|
|
2
|
+
import { Snowflake } from "snowflake-promise"
|
|
3
|
+
|
|
4
|
+
module SnowflakeModule {
|
|
5
|
+
interface SnowflakeConfig {
|
|
6
|
+
account: string
|
|
7
|
+
username: string
|
|
8
|
+
password: string
|
|
9
|
+
warehouse: string
|
|
10
|
+
database: string
|
|
11
|
+
schema: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const SCHEMA: Integration = {
|
|
15
|
+
docs: "https://developers.snowflake.com/",
|
|
16
|
+
description:
|
|
17
|
+
"Snowflake is a solution for data warehousing, data lakes, data engineering, data science, data application development, and securely sharing and consuming shared data.",
|
|
18
|
+
friendlyName: "Snowflake",
|
|
19
|
+
type: "Relational",
|
|
20
|
+
datasource: {
|
|
21
|
+
account: {
|
|
22
|
+
type: "string",
|
|
23
|
+
required: true,
|
|
24
|
+
},
|
|
25
|
+
username: {
|
|
26
|
+
type: "string",
|
|
27
|
+
required: true,
|
|
28
|
+
},
|
|
29
|
+
password: {
|
|
30
|
+
type: "password",
|
|
31
|
+
required: true,
|
|
32
|
+
},
|
|
33
|
+
warehouse: {
|
|
34
|
+
type: "string",
|
|
35
|
+
required: true,
|
|
36
|
+
},
|
|
37
|
+
database: {
|
|
38
|
+
type: "string",
|
|
39
|
+
required: true,
|
|
40
|
+
},
|
|
41
|
+
schema: {
|
|
42
|
+
type: "string",
|
|
43
|
+
required: true,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
query: {
|
|
47
|
+
create: {
|
|
48
|
+
type: QueryTypes.SQL,
|
|
49
|
+
},
|
|
50
|
+
read: {
|
|
51
|
+
type: QueryTypes.SQL,
|
|
52
|
+
},
|
|
53
|
+
update: {
|
|
54
|
+
type: QueryTypes.SQL,
|
|
55
|
+
},
|
|
56
|
+
delete: {
|
|
57
|
+
type: QueryTypes.SQL,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
class SnowflakeIntegration {
|
|
63
|
+
private client: Snowflake
|
|
64
|
+
|
|
65
|
+
constructor(config: SnowflakeConfig) {
|
|
66
|
+
this.client = new Snowflake(config)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async internalQuery(query: SqlQuery) {
|
|
70
|
+
await this.client.connect()
|
|
71
|
+
try {
|
|
72
|
+
return await this.client.execute(query.sql)
|
|
73
|
+
} catch (err: any) {
|
|
74
|
+
throw err?.message.split(":")[1] || err?.message
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async create(query: SqlQuery) {
|
|
79
|
+
return this.internalQuery(query)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async read(query: SqlQuery) {
|
|
83
|
+
return this.internalQuery(query)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async update(query: SqlQuery) {
|
|
87
|
+
return this.internalQuery(query)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async delete(query: SqlQuery) {
|
|
91
|
+
return this.internalQuery(query)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
module.exports = {
|
|
96
|
+
schema: SCHEMA,
|
|
97
|
+
integration: SnowflakeIntegration,
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -218,7 +218,7 @@ class Orchestrator {
|
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
if (
|
|
221
|
-
index ===
|
|
221
|
+
index === env.AUTOMATION_MAX_ITERATION ||
|
|
222
222
|
index === parseInt(loopStep.inputs.iterations)
|
|
223
223
|
) {
|
|
224
224
|
this.updateContextAndOutput(loopStepNumber, step, tempOutput, {
|
|
@@ -21,6 +21,7 @@ const env = require("../../environment")
|
|
|
21
21
|
const {
|
|
22
22
|
USER_METDATA_PREFIX,
|
|
23
23
|
LINK_USER_METADATA_PREFIX,
|
|
24
|
+
TABLE_ROW_PREFIX,
|
|
24
25
|
} = require("../../db/utils")
|
|
25
26
|
const MemoryStream = require("memorystream")
|
|
26
27
|
const { getAppId } = require("@budibase/backend-core/context")
|
|
@@ -109,6 +110,23 @@ exports.apiFileReturn = contents => {
|
|
|
109
110
|
return fs.createReadStream(path)
|
|
110
111
|
}
|
|
111
112
|
|
|
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
|
+
|
|
112
130
|
/**
|
|
113
131
|
* Local utility to back up the database state for an app, excluding global user
|
|
114
132
|
* data or user relationships.
|
|
@@ -116,14 +134,10 @@ exports.apiFileReturn = contents => {
|
|
|
116
134
|
* @param {object} config Config to send to export DB
|
|
117
135
|
* @returns {*} either a string or a stream of the backup
|
|
118
136
|
*/
|
|
119
|
-
const backupAppData = async (appId, config) => {
|
|
137
|
+
const backupAppData = async (appId, config, includeRows) => {
|
|
120
138
|
return await exports.exportDB(appId, {
|
|
121
139
|
...config,
|
|
122
|
-
filter:
|
|
123
|
-
!(
|
|
124
|
-
doc._id.includes(USER_METDATA_PREFIX) ||
|
|
125
|
-
doc._id.includes(LINK_USER_METADATA_PREFIX)
|
|
126
|
-
),
|
|
140
|
+
filter: exports.defineFilter(includeRows),
|
|
127
141
|
})
|
|
128
142
|
}
|
|
129
143
|
|
|
@@ -142,8 +156,8 @@ exports.performBackup = async (appId, backupName) => {
|
|
|
142
156
|
* @param {string} appId The ID of the app which is to be backed up.
|
|
143
157
|
* @returns {*} a readable stream of the backup which is written in real time
|
|
144
158
|
*/
|
|
145
|
-
exports.streamBackup = async appId => {
|
|
146
|
-
return await backupAppData(appId, { stream: true })
|
|
159
|
+
exports.streamBackup = async (appId, includeRows) => {
|
|
160
|
+
return await backupAppData(appId, { stream: true }, includeRows)
|
|
147
161
|
}
|
|
148
162
|
|
|
149
163
|
/**
|
|
@@ -9,6 +9,7 @@ const {
|
|
|
9
9
|
deleteFolder,
|
|
10
10
|
uploadDirectory,
|
|
11
11
|
downloadTarball,
|
|
12
|
+
downloadTarballDirect,
|
|
12
13
|
} = require("@budibase/backend-core/objectStore")
|
|
13
14
|
|
|
14
15
|
/***********************************
|
|
@@ -29,4 +30,5 @@ exports.retrieveToTmp = retrieveToTmp
|
|
|
29
30
|
exports.deleteFolder = deleteFolder
|
|
30
31
|
exports.uploadDirectory = uploadDirectory
|
|
31
32
|
exports.downloadTarball = downloadTarball
|
|
33
|
+
exports.downloadTarballDirect = downloadTarballDirect
|
|
32
34
|
exports.deleteFiles = deleteFiles
|
package/src/utilities/index.js
CHANGED
|
@@ -54,11 +54,17 @@ exports.objectStoreUrl = () => {
|
|
|
54
54
|
* @return {string} The URL to be inserted into appPackage response or server rendered
|
|
55
55
|
* app index file.
|
|
56
56
|
*/
|
|
57
|
-
exports.clientLibraryPath = (appId, version) => {
|
|
57
|
+
exports.clientLibraryPath = (appId, version, ctx) => {
|
|
58
58
|
if (env.isProd()) {
|
|
59
|
+
// TODO: remove - for beta testing UI
|
|
60
|
+
if (ctx && ctx.cookies.get("beta:design_ui")) {
|
|
61
|
+
return "https://cdn.budi.live/beta:design_ui/budibase-client.js"
|
|
62
|
+
}
|
|
63
|
+
|
|
59
64
|
let url = `${exports.objectStoreUrl()}/${sanitizeKey(
|
|
60
65
|
appId
|
|
61
66
|
)}/budibase-client.js`
|
|
67
|
+
|
|
62
68
|
// append app version to bust the cache
|
|
63
69
|
if (version) {
|
|
64
70
|
url += `?v=${version}`
|