@budibase/backend-core 2.9.39-alpha.8 → 2.9.39

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 (481) hide show
  1. package/dist/jest.config.js +25 -0
  2. package/dist/jest.config.js.map +1 -0
  3. package/dist/package.json +5 -5
  4. package/dist/src/accounts/accounts.js +75 -92
  5. package/dist/src/accounts/accounts.js.map +1 -7
  6. package/dist/src/accounts/api.js +85 -71
  7. package/dist/src/accounts/api.js.map +1 -7
  8. package/dist/src/accounts/index.js +16 -21
  9. package/dist/src/accounts/index.js.map +1 -7
  10. package/dist/src/auth/auth.js +178 -197
  11. package/dist/src/auth/auth.js.map +1 -7
  12. package/dist/src/auth/index.js +16 -21
  13. package/dist/src/auth/index.js.map +1 -7
  14. package/dist/src/blacklist/blacklist.js +69 -81
  15. package/dist/src/blacklist/blacklist.js.map +1 -7
  16. package/dist/src/blacklist/index.js +16 -21
  17. package/dist/src/blacklist/index.js.map +1 -7
  18. package/dist/src/cache/appMetadata.js +88 -78
  19. package/dist/src/cache/appMetadata.js.map +1 -7
  20. package/dist/src/cache/base/index.js +110 -92
  21. package/dist/src/cache/base/index.js.map +1 -7
  22. package/dist/src/cache/generic.js +26 -64
  23. package/dist/src/cache/generic.js.map +1 -7
  24. package/dist/src/cache/index.js +32 -48
  25. package/dist/src/cache/index.js.map +1 -7
  26. package/dist/src/cache/user.js +115 -91
  27. package/dist/src/cache/user.js.map +1 -7
  28. package/dist/src/cache/writethrough.js +144 -129
  29. package/dist/src/cache/writethrough.js.map +1 -7
  30. package/dist/src/configs/configs.js +265 -215
  31. package/dist/src/configs/configs.js.map +1 -7
  32. package/dist/src/configs/index.js +16 -21
  33. package/dist/src/configs/index.js.map +1 -7
  34. package/dist/src/constants/db.js +64 -104
  35. package/dist/src/constants/db.js.map +1 -7
  36. package/dist/src/constants/index.js +17 -23
  37. package/dist/src/constants/index.js.map +1 -7
  38. package/dist/src/constants/misc.js +53 -91
  39. package/dist/src/constants/misc.js.map +1 -7
  40. package/dist/src/context/Context.js +11 -33
  41. package/dist/src/context/Context.js.map +1 -7
  42. package/dist/src/context/identity.js +60 -75
  43. package/dist/src/context/identity.js.map +1 -7
  44. package/dist/src/context/index.js +31 -42
  45. package/dist/src/context/index.js.map +1 -7
  46. package/dist/src/context/mainContext.js +275 -264
  47. package/dist/src/context/mainContext.js.map +1 -7
  48. package/dist/src/context/types.js +2 -16
  49. package/dist/src/context/types.js.map +1 -7
  50. package/dist/src/db/Replication.js +81 -85
  51. package/dist/src/db/Replication.js.map +1 -7
  52. package/dist/src/db/constants.js +11 -37
  53. package/dist/src/db/constants.js.map +1 -7
  54. package/dist/src/db/couch/DatabaseImpl.js +236 -212
  55. package/dist/src/db/couch/DatabaseImpl.js.map +1 -7
  56. package/dist/src/db/couch/connections.js +81 -96
  57. package/dist/src/db/couch/connections.js.map +1 -7
  58. package/dist/src/db/couch/index.js +25 -42
  59. package/dist/src/db/couch/index.js.map +1 -7
  60. package/dist/src/db/couch/pouchDB.js +93 -103
  61. package/dist/src/db/couch/pouchDB.js.map +1 -7
  62. package/dist/src/db/couch/pouchDump.js +1 -1
  63. package/dist/src/db/couch/pouchDump.js.map +1 -7
  64. package/dist/src/db/couch/utils.js +49 -70
  65. package/dist/src/db/couch/utils.js.map +1 -7
  66. package/dist/src/db/db.js +49 -63
  67. package/dist/src/db/db.js.map +1 -7
  68. package/dist/src/db/errors.js +17 -38
  69. package/dist/src/db/errors.js.map +1 -7
  70. package/dist/src/db/index.js +45 -61
  71. package/dist/src/db/index.js.map +1 -7
  72. package/dist/src/db/lucene.js +655 -582
  73. package/dist/src/db/lucene.js.map +1 -7
  74. package/dist/src/db/searchIndexes/index.js +16 -21
  75. package/dist/src/db/searchIndexes/index.js.map +1 -7
  76. package/dist/src/db/searchIndexes/searchIndexes.js +72 -77
  77. package/dist/src/db/searchIndexes/searchIndexes.js.map +1 -7
  78. package/dist/src/db/utils.js +199 -184
  79. package/dist/src/db/utils.js.map +1 -7
  80. package/dist/src/db/views.js +187 -191
  81. package/dist/src/db/views.js.map +1 -7
  82. package/dist/src/docIds/conversions.js +48 -69
  83. package/dist/src/docIds/conversions.js.map +1 -7
  84. package/dist/src/docIds/ids.js +87 -76
  85. package/dist/src/docIds/ids.js.map +1 -7
  86. package/dist/src/docIds/index.js +17 -23
  87. package/dist/src/docIds/index.js.map +1 -7
  88. package/dist/src/docIds/newid.js +6 -29
  89. package/dist/src/docIds/newid.js.map +1 -7
  90. package/dist/src/docIds/params.js +111 -109
  91. package/dist/src/docIds/params.js.map +1 -7
  92. package/dist/src/docUpdates/index.js +29 -54
  93. package/dist/src/docUpdates/index.js.map +1 -7
  94. package/dist/src/environment.js +81 -152
  95. package/dist/src/environment.js.map +1 -7
  96. package/dist/src/errors/errors.js +77 -106
  97. package/dist/src/errors/errors.js.map +1 -7
  98. package/dist/src/errors/index.js +16 -21
  99. package/dist/src/errors/index.js.map +1 -7
  100. package/dist/src/events/analytics.js +38 -38
  101. package/dist/src/events/analytics.js.map +1 -7
  102. package/dist/src/events/asyncEvents/index.js +17 -23
  103. package/dist/src/events/asyncEvents/index.js.map +1 -7
  104. package/dist/src/events/asyncEvents/publisher.js +24 -36
  105. package/dist/src/events/asyncEvents/publisher.js.map +1 -7
  106. package/dist/src/events/asyncEvents/queue.js +21 -37
  107. package/dist/src/events/asyncEvents/queue.js.map +1 -7
  108. package/dist/src/events/backfill.js +170 -163
  109. package/dist/src/events/backfill.js.map +1 -7
  110. package/dist/src/events/documentId.js +23 -46
  111. package/dist/src/events/documentId.js.map +1 -7
  112. package/dist/src/events/events.js +68 -58
  113. package/dist/src/events/events.js.map +1 -7
  114. package/dist/src/events/identification.js +279 -254
  115. package/dist/src/events/identification.js.map +1 -7
  116. package/dist/src/events/index.js +42 -57
  117. package/dist/src/events/index.js.map +1 -7
  118. package/dist/src/events/processors/AnalyticsProcessor.js +81 -64
  119. package/dist/src/events/processors/AnalyticsProcessor.js.map +1 -7
  120. package/dist/src/events/processors/AuditLogsProcessor.js +79 -90
  121. package/dist/src/events/processors/AuditLogsProcessor.js.map +1 -7
  122. package/dist/src/events/processors/LoggingProcessor.js +39 -50
  123. package/dist/src/events/processors/LoggingProcessor.js.map +1 -7
  124. package/dist/src/events/processors/Processors.js +44 -49
  125. package/dist/src/events/processors/Processors.js.map +1 -7
  126. package/dist/src/events/processors/async/DocumentUpdateProcessor.js +37 -46
  127. package/dist/src/events/processors/async/DocumentUpdateProcessor.js.map +1 -7
  128. package/dist/src/events/processors/index.js +18 -52
  129. package/dist/src/events/processors/index.js.map +1 -7
  130. package/dist/src/events/processors/posthog/PosthogProcessor.js +126 -113
  131. package/dist/src/events/processors/posthog/PosthogProcessor.js.map +1 -7
  132. package/dist/src/events/processors/posthog/index.js +6 -34
  133. package/dist/src/events/processors/posthog/index.js.map +1 -7
  134. package/dist/src/events/processors/posthog/rateLimiting.js +104 -90
  135. package/dist/src/events/processors/posthog/rateLimiting.js.map +1 -7
  136. package/dist/src/events/processors/types.js +2 -28
  137. package/dist/src/events/processors/types.js.map +1 -7
  138. package/dist/src/events/publishers/account.js +37 -43
  139. package/dist/src/events/publishers/account.js.map +1 -7
  140. package/dist/src/events/publishers/app.js +139 -131
  141. package/dist/src/events/publishers/app.js.map +1 -7
  142. package/dist/src/events/publishers/auditLog.js +29 -37
  143. package/dist/src/events/publishers/auditLog.js.map +1 -7
  144. package/dist/src/events/publishers/auth.js +71 -71
  145. package/dist/src/events/publishers/auth.js.map +1 -7
  146. package/dist/src/events/publishers/automation.js +108 -102
  147. package/dist/src/events/publishers/automation.js.map +1 -7
  148. package/dist/src/events/publishers/backfill.js +75 -82
  149. package/dist/src/events/publishers/backfill.js.map +1 -7
  150. package/dist/src/events/publishers/backup.js +36 -44
  151. package/dist/src/events/publishers/backup.js.map +1 -7
  152. package/dist/src/events/publishers/datasource.js +46 -51
  153. package/dist/src/events/publishers/datasource.js.map +1 -7
  154. package/dist/src/events/publishers/email.js +25 -33
  155. package/dist/src/events/publishers/email.js.map +1 -7
  156. package/dist/src/events/publishers/environmentVariable.js +38 -47
  157. package/dist/src/events/publishers/environmentVariable.js.map +1 -7
  158. package/dist/src/events/publishers/group.js +97 -95
  159. package/dist/src/events/publishers/group.js.map +1 -7
  160. package/dist/src/events/publishers/index.js +53 -106
  161. package/dist/src/events/publishers/index.js.map +1 -7
  162. package/dist/src/events/publishers/installation.js +45 -49
  163. package/dist/src/events/publishers/installation.js.map +1 -7
  164. package/dist/src/events/publishers/layout.js +29 -37
  165. package/dist/src/events/publishers/layout.js.map +1 -7
  166. package/dist/src/events/publishers/license.js +67 -68
  167. package/dist/src/events/publishers/license.js.map +1 -7
  168. package/dist/src/events/publishers/org.js +44 -45
  169. package/dist/src/events/publishers/org.js.map +1 -7
  170. package/dist/src/events/publishers/plugin.js +49 -55
  171. package/dist/src/events/publishers/plugin.js.map +1 -7
  172. package/dist/src/events/publishers/query.js +70 -81
  173. package/dist/src/events/publishers/query.js.map +1 -7
  174. package/dist/src/events/publishers/role.js +61 -63
  175. package/dist/src/events/publishers/role.js.map +1 -7
  176. package/dist/src/events/publishers/rows.js +28 -39
  177. package/dist/src/events/publishers/rows.js.map +1 -7
  178. package/dist/src/events/publishers/screen.js +41 -47
  179. package/dist/src/events/publishers/screen.js.map +1 -7
  180. package/dist/src/events/publishers/serve.js +41 -47
  181. package/dist/src/events/publishers/serve.js.map +1 -7
  182. package/dist/src/events/publishers/table.js +69 -71
  183. package/dist/src/events/publishers/table.js.map +1 -7
  184. package/dist/src/events/publishers/user.js +184 -173
  185. package/dist/src/events/publishers/user.js.map +1 -7
  186. package/dist/src/events/publishers/view.js +98 -89
  187. package/dist/src/events/publishers/view.js.map +1 -7
  188. package/dist/src/features/index.js +88 -93
  189. package/dist/src/features/index.js.map +1 -7
  190. package/dist/src/features/installation.js +16 -38
  191. package/dist/src/features/installation.js.map +1 -7
  192. package/dist/src/helpers.js +11 -28
  193. package/dist/src/helpers.js.map +1 -7
  194. package/dist/src/index.js +77 -148
  195. package/dist/src/index.js.map +1 -7
  196. package/dist/src/installation.js +127 -128
  197. package/dist/src/installation.js.map +1 -7
  198. package/dist/src/logging/alerts.js +14 -39
  199. package/dist/src/logging/alerts.js.map +1 -7
  200. package/dist/src/logging/correlation/correlation.js +11 -35
  201. package/dist/src/logging/correlation/correlation.js.map +1 -7
  202. package/dist/src/logging/correlation/index.js +16 -21
  203. package/dist/src/logging/correlation/index.js.map +1 -7
  204. package/dist/src/logging/correlation/middleware.js +13 -33
  205. package/dist/src/logging/correlation/middleware.js.map +1 -7
  206. package/dist/src/logging/index.js +32 -45
  207. package/dist/src/logging/index.js.map +1 -7
  208. package/dist/src/logging/pino/logger.js +206 -185
  209. package/dist/src/logging/pino/logger.js.map +1 -7
  210. package/dist/src/logging/pino/middleware.js +38 -68
  211. package/dist/src/logging/pino/middleware.js.map +1 -7
  212. package/dist/src/logging/system.js +86 -95
  213. package/dist/src/logging/system.js.map +1 -7
  214. package/dist/src/middleware/adminOnly.js +16 -28
  215. package/dist/src/middleware/adminOnly.js.map +1 -7
  216. package/dist/src/middleware/auditLog.js +13 -24
  217. package/dist/src/middleware/auditLog.js.map +1 -7
  218. package/dist/src/middleware/authenticated.js +191 -165
  219. package/dist/src/middleware/authenticated.js.map +1 -7
  220. package/dist/src/middleware/builderOnly.js +29 -44
  221. package/dist/src/middleware/builderOnly.js.map +1 -7
  222. package/dist/src/middleware/builderOrAdmin.js +29 -44
  223. package/dist/src/middleware/builderOrAdmin.js.map +1 -7
  224. package/dist/src/middleware/csrf.js +75 -54
  225. package/dist/src/middleware/csrf.js.map +1 -7
  226. package/dist/src/middleware/errorHandling.js +60 -58
  227. package/dist/src/middleware/errorHandling.js.map +1 -7
  228. package/dist/src/middleware/index.js +61 -91
  229. package/dist/src/middleware/index.js.map +1 -7
  230. package/dist/src/middleware/internalApi.js +27 -36
  231. package/dist/src/middleware/internalApi.js.map +1 -7
  232. package/dist/src/middleware/joi-validator.js +39 -65
  233. package/dist/src/middleware/joi-validator.js.map +1 -7
  234. package/dist/src/middleware/matchers.js +36 -55
  235. package/dist/src/middleware/matchers.js.map +1 -7
  236. package/dist/src/middleware/passport/datasource/google.js +88 -96
  237. package/dist/src/middleware/passport/datasource/google.js.map +1 -7
  238. package/dist/src/middleware/passport/local.js +74 -66
  239. package/dist/src/middleware/passport/local.js.map +1 -7
  240. package/dist/src/middleware/passport/sso/google.js +81 -84
  241. package/dist/src/middleware/passport/sso/google.js.map +1 -7
  242. package/dist/src/middleware/passport/sso/oidc.js +140 -124
  243. package/dist/src/middleware/passport/sso/oidc.js.map +1 -7
  244. package/dist/src/middleware/passport/sso/sso.js +157 -141
  245. package/dist/src/middleware/passport/sso/sso.js.map +1 -7
  246. package/dist/src/middleware/passport/utils.js +60 -56
  247. package/dist/src/middleware/passport/utils.js.map +1 -7
  248. package/dist/src/middleware/querystringToBody.js +26 -42
  249. package/dist/src/middleware/querystringToBody.js.map +1 -7
  250. package/dist/src/middleware/tenancy.js +33 -42
  251. package/dist/src/middleware/tenancy.js.map +1 -7
  252. package/dist/src/migrations/definitions.js +37 -61
  253. package/dist/src/migrations/definitions.js.map +1 -7
  254. package/dist/src/migrations/index.js +17 -23
  255. package/dist/src/migrations/index.js.map +1 -7
  256. package/dist/src/migrations/migrations.js +182 -162
  257. package/dist/src/migrations/migrations.js.map +1 -7
  258. package/dist/src/objectStore/buckets/app.js +65 -57
  259. package/dist/src/objectStore/buckets/app.js.map +1 -7
  260. package/dist/src/objectStore/buckets/global.js +50 -55
  261. package/dist/src/objectStore/buckets/global.js.map +1 -7
  262. package/dist/src/objectStore/buckets/index.js +18 -25
  263. package/dist/src/objectStore/buckets/index.js.map +1 -7
  264. package/dist/src/objectStore/buckets/plugins.js +76 -82
  265. package/dist/src/objectStore/buckets/plugins.js.map +1 -7
  266. package/dist/src/objectStore/cloudfront.js +27 -61
  267. package/dist/src/objectStore/cloudfront.js.map +1 -7
  268. package/dist/src/objectStore/index.js +18 -25
  269. package/dist/src/objectStore/index.js.map +1 -7
  270. package/dist/src/objectStore/objectStore.js +351 -341
  271. package/dist/src/objectStore/objectStore.js.map +1 -7
  272. package/dist/src/objectStore/utils.js +26 -52
  273. package/dist/src/objectStore/utils.js.map +1 -7
  274. package/dist/src/platform/index.js +30 -42
  275. package/dist/src/platform/index.js.map +1 -7
  276. package/dist/src/platform/platformDb.js +7 -30
  277. package/dist/src/platform/platformDb.js.map +1 -7
  278. package/dist/src/platform/tenants.js +126 -110
  279. package/dist/src/platform/tenants.js.map +1 -7
  280. package/dist/src/platform/users.js +84 -92
  281. package/dist/src/platform/users.js.map +1 -7
  282. package/dist/src/plugin/index.js +16 -21
  283. package/dist/src/plugin/index.js.map +1 -7
  284. package/dist/src/plugin/utils.js +129 -137
  285. package/dist/src/plugin/utils.js.map +1 -7
  286. package/dist/src/queue/constants.js +10 -34
  287. package/dist/src/queue/constants.js.map +1 -7
  288. package/dist/src/queue/inMemoryQueue.js +137 -131
  289. package/dist/src/queue/inMemoryQueue.js.map +1 -7
  290. package/dist/src/queue/index.js +17 -23
  291. package/dist/src/queue/index.js.map +1 -7
  292. package/dist/src/queue/listeners.js +170 -161
  293. package/dist/src/queue/listeners.js.map +1 -7
  294. package/dist/src/queue/queue.js +83 -76
  295. package/dist/src/queue/queue.js.map +1 -7
  296. package/dist/src/redis/index.js +34 -45
  297. package/dist/src/redis/index.js.map +1 -7
  298. package/dist/src/redis/init.js +125 -115
  299. package/dist/src/redis/init.js.map +1 -7
  300. package/dist/src/redis/redis.js +302 -244
  301. package/dist/src/redis/redis.js.map +1 -7
  302. package/dist/src/redis/redlockImpl.js +152 -135
  303. package/dist/src/redis/redlockImpl.js.map +1 -7
  304. package/dist/src/redis/utils.js +115 -128
  305. package/dist/src/redis/utils.js.map +1 -7
  306. package/dist/src/security/encryption.js +141 -162
  307. package/dist/src/security/encryption.js.map +1 -7
  308. package/dist/src/security/permissions.js +132 -170
  309. package/dist/src/security/permissions.js.map +1 -7
  310. package/dist/src/security/roles.js +319 -298
  311. package/dist/src/security/roles.js.map +1 -7
  312. package/dist/src/security/sessions.js +106 -120
  313. package/dist/src/security/sessions.js.map +1 -7
  314. package/dist/src/tenancy/db.js +7 -30
  315. package/dist/src/tenancy/db.js.map +1 -7
  316. package/dist/src/tenancy/index.js +17 -23
  317. package/dist/src/tenancy/index.js.map +1 -7
  318. package/dist/src/tenancy/tenancy.js +101 -114
  319. package/dist/src/tenancy/tenancy.js.map +1 -7
  320. package/dist/src/timers/index.js +16 -21
  321. package/dist/src/timers/index.js.map +1 -7
  322. package/dist/src/timers/timers.js +18 -43
  323. package/dist/src/timers/timers.js.map +1 -7
  324. package/dist/src/users/db.js +403 -357
  325. package/dist/src/users/db.js.map +1 -7
  326. package/dist/src/users/events.js +150 -133
  327. package/dist/src/users/events.js.map +1 -7
  328. package/dist/src/users/index.js +21 -34
  329. package/dist/src/users/index.js.map +1 -7
  330. package/dist/src/users/lookup.js +104 -102
  331. package/dist/src/users/lookup.js.map +1 -7
  332. package/dist/src/users/users.js +244 -240
  333. package/dist/src/users/users.js.map +1 -7
  334. package/dist/src/users/utils.js +87 -90
  335. package/dist/src/users/utils.js.map +1 -7
  336. package/dist/src/utils/hashing.js +42 -48
  337. package/dist/src/utils/hashing.js.map +1 -7
  338. package/dist/src/utils/index.js +18 -25
  339. package/dist/src/utils/index.js.map +1 -7
  340. package/dist/src/utils/stringUtils.js +6 -30
  341. package/dist/src/utils/stringUtils.js.map +1 -7
  342. package/dist/src/utils/utils.js +212 -172
  343. package/dist/src/utils/utils.js.map +1 -7
  344. package/dist/tests/core/logging.js +21 -45
  345. package/dist/tests/core/logging.js.map +1 -7
  346. package/dist/tests/core/utilities/index.js +34 -51
  347. package/dist/tests/core/utilities/index.js.map +1 -7
  348. package/dist/tests/core/utilities/jestUtils.js +16 -45
  349. package/dist/tests/core/utilities/jestUtils.js.map +1 -7
  350. package/dist/tests/core/utilities/mocks/alerts.js +27 -38
  351. package/dist/tests/core/utilities/mocks/alerts.js.map +1 -7
  352. package/dist/tests/core/utilities/mocks/date.js +5 -31
  353. package/dist/tests/core/utilities/mocks/date.js.map +1 -7
  354. package/dist/tests/core/utilities/mocks/events.js +141 -131
  355. package/dist/tests/core/utilities/mocks/events.js.map +1 -7
  356. package/dist/tests/core/utilities/mocks/fetch.js +10 -34
  357. package/dist/tests/core/utilities/mocks/fetch.js.map +1 -7
  358. package/dist/tests/core/utilities/mocks/index.js +39 -51
  359. package/dist/tests/core/utilities/mocks/index.js.map +1 -7
  360. package/dist/tests/core/utilities/mocks/licenses.js +67 -107
  361. package/dist/tests/core/utilities/mocks/licenses.js.map +1 -7
  362. package/dist/tests/core/utilities/mocks/posthog.js +6 -6
  363. package/dist/tests/core/utilities/mocks/posthog.js.map +1 -7
  364. package/dist/tests/core/utilities/structures/Chance.js +17 -44
  365. package/dist/tests/core/utilities/structures/Chance.js.map +1 -7
  366. package/dist/tests/core/utilities/structures/accounts.js +61 -131
  367. package/dist/tests/core/utilities/structures/accounts.js.map +1 -7
  368. package/dist/tests/core/utilities/structures/apps.js +21 -44
  369. package/dist/tests/core/utilities/structures/apps.js.map +1 -7
  370. package/dist/tests/core/utilities/structures/common.js +8 -32
  371. package/dist/tests/core/utilities/structures/common.js.map +1 -7
  372. package/dist/tests/core/utilities/structures/db.js +11 -35
  373. package/dist/tests/core/utilities/structures/db.js.map +1 -7
  374. package/dist/tests/core/utilities/structures/documents/index.js +16 -21
  375. package/dist/tests/core/utilities/structures/documents/index.js.map +1 -7
  376. package/dist/tests/core/utilities/structures/documents/platform/index.js +26 -37
  377. package/dist/tests/core/utilities/structures/documents/platform/index.js.map +1 -7
  378. package/dist/tests/core/utilities/structures/documents/platform/installation.js +34 -44
  379. package/dist/tests/core/utilities/structures/documents/platform/installation.js.map +1 -7
  380. package/dist/tests/core/utilities/structures/generator.js +7 -38
  381. package/dist/tests/core/utilities/structures/generator.js.map +1 -7
  382. package/dist/tests/core/utilities/structures/index.js +43 -78
  383. package/dist/tests/core/utilities/structures/index.js.map +1 -7
  384. package/dist/tests/core/utilities/structures/koa.js +7 -39
  385. package/dist/tests/core/utilities/structures/koa.js.map +1 -7
  386. package/dist/tests/core/utilities/structures/licenses.js +121 -156
  387. package/dist/tests/core/utilities/structures/licenses.js.map +1 -7
  388. package/dist/tests/core/utilities/structures/plugins.js +20 -43
  389. package/dist/tests/core/utilities/structures/plugins.js.map +1 -7
  390. package/dist/tests/core/utilities/structures/quotas.js +67 -90
  391. package/dist/tests/core/utilities/structures/quotas.js.map +1 -7
  392. package/dist/tests/core/utilities/structures/scim.js +57 -84
  393. package/dist/tests/core/utilities/structures/scim.js.map +1 -7
  394. package/dist/tests/core/utilities/structures/shared.js +9 -41
  395. package/dist/tests/core/utilities/structures/shared.js.map +1 -7
  396. package/dist/tests/core/utilities/structures/sso.js +112 -124
  397. package/dist/tests/core/utilities/structures/sso.js.map +1 -7
  398. package/dist/tests/core/utilities/structures/tenants.js +6 -29
  399. package/dist/tests/core/utilities/structures/tenants.js.map +1 -7
  400. package/dist/tests/core/utilities/structures/userGroups.js +10 -33
  401. package/dist/tests/core/utilities/structures/userGroups.js.map +1 -7
  402. package/dist/tests/core/utilities/structures/users.js +36 -84
  403. package/dist/tests/core/utilities/structures/users.js.map +1 -7
  404. package/dist/tests/core/utilities/testContainerUtils.js +59 -84
  405. package/dist/tests/core/utilities/testContainerUtils.js.map +1 -7
  406. package/dist/tests/core/utilities/utils/index.js +26 -37
  407. package/dist/tests/core/utilities/utils/index.js.map +1 -7
  408. package/dist/tests/core/utilities/utils/time.js +5 -28
  409. package/dist/tests/core/utilities/utils/time.js.map +1 -7
  410. package/dist/tests/extra/DBTestConfiguration.js +50 -56
  411. package/dist/tests/extra/DBTestConfiguration.js.map +1 -7
  412. package/dist/tests/extra/index.js +30 -39
  413. package/dist/tests/extra/index.js.map +1 -7
  414. package/dist/tests/extra/testEnv.js +105 -84
  415. package/dist/tests/extra/testEnv.js.map +1 -7
  416. package/dist/tests/index.js +16 -21
  417. package/dist/tests/index.js.map +1 -7
  418. package/dist/tests/jestEnv.js +1 -1
  419. package/dist/tests/jestEnv.js.map +1 -7
  420. package/dist/tests/jestSetup.js +20 -33
  421. package/dist/tests/jestSetup.js.map +1 -7
  422. package/package.json +5 -5
  423. package/dist/plugins.js +0 -290
  424. package/dist/plugins.js.map +0 -7
  425. package/dist/plugins.js.meta.json +0 -1
  426. package/dist/src/auth/tests/auth.spec.js +0 -37
  427. package/dist/src/auth/tests/auth.spec.js.map +0 -7
  428. package/dist/src/blacklist/tests/blacklist.spec.js +0 -61
  429. package/dist/src/blacklist/tests/blacklist.spec.js.map +0 -7
  430. package/dist/src/cache/tests/writethrough.spec.js +0 -132
  431. package/dist/src/cache/tests/writethrough.spec.js.map +0 -7
  432. package/dist/src/configs/tests/configs.spec.js +0 -182
  433. package/dist/src/configs/tests/configs.spec.js.map +0 -7
  434. package/dist/src/context/tests/index.spec.js +0 -147
  435. package/dist/src/context/tests/index.spec.js.map +0 -7
  436. package/dist/src/db/tests/index.spec.js +0 -24
  437. package/dist/src/db/tests/index.spec.js.map +0 -7
  438. package/dist/src/db/tests/lucene.spec.js +0 -312
  439. package/dist/src/db/tests/lucene.spec.js.map +0 -7
  440. package/dist/src/db/tests/pouch.spec.js +0 -63
  441. package/dist/src/db/tests/pouch.spec.js.map +0 -7
  442. package/dist/src/db/tests/utils.spec.js +0 -50
  443. package/dist/src/db/tests/utils.spec.js.map +0 -7
  444. package/dist/src/events/processors/posthog/tests/PosthogProcessor.spec.js +0 -154
  445. package/dist/src/events/processors/posthog/tests/PosthogProcessor.spec.js.map +0 -7
  446. package/dist/src/features/tests/featureFlags.spec.js +0 -86
  447. package/dist/src/features/tests/featureFlags.spec.js.map +0 -7
  448. package/dist/src/logging/tests/system.spec.js +0 -59
  449. package/dist/src/logging/tests/system.spec.js.map +0 -7
  450. package/dist/src/middleware/passport/sso/tests/google.spec.js +0 -77
  451. package/dist/src/middleware/passport/sso/tests/google.spec.js.map +0 -7
  452. package/dist/src/middleware/passport/sso/tests/oidc.spec.js +0 -143
  453. package/dist/src/middleware/passport/sso/tests/oidc.spec.js.map +0 -7
  454. package/dist/src/middleware/passport/sso/tests/sso.spec.js +0 -167
  455. package/dist/src/middleware/passport/sso/tests/sso.spec.js.map +0 -7
  456. package/dist/src/middleware/tests/builder.spec.js +0 -169
  457. package/dist/src/middleware/tests/builder.spec.js.map +0 -7
  458. package/dist/src/middleware/tests/matchers.spec.js +0 -120
  459. package/dist/src/middleware/tests/matchers.spec.js.map +0 -7
  460. package/dist/src/migrations/tests/migrations.spec.js +0 -78
  461. package/dist/src/migrations/tests/migrations.spec.js.map +0 -7
  462. package/dist/src/objectStore/buckets/tests/app.spec.js +0 -171
  463. package/dist/src/objectStore/buckets/tests/app.spec.js.map +0 -7
  464. package/dist/src/objectStore/buckets/tests/global.spec.js +0 -87
  465. package/dist/src/objectStore/buckets/tests/global.spec.js.map +0 -7
  466. package/dist/src/objectStore/buckets/tests/plugins.spec.js +0 -123
  467. package/dist/src/objectStore/buckets/tests/plugins.spec.js.map +0 -7
  468. package/dist/src/platform/tests/tenants.spec.js +0 -46
  469. package/dist/src/platform/tests/tenants.spec.js.map +0 -7
  470. package/dist/src/plugin/tests/validation.spec.js +0 -97
  471. package/dist/src/plugin/tests/validation.spec.js.map +0 -7
  472. package/dist/src/security/tests/encryption.spec.js +0 -51
  473. package/dist/src/security/tests/encryption.spec.js.map +0 -7
  474. package/dist/src/security/tests/permissions.spec.js +0 -154
  475. package/dist/src/security/tests/permissions.spec.js.map +0 -7
  476. package/dist/src/security/tests/sessions.spec.js +0 -33
  477. package/dist/src/security/tests/sessions.spec.js.map +0 -7
  478. package/dist/src/tenancy/tests/tenancy.spec.js +0 -154
  479. package/dist/src/tenancy/tests/tenancy.spec.js.map +0 -7
  480. package/dist/src/utils/tests/utils.spec.js +0 -165
  481. package/dist/src/utils/tests/utils.spec.js.map +0 -7
