@budibase/server 2.1.43-alpha.0 → 2.1.43-alpha.10

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 (375) hide show
  1. package/builder/assets/index.183b181c.css +6 -0
  2. package/builder/assets/{index.17a2178b.js → index.c8b919df.js} +322 -322
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +902 -867
  5. package/coverage/coverage-final.json +25 -20
  6. package/coverage/lcov-report/index.html +75 -45
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +86 -233
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +1 -1
  11. package/coverage/lcov-report/src/api/controllers/automation.ts.html +1 -1
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +5 -2
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +1 -1
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +1 -1
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +1 -1
  20. package/coverage/lcov-report/src/api/controllers/index.html +28 -28
  21. package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/layout.ts.html +1 -1
  23. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/permission.ts.html +1 -1
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +1 -1
  59. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
  60. package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +13 -4
  63. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +1 -1
  64. package/coverage/lcov-report/src/api/controllers/row/index.html +4 -4
  65. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +1 -1
  66. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +1 -1
  67. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
  68. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +1 -1
  69. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +1 -1
  70. package/coverage/lcov-report/src/api/controllers/screen.ts.html +1 -1
  71. package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
  72. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  73. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +1 -1
  74. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +1 -1
  75. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1 -1
  76. package/coverage/lcov-report/src/api/controllers/table/index.html +1 -1
  77. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +1 -1
  78. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +1 -1
  79. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
  81. package/coverage/lcov-report/src/api/controllers/user.ts.html +13 -184
  82. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
  83. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +1 -1
  85. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
  87. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +1 -1
  88. package/coverage/lcov-report/src/api/index.html +1 -1
  89. package/coverage/lcov-report/src/api/index.ts.html +1 -1
  90. package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
  91. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
  92. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  94. package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
  95. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
  97. package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
  98. package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
  99. package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
  100. package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  103. package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
  104. package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/row.ts.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
  127. package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
  128. package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
  133. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  137. package/coverage/lcov-report/src/app.ts.html +1 -1
  138. package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
  139. package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
  140. package/coverage/lcov-report/src/automations/bullboard.ts.html +1 -1
  141. package/coverage/lcov-report/src/automations/index.html +1 -1
  142. package/coverage/lcov-report/src/automations/index.ts.html +1 -1
  143. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  144. package/coverage/lcov-report/src/automations/logging/index.ts.html +1 -1
  145. package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
  146. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  147. package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
  148. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  149. package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
  150. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
  151. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
  152. package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
  153. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
  155. package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
  158. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
  159. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
  160. package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
  161. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
  162. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  163. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
  164. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  165. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
  167. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
  168. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +1 -1
  170. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
  174. package/coverage/lcov-report/src/automations/triggers.ts.html +1 -1
  175. package/coverage/lcov-report/src/automations/utils.ts.html +1 -1
  176. package/coverage/lcov-report/src/constants/index.html +1 -1
  177. package/coverage/lcov-report/src/constants/index.ts.html +1 -1
  178. package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
  179. package/coverage/lcov-report/src/constants/screens.ts.html +1 -1
  180. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
  181. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
  182. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
  183. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  184. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
  185. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
  186. package/coverage/lcov-report/src/db/dynamoClient.ts.html +1 -1
  187. package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
  188. package/coverage/lcov-report/src/db/index.html +1 -1
  189. package/coverage/lcov-report/src/db/index.ts.html +1 -1
  190. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +1 -1
  191. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
  192. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  193. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +1 -1
  194. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +1 -1
  195. package/coverage/lcov-report/src/db/newid.ts.html +1 -1
  196. package/coverage/lcov-report/src/db/utils.ts.html +1 -1
  197. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  198. package/coverage/lcov-report/src/definitions/datasource.ts.html +1 -1
  199. package/coverage/lcov-report/src/definitions/index.html +1 -1
  200. package/coverage/lcov-report/src/environment.ts.html +1 -1
  201. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
  202. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
  203. package/coverage/lcov-report/src/events/index.html +1 -1
  204. package/coverage/lcov-report/src/events/index.ts.html +1 -1
  205. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  206. package/coverage/lcov-report/src/index.html +1 -1
  207. package/coverage/lcov-report/src/index.ts.html +1 -1
  208. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  209. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  211. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  212. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1 -1
  213. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +1 -1
  214. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  215. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  216. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  217. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  218. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  219. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  220. package/coverage/lcov-report/src/integrations/index.html +30 -30
  221. package/coverage/lcov-report/src/integrations/index.ts.html +1 -1
  222. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +33 -27
  223. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  224. package/coverage/lcov-report/src/integrations/mysql.ts.html +8 -5
  225. package/coverage/lcov-report/src/integrations/oracle.ts.html +40 -127
  226. package/coverage/lcov-report/src/integrations/postgres.ts.html +26 -8
  227. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  228. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  229. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  230. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  232. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  233. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  234. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  235. package/coverage/lcov-report/src/integrations/utils.ts.html +1 -1
  236. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  237. package/coverage/lcov-report/src/middleware/authorized.ts.html +1 -1
  238. package/coverage/lcov-report/src/middleware/builder.ts.html +1 -1
  239. package/coverage/lcov-report/src/middleware/currentapp.ts.html +1 -1
  240. package/coverage/lcov-report/src/middleware/index.html +1 -1
  241. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  242. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  243. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  244. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  245. package/coverage/lcov-report/src/middleware/utils.ts.html +1 -1
  246. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +8 -29
  247. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  248. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/index.html +11 -11
  265. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  273. package/coverage/lcov-report/src/migrations/index.html +1 -1
  274. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  275. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  276. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  277. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  278. package/coverage/lcov-report/src/sdk/app/applications/index.html +146 -0
  279. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +106 -0
  280. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +244 -0
  281. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +136 -0
  282. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  283. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  284. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  285. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  286. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  287. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +17 -17
  288. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  289. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  290. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  291. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  292. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  293. package/coverage/lcov-report/src/sdk/index.html +5 -5
  294. package/coverage/lcov-report/src/sdk/index.ts.html +15 -12
  295. package/coverage/lcov-report/src/sdk/users/index.html +131 -0
  296. package/coverage/lcov-report/src/sdk/users/index.ts.html +100 -0
  297. package/coverage/lcov-report/src/sdk/users/utils.ts.html +277 -0
  298. package/coverage/lcov-report/src/startup.ts.html +1 -1
  299. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +1 -1
  300. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +1 -1
  301. package/coverage/lcov-report/src/tests/utilities/index.html +1 -1
  302. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  303. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +1 -1
  304. package/coverage/lcov-report/src/threads/automation.ts.html +1 -1
  305. package/coverage/lcov-report/src/threads/index.html +1 -1
  306. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  307. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  308. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  309. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +1 -1
  310. package/coverage/lcov-report/src/utilities/centralPath.ts.html +1 -1
  311. package/coverage/lcov-report/src/utilities/csvParser.ts.html +1 -1
  312. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  313. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  314. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  315. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  316. package/coverage/lcov-report/src/utilities/global.ts.html +34 -34
  317. package/coverage/lcov-report/src/utilities/index.html +1 -1
  318. package/coverage/lcov-report/src/utilities/index.ts.html +1 -1
  319. package/coverage/lcov-report/src/utilities/plugins.ts.html +1 -1
  320. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  321. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  322. package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
  323. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  324. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +1 -1
  325. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +1 -1
  326. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +1 -1
  327. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
  328. package/coverage/lcov-report/src/utilities/security.ts.html +1 -1
  329. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  330. package/coverage/lcov-report/src/utilities/usageQuota/index.html +15 -15
  331. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +13 -13
  332. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  333. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  334. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +1 -1
  335. package/coverage/lcov-report/src/watch.ts.html +1 -1
  336. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  337. package/coverage/lcov.info +1539 -1479
  338. package/dist/api/controllers/application.js +419 -438
  339. package/dist/api/controllers/cloud.js +1 -0
  340. package/dist/api/controllers/row/ExternalRequest.js +2 -1
  341. package/dist/api/controllers/user.js +7 -48
  342. package/dist/integrations/base/types.js +2 -0
  343. package/dist/integrations/microsoftSqlServer.js +8 -3
  344. package/dist/integrations/oracle.js +8 -1
  345. package/dist/integrations/postgres.js +6 -3
  346. package/dist/migrations/functions/appUrls.js +5 -9
  347. package/dist/package.json +6 -6
  348. package/dist/sdk/app/applications/index.js +28 -0
  349. package/dist/sdk/app/applications/sync.js +66 -0
  350. package/dist/sdk/app/applications/utils.js +21 -0
  351. package/dist/sdk/index.js +4 -2
  352. package/dist/sdk/users/index.js +27 -0
  353. package/dist/sdk/users/utils.js +65 -0
  354. package/dist/tsconfig.build.tsbuildinfo +1 -1
  355. package/package.json +7 -7
  356. package/scripts/integrations/mssql/data/setup.sql +3 -3
  357. package/scripts/integrations/postgres/emp-skill.sql +46 -0
  358. package/src/api/controllers/application.ts +55 -104
  359. package/src/api/controllers/cloud.ts +1 -0
  360. package/src/api/controllers/row/ExternalRequest.ts +4 -1
  361. package/src/api/controllers/user.ts +4 -61
  362. package/src/api/routes/tests/application.spec.js +0 -1
  363. package/src/integrations/base/types.ts +134 -0
  364. package/src/integrations/microsoftSqlServer.ts +14 -12
  365. package/src/integrations/mysql.ts +4 -3
  366. package/src/integrations/oracle.ts +17 -46
  367. package/src/integrations/postgres.ts +8 -2
  368. package/src/migrations/functions/appUrls.ts +2 -9
  369. package/src/sdk/app/applications/index.ts +7 -0
  370. package/src/sdk/app/applications/sync.ts +53 -0
  371. package/src/sdk/app/applications/utils.ts +17 -0
  372. package/src/sdk/index.ts +4 -3
  373. package/src/sdk/users/index.ts +5 -0
  374. package/src/sdk/users/utils.ts +64 -0
  375. package/builder/assets/index.0c44dac3.css +0 -6
