@budibase/server 1.0.44-alpha.1 → 1.0.44

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 (186) hide show
  1. package/builder/assets/{index.69d37e5e.js → index.bc00c307.js} +231 -231
  2. package/builder/assets/{vendor.10e2ad1b.js → vendor.f9faf6ab.js} +12 -12
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +208 -217
  5. package/coverage/coverage-final.json +5 -5
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +1 -1
  18. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.html +15 -15
  29. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +14 -29
  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/external.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.html +17 -17
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +16 -34
  38. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/utils.js.html +7 -16
  40. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  48. package/coverage/lcov-report/api/index.html +1 -1
  49. package/coverage/lcov-report/api/index.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/hosting.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/permission.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  80. package/coverage/lcov-report/automations/actions.js.html +1 -1
  81. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  82. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  83. package/coverage/lcov-report/automations/index.html +1 -1
  84. package/coverage/lcov-report/automations/index.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/index.html +1 -1
  94. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  112. package/coverage/lcov-report/automations/utils.js.html +1 -1
  113. package/coverage/lcov-report/constants/index.html +1 -1
  114. package/coverage/lcov-report/constants/index.js.html +1 -1
  115. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  116. package/coverage/lcov-report/constants/screens.js.html +1 -1
  117. package/coverage/lcov-report/db/client.js.html +1 -1
  118. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  119. package/coverage/lcov-report/db/index.html +1 -1
  120. package/coverage/lcov-report/db/index.js.html +1 -1
  121. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  122. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  125. package/coverage/lcov-report/db/newid.js.html +1 -1
  126. package/coverage/lcov-report/db/utils.js.html +1 -1
  127. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  128. package/coverage/lcov-report/events/index.html +1 -1
  129. package/coverage/lcov-report/events/index.js.html +1 -1
  130. package/coverage/lcov-report/events/utils.js.html +1 -1
  131. package/coverage/lcov-report/index.html +25 -25
  132. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  133. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  134. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  135. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  136. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  137. package/coverage/lcov-report/middleware/currentapp.js.html +6 -33
  138. package/coverage/lcov-report/middleware/index.html +10 -10
  139. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  140. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  141. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  142. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  143. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  144. package/coverage/lcov-report/threads/automation.js.html +1 -1
  145. package/coverage/lcov-report/threads/index.html +1 -1
  146. package/coverage/lcov-report/threads/index.js.html +1 -1
  147. package/coverage/lcov-report/threads/query.js.html +1 -1
  148. package/coverage/lcov-report/threads/utils.js.html +1 -1
  149. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  150. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  151. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  152. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  153. package/coverage/lcov-report/utilities/global.js.html +1 -1
  154. package/coverage/lcov-report/utilities/index.html +1 -1
  155. package/coverage/lcov-report/utilities/index.js.html +1 -1
  156. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  157. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  158. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  159. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  160. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  161. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  162. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  163. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  164. package/coverage/lcov-report/utilities/security.js.html +1 -1
  165. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  166. package/coverage/lcov-report/utilities/users.js.html +1 -1
  167. package/coverage/lcov-report/utilities/workerRequests.js.html +2 -2
  168. package/coverage/lcov.info +347 -361
  169. package/dist/api/controllers/row/utils.js +6 -12
  170. package/dist/api/controllers/table/index.js +4 -10
  171. package/dist/api/controllers/table/utils.js +2 -4
  172. package/dist/integrations/base/sql.js +6 -13
  173. package/dist/integrations/utils.js +1 -6
  174. package/dist/middleware/currentapp.js +0 -9
  175. package/dist/package.json +4 -4
  176. package/dist/tsconfig.tsbuildinfo +1 -1
  177. package/dist/utilities/workerRequests.js +1 -1
  178. package/package.json +5 -5
  179. package/src/api/controllers/row/utils.js +6 -11
  180. package/src/api/controllers/table/index.js +9 -15
  181. package/src/api/controllers/table/utils.js +1 -4
  182. package/src/integrations/base/sql.ts +7 -14
  183. package/src/integrations/tests/sql.spec.js +0 -16
  184. package/src/integrations/utils.ts +3 -7
  185. package/src/middleware/currentapp.js +0 -9
  186. package/src/utilities/workerRequests.js +1 -1