@@ -1,188 +1,150 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
4
  };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var permissions_exports = {};
30
- __export(permissions_exports, {
31
- BUILDER: () => BUILDER,
32
- BUILTIN_PERMISSIONS: () => BUILTIN_PERMISSIONS,
33
- BuiltinPermissionID: () => BuiltinPermissionID,
34
- GLOBAL_BUILDER: () => GLOBAL_BUILDER,
35
- Permission: () => Permission,
36
- PermissionLevel: () => import_types2.PermissionLevel,
37
- PermissionType: () => import_types2.PermissionType,
38
- doesHaveBasePermission: () => doesHaveBasePermission,
39
- getAllowedLevels: () => getAllowedLevels,
40
- getBuiltinPermissionByID: () => getBuiltinPermissionByID,
41
- getBuiltinPermissions: () => getBuiltinPermissions,
42
- isPermissionLevelHigherThanRead: () => isPermissionLevelHigherThanRead,
43
- levelToNumber: () => levelToNumber
44
- });
45
- module.exports = __toCommonJS(permissions_exports);
46
- var import_types = require("@budibase/types");
47
- var import_types2 = require("@budibase/types");
48
- var import_flatten = __toESM(require("lodash/flatten"));
49
- var import_cloneDeep = __toESM(require("lodash/fp/cloneDeep"));
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GLOBAL_BUILDER = exports.BUILDER = exports.isPermissionLevelHigherThanRead = exports.doesHaveBasePermission = exports.getBuiltinPermissionByID = exports.getBuiltinPermissions = exports.BUILTIN_PERMISSIONS = exports.BuiltinPermissionID = exports.getAllowedLevels = exports.levelToNumber = exports.Permission = exports.PermissionLevel = exports.PermissionType = void 0;
7
+ const types_1 = require("@budibase/types");
8
+ var types_2 = require("@budibase/types");
9
+ Object.defineProperty(exports, "PermissionType", { enumerable: true, get: function () { return types_2.PermissionType; } });
10
+ Object.defineProperty(exports, "PermissionLevel", { enumerable: true, get: function () { return types_2.PermissionLevel; } });
11
+ const flatten_1 = __importDefault(require("lodash/flatten"));
12
+ const cloneDeep_1 = __importDefault(require("lodash/fp/cloneDeep"));
50
13
  class Permission {
51
- constructor(type, level) {
52
- this.type = type;
53
- this.level = level;
54
- }
14
+ constructor(type, level) {
15
+ this.type = type;
16
+ this.level = level;
17
+ }
55
18
  }
