@budibase/server 1.3.15-alpha.1 → 1.3.15-alpha.4

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 (171) hide show
  1. package/builder/assets/{index.ed9ae6a1.js → index.b7375c37.js} +207 -207
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +125 -118
  4. package/coverage/coverage-final.json +2 -2
  5. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/datasource.js.html +54 -15
  12. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/index.html +19 -19
  14. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/screen.js.html +5 -2
  30. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/bulkFormula.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/templates.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  43. package/coverage/lcov-report/api/index.html +1 -1
  44. package/coverage/lcov-report/api/index.js.html +1 -1
  45. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/index.html +1 -1
  56. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  73. package/coverage/lcov-report/automations/actions.js.html +1 -1
  74. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  75. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  76. package/coverage/lcov-report/automations/index.html +1 -1
  77. package/coverage/lcov-report/automations/index.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/index.html +1 -1
  85. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  104. package/coverage/lcov-report/constants/index.html +1 -1
  105. package/coverage/lcov-report/constants/index.js.html +1 -1
  106. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  107. package/coverage/lcov-report/constants/screens.js.html +1 -1
  108. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  109. package/coverage/lcov-report/db/index.html +1 -1
  110. package/coverage/lcov-report/db/index.js.html +1 -1
  111. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  115. package/coverage/lcov-report/db/newid.js.html +1 -1
  116. package/coverage/lcov-report/db/utils.js.html +1 -1
  117. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  118. package/coverage/lcov-report/events/index.html +1 -1
  119. package/coverage/lcov-report/events/index.js.html +1 -1
  120. package/coverage/lcov-report/events/utils.js.html +1 -1
  121. package/coverage/lcov-report/index.html +19 -19
  122. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  123. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  124. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  125. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  126. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  127. package/coverage/lcov-report/middleware/index.html +1 -1
  128. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  129. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  130. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  131. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  132. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  133. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  134. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  135. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  136. package/coverage/lcov-report/utilities/global.js.html +1 -1
  137. package/coverage/lcov-report/utilities/index.html +1 -1
  138. package/coverage/lcov-report/utilities/index.js.html +1 -1
  139. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  140. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  141. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  142. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  143. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  144. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  146. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  147. package/coverage/lcov-report/utilities/security.js.html +1 -1
  148. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  149. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  150. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  151. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  152. package/coverage/lcov-report/utilities/users.js.html +1 -1
  153. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  154. package/coverage/lcov.info +209 -192
  155. package/dist/api/controllers/datasource.js +17 -4
  156. package/dist/api/controllers/plugin/index.js +4 -1
  157. package/dist/api/controllers/screen.js +1 -0
  158. package/dist/api/controllers/static/templates/preview.hbs +3 -1
  159. package/dist/app.js +2 -0
  160. package/dist/integrations/base/sqlTable.js +3 -1
  161. package/dist/package.json +7 -6
  162. package/dist/tsconfig.build.tsbuildinfo +1 -1
  163. package/dist/websocket.js +22 -0
  164. package/package.json +8 -7
  165. package/src/api/controllers/datasource.js +17 -4
  166. package/src/api/controllers/plugin/index.ts +5 -1
  167. package/src/api/controllers/screen.js +1 -0
  168. package/src/api/controllers/static/templates/preview.hbs +3 -1
  169. package/src/app.ts +2 -0
  170. package/src/integrations/base/sqlTable.ts +3 -1
  171. package/src/websocket.ts +26 -0
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientAppSocket = exports.initialise = void 0;
4
+ const socket_io_1 = require("socket.io");
5
+ class Websocket {
6
+ constructor(server, path) {
7
+ this.socketServer = new socket_io_1.Server(server, {
8
+ path,
9
+ });
10
+ }
11
+ // Emit an event to all sockets
12
+ emit(event, payload) {
13
+ this.socketServer.sockets.emit(event, payload);
14
+ }
15
+ }
16
+ // Likely to be more socket instances in future
17
+ let ClientAppSocket;
18
+ exports.ClientAppSocket = ClientAppSocket;
19
+ const initialise = (server) => {
20
+ exports.ClientAppSocket = ClientAppSocket = new Websocket(server, "/socket/client");
21
+ };
22
+ exports.initialise = initialise;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.3.15-alpha.1",
4
+ "version": "1.3.15-alpha.4",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,11 +77,11 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "1.3.15-alpha.1",
81
- "@budibase/client": "1.3.15-alpha.1",
82
- "@budibase/pro": "1.3.15-alpha.0",
83
- "@budibase/string-templates": "1.3.15-alpha.1",
84
- "@budibase/types": "1.3.15-alpha.1",
80
+ "@budibase/backend-core": "1.3.15-alpha.4",
81
+ "@budibase/client": "1.3.15-alpha.4",
82
+ "@budibase/pro": "1.3.15-alpha.3",
83
+ "@budibase/string-templates": "1.3.15-alpha.4",
84
+ "@budibase/types": "1.3.15-alpha.4",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",
@@ -139,6 +139,7 @@
139
139
  "redis": "4",