@@ -71,7 +71,7 @@ exports.getDeployedApps = () => __awaiter(void 0, void 0, void 0, function* () {
71
71
  for (let [key, value] of Object.entries(json)) {
72
72
  if (value.url) {
73
73
  value.url = value.url.toLowerCase();
74
- apps[key] = value;
74
+ apps[key.toLowerCase()] = value;
75
75
  }
76
76
  }
77
77
  return apps;
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.44-alpha.1",
4
+ "version": "1.0.44",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -70,9 +70,9 @@
70
70
  "license": "GPL-3.0",
71
71
  "dependencies": {
72
72
  "@apidevtools/swagger-parser": "^10.0.3",
73
- "@budibase/backend-core": "^1.0.44-alpha.1",
74
- "@budibase/client": "^1.0.44-alpha.1",
75
- "@budibase/string-templates": "^1.0.44-alpha.1",
73
+ "@budibase/backend-core": "^1.0.44",
74
+ "@budibase/client": "^1.0.44",
75
+ "@budibase/string-templates": "^1.0.44",
76
76
  "@bull-board/api": "^3.7.0",
77
77
  "@bull-board/koa": "^3.7.0",
78
78
  "@elastic/elasticsearch": "7.10.0",
@@ -165,5 +165,5 @@
165
165
  "optionalDependencies": {
166
166
  "oracledb": "^5.3.0"
167
167
  },
168
- "gitHead": "89077f9860d5bce6e39e702a3a42fb03bba70e99"
168
+ "gitHead": "2eb6bef9f5255148c820c0b3b5d8d92db7c86a50"
169
169
  }
@@ -61,17 +61,12 @@ exports.validate = async ({ appId, tableId, row, table }) => {
61
61
  let res
62
62
 
63
63
  // Validate.js doesn't seem to handle array
64
- if (type === FieldTypes.ARRAY && row[fieldName]) {
65
- if (row[fieldName].length) {
66
- row[fieldName].map(val => {
67
- if (!constraints.inclusion.includes(val)) {
68
- errors[fieldName] = "Field not in list"
69
- }
70
- })
71
- } else if (constraints.presence && row[fieldName].length === 0) {
72
- // non required MultiSelect creates an empty array, which should not throw errors
73
- errors[fieldName] = [`${fieldName} is required`]
74
- }
64
+ if (type === FieldTypes.ARRAY && row[fieldName] && row[fieldName].length) {
65
+ row[fieldName].map(val => {
66
+ if (!constraints.inclusion.includes(val)) {
67
+ errors[fieldName] = "Field not in list"
68
+ }
69
+ })
75
70
  } else if (type === FieldTypes.JSON && typeof row[fieldName] === "string") {
76
71
  // this should only happen if there is an error
77
72
  try {
@@ -2,7 +2,7 @@ const CouchDB = require("../../../db")
2
2
  const internal = require("./internal")
3
3
  const external = require("./external")
4
4
  const csvParser = require("../../../utilities/csvParser")
5
- const { isExternalTable, isSQL } = require("../../../integrations/utils")
5
+ const { isExternalTable } = require("../../../integrations/utils")
6
6
  const {
7
7
  getTableParams,
8
8
  getDatasourceParams,
@@ -32,8 +32,8 @@ exports.fetch = async function (ctx) {
32
32
  })
33
33
  )
34
34
 
35
- const internal = internalTables.rows.map(tableDoc => ({
36
- ...tableDoc.doc,
35
+ const internal = internalTables.rows.map(row => ({
36
+ ...row.doc,
37
37
  type: "internal",
38
38
  sourceId: BudibaseInternalDB._id,
39
39
  }))
@@ -44,18 +44,12 @@ exports.fetch = async function (ctx) {
44
44
  })
45
45
  )
46
46
 
47
- const external = externalTables.rows.flatMap(tableDoc => {
48
- let entities = tableDoc.doc.entities
49
- if (entities) {
50
- return Object.values(entities).map(entity => ({
51
- ...entity,
52
- type: "external",
53
- sourceId: tableDoc.doc._id,
54
- sql: isSQL(tableDoc.doc),
55
- }))
56
- } else {
57
- return []
58
- }
47
+ const external = externalTables.rows.flatMap(row => {
48
+ return Object.values(row.doc.entities || {}).map(entity => ({
49
+ ...entity,
50
+ type: "external",
51
+ sourceId: row.doc._id,
52
+ }))
59
53
  })
60
54
 
61
55
  ctx.body = [...internal, ...external]
@@ -12,7 +12,6 @@ const { USERS_TABLE_SCHEMA, SwitchableTypes } = require("../../../constants")
12
12
  const {
13
13
  isExternalTable,
14
14
  breakExternalTableId,
15
- isSQL,
16
15
  } = require("../../../integrations/utils")
17
16
  const { getViews, saveView } = require("../view/utils")
18
17
  const viewTemplate = require("../view/viewBuilder")
@@ -243,9 +242,7 @@ exports.getTable = async (appId, tableId) => {
243
242
  const db = new CouchDB(appId)
244
243
  if (isExternalTable(tableId)) {
245
244
  let { datasourceId, tableName } = breakExternalTableId(tableId)
246
- const datasource = await db.get(datasourceId)
247
- const table = await exports.getExternalTable(appId, datasourceId, tableName)
248
- return { ...table, sql: isSQL(datasource) }
245
+ return exports.getExternalTable(appId, datasourceId, tableName)
249
246
  } else {
250
247
  return db.get(tableId)
251
248
  }
@@ -72,22 +72,16 @@ class InternalBuilder {
72
72
 
73
73
  // right now we only do filters on the specific table being queried
74
74
  addFilters(
75
+ tableName: string,
75
76
  query: KnexQuery,
76
- filters: SearchFilters | undefined,
77
- opts: { relationship?: boolean; tableName?: string }
77
+ filters: SearchFilters | undefined
78
78
  ): KnexQuery {
79
79
  function iterate(
80
80
  structure: { [key: string]: any },
81
81
  fn: (key: string, value: any) => void
82
82
  ) {
83
83
  for (let [key, value] of Object.entries(structure)) {
84
- const isRelationshipField = key.includes(".")
85
- if (!opts.relationship && !isRelationshipField) {
86
- fn(`${opts.tableName}.${key}`, value)
87
- }
88
- if (opts.relationship && isRelationshipField) {
89
- fn(key, value)
90
- }
84
+ fn(`${tableName}.${key}`, value)
91
85
  }
92
86
  }
93
87
  if (!filters) {
@@ -278,7 +272,7 @@ class InternalBuilder {
278
272
  if (foundOffset) {
279
273
  query = query.offset(foundOffset)
280
274
  }
281
- query = this.addFilters(query, filters, { tableName })
275
+ query = this.addFilters(tableName, query, filters)
282
276
  // add sorting to pre-query
283
277
  query = this.addSorting(query, json)
284
278
  // @ts-ignore
@@ -291,21 +285,20 @@ class InternalBuilder {
291
285
  preQuery = this.addSorting(preQuery, json)
292
286
  }
293
287
  // handle joins
294
- query = this.addRelationships(
288
+ return this.addRelationships(
295
289
  knex,
296
290
  preQuery,
297
291
  selectStatement,
298
292
  tableName,
299
293
  relationships
300
294
  )
301
- return this.addFilters(query, filters, { relationship: true })
302
295
  }
303
296
 
304
297
  update(knex: Knex, json: QueryJson, opts: QueryOptions): KnexQuery {
305
298
  const { endpoint, body, filters } = json
306
299
  let query: KnexQuery = knex(endpoint.entityId)
307
300
  const parsedBody = parseBody(body)
308
- query = this.addFilters(query, filters, { tableName: endpoint.entityId })
301
+ query = this.addFilters(endpoint.entityId, query, filters)
309
302
  // mysql can't use returning
310
303
  if (opts.disableReturning) {
311
304
  return query.update(parsedBody)
@@ -317,7 +310,7 @@ class InternalBuilder {
317
310
  delete(knex: Knex, json: QueryJson, opts: QueryOptions): KnexQuery {
318
311
  const { endpoint, filters } = json
319
312
  let query: KnexQuery = knex(endpoint.entityId)
320
- query = this.addFilters(query, filters, { tableName: endpoint.entityId })
313
+ query = this.addFilters(endpoint.entityId, query, filters)
321
314
  // mysql can't use returning
322
315
  if (opts.disableReturning) {
323
316
  return query.delete()
@@ -119,22 +119,6 @@ describe("SQL query builder", () => {
119
119
  })
120
120
  })
121
121
 
122
- it("should allow filtering on a related field", () => {
123
- const query = sql._query(generateReadJson({
124
- filters: {
125
- equal: {
126
- age: 10,
127
- "task.name": "task 1",
128
- },
129
- },
130
- }))
131
- // order of bindings changes because relationship filters occur outside inner query
132
- expect(query).toEqual({
133
- bindings: [10, limit, "task 1"],
134
- sql: `select * from (select * from "${TABLE_NAME}" where "${TABLE_NAME}"."age" = $1 limit $2) as "${TABLE_NAME}" where "task"."name" = $3`
135
- })
136
- })
137
-
138
122
  it("should test an create statement", () => {
139
123
  const query = sql._query(generateCreateJson(TABLE_NAME, {
140
124
  name: "Michael",
@@ -1,5 +1,6 @@
1
- import { SourceNames, SqlQuery } from "../definitions/datasource"
1
+ import { SqlQuery } from "../definitions/datasource"
2
2
  import { Datasource, Table } from "../definitions/common"
3
+ import { SourceNames } from "../definitions/datasource"
3
4
  import { DocumentTypes, SEPARATOR } from "../db/utils"
4
5
  import { FieldTypes, BuildSchemaErrors, InvalidColumns } from "../constants"
5
6
 
@@ -126,12 +127,7 @@ export function isSQL(datasource: Datasource): boolean {
126
127
  if (!datasource || !datasource.source) {
127
128
  return false
128
129
  }
129
- const SQL = [
130
- SourceNames.POSTGRES,
131
- SourceNames.SQL_SERVER,
132
- SourceNames.MYSQL,
133
- SourceNames.ORACLE,
134
- ]
130
+ const SQL = [SourceNames.POSTGRES, SourceNames.SQL_SERVER, SourceNames.MYSQL]
135
131
  return SQL.indexOf(datasource.source) !== -1
136
132
  }
137
133
 
@@ -47,15 +47,6 @@ module.exports = async (ctx, next) => {
47
47
  (!ctx.user || !ctx.user.builder || !ctx.user.builder.global)
48
48
  ) {
49
49
  clearCookie(ctx, Cookies.CurrentApp)
50
- // have to set the return url on the server side as client side is not available
51
- setCookie(ctx, ctx.url, Cookies.RETURN_URL, {
52
- // don't sign so the browser can easily read
53
- sign: false,
54
- // use the request domain to match how ui handles the return url cookie.
55
- // it's important we don't use the shared domain here as the builder
56
- // can't delete from it without awareness of the domain.
57
- requestDomain: true,
58
- })
59
50
  return ctx.redirect("/")
60
51
  }
61
52
 
@@ -71,7 +71,7 @@ exports.getDeployedApps = async () => {
71
71
  for (let [key, value] of Object.entries(json)) {
72
72
  if (value.url) {
73
73
  value.url = value.url.toLowerCase()
74
- apps[key] = value
74
+ apps[key.toLowerCase()] = value
75
75
  }
76
76
  }
77
77
  return apps