19
+ exports.Permission = Permission;
56
20
  function levelToNumber(perm) {
57
- switch (perm) {
58
- case import_types.PermissionLevel.EXECUTE:
59
- return 0;
60
- case import_types.PermissionLevel.READ:
61
- return 1;
62
- case import_types.PermissionLevel.WRITE:
63
- return 2;
64
- case import_types.PermissionLevel.ADMIN:
65
- return 3;
66
- default:
67
- return -1;
68
- }
21
+ switch (perm) {
22
+ // not everything has execute privileges
23
+ case types_1.PermissionLevel.EXECUTE:
24
+ return 0;
25
+ case types_1.PermissionLevel.READ:
26
+ return 1;
27
+ case types_1.PermissionLevel.WRITE:
28
+ return 2;
29
+ case types_1.PermissionLevel.ADMIN:
30
+ return 3;
31
+ default:
32
+ return -1;
33
+ }
69
34
  }
35
+ exports.levelToNumber = levelToNumber;
36
+ /**
37
+ * Given the specified permission level for the user return the levels they are allowed to carry out.
38
+ * @param {string} userPermLevel The permission level of the user.
39
+ * @return {string[]} All the permission levels this user is allowed to carry out.
40
+ */
70
41
  function getAllowedLevels(userPermLevel) {
71
- switch (userPermLevel) {
72
- case import_types.PermissionLevel.EXECUTE:
73
- return [import_types.PermissionLevel.EXECUTE];
74
- case import_types.PermissionLevel.READ:
75
- return [import_types.PermissionLevel.EXECUTE, import_types.PermissionLevel.READ];
76
- case import_types.PermissionLevel.WRITE:
77
- case import_types.PermissionLevel.ADMIN:
78
- return [
79
- import_types.PermissionLevel.EXECUTE,
80
- import_types.PermissionLevel.READ,
81
- import_types.PermissionLevel.WRITE
82
- ];
83
- default:
84
- return [];
85
- }
42
+ switch (userPermLevel) {
43
+ case types_1.PermissionLevel.EXECUTE:
44
+ return [types_1.PermissionLevel.EXECUTE];
45
+ case types_1.PermissionLevel.READ:
46
+ return [types_1.PermissionLevel.EXECUTE, types_1.PermissionLevel.READ];
47
+ case types_1.PermissionLevel.WRITE:
48
+ case types_1.PermissionLevel.ADMIN:
49
+ return [
50
+ types_1.PermissionLevel.EXECUTE,
51
+ types_1.PermissionLevel.READ,
52
+ types_1.PermissionLevel.WRITE,
53
+ ];
54
+ default:
55
+ return [];
56
+ }
86
57
  }