140
140
  "server-destroy": "1.0.1",
141
141
  "snowflake-promise": "^4.5.0",
142
+ "socket.io": "^4.5.1",
142
143
  "svelte": "3.49.0",
143
144
  "swagger-parser": "10.0.3",
144
145
  "tar": "6.1.11",
@@ -198,5 +199,5 @@
198
199
  "optionalDependencies": {
199
200
  "oracledb": "5.3.0"
200
201
  },
201
- "gitHead": "a92a8ed882cde62db5903d495112e202173defc7"
202
+ "gitHead": "668928caccc433d754fa67ae33afbd0c268a17eb"
202
203
  }
@@ -50,9 +50,23 @@ exports.fetch = async function (ctx) {
50
50
  exports.buildSchemaFromDb = async function (ctx) {
51
51
  const db = getAppDB()
52
52
  const datasource = await db.get(ctx.params.datasourceId)
53
+ const tablesFilter = ctx.request.body.tablesFilter
53
54
 
54
- const { tables, error } = await buildSchemaHelper(datasource)
55
- datasource.entities = tables
55
+ let { tables, error } = await buildSchemaHelper(datasource)
56
+ if (tablesFilter) {
57
+ if (!datasource.entities) {
58
+ datasource.entities = {}
59
+ }
60
+ for (let key in tables) {
61
+ if (
62
+ tablesFilter.some(filter => filter.toLowerCase() === key.toLowerCase())
63
+ ) {
64
+ datasource.entities[key] = tables[key]
65
+ }
66
+ }
67
+ } else {
68
+ datasource.entities = tables
69
+ }
56
70
 
57
71
  const dbResp = await db.put(datasource)
58
72
  datasource._rev = dbResp.rev
@@ -223,10 +237,9 @@ const buildSchemaHelper = async datasource => {
223
237
  // Connect to the DB and build the schema
224
238
  const connector = new Connector(datasource.config)
225
239
  await connector.buildSchema(datasource._id, datasource.entities)
226
- datasource.entities = connector.tables
227
240
 
228
241
  // make sure they all have a display name selected
229
- for (let entity of Object.values(datasource.entities)) {
242
+ for (let entity of Object.values(datasource.entities ?? {})) {
230
243
  if (entity.primaryDisplay) {
231
244
  continue
232
245
  }
@@ -10,6 +10,7 @@ import {
10
10
  } from "@budibase/backend-core/objectStore"
11
11
  import { PluginType, FileType, PluginSource } from "@budibase/types"
12
12
  import env from "../../../environment"
13
+ import { ClientAppSocket } from "../../../websocket"
13
14
 
14
15
  export async function getPlugins(type?: PluginType) {
15
16
  const db = getGlobalDB()
@@ -132,7 +133,8 @@ export async function storePlugin(
132
133
  const db = getGlobalDB()
133
134
  const version = metadata.package.version,
134
135
  name = metadata.package.name,
135
- description = metadata.package.description
136
+ description = metadata.package.description,
137
+ hash = metadata.schema.hash
136
138
 
137
139
  // first open the tarball into tmp directory
138
140
  const bucketPath = `${name}/`
@@ -174,6 +176,7 @@ export async function storePlugin(
174
176
  ...metadata,
175
177
  name,
176
178
  version,
179
+ hash,
177
180
  description,
178
181
  jsUrl: `${bucketPath}${jsFileName}`,
179
182
  }
@@ -186,6 +189,7 @@ export async function storePlugin(
186
189
  }
187
190
 
188
191
  const response = await db.put(doc)
192
+ ClientAppSocket.emit("plugin-update", { name, hash })
189
193
  return {
190
194
  ...doc,
191
195
  _rev: response.rev,
@@ -71,6 +71,7 @@ exports.save = async ctx => {
71
71
  name: plugin.name,
72
72
  version: plugin.version,
73
73
  jsUrl: plugin.jsUrl,
74
+ hash: plugin.hash,
74
75
  })
75
76
  }
76
77
  })
@@ -67,7 +67,8 @@
67
67
  previewDevice,
68
68
  navigation,
69
69
  hiddenComponentIds,
70
- usedPlugins
70
+ usedPlugins,
71
+ location
71
72
  } = parsed
72
73
 
73
74
  // Set some flags so the app knows we're in the builder
@@ -83,6 +84,7 @@
83
84
  window["##BUDIBASE_PREVIEW_NAVIGATION##"] = navigation
84
85
  window["##BUDIBASE_HIDDEN_COMPONENT_IDS##"] = hiddenComponentIds
85
86
  window["##BUDIBASE_USED_PLUGINS##"] = usedPlugins
87
+ window["##BUDIBASE_LOCATION##"] = location
86
88
 
87
89
  // Initialise app
88
90
  try {
package/src/app.ts CHANGED
@@ -32,6 +32,7 @@ import * as migrations from "./migrations"
32
32
  import { events, installation, tenancy } from "@budibase/backend-core"
33
33
  import { createAdminUser, getChecklist } from "./utilities/workerRequests"
34
34
  import { watch } from "./watch"
35
+ import { initialise as initialiseWebsockets } from "./websocket"
35
36
 
36
37
  const app = new Koa()
37
38
 
@@ -76,6 +77,7 @@ if (env.isProd()) {
76
77
 
77
78
  const server = http.createServer(app.callback())
78
79
  destroyable(server)
80
+ initialiseWebsockets(server)
79
81
 
80
82
  let shuttingDown = false,
81
83
  errCode = 0
@@ -96,7 +96,9 @@ function generateSchema(
96
96
  const deletedColumns = Object.entries(oldTable.schema)
97
97
  .filter(
98
98
  ([key, schema]) =>
99
- schema.type !== FieldTypes.LINK && table.schema[key] == null
99
+ schema.type !== FieldTypes.LINK &&
100
+ schema.type !== FieldTypes.FORMULA &&
101
+ table.schema[key] == null
100
102
  )
101
103
  .map(([key]) => key)
102
104
  deletedColumns.forEach(key => {
@@ -0,0 +1,26 @@
1
+ import { Server } from "socket.io"
2
+ import http from "http"
3
+
4
+ class Websocket {
5
+ socketServer: Server
6
+
7
+ constructor(server: http.Server, path: string) {
8
+ this.socketServer = new Server(server, {
9
+ path,
10
+ })
11
+ }
12
+
13
+ // Emit an event to all sockets
14
+ emit(event: string, payload: any) {
15
+ this.socketServer.sockets.emit(event, payload)
16
+ }
17
+ }
18
+
19
+ // Likely to be more socket instances in future
20
+ let ClientAppSocket: Websocket
21
+
22
+ export const initialise = (server: http.Server) => {
23
+ ClientAppSocket = new Websocket(server, "/socket/client")
24
+ }
25
+
26
+ export { ClientAppSocket }