@budibase/server 1.0.80 → 1.0.81-alpha.0

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 (322) hide show
  1. package/__mocks__/node-fetch.ts +1 -0
  2. package/builder/assets/index.57958259.js +1290 -0
  3. package/builder/assets/{index.c8d1e8f0.css → index.dd19c61c.css} +2 -2
  4. package/builder/assets/{vendor.20f80cec.js → vendor.a7c6ad0a.js} +190 -216
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +2531 -2440
  7. package/coverage/coverage-final.json +138 -137
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +6 -6
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/application.js.html +152 -149
  11. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  12. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  13. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
  15. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
  17. package/coverage/lcov-report/api/controllers/dev.js.html +19 -19
  18. package/coverage/lcov-report/api/controllers/index.html +16 -16
  19. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  20. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  21. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  22. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  23. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  24. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  25. package/coverage/lcov-report/api/controllers/query/index.js.html +26 -26
  26. package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
  27. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +86 -23
  30. package/coverage/lcov-report/api/controllers/row/index.html +46 -46
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +76 -49
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +144 -84
  33. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +204 -204
  34. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -24
  35. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -29
  36. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  37. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  38. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +49 -49
  39. package/coverage/lcov-report/api/controllers/table/external.js.html +62 -20
  40. package/coverage/lcov-report/api/controllers/table/index.html +20 -20
  41. package/coverage/lcov-report/api/controllers/table/index.js.html +47 -44
  42. package/coverage/lcov-report/api/controllers/table/internal.js.html +50 -50
  43. package/coverage/lcov-report/api/controllers/table/utils.js.html +80 -80
  44. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  45. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  46. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  47. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  49. package/coverage/lcov-report/api/controllers/view/utils.js.html +12 -12
  50. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  51. package/coverage/lcov-report/api/controllers/webhook.js.html +18 -27
  52. package/coverage/lcov-report/api/index.html +10 -10
  53. package/coverage/lcov-report/api/index.js.html +37 -28
  54. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  55. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  56. package/coverage/lcov-report/api/routes/application.js.html +9 -9
  57. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  58. package/coverage/lcov-report/api/routes/automation.js.html +19 -109
  59. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  60. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  61. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  62. package/coverage/lcov-report/api/routes/datasource.js.html +18 -156
  63. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  64. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  65. package/coverage/lcov-report/api/routes/index.html +35 -35
  66. package/coverage/lcov-report/api/routes/index.js.html +38 -32
  67. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  68. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  69. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  70. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  71. package/coverage/lcov-report/api/routes/permission.js.html +16 -58
  72. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  73. package/coverage/lcov-report/api/routes/role.js.html +15 -78
  74. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  75. package/coverage/lcov-report/api/routes/row.js.html +80 -14
  76. package/coverage/lcov-report/api/routes/screen.js.html +14 -95
  77. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/static.js.html +13 -13
  79. package/coverage/lcov-report/api/routes/table.js.html +17 -62
  80. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  81. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  82. package/coverage/lcov-report/api/routes/utils/index.html +111 -0
  83. package/coverage/lcov-report/api/routes/utils/validators.js.html +737 -0
  84. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  85. package/coverage/lcov-report/api/routes/webhook.js.html +14 -62
  86. package/coverage/lcov-report/automations/actions.js.html +24 -24
  87. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  88. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  89. package/coverage/lcov-report/automations/index.html +1 -1
  90. package/coverage/lcov-report/automations/index.js.html +7 -7
  91. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  92. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  94. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  95. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  96. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  97. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/filter.js.html +12 -9
  99. package/coverage/lcov-report/automations/steps/index.html +1 -1
  100. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  101. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  102. package/coverage/lcov-report/automations/steps/queryRows.js.html +11 -11
  103. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  104. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  105. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  106. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  107. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  108. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  109. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  113. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggers.js.html +26 -26
  118. package/coverage/lcov-report/automations/utils.js.html +35 -35
  119. package/coverage/lcov-report/constants/index.html +5 -5
  120. package/coverage/lcov-report/constants/index.js.html +40 -28
  121. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  122. package/coverage/lcov-report/constants/screens.js.html +4 -4
  123. package/coverage/lcov-report/db/client.js.html +18 -18
  124. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  125. package/coverage/lcov-report/db/index.html +15 -15
  126. package/coverage/lcov-report/db/index.js.html +3 -3
  127. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +21 -21
  128. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  129. package/coverage/lcov-report/db/linkedRows/index.js.html +36 -36
  130. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +30 -30
  131. package/coverage/lcov-report/db/newid.js.html +4 -4
  132. package/coverage/lcov-report/db/utils.js.html +123 -87
  133. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  134. package/coverage/lcov-report/events/index.html +1 -1
  135. package/coverage/lcov-report/events/index.js.html +8 -8
  136. package/coverage/lcov-report/events/utils.js.html +18 -18
  137. package/coverage/lcov-report/index.html +91 -76
  138. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  139. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  140. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  141. package/coverage/lcov-report/middleware/authorized.js.html +29 -29
  142. package/coverage/lcov-report/middleware/builder.js.html +16 -16
  143. package/coverage/lcov-report/middleware/currentapp.js.html +44 -44
  144. package/coverage/lcov-report/middleware/index.html +1 -1
  145. package/coverage/lcov-report/middleware/joi-validator.js.html +14 -14
  146. package/coverage/lcov-report/middleware/resourceId.js.html +29 -29
  147. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +17 -17
  149. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  150. package/coverage/lcov-report/threads/automation.js.html +1 -1
  151. package/coverage/lcov-report/threads/index.html +19 -19
  152. package/coverage/lcov-report/threads/index.js.html +10 -10
  153. package/coverage/lcov-report/threads/query.js.html +123 -39
  154. package/coverage/lcov-report/threads/utils.js.html +14 -14
  155. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  156. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  157. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  158. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  159. package/coverage/lcov-report/utilities/global.js.html +28 -28
  160. package/coverage/lcov-report/utilities/index.html +18 -18
  161. package/coverage/lcov-report/utilities/index.js.html +24 -24
  162. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
  163. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  166. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  167. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +60 -60
  168. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +13 -13
  169. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  170. package/coverage/lcov-report/utilities/security.js.html +8 -8
  171. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.js.html +12 -12
  174. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +8 -8
  175. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  176. package/coverage/lcov-report/utilities/users.js.html +5 -5
  177. package/coverage/lcov-report/utilities/workerRequests.js.html +200 -53
  178. package/coverage/lcov.info +3555 -3411
  179. package/dist/api/controllers/application.js +1 -0
  180. package/dist/api/controllers/public/applications.js +94 -0
  181. package/dist/api/controllers/public/mapping/applications.js +29 -0
  182. package/dist/api/controllers/public/mapping/index.js +11 -0
  183. package/dist/api/controllers/public/mapping/queries.js +36 -0
  184. package/dist/api/controllers/public/mapping/rows.js +24 -0
  185. package/dist/api/controllers/public/mapping/tables.js +23 -0
  186. package/dist/api/controllers/public/mapping/types.js +2 -0
  187. package/dist/api/controllers/public/mapping/users.js +29 -0
  188. package/dist/api/controllers/public/queries.js +38 -0
  189. package/dist/api/controllers/public/rows.js +97 -0
  190. package/dist/api/controllers/public/tables.js +75 -0
  191. package/dist/api/controllers/public/users.js +95 -0
  192. package/dist/api/controllers/public/utils.js +49 -0
  193. package/dist/api/controllers/row/external.js +18 -0
  194. package/dist/api/controllers/row/index.js +11 -0
  195. package/dist/api/controllers/row/internal.js +15 -1
  196. package/dist/api/controllers/table/external.js +8 -2
  197. package/dist/api/controllers/table/index.js +2 -1
  198. package/dist/api/controllers/webhook.js +3 -5
  199. package/dist/api/index.js +3 -1
  200. package/dist/api/routes/automation.js +3 -31
  201. package/dist/api/routes/datasource.js +3 -50
  202. package/dist/api/routes/index.js +2 -0
  203. package/dist/api/routes/permission.js +4 -14
  204. package/dist/api/routes/public/applications.js +141 -0
  205. package/dist/api/routes/public/index.js +101 -0
  206. package/dist/api/routes/public/middleware/mapper.js +94 -0
  207. package/dist/api/routes/public/queries.js +77 -0
  208. package/dist/api/routes/public/rows.js +229 -0
  209. package/dist/api/routes/public/tables.js +154 -0
  210. package/dist/api/routes/public/users.js +137 -0
  211. package/dist/api/routes/public/utils/Endpoint.js +36 -0
  212. package/dist/api/routes/role.js +3 -19
  213. package/dist/api/routes/row.js +18 -5
  214. package/dist/api/routes/screen.js +2 -23
  215. package/dist/api/routes/table.js +3 -17
  216. package/dist/api/routes/tests/utilities/index.js +23 -0
  217. package/dist/api/routes/utils/validators.js +200 -0
  218. package/dist/api/routes/webhook.js +2 -17
  219. package/dist/automations/steps/filter.js +2 -2
  220. package/dist/automations/steps/queryRows.js +1 -1
  221. package/dist/automations/utils.js +2 -2
  222. package/dist/constants/index.js +3 -0
  223. package/dist/db/utils.js +11 -0
  224. package/dist/definitions/openapi.js +6 -0
  225. package/dist/environment.js +1 -0
  226. package/dist/integrations/base/sql.js +16 -1
  227. package/dist/integrations/base/sqlTable.js +21 -9
  228. package/dist/integrations/googlesheets.js +3 -0
  229. package/dist/integrations/microsoftSqlServer.js +60 -43
  230. package/dist/integrations/mysql.js +3 -0
  231. package/dist/integrations/oracle.js +14 -19
  232. package/dist/integrations/postgres.js +34 -28
  233. package/dist/integrations/utils.js +32 -15
  234. package/dist/package.json +11 -7
  235. package/dist/tests/utilities/TestConfiguration.js +25 -8
  236. package/dist/threads/query.js +33 -8
  237. package/dist/tsconfig.tsbuildinfo +1 -1
  238. package/dist/utilities/workerRequests.js +50 -15
  239. package/package.json +12 -8
  240. package/scripts/integrations/mssql/data/setup.sql +18 -1
  241. package/scripts/integrations/oracle/oracle.md +2 -2
  242. package/scripts/integrations/postgres/init.sql +11 -3
  243. package/scripts/likeCypress.ts +9 -6
  244. package/specs/generate.js +94 -0
  245. package/specs/openapi.json +2232 -0
  246. package/specs/openapi.yaml +1538 -0
  247. package/specs/parameters.js +59 -0
  248. package/specs/resources/application.js +101 -0
  249. package/specs/resources/index.js +24 -0
  250. package/specs/resources/misc.js +12 -0
  251. package/specs/resources/query.js +189 -0
  252. package/specs/resources/row.js +125 -0
  253. package/specs/resources/table.js +191 -0
  254. package/specs/resources/user.js +126 -0
  255. package/specs/resources/utils/Resource.js +26 -0
  256. package/specs/resources/utils/index.js +11 -0
  257. package/specs/security.js +7 -0
  258. package/src/api/controllers/application.js +1 -0
  259. package/src/api/controllers/public/applications.ts +74 -0
  260. package/src/api/controllers/public/mapping/applications.ts +32 -0
  261. package/src/api/controllers/public/mapping/index.ts +13 -0
  262. package/src/api/controllers/public/mapping/queries.ts +39 -0
  263. package/src/api/controllers/public/mapping/rows.ts +31 -0
  264. package/src/api/controllers/public/mapping/tables.ts +26 -0
  265. package/src/api/controllers/public/mapping/types.ts +13 -0
  266. package/src/api/controllers/public/mapping/users.ts +32 -0
  267. package/src/api/controllers/public/queries.ts +20 -0
  268. package/src/api/controllers/public/rows.ts +77 -0
  269. package/src/api/controllers/public/tables.ts +56 -0
  270. package/src/api/controllers/public/users.ts +82 -0
  271. package/src/api/controllers/public/utils.ts +38 -0
  272. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  273. package/src/api/controllers/row/external.js +21 -0
  274. package/src/api/controllers/row/index.js +9 -0
  275. package/src/api/controllers/row/internal.js +20 -0
  276. package/src/api/controllers/table/external.js +16 -2
  277. package/src/api/controllers/table/index.js +2 -1
  278. package/src/api/controllers/webhook.js +3 -6
  279. package/src/api/index.js +4 -1
  280. package/src/api/routes/automation.js +3 -33
  281. package/src/api/routes/datasource.js +6 -52
  282. package/src/api/routes/index.js +2 -0
  283. package/src/api/routes/permission.js +4 -18
  284. package/src/api/routes/public/applications.ts +156 -0
  285. package/src/api/routes/public/index.ts +118 -0
  286. package/src/api/routes/public/middleware/mapper.ts +81 -0
  287. package/src/api/routes/public/queries.ts +81 -0
  288. package/src/api/routes/public/rows.ts +242 -0
  289. package/src/api/routes/public/tables.ts +169 -0
  290. package/src/api/routes/public/tests/compare.spec.js +184 -0
  291. package/src/api/routes/public/users.ts +144 -0
  292. package/src/api/routes/public/utils/Endpoint.ts +51 -0
  293. package/src/api/routes/role.js +3 -24
  294. package/src/api/routes/row.js +24 -2
  295. package/src/api/routes/screen.js +2 -29
  296. package/src/api/routes/table.js +4 -19
  297. package/src/api/routes/tests/utilities/index.js +24 -0
  298. package/src/api/routes/utils/validators.js +219 -0
  299. package/src/api/routes/webhook.js +2 -18
  300. package/src/automations/steps/filter.js +3 -2
  301. package/src/automations/steps/queryRows.js +1 -1
  302. package/src/automations/utils.js +2 -2
  303. package/src/constants/index.js +4 -0
  304. package/src/db/utils.js +12 -0
  305. package/src/definitions/common.ts +4 -0
  306. package/src/definitions/datasource.ts +7 -0
  307. package/src/definitions/openapi.ts +943 -0
  308. package/src/environment.js +1 -0
  309. package/src/integrations/base/datasourcePlus.ts +3 -0
  310. package/src/integrations/base/sql.ts +16 -1
  311. package/src/integrations/base/sqlTable.ts +35 -13
  312. package/src/integrations/googlesheets.ts +5 -2
  313. package/src/integrations/microsoftSqlServer.ts +86 -61
  314. package/src/integrations/mysql.ts +4 -0
  315. package/src/integrations/oracle.ts +27 -35
  316. package/src/integrations/postgres.ts +33 -26
  317. package/src/integrations/utils.ts +43 -15
  318. package/src/tests/utilities/TestConfiguration.js +23 -2
  319. package/src/threads/query.js +37 -9
  320. package/src/utilities/workerRequests.js +65 -16
  321. package/builder/assets/index.22a39cc9.js +0 -1352
  322. package/scripts/proxy/generateProxyConfig.js +0 -70
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>29/29</span>
28
+ <span class='fraction'>31/31</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>29/29</span>
49
+ <span class='fraction'>31/31</span>
50
50
  </div>
51
51
 
52
52
 
@@ -117,35 +117,38 @@
117
117
  <a name='L58'></a><a href='#L58'>58</a>
118
118
  <a name='L59'></a><a href='#L59'>59</a>
119
119
  <a name='L60'></a><a href='#L60'>60</a>
120
- <a name='L61'></a><a href='#L61'>61</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
121
- <span class="cline-any cline-yes">23x</span>
122
- <span class="cline-any cline-yes">23x</span>
123
- <span class="cline-any cline-yes">23x</span>
124
- <span class="cline-any cline-yes">23x</span>
125
- <span class="cline-any cline-yes">23x</span>
126
- <span class="cline-any cline-yes">23x</span>
127
- <span class="cline-any cline-yes">23x</span>
128
- <span class="cline-any cline-yes">23x</span>
129
- <span class="cline-any cline-yes">23x</span>
130
- <span class="cline-any cline-yes">23x</span>
131
- <span class="cline-any cline-yes">23x</span>
132
- <span class="cline-any cline-yes">23x</span>
133
- <span class="cline-any cline-yes">23x</span>
134
- <span class="cline-any cline-yes">23x</span>
135
- <span class="cline-any cline-yes">23x</span>
136
- <span class="cline-any cline-yes">23x</span>
137
- <span class="cline-any cline-yes">23x</span>
138
- <span class="cline-any cline-yes">23x</span>
139
- <span class="cline-any cline-yes">23x</span>
140
- <span class="cline-any cline-yes">23x</span>
141
- <span class="cline-any cline-yes">23x</span>
142
- <span class="cline-any cline-yes">23x</span>
143
- <span class="cline-any cline-yes">23x</span>
144
- <span class="cline-any cline-yes">23x</span>
145
- <span class="cline-any cline-yes">23x</span>
146
- <span class="cline-any cline-yes">23x</span>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
123
+ <span class="cline-any cline-yes">24x</span>
124
+ <span class="cline-any cline-yes">24x</span>
125
+ <span class="cline-any cline-yes">24x</span>
126
+ <span class="cline-any cline-yes">24x</span>
127
+ <span class="cline-any cline-yes">24x</span>
128
+ <span class="cline-any cline-yes">24x</span>
129
+ <span class="cline-any cline-yes">24x</span>
130
+ <span class="cline-any cline-yes">24x</span>
131
+ <span class="cline-any cline-yes">24x</span>
132
+ <span class="cline-any cline-yes">24x</span>
133
+ <span class="cline-any cline-yes">24x</span>
134
+ <span class="cline-any cline-yes">24x</span>
135
+ <span class="cline-any cline-yes">24x</span>
136
+ <span class="cline-any cline-yes">24x</span>
137
+ <span class="cline-any cline-yes">24x</span>
138
+ <span class="cline-any cline-yes">24x</span>
139
+ <span class="cline-any cline-yes">24x</span>
140
+ <span class="cline-any cline-yes">24x</span>
141
+ <span class="cline-any cline-yes">24x</span>
142
+ <span class="cline-any cline-yes">24x</span>
143
+ <span class="cline-any cline-yes">24x</span>
144
+ <span class="cline-any cline-yes">24x</span>
145
+ <span class="cline-any cline-yes">24x</span>
146
+ <span class="cline-any cline-yes">24x</span>
147
+ <span class="cline-any cline-yes">24x</span>
148
+ <span class="cline-any cline-yes">24x</span>
149
+ <span class="cline-any cline-yes">24x</span>
147
150
  <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-yes">23x</span>
151
+ <span class="cline-any cline-yes">24x</span>
149
152
  <span class="cline-any cline-neutral">&nbsp;</span>
150
153
  <span class="cline-any cline-neutral">&nbsp;</span>
151
154
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -176,7 +179,8 @@
176
179
  <span class="cline-any cline-neutral">&nbsp;</span>
177
180
  <span class="cline-any cline-neutral">&nbsp;</span>
178
181
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">23x</span>
182
+ <span class="cline-any cline-yes">24x</span>
183
+ <span class="cline-any cline-yes">24x</span>
180
184
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const authRoutes = require("./auth")
181
185
  const layoutRoutes = require("./layout")
182
186
  const screenRoutes = require("./screen")
@@ -204,6 +208,7 @@ const metadataRoutes = require("./metadata")
204
208
  const devRoutes = require("./dev")
205
209
  const cloudRoutes = require("./cloud")
206
210
  const migrationRoutes = require("./migrations")
211
+ const publicRoutes = require("./public")
207
212
  &nbsp;
208
213
  exports.mainRoutes = [
209
214
  authRoutes,
@@ -236,6 +241,7 @@ exports.mainRoutes = [
236
241
  migrationRoutes,
237
242
  ]
238
243
  &nbsp;
244
+ exports.publicRoutes = publicRoutes
239
245
  exports.staticRoutes = staticRoutes
240
246
  &nbsp;</pre></td></tr></table></pre>
241
247
 
@@ -244,7 +250,7 @@ exports.staticRoutes = staticRoutes
244
250
  <div class='footer quiet pad2 space-top1 center small'>
245
251
  Code coverage generated by
246
252
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
247
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
253
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
248
254
  </div>
249
255
  </div>
250
256
  <script src="../../prettify.js"></script>
@@ -69,18 +69,18 @@
69
69
  <a name='L10'></a><a href='#L10'>10</a>
70
70
  <a name='L11'></a><a href='#L11'>11</a>
71
71
  <a name='L12'></a><a href='#L12'>12</a>
72
- <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
73
- <span class="cline-any cline-yes">23x</span>
74
- <span class="cline-any cline-yes">23x</span>
75
- <span class="cline-any cline-yes">23x</span>
72
+ <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
73
+ <span class="cline-any cline-yes">24x</span>
74
+ <span class="cline-any cline-yes">24x</span>
75
+ <span class="cline-any cline-yes">24x</span>
76
76
  <span class="cline-any cline-neutral">&nbsp;</span>
77
- <span class="cline-any cline-yes">23x</span>
77
+ <span class="cline-any cline-yes">24x</span>
78
78
  <span class="cline-any cline-neutral">&nbsp;</span>
79
- <span class="cline-any cline-yes">23x</span>
79
+ <span class="cline-any cline-yes">24x</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
81
  <span class="cline-any cline-neutral">&nbsp;</span>
82
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
- <span class="cline-any cline-yes">23x</span>
83
+ <span class="cline-any cline-yes">24x</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
85
85
  const controller = require("../controllers/integration")
86
86
  const authorized = require("../../middleware/authorized")
@@ -100,7 +100,7 @@ module.exports = router
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
103
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -73,14 +73,14 @@
73
73
  <a name='L14'></a><a href='#L14'>14</a>
74
74
  <a name='L15'></a><a href='#L15'>15</a>
75
75
  <a name='L16'></a><a href='#L16'>16</a>
76
- <a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
77
- <span class="cline-any cline-yes">23x</span>
78
- <span class="cline-any cline-yes">23x</span>
79
- <span class="cline-any cline-yes">23x</span>
76
+ <a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
77
+ <span class="cline-any cline-yes">24x</span>
78
+ <span class="cline-any cline-yes">24x</span>
79
+ <span class="cline-any cline-yes">24x</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
- <span class="cline-any cline-yes">23x</span>
81
+ <span class="cline-any cline-yes">24x</span>
82
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
- <span class="cline-any cline-yes">23x</span>
83
+ <span class="cline-any cline-yes">24x</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -88,7 +88,7 @@
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-neutral">&nbsp;</span>
91
- <span class="cline-any cline-yes">23x</span>
91
+ <span class="cline-any cline-yes">24x</span>
92
92
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
93
93
  const authorized = require("../../middleware/authorized")
94
94
  const { BUILDER } = require("@budibase/backend-core/permissions")
@@ -112,7 +112,7 @@ module.exports = router
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
115
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
115
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  </div>
118
118
  <script src="../../prettify.js"></script>
@@ -95,18 +95,18 @@
95
95
  <a name='L36'></a><a href='#L36'>36</a>
96
96
  <a name='L37'></a><a href='#L37'>37</a>
97
97
  <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
99
- <span class="cline-any cline-yes">23x</span>
98
+ <a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
99
+ <span class="cline-any cline-yes">24x</span>
100
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
102
102
  <span class="cline-any cline-neutral">&nbsp;</span>
103
- <span class="cline-any cline-yes">23x</span>
104
- <span class="cline-any cline-yes">23x</span>
105
- <span class="cline-any cline-yes">23x</span>
103
+ <span class="cline-any cline-yes">24x</span>
104
+ <span class="cline-any cline-yes">24x</span>
105
+ <span class="cline-any cline-yes">24x</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-yes">23x</span>
107
+ <span class="cline-any cline-yes">24x</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-yes">23x</span>
109
+ <span class="cline-any cline-yes">24x</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -132,7 +132,7 @@
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-yes">23x</span>
135
+ <span class="cline-any cline-yes">24x</span>
136
136
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
137
137
  const controller = require("../controllers/metadata")
138
138
  const {
@@ -178,7 +178,7 @@ module.exports = router
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
181
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
181
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  </div>
184
184
  <script src="../../prettify.js"></script>
@@ -71,12 +71,12 @@
71
71
  <a name='L12'></a><a href='#L12'>12</a>
72
72
  <a name='L13'></a><a href='#L13'>13</a>
73
73
  <a name='L14'></a><a href='#L14'>14</a>
74
- <a name='L15'></a><a href='#L15'>15</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
75
- <span class="cline-any cline-yes">23x</span>
76
- <span class="cline-any cline-yes">23x</span>
77
- <span class="cline-any cline-yes">23x</span>
74
+ <a name='L15'></a><a href='#L15'>15</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
75
+ <span class="cline-any cline-yes">24x</span>
76
+ <span class="cline-any cline-yes">24x</span>
77
+ <span class="cline-any cline-yes">24x</span>
78
78
  <span class="cline-any cline-neutral">&nbsp;</span>
79
- <span class="cline-any cline-yes">23x</span>
79
+ <span class="cline-any cline-yes">24x</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
81
  <span class="cline-any cline-neutral">&nbsp;</span>
82
82
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -84,7 +84,7 @@
84
84
  <span class="cline-any cline-neutral">&nbsp;</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
87
- <span class="cline-any cline-yes">23x</span>
87
+ <span class="cline-any cline-yes">24x</span>
88
88
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
89
89
  const migrationsController = require("../controllers/migrations")
90
90
  const router = Router()
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
109
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../../prettify.js"></script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/11</span>
28
+ <span class='fraction'>8/8</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>0/0</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/11</span>
49
+ <span class='fraction'>8/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -90,43 +90,20 @@
90
90
  <a name='L31'></a><a href='#L31'>31</a>
91
91
  <a name='L32'></a><a href='#L32'>32</a>
92
92
  <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a>
107
- <a name='L48'></a><a href='#L48'>48</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
108
- <span class="cline-any cline-yes">23x</span>
109
- <span class="cline-any cline-yes">23x</span>
110
- <span class="cline-any cline-neutral">&nbsp;</span>
111
- <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-neutral">&nbsp;</span>
113
- <span class="cline-any cline-yes">23x</span>
114
- <span class="cline-any cline-yes">23x</span>
115
- <span class="cline-any cline-yes">23x</span>
116
- <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-yes">23x</span>
118
- <span class="cline-any cline-neutral">&nbsp;</span>
119
- <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">46x</span>
93
+ <a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
94
+ <span class="cline-any cline-yes">24x</span>
95
+ <span class="cline-any cline-yes">24x</span>
96
+ <span class="cline-any cline-yes">24x</span>
97
+ <span class="cline-any cline-yes">24x</span>
121
98
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-yes">46x</span>
99
+ <span class="cline-any cline-yes">24x</span>
123
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-yes">24x</span>
124
102
  <span class="cline-any cline-neutral">&nbsp;</span>
125
103
  <span class="cline-any cline-neutral">&nbsp;</span>
126
104
  <span class="cline-any cline-neutral">&nbsp;</span>
127
105
  <span class="cline-any cline-neutral">&nbsp;</span>
128
106
  <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-yes">23x</span>
130
107
  <span class="cline-any cline-neutral">&nbsp;</span>
131
108
  <span class="cline-any cline-neutral">&nbsp;</span>
132
109
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -145,34 +122,15 @@
145
122
  <span class="cline-any cline-neutral">&nbsp;</span>
146
123
  <span class="cline-any cline-neutral">&nbsp;</span>
147
124
  <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-yes">23x</span>
125
+ <span class="cline-any cline-yes">24x</span>
154
126
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
155
127
  const controller = require("../controllers/permission")
156
128
  const authorized = require("../../middleware/authorized")
157
- const {
158
- BUILDER,
159
- PermissionLevels,
160
- } = require("@budibase/backend-core/permissions")
161
- const Joi = require("joi")
162
- const joiValidator = require("../../middleware/joi-validator")
129
+ const { BUILDER } = require("@budibase/backend-core/permissions")
130
+ const { permissionValidator } = require("./utils/validators")
163
131
  &nbsp;
164
132
  const router = Router()
165
133
  &nbsp;
166
- function generateValidator() {
167
- const permLevelArray = Object.values(PermissionLevels)
168
- // prettier-ignore
169
- return joiValidator.params(Joi.object({
170
- level: Joi.string().valid(...permLevelArray).required(),
171
- resourceId: Joi.string(),
172
- roleId: Joi.string(),
173
- }).unknown(true))
174
- }
175
- &nbsp;
176
134
  router
177
135
  .get("/api/permission/builtin", authorized(BUILDER), controller.fetchBuiltin)
178
136
  .get("/api/permission/levels", authorized(BUILDER), controller.fetchLevels)
@@ -186,14 +144,14 @@ router
186
144
  .post(
187
145
  "/api/permission/:roleId/:resourceId/:level",
188
146
  authorized(BUILDER),
189
- generateValidator(),
147
+ permissionValidator(),
190
148
  controller.addPermission
191
149
  )
192
150
  // deleting the level defaults it back the underlying access control for the resource
193
151
  .delete(
194
152
  "/api/permission/:roleId/:resourceId/:level",
195
153
  authorized(BUILDER),
196
- generateValidator(),
154
+ permissionValidator(),
197
155
  controller.removePermission
198
156
  )
199
157
  &nbsp;
@@ -205,7 +163,7 @@ module.exports = router
205
163
  <div class='footer quiet pad2 space-top1 center small'>
206
164
  Code coverage generated by
207
165
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
208
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
166
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
209
167
  </div>
210
168
  </div>
211
169
  <script src="../../prettify.js"></script>
@@ -121,27 +121,27 @@
121
121
  <a name='L62'></a><a href='#L62'>62</a>
122
122
  <a name='L63'></a><a href='#L63'>63</a>
123
123
  <a name='L64'></a><a href='#L64'>64</a>
124
- <a name='L65'></a><a href='#L65'>65</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
125
- <span class="cline-any cline-yes">23x</span>
126
- <span class="cline-any cline-yes">23x</span>
124
+ <a name='L65'></a><a href='#L65'>65</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
125
+ <span class="cline-any cline-yes">24x</span>
126
+ <span class="cline-any cline-yes">24x</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
129
  <span class="cline-any cline-neutral">&nbsp;</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-yes">23x</span>
131
+ <span class="cline-any cline-yes">24x</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-yes">23x</span>
136
+ <span class="cline-any cline-yes">24x</span>
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-yes">23x</span>
140
+ <span class="cline-any cline-yes">24x</span>
141
141
  <span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-yes">23x</span>
142
+ <span class="cline-any cline-yes">24x</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-yes">23x</span>
144
+ <span class="cline-any cline-yes">24x</span>
145
145
  <span class="cline-any cline-neutral">&nbsp;</span>
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -184,7 +184,7 @@
184
184
  <span class="cline-any cline-neutral">&nbsp;</span>
185
185
  <span class="cline-any cline-neutral">&nbsp;</span>
186
186
  <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-yes">23x</span>
187
+ <span class="cline-any cline-yes">24x</span>
188
188
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
189
189
  const queryController = require("../controllers/query")
190
190
  const authorized = require("../../middleware/authorized")
@@ -256,7 +256,7 @@ module.exports = router
256
256
  <div class='footer quiet pad2 space-top1 center small'>
257
257
  Code coverage generated by
258
258
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
259
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
259
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
260
260
  </div>
261
261
  </div>
262
262
  <script src="../../prettify.js"></script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/11</span>
28
+ <span class='fraction'>8/8</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>0/0</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/11</span>
49
+ <span class='fraction'>8/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -72,94 +72,31 @@
72
72
  <a name='L13'></a><a href='#L13'>13</a>
73
73
  <a name='L14'></a><a href='#L14'>14</a>
74
74
  <a name='L15'></a><a href='#L15'>15</a>
75
- <a name='L16'></a><a href='#L16'>16</a>
76
- <a name='L17'></a><a href='#L17'>17</a>
77
- <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a>
82
- <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a>
85
- <a name='L26'></a><a href='#L26'>26</a>
86
- <a name='L27'></a><a href='#L27'>27</a>
87
- <a name='L28'></a><a href='#L28'>28</a>
88
- <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a>
90
- <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
97
- <span class="cline-any cline-yes">23x</span>
98
- <span class="cline-any cline-yes">23x</span>
99
- <span class="cline-any cline-yes">23x</span>
100
- <span class="cline-any cline-yes">23x</span>
101
- <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-neutral">&nbsp;</span>
103
- <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">23x</span>
106
- <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-yes">23x</span>
108
- <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">23x</span>
111
- <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-yes">23x</span>
113
- <span class="cline-any cline-neutral">&nbsp;</span>
75
+ <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
76
+ <span class="cline-any cline-yes">24x</span>
77
+ <span class="cline-any cline-yes">24x</span>
78
+ <span class="cline-any cline-yes">24x</span>
79
+ <span class="cline-any cline-yes">24x</span>
114
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
+ <span class="cline-any cline-yes">24x</span>
115
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <span class="cline-any cline-yes">24x</span>
116
84
  <span class="cline-any cline-neutral">&nbsp;</span>
117
85
  <span class="cline-any cline-neutral">&nbsp;</span>
118
86
  <span class="cline-any cline-neutral">&nbsp;</span>
119
87
  <span class="cline-any cline-neutral">&nbsp;</span>
120
88
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">23x</span>
126
- <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-yes">23x</span>
89
+ <span class="cline-any cline-yes">24x</span>
132
90
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
133
91
  const controller = require("../controllers/role")
134
92
  const authorized = require("../../middleware/authorized")
135
- const Joi = require("joi")
136
- const joiValidator = require("../../middleware/joi-validator")
137
- const {
138
- BUILTIN_PERMISSION_IDS,
139
- BUILDER,
140
- PermissionLevels,
141
- } = require("@budibase/backend-core/permissions")
93
+ const { BUILDER } = require("@budibase/backend-core/permissions")
94
+ const { roleValidator } = require("./utils/validators")
142
95
  &nbsp;
143
96
  const router = Router()
144
97
  &nbsp;
145
- function generateValidator() {
146
- const permLevelArray = Object.values(PermissionLevels)
147
- // prettier-ignore
148
- return joiValidator.body(Joi.object({
149
- _id: Joi.string().optional(),
150
- _rev: Joi.string().optional(),
151
- name: Joi.string().required(),
152
- // this is the base permission ID (for now a built in)
153
- permissionId: Joi.string().valid(...Object.values(BUILTIN_PERMISSION_IDS)).required(),
154
- permissions: Joi.object()
155
- .pattern(/.*/, [Joi.string().valid(...permLevelArray)])
156
- .optional(),
157
- inherits: Joi.string().optional(),
158
- }).unknown(true))
159
- }
160
- &nbsp;
161
98
  router
162
- .post("/api/roles", authorized(BUILDER), generateValidator(), controller.save)
99
+ .post("/api/roles", authorized(BUILDER), roleValidator(), controller.save)
163
100
  .get("/api/roles", authorized(BUILDER), controller.fetch)
164
101
  .get("/api/roles/:roleId", authorized(BUILDER), controller.find)
165
102
  .delete("/api/roles/:roleId/:rev", authorized(BUILDER), controller.destroy)
@@ -172,7 +109,7 @@ module.exports = router
172
109
  <div class='footer quiet pad2 space-top1 center small'>
173
110
  Code coverage generated by
174
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
112
+ at Tue Mar 08 2022 12:05:04 GMT+0000 (Coordinated Universal Time)
176
113
  </div>
177
114
  </div>
178
115
  <script src="../../prettify.js"></script>