87
- var BuiltinPermissionID = /* @__PURE__ */ ((BuiltinPermissionID2) => {
88
- BuiltinPermissionID2["PUBLIC"] = "public";
89
- BuiltinPermissionID2["READ_ONLY"] = "read_only";
90
- BuiltinPermissionID2["WRITE"] = "write";
91
- BuiltinPermissionID2["ADMIN"] = "admin";
92
- BuiltinPermissionID2["POWER"] = "power";
93
- return BuiltinPermissionID2;
94
- })(BuiltinPermissionID || {});
95
- const BUILTIN_PERMISSIONS = {
96
- PUBLIC: {
97
- _id: "public" /* PUBLIC */,
98
- name: "Public",
99
- permissions: [
100
- new Permission(import_types.PermissionType.WEBHOOK, import_types.PermissionLevel.EXECUTE)
101
- ]
102
- },
103
- READ_ONLY: {
104
- _id: "read_only" /* READ_ONLY */,
105
- name: "Read only",
106
- permissions: [
107
- new Permission(import_types.PermissionType.QUERY, import_types.PermissionLevel.READ),
108
- new Permission(import_types.PermissionType.TABLE, import_types.PermissionLevel.READ)
109
- ]
110
- },
111
- WRITE: {
112
- _id: "write" /* WRITE */,
113
- name: "Read/Write",
114
- permissions: [
115
- new Permission(import_types.PermissionType.QUERY, import_types.PermissionLevel.WRITE),
116
- new Permission(import_types.PermissionType.TABLE, import_types.PermissionLevel.WRITE),
117
- new Permission(import_types.PermissionType.AUTOMATION, import_types.PermissionLevel.EXECUTE),
118
- new Permission(import_types.PermissionType.LEGACY_VIEW, import_types.PermissionLevel.READ)
119
- ]
120
- },
121
- POWER: {
122
- _id: "power" /* POWER */,
123
- name: "Power",
124
- permissions: [
125
- new Permission(import_types.PermissionType.TABLE, import_types.PermissionLevel.WRITE),
126
- new Permission(import_types.PermissionType.USER, import_types.PermissionLevel.READ),
127
- new Permission(import_types.PermissionType.AUTOMATION, import_types.PermissionLevel.EXECUTE),
128
- new Permission(import_types.PermissionType.WEBHOOK, import_types.PermissionLevel.READ),
129
- new Permission(import_types.PermissionType.LEGACY_VIEW, import_types.PermissionLevel.READ)
130
- ]
131
- },
132
- ADMIN: {
133
- _id: "admin" /* ADMIN */,
134
- name: "Admin",
135
- permissions: [
136
- new Permission(import_types.PermissionType.TABLE, import_types.PermissionLevel.ADMIN),
137
- new Permission(import_types.PermissionType.USER, import_types.PermissionLevel.ADMIN),
138
- new Permission(import_types.PermissionType.AUTOMATION, import_types.PermissionLevel.ADMIN),
139
- new Permission(import_types.PermissionType.WEBHOOK, import_types.PermissionLevel.READ),
140
- new Permission(import_types.PermissionType.QUERY, import_types.PermissionLevel.ADMIN),
141
- new Permission(import_types.PermissionType.LEGACY_VIEW, import_types.PermissionLevel.READ)
142
- ]
143
- }
58
+ exports.getAllowedLevels = getAllowedLevels;
59
+ var BuiltinPermissionID;
60
+ (function (BuiltinPermissionID) {
61
+ BuiltinPermissionID["PUBLIC"] = "public";
62
+ BuiltinPermissionID["READ_ONLY"] = "read_only";
63
+ BuiltinPermissionID["WRITE"] = "write";
64
+ BuiltinPermissionID["ADMIN"] = "admin";
65
+ BuiltinPermissionID["POWER"] = "power";
66
+ })(BuiltinPermissionID = exports.BuiltinPermissionID || (exports.BuiltinPermissionID = {}));
67
+ exports.BUILTIN_PERMISSIONS = {
68
+ PUBLIC: {
69
+ _id: BuiltinPermissionID.PUBLIC,
70
+ name: "Public",
71
+ permissions: [
72
+ new Permission(types_1.PermissionType.WEBHOOK, types_1.PermissionLevel.EXECUTE),
73
+ ],
74
+ },
75
+ READ_ONLY: {
76
+ _id: BuiltinPermissionID.READ_ONLY,
77
+ name: "Read only",
78
+ permissions: [
79
+ new Permission(types_1.PermissionType.QUERY, types_1.PermissionLevel.READ),
80
+ new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.READ),
81
+ ],
82
+ },
83
+ WRITE: {
84
+ _id: BuiltinPermissionID.WRITE,
85
+ name: "Read/Write",
86
+ permissions: [
87
+ new Permission(types_1.PermissionType.QUERY, types_1.PermissionLevel.WRITE),
88
+ new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.WRITE),
89
+ new Permission(types_1.PermissionType.AUTOMATION, types_1.PermissionLevel.EXECUTE),
90
+ new Permission(types_1.PermissionType.LEGACY_VIEW, types_1.PermissionLevel.READ),
91
+ ],
92
+ },
93
+ POWER: {
94
+ _id: BuiltinPermissionID.POWER,
95
+ name: "Power",
96
+ permissions: [
97
+ new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.WRITE),
98
+ new Permission(types_1.PermissionType.USER, types_1.PermissionLevel.READ),
99
+ new Permission(types_1.PermissionType.AUTOMATION, types_1.PermissionLevel.EXECUTE),
100
+ new Permission(types_1.PermissionType.WEBHOOK, types_1.PermissionLevel.READ),
101
+ new Permission(types_1.PermissionType.LEGACY_VIEW, types_1.PermissionLevel.READ),
102
+ ],
103
+ },
104
+ ADMIN: {
105
+ _id: BuiltinPermissionID.ADMIN,
106
+ name: "Admin",
107
+ permissions: [
108
+ new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.ADMIN),
109
+ new Permission(types_1.PermissionType.USER, types_1.PermissionLevel.ADMIN),
110
+ new Permission(types_1.PermissionType.AUTOMATION, types_1.PermissionLevel.ADMIN),
111
+ new Permission(types_1.PermissionType.WEBHOOK, types_1.PermissionLevel.READ),
112
+ new Permission(types_1.PermissionType.QUERY, types_1.PermissionLevel.ADMIN),
113
+ new Permission(types_1.PermissionType.LEGACY_VIEW, types_1.PermissionLevel.READ),
114
+ ],
115
+ },
144
116
  };
