@budibase/server 1.0.80-alpha.3 → 1.0.80-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 (183) hide show
  1. package/builder/assets/{index.f8c92447.js → index.db9b03fd.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +103 -99
  4. package/coverage/coverage-final.json +1 -1
  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/index.html +1 -1
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/external.js.html +51 -9
  37. package/coverage/lcov-report/api/controllers/table/index.html +14 -14
  38. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  49. package/coverage/lcov-report/api/index.html +1 -1
  50. package/coverage/lcov-report/api/index.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/index.html +1 -1
  63. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  80. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  83. package/coverage/lcov-report/automations/actions.js.html +1 -1
  84. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  85. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  86. package/coverage/lcov-report/automations/index.html +1 -1
  87. package/coverage/lcov-report/automations/index.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/index.html +1 -1
  97. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  115. package/coverage/lcov-report/automations/utils.js.html +1 -1
  116. package/coverage/lcov-report/constants/index.html +1 -1
  117. package/coverage/lcov-report/constants/index.js.html +1 -1
  118. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  119. package/coverage/lcov-report/constants/screens.js.html +1 -1
  120. package/coverage/lcov-report/db/client.js.html +1 -1
  121. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  122. package/coverage/lcov-report/db/index.html +1 -1
  123. package/coverage/lcov-report/db/index.js.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  126. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  127. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  128. package/coverage/lcov-report/db/newid.js.html +1 -1
  129. package/coverage/lcov-report/db/utils.js.html +1 -1
  130. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  131. package/coverage/lcov-report/events/index.html +1 -1
  132. package/coverage/lcov-report/events/index.js.html +1 -1
  133. package/coverage/lcov-report/events/utils.js.html +1 -1
  134. package/coverage/lcov-report/index.html +14 -14
  135. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  136. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  137. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  138. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  139. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  140. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  141. package/coverage/lcov-report/middleware/index.html +1 -1
  142. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  143. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  144. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  145. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  146. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  147. package/coverage/lcov-report/threads/automation.js.html +1 -1
  148. package/coverage/lcov-report/threads/index.html +1 -1
  149. package/coverage/lcov-report/threads/index.js.html +1 -1
  150. package/coverage/lcov-report/threads/query.js.html +1 -1
  151. package/coverage/lcov-report/threads/utils.js.html +1 -1
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  154. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  155. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  156. package/coverage/lcov-report/utilities/global.js.html +1 -1
  157. package/coverage/lcov-report/utilities/index.html +1 -1
  158. package/coverage/lcov-report/utilities/index.js.html +1 -1
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  160. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  161. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  167. package/coverage/lcov-report/utilities/security.js.html +1 -1
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  170. package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
  171. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  173. package/coverage/lcov-report/utilities/users.js.html +1 -1
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  175. package/coverage/lcov.info +169 -162
  176. package/dist/api/controllers/table/external.js +8 -2
  177. package/dist/integrations/base/sqlTable.js +13 -5
  178. package/dist/package.json +4 -4
  179. package/dist/tsconfig.tsbuildinfo +1 -1
  180. package/package.json +5 -5
  181. package/src/api/controllers/table/external.js +16 -2
  182. package/src/definitions/datasource.ts +6 -0
  183. package/src/integrations/base/sqlTable.ts +24 -6
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.80-alpha.3",
4
+ "version": "1.0.80-alpha.4",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -71,9 +71,9 @@
71
71
  "license": "GPL-3.0",
72
72
  "dependencies": {
73
73
  "@apidevtools/swagger-parser": "^10.0.3",
74
- "@budibase/backend-core": "^1.0.80-alpha.3",
75
- "@budibase/client": "^1.0.80-alpha.3",
76
- "@budibase/string-templates": "^1.0.80-alpha.3",
74
+ "@budibase/backend-core": "^1.0.80-alpha.4",
75
+ "@budibase/client": "^1.0.80-alpha.4",
76
+ "@budibase/string-templates": "^1.0.80-alpha.4",
77
77
  "@bull-board/api": "^3.7.0",
78
78
  "@bull-board/koa": "^3.7.0",
79
79
  "@elastic/elasticsearch": "7.10.0",
@@ -175,5 +175,5 @@
175
175
  "optionalDependencies": {
176
176
  "oracledb": "^5.3.0"
177
177
  },
178
- "gitHead": "f7de7ed349ad3413966e5790a2801d1e7e306142"
178
+ "gitHead": "b39d0edec7890af5dcdf92998eee7cfe33f70b95"
179
179
  }
@@ -25,7 +25,8 @@ async function makeTableRequest(
25
25
  operation,
26
26
  table,
27
27
  tables,
28
- oldTable = null
28
+ oldTable = null,
29
+ renamed = null
29
30
  ) {
30
31
  const json = {
31
32
  endpoint: {
@@ -41,6 +42,9 @@ async function makeTableRequest(
41
42
  if (oldTable) {
42
43
  json.meta.table = oldTable
43
44
  }
45
+ if (renamed) {
46
+ json.meta.renamed = renamed
47
+ }
44
48
  return makeExternalQuery(datasource, json)
45
49
  }
46
50
 
@@ -160,6 +164,7 @@ function isRelationshipSetup(column) {
160
164
 
161
165
  exports.save = async function (ctx) {
162
166
  const table = ctx.request.body
167
+ const { _rename: renamed } = table
163
168
  // can't do this right now
164
169
  delete table.dataImport
165
170
  const datasourceId = getDatasourceId(ctx.request.body)
@@ -241,7 +246,14 @@ exports.save = async function (ctx) {
241
246
  const operation = oldTable
242
247
  ? DataSourceOperation.UPDATE_TABLE
243
248
  : DataSourceOperation.CREATE_TABLE
244
- await makeTableRequest(datasource, operation, tableToSave, tables, oldTable)
249
+ await makeTableRequest(
250
+ datasource,
251
+ operation,
252
+ tableToSave,
253
+ tables,
254
+ oldTable,
255
+ renamed
256
+ )
245
257
  // update any extra tables (like foreign keys in other tables)
246
258
  for (let extraTable of extraTablesToUpdate) {
247
259
  const oldExtraTable = oldTables[extraTable.name]
@@ -258,6 +270,8 @@ exports.save = async function (ctx) {
258
270
  )
259
271
  }
260
272
 
273
+ // remove the rename prop
274
+ delete tableToSave._rename
261
275
  // store it into couch now for budibase reference
262
276
  datasource.entities[tableToSave.name] = tableToSave
263
277
  await db.put(datasource)
@@ -138,6 +138,11 @@ export interface PaginationJson {
138
138
  page?: string | number
139
139
  }
140
140
 
141
+ export interface RenameColumn {
142
+ old: string
143
+ updated: string
144
+ }
145
+
141
146
  export interface RelationshipsJson {
142
147
  through?: string
143
148
  from?: string
@@ -166,6 +171,7 @@ export interface QueryJson {
166
171
  meta?: {
167
172
  table?: Table
168
173
  tables?: Record<string, Table>
174
+ renamed: RenameColumn
169
175
  }
170
176
  extra?: {
171
177
  idFilter?: SearchFilters
@@ -1,6 +1,10 @@
1
1
  import { Knex, knex } from "knex"
2
2
  import { Table } from "../../definitions/common"
3
- import { Operation, QueryJson } from "../../definitions/datasource"
3
+ import {
4
+ Operation,
5
+ QueryJson,
6
+ RenameColumn,
7
+ } from "../../definitions/datasource"
4
8
  import { breakExternalTableId } from "../utils"
5
9
  import SchemaBuilder = Knex.SchemaBuilder
6
10
  import CreateTableBuilder = Knex.CreateTableBuilder
@@ -10,7 +14,8 @@ function generateSchema(
10
14
  schema: CreateTableBuilder,
11
15
  table: Table,
12
16
  tables: Record<string, Table>,
13
- oldTable: null | Table = null
17
+ oldTable: null | Table = null,
18
+ renamed?: RenameColumn
14
19
  ) {
15
20
  let primaryKey = table && table.primary ? table.primary[0] : null
16
21
  const columns = Object.values(table.schema)
@@ -29,7 +34,11 @@ function generateSchema(
29
34
  for (let [key, column] of Object.entries(table.schema)) {
30
35
  // skip things that are already correct
31
36
  const oldColumn = oldTable ? oldTable.schema[key] : null
32
- if ((oldColumn && oldColumn.type) || (primaryKey === key && !isJunction)) {
37
+ if (
38
+ (oldColumn && oldColumn.type) ||
39
+ (primaryKey === key && !isJunction) ||
40
+ renamed?.updated === key
41
+ ) {
33
42
  continue
34
43
  }
35
44
  switch (column.type) {
@@ -81,6 +90,10 @@ function generateSchema(
81
90
  }
82
91
  }
83
92
 
93
+ if (renamed) {
94
+ schema.renameColumn(renamed.old, renamed.updated)
95
+ }
96
+
84
97
  // need to check if any columns have been deleted
85
98
  if (oldTable) {
86
99
  const deletedColumns = Object.entries(oldTable.schema)
@@ -90,6 +103,9 @@ function generateSchema(
90
103
  )
91
104
  .map(([key]) => key)
92
105
  deletedColumns.forEach(key => {
106
+ if (renamed?.old === key) {
107
+ return
108
+ }
93
109
  if (oldTable.constrained && oldTable.constrained.indexOf(key) !== -1) {
94
110
  schema.dropForeign(key)
95
111
  }
@@ -114,10 +130,11 @@ function buildUpdateTable(
114
130
  knex: SchemaBuilder,
115
131
  table: Table,
116
132
  tables: Record<string, Table>,
117
- oldTable: Table
133
+ oldTable: Table,
134
+ renamed: RenameColumn
118
135
  ): SchemaBuilder {
119
136
  return knex.alterTable(table.name, schema => {
120
- generateSchema(schema, table, tables, oldTable)
137
+ generateSchema(schema, table, tables, oldTable, renamed)
121
138
  })
122
139
  }
123
140
 
@@ -167,7 +184,8 @@ class SqlTableQueryBuilder {
167
184
  client,
168
185
  json.table,
169
186
  json.meta.tables,
170
- json.meta.table
187
+ json.meta.table,
188
+ json.meta.renamed
171
189
  )
172
190
  break
173
191
  case Operation.DELETE_TABLE: