@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.
Files changed (238) hide show
  1. package/builder/assets/index.44dea5cc.js +1312 -0
  2. package/builder/assets/index.c6912819.css +6 -0
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +296 -263
  5. package/coverage/coverage-final.json +10 -10
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +9 -6
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +111 -12
  14. package/coverage/lcov-report/api/controllers/index.html +21 -21
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +47 -17
  25. package/coverage/lcov-report/api/controllers/row/index.html +22 -22
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -8
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +5 -2
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +57 -12
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +17 -17
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +4 -4
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +10 -10
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +9 -6
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +48 -48
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/threads/automation.js.html +2 -2
  135. package/coverage/lcov-report/threads/index.html +1 -1
  136. package/coverage/lcov-report/threads/query.js.html +1 -1
  137. package/coverage/lcov-report/threads/utils.js.html +1 -1
  138. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  139. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  140. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  141. package/coverage/lcov-report/utilities/global.js.html +1 -1
  142. package/coverage/lcov-report/utilities/index.html +15 -15
  143. package/coverage/lcov-report/utilities/index.js.html +27 -9
  144. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  146. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  151. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  152. package/coverage/lcov-report/utilities/security.js.html +1 -1
  153. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  157. package/coverage/lcov-report/utilities/users.js.html +1 -1
  158. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  159. package/coverage/lcov.info +504 -449
  160. package/dist/api/controllers/application.js +1 -1
  161. package/dist/api/controllers/backup.js +3 -2
  162. package/dist/api/controllers/dev.js +25 -2
  163. package/dist/api/controllers/row/external.js +19 -7
  164. package/dist/api/controllers/row/utils.js +3 -0
  165. package/dist/api/controllers/static/index.js +31 -2
  166. package/dist/api/routes/dev.js +2 -1
  167. package/dist/api/routes/static.js +1 -0
  168. package/dist/automations/automationUtils.js +16 -4
  169. package/dist/automations/triggers.js +1 -1
  170. package/dist/db/utils.js +1 -0
  171. package/dist/definitions/datasource.js +1 -0
  172. package/dist/environment.js +1 -1
  173. package/dist/integrations/airtable.js +1 -0
  174. package/dist/integrations/arangodb.js +1 -0
  175. package/dist/integrations/base/sql.js +20 -3
  176. package/dist/integrations/couchdb.js +1 -0
  177. package/dist/integrations/dynamodb.js +1 -0
  178. package/dist/integrations/elasticsearch.js +1 -0
  179. package/dist/integrations/firebase.js +1 -0
  180. package/dist/integrations/googlesheets.js +1 -0
  181. package/dist/integrations/index.js +4 -0
  182. package/dist/integrations/microsoftSqlServer.js +2 -1
  183. package/dist/integrations/mongodb.js +1 -0
  184. package/dist/integrations/mysql.js +2 -1
  185. package/dist/integrations/oracle.js +1 -0
  186. package/dist/integrations/postgres.js +2 -1
  187. package/dist/integrations/redis.js +1 -0
  188. package/dist/integrations/rest.js +1 -0
  189. package/dist/integrations/s3.js +1 -0
  190. package/dist/integrations/snowflake.js +102 -0
  191. package/dist/package.json +7 -6
  192. package/dist/threads/automation.js +1 -1
  193. package/dist/tsconfig.build.tsbuildinfo +1 -1
  194. package/dist/utilities/fileSystem/index.js +16 -6
  195. package/dist/utilities/fileSystem/utilities.js +2 -1
  196. package/dist/utilities/index.js +5 -1
  197. package/package.json +8 -7
  198. package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
  199. package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +23 -0
  200. package/scripts/integrations/oracle/instantclient/linux/install.sh +10 -0
  201. package/src/api/controllers/application.ts +5 -1
  202. package/src/api/controllers/backup.js +3 -2
  203. package/src/api/controllers/dev.js +35 -2
  204. package/src/api/controllers/row/external.js +19 -9
  205. package/src/api/controllers/row/utils.js +3 -0
  206. package/src/api/controllers/static/index.js +41 -2
  207. package/src/api/routes/dev.js +1 -0
  208. package/src/api/routes/static.ts +1 -0
  209. package/src/automations/automationUtils.js +19 -4
  210. package/src/automations/triggers.js +1 -1
  211. package/src/db/utils.js +1 -0
  212. package/src/definitions/common.ts +1 -0
  213. package/src/definitions/datasource.ts +2 -0
  214. package/src/environment.js +2 -1
  215. package/src/integrations/airtable.ts +1 -0
  216. package/src/integrations/arangodb.ts +1 -0
  217. package/src/integrations/base/sql.ts +25 -11
  218. package/src/integrations/couchdb.ts +1 -0
  219. package/src/integrations/dynamodb.ts +1 -0
  220. package/src/integrations/elasticsearch.ts +1 -0
  221. package/src/integrations/firebase.ts +1 -0
  222. package/src/integrations/googlesheets.ts +1 -0
  223. package/src/integrations/index.ts +4 -0
  224. package/src/integrations/microsoftSqlServer.ts +2 -0
  225. package/src/integrations/mongodb.ts +1 -0
  226. package/src/integrations/mysql.ts +2 -0
  227. package/src/integrations/oracle.ts +1 -0
  228. package/src/integrations/postgres.ts +2 -0
  229. package/src/integrations/redis.ts +1 -0
  230. package/src/integrations/rest.ts +1 -0
  231. package/src/integrations/s3.ts +1 -0
  232. package/src/integrations/snowflake.ts +99 -0
  233. package/src/threads/automation.js +1 -1
  234. package/src/utilities/fileSystem/index.js +22 -8
  235. package/src/utilities/fileSystem/utilities.js +2 -0
  236. package/src/utilities/index.js +7 -1
  237. package/builder/assets/index.24307ca0.css +0 -6
  238. 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
 
@@ -17,6 +17,7 @@ module RedisModule {
17
17
  docs: "https://redis.io/docs/",
18
18
  description: "",
19
19
  friendlyName: "Redis",
20
+ type: "Non-relational",
20
21
  datasource: {
21
22
  host: {
22
23
  type: "string",
@@ -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,
@@ -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 === parseInt(env.AUTOMATION_MAX_ITERATIONS) ||
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: doc =>
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
@@ -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}`