145
117
  function getBuiltinPermissions() {
146
- return (0, import_cloneDeep.default)(BUILTIN_PERMISSIONS);
118
+ return (0, cloneDeep_1.default)(exports.BUILTIN_PERMISSIONS);
147
119
  }
120
+ exports.getBuiltinPermissions = getBuiltinPermissions;
148
121
  function getBuiltinPermissionByID(id) {
149
- const perms = Object.values(BUILTIN_PERMISSIONS);
150
- return perms.find((perm) => perm._id === id);
122
+ const perms = Object.values(exports.BUILTIN_PERMISSIONS);
123
+ return perms.find(perm => perm._id === id);
151
124
  }
125
+ exports.getBuiltinPermissionByID = getBuiltinPermissionByID;
152
126
  function doesHaveBasePermission(permType, permLevel, rolesHierarchy) {
153
- const basePermissions = [
154
- ...new Set(rolesHierarchy.map((role) => role.permissionId))
155
- ];
156
- const builtins = Object.values(BUILTIN_PERMISSIONS);
157
- let permissions = (0, import_flatten.default)(
158
- builtins.filter((builtin) => basePermissions.indexOf(builtin._id) !== -1).map((builtin) => builtin.permissions)
159
- );
160
- for (let permission of permissions) {
161
- if (permission.type === permType && getAllowedLevels(permission.level).indexOf(permLevel) !== -1) {
162
- return true;
127
+ const basePermissions = [
128
+ ...new Set(rolesHierarchy.map(role => role.permissionId)),
129
+ ];
130
+ const builtins = Object.values(exports.BUILTIN_PERMISSIONS);
131
+ let permissions = (0, flatten_1.default)(builtins
132
+ .filter(builtin => basePermissions.indexOf(builtin._id) !== -1)
133
+ .map(builtin => builtin.permissions));
134
+ for (let permission of permissions) {
135
+ if (permission.type === permType &&
136
+ getAllowedLevels(permission.level).indexOf(permLevel) !== -1) {
137
+ return true;
138
+ }
163
139
  }
164
- }
165
- return false;
140
+ return false;
166
141
  }
142
+ exports.doesHaveBasePermission = doesHaveBasePermission;
167
143
  function isPermissionLevelHigherThanRead(level) {
168
- return levelToNumber(level) > 1;
144
+ return levelToNumber(level) > 1;
169
145
  }
170
- const BUILDER = import_types.PermissionType.BUILDER;
171
- const GLOBAL_BUILDER = import_types.PermissionType.GLOBAL_BUILDER;
172
- // Annotate the CommonJS export names for ESM import in node:
173
- 0 && (module.exports = {
174
- BUILDER,
175
- BUILTIN_PERMISSIONS,
176
- BuiltinPermissionID,
177
- GLOBAL_BUILDER,
178
- Permission,
179
- PermissionLevel,
180
- PermissionType,
181
- doesHaveBasePermission,
182
- getAllowedLevels,
183
- getBuiltinPermissionByID,
184
- getBuiltinPermissions,
185
- isPermissionLevelHigherThanRead,
186
- levelToNumber
187
- });
188
- //# sourceMappingURL=permissions.js.map
146
+ exports.isPermissionLevelHigherThanRead = isPermissionLevelHigherThanRead;
147
+ // utility as a lot of things need simply the builder permission
148
+ exports.BUILDER = types_1.PermissionType.BUILDER;
149
+ exports.GLOBAL_BUILDER = types_1.PermissionType.GLOBAL_BUILDER;
150
+ //# sourceMappingURL=permissions.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/security/permissions.ts"],
4
- "sourcesContent": ["import { PermissionType, PermissionLevel } from \"@budibase/types\"\nexport { PermissionType, PermissionLevel } from \"@budibase/types\"\nimport flatten from \"lodash/flatten\"\nimport cloneDeep from \"lodash/fp/cloneDeep\"\n\nexport type RoleHierarchy = {\n permissionId: string\n}[]\n\nexport class Permission {\n type: PermissionType\n level: PermissionLevel\n\n constructor(type: PermissionType, level: PermissionLevel) {\n this.type = type\n this.level = level\n }\n}\n\nexport function levelToNumber(perm: PermissionLevel) {\n switch (perm) {\n // not everything has execute privileges\n case PermissionLevel.EXECUTE:\n return 0\n case PermissionLevel.READ:\n return 1\n case PermissionLevel.WRITE:\n return 2\n case PermissionLevel.ADMIN:\n return 3\n default:\n return -1\n }\n}\n\n/**\n * Given the specified permission level for the user return the levels they are allowed to carry out.\n * @param {string} userPermLevel The permission level of the user.\n * @return {string[]} All the permission levels this user is allowed to carry out.\n */\nexport function getAllowedLevels(userPermLevel: PermissionLevel): string[] {\n switch (userPermLevel) {\n case PermissionLevel.EXECUTE:\n return [PermissionLevel.EXECUTE]\n case PermissionLevel.READ:\n return [PermissionLevel.EXECUTE, PermissionLevel.READ]\n case PermissionLevel.WRITE:\n case PermissionLevel.ADMIN:\n return [\n PermissionLevel.EXECUTE,\n PermissionLevel.READ,\n PermissionLevel.WRITE,\n ]\n default:\n return []\n }\n}\n\nexport enum BuiltinPermissionID {\n PUBLIC = \"public\",\n READ_ONLY = \"read_only\",\n WRITE = \"write\",\n ADMIN = \"admin\",\n POWER = \"power\",\n}\n\nexport const BUILTIN_PERMISSIONS = {\n PUBLIC: {\n _id: BuiltinPermissionID.PUBLIC,\n name: \"Public\",\n permissions: [\n new Permission(PermissionType.WEBHOOK, PermissionLevel.EXECUTE),\n ],\n },\n READ_ONLY: {\n _id: BuiltinPermissionID.READ_ONLY,\n name: \"Read only\",\n permissions: [\n new Permission(PermissionType.QUERY, PermissionLevel.READ),\n new Permission(PermissionType.TABLE, PermissionLevel.READ),\n ],\n },\n WRITE: {\n _id: BuiltinPermissionID.WRITE,\n name: \"Read/Write\",\n permissions: [\n new Permission(PermissionType.QUERY, PermissionLevel.WRITE),\n new Permission(PermissionType.TABLE, PermissionLevel.WRITE),\n new Permission(PermissionType.AUTOMATION, PermissionLevel.EXECUTE),\n new Permission(PermissionType.LEGACY_VIEW, PermissionLevel.READ),\n ],\n },\n POWER: {\n _id: BuiltinPermissionID.POWER,\n name: \"Power\",\n permissions: [\n new Permission(PermissionType.TABLE, PermissionLevel.WRITE),\n new Permission(PermissionType.USER, PermissionLevel.READ),\n new Permission(PermissionType.AUTOMATION, PermissionLevel.EXECUTE),\n new Permission(PermissionType.WEBHOOK, PermissionLevel.READ),\n new Permission(PermissionType.LEGACY_VIEW, PermissionLevel.READ),\n ],\n },\n ADMIN: {\n _id: BuiltinPermissionID.ADMIN,\n name: \"Admin\",\n permissions: [\n new Permission(PermissionType.TABLE, PermissionLevel.ADMIN),\n new Permission(PermissionType.USER, PermissionLevel.ADMIN),\n new Permission(PermissionType.AUTOMATION, PermissionLevel.ADMIN),\n new Permission(PermissionType.WEBHOOK, PermissionLevel.READ),\n new Permission(PermissionType.QUERY, PermissionLevel.ADMIN),\n new Permission(PermissionType.LEGACY_VIEW, PermissionLevel.READ),\n ],\n },\n}\n\nexport function getBuiltinPermissions() {\n return cloneDeep(BUILTIN_PERMISSIONS)\n}\n\nexport function getBuiltinPermissionByID(id: string) {\n const perms = Object.values(BUILTIN_PERMISSIONS)\n return perms.find(perm => perm._id === id)\n}\n\nexport function doesHaveBasePermission(\n permType: PermissionType,\n permLevel: PermissionLevel,\n rolesHierarchy: RoleHierarchy\n) {\n const basePermissions = [\n ...new Set(rolesHierarchy.map(role => role.permissionId)),\n ]\n const builtins = Object.values(BUILTIN_PERMISSIONS)\n let permissions = flatten(\n builtins\n .filter(builtin => basePermissions.indexOf(builtin._id) !== -1)\n .map(builtin => builtin.permissions)\n )\n for (let permission of permissions) {\n if (\n permission.type === permType &&\n getAllowedLevels(permission.level).indexOf(permLevel) !== -1\n ) {\n return true\n }\n }\n return false\n}\n\nexport function isPermissionLevelHigherThanRead(level: PermissionLevel) {\n return levelToNumber(level) > 1\n}\n\n// utility as a lot of things need simply the builder permission\nexport const BUILDER = PermissionType.BUILDER\nexport const GLOBAL_BUILDER = PermissionType.GLOBAL_BUILDER\n"],
5
- "mappings": "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",
6
- "names": ["import_types", "BuiltinPermissionID", "cloneDeep", "flatten"]
7
- }
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/security/permissions.ts"],"names":[],"mappings":"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"}