@budibase/server 1.0.30 → 1.0.34

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 (179) hide show
  1. package/builder/assets/{index.2ccab04a.js → index.9b7f029a.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +60 -59
  4. package/coverage/coverage-final.json +2 -2
  5. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/index.html +14 -14
  17. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query.js.html +18 -9
  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 +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  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/external.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  45. package/coverage/lcov-report/api/index.html +1 -1
  46. package/coverage/lcov-report/api/index.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/index.html +1 -1
  60. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  77. package/coverage/lcov-report/automations/actions.js.html +1 -1
  78. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  79. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  80. package/coverage/lcov-report/automations/index.html +1 -1
  81. package/coverage/lcov-report/automations/index.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/index.html +1 -1
  91. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  109. package/coverage/lcov-report/automations/utils.js.html +1 -1
  110. package/coverage/lcov-report/constants/index.html +1 -1
  111. package/coverage/lcov-report/constants/index.js.html +1 -1
  112. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  113. package/coverage/lcov-report/constants/screens.js.html +1 -1
  114. package/coverage/lcov-report/db/client.js.html +1 -1
  115. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  116. package/coverage/lcov-report/db/index.html +1 -1
  117. package/coverage/lcov-report/db/index.js.html +1 -1
  118. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  119. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  120. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  121. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  122. package/coverage/lcov-report/db/newid.js.html +1 -1
  123. package/coverage/lcov-report/db/utils.js.html +1 -1
  124. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  125. package/coverage/lcov-report/events/index.html +1 -1
  126. package/coverage/lcov-report/events/index.js.html +1 -1
  127. package/coverage/lcov-report/events/utils.js.html +1 -1
  128. package/coverage/lcov-report/index.html +15 -15
  129. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  130. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  131. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  132. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  133. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  134. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  135. package/coverage/lcov-report/middleware/index.html +1 -1
  136. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  137. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  138. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  139. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  140. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  141. package/coverage/lcov-report/threads/automation.js.html +1 -1
  142. package/coverage/lcov-report/threads/index.html +1 -1
  143. package/coverage/lcov-report/threads/index.js.html +1 -1
  144. package/coverage/lcov-report/threads/query.js.html +1 -1
  145. package/coverage/lcov-report/threads/utils.js.html +1 -1
  146. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  147. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  148. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  149. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  150. package/coverage/lcov-report/utilities/global.js.html +1 -1
  151. package/coverage/lcov-report/utilities/index.html +5 -5
  152. package/coverage/lcov-report/utilities/index.js.html +4 -4
  153. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  154. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  155. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  156. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  157. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  158. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  159. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  160. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  161. package/coverage/lcov-report/utilities/security.js.html +1 -1
  162. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  163. package/coverage/lcov-report/utilities/users.js.html +1 -1
  164. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  165. package/coverage/lcov.info +103 -98
  166. package/dist/api/controllers/query.js +4 -1
  167. package/dist/environment.js +1 -0
  168. package/dist/integrations/dynamodb.js +19 -0
  169. package/dist/integrations/s3.js +17 -8
  170. package/dist/package.json +4 -4
  171. package/dist/tsconfig.tsbuildinfo +1 -1
  172. package/dist/utilities/index.js +1 -1
  173. package/package.json +5 -5
  174. package/src/api/controllers/query.js +4 -1
  175. package/src/environment.js +1 -0
  176. package/src/integrations/dynamodb.ts +18 -0
  177. package/src/integrations/oracle.ts +1 -1
  178. package/src/integrations/s3.ts +18 -7
  179. package/src/utilities/index.js +1 -1
@@ -38,7 +38,7 @@ exports.checkSlashesInUrl = url => {
38
38
  * @return {string} The base URL of the object store (MinIO or S3).
39
39
  */
40
40
  exports.objectStoreUrl = () => {
41
- if (env.SELF_HOSTED) {
41
+ if (env.SELF_HOSTED || env.MINIO_URL) {
42
42
  // can use a relative url for this as all goes through the proxy (this is hosted in minio)
43
43
  return OBJ_STORE_DIRECTORY;
44
44
  }
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.30",
4
+ "version": "1.0.34",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -69,9 +69,9 @@
69
69
  "author": "Budibase",
70
70
  "license": "GPL-3.0",
71
71
  "dependencies": {
72
- "@budibase/auth": "^1.0.30",
73
- "@budibase/client": "^1.0.30",
74
- "@budibase/string-templates": "^1.0.30",
72
+ "@budibase/auth": "^1.0.34",
73
+ "@budibase/client": "^1.0.34",
74
+ "@budibase/string-templates": "^1.0.34",
75
75
  "@bull-board/api": "^3.7.0",
76
76
  "@bull-board/koa": "^3.7.0",
77
77
  "@elastic/elasticsearch": "7.10.0",
@@ -158,5 +158,5 @@
158
158
  "optionalDependencies": {
159
159
  "oracledb": "^5.3.0"
160
160
  },
161
- "gitHead": "c0d2f5771e61f2fc57ab2f6734ad2f85996ad20d"
161
+ "gitHead": "6956473843005472b44d7716f6da370631ba140c"
162
162
  }
@@ -7,8 +7,11 @@ const {
7
7
  } = require("../../db/utils")
8
8
  const { BaseQueryVerbs } = require("../../constants")
9
9
  const { Thread, ThreadType } = require("../../threads")
10
+ const env = require("../../environment")
10
11
 
11
- const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 })
12
+ const Runner = new Thread(ThreadType.QUERY, {
13
+ timeoutMs: env.QUERY_THREAD_TIMEOUT || 10000,
14
+ })
12
15
 
13
16
  // simple function to append "readable" to all read queries
14
17
  function enrichQueries(input) {
@@ -65,6 +65,7 @@ module.exports = {
65
65
  DEPLOYMENT_CREDENTIALS_URL: process.env.DEPLOYMENT_CREDENTIALS_URL,
66
66
  ALLOW_DEV_AUTOMATIONS: process.env.ALLOW_DEV_AUTOMATIONS,
67
67
  DISABLE_THREADING: process.env.DISABLE_THREADING,
68
+ QUERY_THREAD_TIMEOUT: process.env.QUERY_THREAD_TIMEOUT,
68
69
  _set(key, value) {
69
70
  process.env[key] = value
70
71
  module.exports[key] = value
@@ -80,6 +80,17 @@ module DynamoModule {
80
80
  },
81
81
  },
82
82
  },
83
+ describe: {
84
+ type: QueryTypes.FIELDS,
85
+ customisable: true,
86
+ readable: true,
87
+ fields: {
88
+ table: {
89
+ type: DatasourceFieldTypes.STRING,
90
+ required: true,
91
+ },
92
+ },
93
+ },
83
94
  get: {
84
95
  type: QueryTypes.FIELDS,
85
96
  customisable: true,
@@ -180,6 +191,13 @@ module DynamoModule {
180
191
  return response
181
192
  }
182
193
 
194
+ async describe(query: { table: string }) {
195
+ const params = {
196
+ TableName: query.table,
197
+ }
198
+ return new AWS.DynamoDB().describeTable(params).promise()
199
+ }
200
+
183
201
  async get(query: { table: string; json: object }) {
184
202
  const params = {
185
203
  TableName: query.table,
@@ -450,7 +450,7 @@ module OracleModule {
450
450
  })
451
451
  return lastRow.rows
452
452
  } else {
453
- return [{ [ operation.toLowerCase() ]: true }]
453
+ return [{ [operation.toLowerCase()]: true }]
454
454
  }
455
455
  }
456
456
  }
@@ -8,6 +8,8 @@ module S3Module {
8
8
  region: string
9
9
  accessKeyId: string
10
10
  secretAccessKey: string
11
+ s3ForcePathStyle: boolean
12
+ endpoint?: string
11
13
  }
12
14
 
13
15
  const SCHEMA: Integration = {
@@ -18,7 +20,7 @@ module S3Module {
18
20
  datasource: {
19
21
  region: {
20
22
  type: "string",
21
- required: true,
23
+ required: false,
22
24
  default: "us-east-1",
23
25
  },
24
26
  accessKeyId: {
@@ -29,6 +31,15 @@ module S3Module {
29
31
  type: "password",
30
32
  required: true,
31
33
  },
34
+ endpoint: {
35
+ type: "string",
36
+ required: false,
37
+ },
38
+ signatureVersion: {
39
+ type: "string",
40
+ required: false,
41
+ default: "v4"
42
+ },
32
43
  },
33
44
  query: {
34
45
  read: {
@@ -46,16 +57,16 @@ module S3Module {
46
57
  class S3Integration implements IntegrationBase {
47
58
  private readonly config: S3Config
48
59
  private client: any
49
- private connectionPromise: Promise<any>
50
60
 
51
61
  constructor(config: S3Config) {
52
62
  this.config = config
53
- this.connectionPromise = this.connect()
54
- this.client = new AWS.S3()
55
- }
63
+ if (this.config.endpoint) {
64
+ this.config.s3ForcePathStyle = true
65
+ } else {
66
+ delete this.config.endpoint
67
+ }
56
68
 
57
- async connect() {
58
- AWS.config.update(this.config)
69
+ this.client = new AWS.S3(this.config)
59
70
  }
60
71
 
61
72
  async read(query: { bucket: string }) {
@@ -34,7 +34,7 @@ exports.checkSlashesInUrl = url => {
34
34
  * @return {string} The base URL of the object store (MinIO or S3).
35
35
  */
36
36
  exports.objectStoreUrl = () => {
37
- if (env.SELF_HOSTED) {
37
+ if (env.SELF_HOSTED || env.MINIO_URL) {
38
38
  // can use a relative url for this as all goes through the proxy (this is hosted in minio)
39
39
  return OBJ_STORE_DIRECTORY
40
40
  } else {