@@ -36,6 +36,7 @@ function createApp(appName, appDirectory) {
36
36
  },
37
37
  },
38
38
  };
39
+ // @ts-ignore
39
40
  return (0, application_1.create)(ctx);
40
41
  });
41
42
  }
@@ -503,7 +503,8 @@ class ExternalRequest {
503
503
  for (let [colName, { isMany, rows, tableId }] of Object.entries(related)) {
504
504
  const table = this.getTable(tableId);
505
505
  // if its not the foreign key skip it, nothing to do
506
- if (!table || (table.primary && table.primary.indexOf(colName) !== -1)) {
506
+ if (!table ||
507
+ (!isMany && table.primary && table.primary.indexOf(colName) !== -1)) {
507
508
  continue;
508
509
  }
509
510
  for (let row of rows) {
@@ -8,58 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getFlags = exports.setFlag = exports.findMetadata = exports.destroyMetadata = exports.updateMetadata = exports.updateSelfMetadata = exports.fetchMetadata = exports.syncUser = exports.syncGlobalUsers = void 0;
15
+ exports.getFlags = exports.setFlag = exports.findMetadata = exports.destroyMetadata = exports.updateMetadata = exports.updateSelfMetadata = exports.fetchMetadata = exports.syncUser = void 0;
13
16
  const utils_1 = require("../../db/utils");
14
17
  const utils_2 = require("../../db/utils");
15
18
  const global_1 = require("../../utilities/global");
16
19
  const users_1 = require("../../utilities/users");
17
- const lodash_1 = require("lodash");
18
20
  const backend_core_1 = require("@budibase/backend-core");
19
- function rawMetadata() {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const db = backend_core_1.context.getAppDB();
22
- return (yield db.allDocs((0, utils_1.getUserMetadataParams)(null, {
23
- include_docs: true,
24
- }))).rows.map(row => row.doc);
25
- });
26
- }
27
- function combineMetadataAndUser(user, metadata) {
28
- // skip users with no access
29
- if (user.roleId === backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC) {
30
- return null;
31
- }
32
- delete user._rev;
33
- const metadataId = (0, utils_1.generateUserMetadataID)(user._id);
34
- const newDoc = Object.assign(Object.assign({}, user), { _id: metadataId, tableId: utils_2.InternalTables.USER_METADATA });
35
- const found = Array.isArray(metadata)
36
- ? metadata.find(doc => doc._id === metadataId)
37
- : metadata;
38
- // copy rev over for the purposes of equality check
39
- if (found) {
40
- newDoc._rev = found._rev;
41
- }
42
- if (found == null || !(0, lodash_1.isEqual)(newDoc, found)) {
43
- return Object.assign(Object.assign({}, found), newDoc);
44
- }
45
- return null;
46
- }
47
- function syncGlobalUsers() {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- // sync user metadata
50
- const db = backend_core_1.context.getAppDB();
51
- const [users, metadata] = yield Promise.all([(0, global_1.getGlobalUsers)(), rawMetadata()]);
52
- const toWrite = [];
53
- for (let user of users) {
54
- const combined = yield combineMetadataAndUser(user, metadata);
55
- if (combined) {
56
- toWrite.push(combined);
57
- }
58
- }
59
- yield db.bulkDocs(toWrite);
60
- });
61
- }
62
- exports.syncGlobalUsers = syncGlobalUsers;
21
+ const sdk_1 = __importDefault(require("../../sdk"));
63
22
  function syncUser(ctx) {
64
23
  return __awaiter(this, void 0, void 0, function* () {
65
24
  let deleting = false, user;
@@ -119,7 +78,7 @@ function syncUser(ctx) {
119
78
  metadata.roleId = roleId;
120
79
  }
121
80
  let combined = !deleting
122
- ? combineMetadataAndUser(user, metadata)
81
+ ? sdk_1.default.users.combineMetadataAndUser(user, metadata)
123
82
  : Object.assign(Object.assign({}, metadata), { status: backend_core_1.constants.UserStatus.INACTIVE, metadata: backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC });
124
83
  // if its null then there was no updates required
125
84
  if (combined) {
@@ -137,7 +96,7 @@ exports.syncUser = syncUser;
137
96
  function fetchMetadata(ctx) {
138
97
  return __awaiter(this, void 0, void 0, function* () {
139
98
  const global = yield (0, global_1.getGlobalUsers)();
140
- const metadata = yield rawMetadata();
99
+ const metadata = yield sdk_1.default.users.rawUserMetadata();
141
100
  const users = [];
142
101
  for (let user of global) {
143
102
  // find the metadata that matches up to the global ID
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -195,15 +195,20 @@ class SqlServerIntegration extends sql_1.default {
195
195
  .filter((constraint) => constraint.CONSTRAINT_TYPE === "PRIMARY KEY")
196
196
  .map((constraint) => constraint.COLUMN_NAME);
197
197
  const autoColumns = columns
198
- .filter((col) => col.IS_COMPUTED || col.IS_IDENTITY)
199
- .map((col) => col.COLUMN_NAME);
198
+ .filter(col => col.IS_COMPUTED || col.IS_IDENTITY)
199
+ .map(col => col.COLUMN_NAME);
200
+ const requiredColumns = columns
201
+ .filter(col => col.IS_NULLABLE === "NO")
202
+ .map(col => col.COLUMN_NAME);
200
203
  let schema = {};
201
204
  for (let def of definition) {
202
205
  const name = def.COLUMN_NAME;
203
206
  if (typeof name !== "string") {
204
207
  continue;
205
208
  }
206
- schema[name] = Object.assign(Object.assign({ autocolumn: !!autoColumns.find((col) => col === name), name: name }, (0, utils_1.convertSqlType)(def.DATA_TYPE)), { externalType: def.DATA_TYPE });
209
+ schema[name] = Object.assign(Object.assign({ autocolumn: !!autoColumns.find(col => col === name), name: name, constraints: {
210
+ presence: requiredColumns.find(col => col === name),
211
+ } }, (0, utils_1.convertSqlType)(def.DATA_TYPE)), { externalType: def.DATA_TYPE });
207
212
  }
208
213
  tables[tableName] = {
209
214
  _id: (0, utils_1.buildExternalTableId)(datasourceId, tableName),
@@ -247,7 +247,9 @@ class OracleIntegration extends sql_1.default {
247
247
  const columnName = oracleColumn.name;
248
248
  let fieldSchema = table.schema[columnName];
249
249
  if (!fieldSchema) {
250
- fieldSchema = Object.assign({ autocolumn: OracleIntegration.isAutoColumn(oracleColumn), name: columnName }, this.internalConvertType(oracleColumn));
250
+ fieldSchema = Object.assign({ autocolumn: OracleIntegration.isAutoColumn(oracleColumn), name: columnName, constraints: {
251
+ presence: false,
252
+ } }, this.internalConvertType(oracleColumn));
251
253
  table.schema[columnName] = fieldSchema;
252
254
  }
253
255
  // iterate each constraint on the column
@@ -255,6 +257,11 @@ class OracleIntegration extends sql_1.default {
255
257
  if (oracleConstraint.type === OracleContraintTypes.PRIMARY) {
256
258
  table.primary.push(columnName);
257
259
  }
260
+ else if (oracleConstraint.type === OracleContraintTypes.NOT_NULL_OR_CHECK) {
261
+ table.schema[columnName].constraints = {
262
+ presence: true,
263
+ };
264
+ }
258
265
  });
259
266
  });
260
267
  });
@@ -15,8 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const types_1 = require("@budibase/types");
16
16
  const utils_1 = require("./utils");
17
17
  const sql_1 = __importDefault(require("./base/sql"));
18
+ const utilities_1 = require("../utilities");
18
19
  const { Client, types } = require("pg");
19
- const { escapeDangerousCharacters } = require("../utilities");
20
20
  // Return "date" and "timestamp" types as plain strings.
21
21
  // This lets us reference the original stored timezone.
22
22
  // types is undefined when running in a test env for some reason.
@@ -163,7 +163,7 @@ class PostgresIntegration extends sql_1.default {
163
163
  const matches = query.sql.match(JSON_REGEX);
164
164
  if (matches && matches.length > 0) {
165
165
  for (let match of matches) {
166
- const escaped = escapeDangerousCharacters(match);
166
+ const escaped = (0, utilities_1.escapeDangerousCharacters)(match);
167
167
  query.sql = query.sql.replace(match, escaped);
168
168
  }
169
169
  }
@@ -227,11 +227,14 @@ class PostgresIntegration extends sql_1.default {
227
227
  const identity = !!(column.identity_generation ||
228
228
  column.identity_start ||
229
229
  column.identity_increment);
230
+ const constraints = {
231
+ presence: column.is_nullable === "NO",
232
+ };
230
233
  const hasDefault = typeof column.column_default === "string" &&
231
234
  column.column_default.startsWith("nextval");
232
235
  const isGenerated = column.is_generated && column.is_generated !== "NEVER";
233
236
  const isAuto = hasDefault || identity || isGenerated;
234
- tables[tableName].schema[columnName] = Object.assign(Object.assign({ autocolumn: isAuto, name: columnName }, (0, utils_1.convertSqlType)(column.data_type)), { externalType: column.data_type });
237
+ tables[tableName].schema[columnName] = Object.assign(Object.assign({ autocolumn: isAuto, name: columnName, constraints }, (0, utils_1.convertSqlType)(column.data_type)), { externalType: column.data_type });
235
238
  }
236
239
  const final = (0, utils_1.finaliseExternalTables)(tables, entities);
237
240
  this.tables = final.tables;
@@ -8,10 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.run = void 0;
13
16
  const backend_core_1 = require("@budibase/backend-core");
14
- const application_1 = require("../../api/controllers/application");
17
+ const sdk_1 = __importDefault(require("../../sdk"));
15
18
  /**
16
19
  * Date:
17
20
  * January 2022
@@ -31,14 +34,7 @@ const run = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
31
34
  return;
32
35
  }
33
36
  if (!metadata.url) {
34
- const context = {
35
- request: {
36
- body: {
37
- name: metadata.name,
38
- },
39
- },
40
- };
41
- metadata.url = (0, application_1.getAppUrl)(context);
37
+ metadata.url = sdk_1.default.applications.getAppUrl({ name: metadata.name });
42
38
  console.log(`Adding url to app: ${metadata.url}`);
43
39
  yield appDb.put(metadata);
44
40
  }
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.1.42",
4
+ "version": "2.1.43-alpha.9",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -43,11 +43,11 @@
43
43
  "license": "GPL-3.0",
44
44
  "dependencies": {
45
45
  "@apidevtools/swagger-parser": "10.0.3",
46
- "@budibase/backend-core": "^2.1.42",
47
- "@budibase/client": "^2.1.42",
48
- "@budibase/pro": "2.1.42",
49
- "@budibase/string-templates": "^2.1.42",
50
- "@budibase/types": "^2.1.42",
46
+ "@budibase/backend-core": "2.1.43-alpha.9",
47
+ "@budibase/client": "2.1.43-alpha.9",
48
+ "@budibase/pro": "2.1.43-alpha.9",
49
+ "@budibase/string-templates": "2.1.43-alpha.9",
50
+ "@budibase/types": "2.1.43-alpha.9",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const sync = __importStar(require("./sync"));
27
+ const utils = __importStar(require("./utils"));
28
+ exports.default = Object.assign(Object.assign({}, sync), utils);
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.syncApp = void 0;
16
+ const environment_1 = __importDefault(require("../../../environment"));
17
+ const backend_core_1 = require("@budibase/backend-core");
18
+ const __1 = __importDefault(require("../../"));
19
+ function syncApp(appId) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ if (environment_1.default.DISABLE_AUTO_PROD_APP_SYNC) {
22
+ return {
23
+ message: "App sync disabled. You can reenable with the DISABLE_AUTO_PROD_APP_SYNC environment variable.",
24
+ };
25
+ }
26
+ if (backend_core_1.db.isProdAppID(appId)) {
27
+ throw new Error("This action cannot be performed for production apps");
28
+ }
29
+ // replicate prod to dev
30
+ const prodAppId = backend_core_1.db.getProdAppID(appId);
31
+ // specific case, want to make sure setup is skipped
32
+ const prodDb = backend_core_1.context.getProdAppDB({ skip_setup: true });
33
+ const exists = yield prodDb.exists();
34
+ if (!exists) {
35
+ // the database doesn't exist. Don't replicate
36
+ return {
37
+ message: "App sync not required, app not deployed.",
38
+ };
39
+ }
40
+ const replication = new backend_core_1.db.Replication({
41
+ source: prodAppId,
42
+ target: appId,
43
+ });
44
+ let error;
45
+ try {
46
+ yield replication.replicate(replication.appReplicateOpts());
47
+ }
48
+ catch (err) {
49
+ error = err;
50
+ }
51
+ finally {
52
+ yield replication.close();
53
+ }
54
+ // sync the users
55
+ yield __1.default.users.syncGlobalUsers();
56
+ if (error) {
57
+ throw error;
58
+ }
59
+ else {
60
+ return {
61
+ message: "App sync completed successfully.",
62
+ };
63
+ }
64
+ });
65
+ }
66
+ exports.syncApp = syncApp;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAppUrl = void 0;
4
+ const URL_REGEX_SLASH = /\/|\\/g;
5
+ function getAppUrl(opts) {
6
+ // construct the url
7
+ let url;
8
+ if (opts === null || opts === void 0 ? void 0 : opts.url) {
9
+ // if the url is provided, use that
10
+ url = encodeURI(opts === null || opts === void 0 ? void 0 : opts.url);
11
+ }
12
+ else if (opts === null || opts === void 0 ? void 0 : opts.name) {
13
+ // otherwise use the name
14
+ url = encodeURI(`${opts === null || opts === void 0 ? void 0 : opts.name}`);
15
+ }
16
+ if (url) {
17
+ url = `/${url.replace(URL_REGEX_SLASH, "")}`.toLowerCase();
18
+ }
19
+ return url;
20
+ }
21
+ exports.getAppUrl = getAppUrl;
package/dist/sdk/index.js CHANGED
@@ -6,12 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const backups_1 = __importDefault(require("./app/backups"));
7
7
  const tables_1 = __importDefault(require("./app/tables"));
8
8
  const automations_1 = __importDefault(require("./app/automations"));
9
+ const applications_1 = __importDefault(require("./app/applications"));
10
+ const users_1 = __importDefault(require("./users"));
9
11
  const sdk = {
10
12
  backups: backups_1.default,
11
13
  tables: tables_1.default,
12
14
  automations: automations_1.default,
15
+ applications: applications_1.default,
16
+ users: users_1.default,
13
17
  };
14
18
  // default export for TS
15
19
  exports.default = sdk;
16
- // default export for JS
17
- module.exports = sdk;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const utils = __importStar(require("./utils"));
27
+ exports.default = Object.assign({}, utils);
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.syncGlobalUsers = exports.rawUserMetadata = exports.combineMetadataAndUser = void 0;
13
+ const global_1 = require("../../utilities/global");
14
+ const backend_core_1 = require("@budibase/backend-core");
15
+ const utils_1 = require("../../db/utils");
16
+ const lodash_1 = require("lodash");
17
+ function combineMetadataAndUser(user, metadata) {
18
+ // skip users with no access
19
+ if (user.roleId === backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC) {
20
+ return null;
21
+ }
22
+ delete user._rev;
23
+ const metadataId = (0, utils_1.generateUserMetadataID)(user._id);
24
+ const newDoc = Object.assign(Object.assign({}, user), { _id: metadataId, tableId: utils_1.InternalTables.USER_METADATA });
25
+ const found = Array.isArray(metadata)
26
+ ? metadata.find(doc => doc._id === metadataId)
27
+ : metadata;
28
+ // copy rev over for the purposes of equality check
29
+ if (found) {
30
+ newDoc._rev = found._rev;
31
+ }
32
+ if (found == null || !(0, lodash_1.isEqual)(newDoc, found)) {
33
+ return Object.assign(Object.assign({}, found), newDoc);
34
+ }
35
+ return null;
36
+ }
37
+ exports.combineMetadataAndUser = combineMetadataAndUser;
38
+ function rawUserMetadata() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const db = backend_core_1.context.getAppDB();
41
+ return (yield db.allDocs((0, utils_1.getUserMetadataParams)(null, {
42
+ include_docs: true,
43
+ }))).rows.map(row => row.doc);
44
+ });
45
+ }
46
+ exports.rawUserMetadata = rawUserMetadata;
47
+ function syncGlobalUsers() {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ // sync user metadata
50
+ const db = backend_core_1.context.getAppDB();
51
+ const [users, metadata] = yield Promise.all([
52
+ (0, global_1.getGlobalUsers)(),
53
+ rawUserMetadata(),
54
+ ]);
55
+ const toWrite = [];
56
+ for (let user of users) {
57
+ const combined = yield combineMetadataAndUser(user, metadata);
58
+ if (combined) {
59
+ toWrite.push(combined);
60
+ }
61
+ }
62
+ yield db.bulkDocs(toWrite);
63
+ });
64
+ }
65
+ exports.syncGlobalUsers = syncGlobalUsers;