@budibase/backend-core 2.9.16 → 2.9.18

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 (435) hide show
  1. package/dist/index.js +12544 -0
  2. package/dist/index.js.map +7 -0
  3. package/dist/index.js.meta.json +1 -0
  4. package/dist/package.json +5 -5
  5. package/dist/plugins.js +288 -16
  6. package/dist/plugins.js.map +7 -1
  7. package/dist/plugins.js.meta.json +1 -0
  8. package/dist/tests.js +8476 -0
  9. package/dist/tests.js.map +7 -0
  10. package/dist/tests.js.meta.json +1 -0
  11. package/dist/tsconfig.build.tsbuildinfo +1 -1
  12. package/package.json +5 -5
  13. package/scripts/build.js +6 -0
  14. package/tsconfig.build.json +5 -1
  15. package/tsconfig.json +0 -8
  16. package/dist/jest.config.js +0 -25
  17. package/dist/jest.config.js.map +0 -1
  18. package/dist/plugins.d.ts +0 -1
  19. package/dist/src/accounts/accounts.js +0 -83
  20. package/dist/src/accounts/accounts.js.map +0 -1
  21. package/dist/src/accounts/api.js +0 -92
  22. package/dist/src/accounts/api.js.map +0 -1
  23. package/dist/src/accounts/index.js +0 -18
  24. package/dist/src/accounts/index.js.map +0 -1
  25. package/dist/src/auth/auth.js +0 -189
  26. package/dist/src/auth/auth.js.map +0 -1
  27. package/dist/src/auth/index.js +0 -18
  28. package/dist/src/auth/index.js.map +0 -1
  29. package/dist/src/blacklist/blacklist.js +0 -76
  30. package/dist/src/blacklist/blacklist.js.map +0 -1
  31. package/dist/src/blacklist/index.js +0 -18
  32. package/dist/src/blacklist/index.js.map +0 -1
  33. package/dist/src/cache/appMetadata.js +0 -96
  34. package/dist/src/cache/appMetadata.js.map +0 -1
  35. package/dist/src/cache/base/index.js +0 -120
  36. package/dist/src/cache/base/index.js.map +0 -1
  37. package/dist/src/cache/generic.js +0 -31
  38. package/dist/src/cache/generic.js.map +0 -1
  39. package/dist/src/cache/index.js +0 -35
  40. package/dist/src/cache/index.js.map +0 -1
  41. package/dist/src/cache/user.js +0 -108
  42. package/dist/src/cache/user.js.map +0 -1
  43. package/dist/src/cache/writethrough.js +0 -159
  44. package/dist/src/cache/writethrough.js.map +0 -1
  45. package/dist/src/configs/configs.js +0 -278
  46. package/dist/src/configs/configs.js.map +0 -1
  47. package/dist/src/configs/index.js +0 -18
  48. package/dist/src/configs/index.js.map +0 -1
  49. package/dist/src/constants/db.js +0 -67
  50. package/dist/src/constants/db.js.map +0 -1
  51. package/dist/src/constants/index.js +0 -19
  52. package/dist/src/constants/index.js.map +0 -1
  53. package/dist/src/constants/misc.js +0 -54
  54. package/dist/src/constants/misc.js.map +0 -1
  55. package/dist/src/context/Context.js +0 -14
  56. package/dist/src/context/Context.js.map +0 -1
  57. package/dist/src/context/identity.js +0 -72
  58. package/dist/src/context/identity.js.map +0 -1
  59. package/dist/src/context/index.js +0 -34
  60. package/dist/src/context/index.js.map +0 -1
  61. package/dist/src/context/mainContext.js +0 -331
  62. package/dist/src/context/mainContext.js.map +0 -1
  63. package/dist/src/context/types.js +0 -3
  64. package/dist/src/context/types.js.map +0 -1
  65. package/dist/src/db/Replication.js +0 -85
  66. package/dist/src/db/Replication.js.map +0 -1
  67. package/dist/src/db/constants.js +0 -13
  68. package/dist/src/db/constants.js.map +0 -1
  69. package/dist/src/db/couch/DatabaseImpl.js +0 -248
  70. package/dist/src/db/couch/DatabaseImpl.js.map +0 -1
  71. package/dist/src/db/couch/connections.js +0 -88
  72. package/dist/src/db/couch/connections.js.map +0 -1
  73. package/dist/src/db/couch/index.js +0 -27
  74. package/dist/src/db/couch/index.js.map +0 -1
  75. package/dist/src/db/couch/pouchDB.js +0 -108
  76. package/dist/src/db/couch/pouchDB.js.map +0 -1
  77. package/dist/src/db/couch/pouchDump.js +0 -2
  78. package/dist/src/db/couch/pouchDump.js.map +0 -1
  79. package/dist/src/db/couch/utils.js +0 -55
  80. package/dist/src/db/couch/utils.js.map +0 -1
  81. package/dist/src/db/db.js +0 -59
  82. package/dist/src/db/db.js.map +0 -1
  83. package/dist/src/db/errors.js +0 -22
  84. package/dist/src/db/errors.js.map +0 -1
  85. package/dist/src/db/index.js +0 -48
  86. package/dist/src/db/index.js.map +0 -1
  87. package/dist/src/db/lucene.js +0 -650
  88. package/dist/src/db/lucene.js.map +0 -1
  89. package/dist/src/db/searchIndexes/index.js +0 -18
  90. package/dist/src/db/searchIndexes/index.js.map +0 -1
  91. package/dist/src/db/searchIndexes/searchIndexes.js +0 -77
  92. package/dist/src/db/searchIndexes/searchIndexes.js.map +0 -1
  93. package/dist/src/db/utils.js +0 -213
  94. package/dist/src/db/utils.js.map +0 -1
  95. package/dist/src/db/views.js +0 -219
  96. package/dist/src/db/views.js.map +0 -1
  97. package/dist/src/docIds/conversions.js +0 -62
  98. package/dist/src/docIds/conversions.js.map +0 -1
  99. package/dist/src/docIds/ids.js +0 -112
  100. package/dist/src/docIds/ids.js.map +0 -1
  101. package/dist/src/docIds/index.js +0 -19
  102. package/dist/src/docIds/index.js.map +0 -1
  103. package/dist/src/docIds/newid.js +0 -9
  104. package/dist/src/docIds/newid.js.map +0 -1
  105. package/dist/src/docIds/params.js +0 -138
  106. package/dist/src/docIds/params.js.map +0 -1
  107. package/dist/src/docUpdates/index.js +0 -36
  108. package/dist/src/docUpdates/index.js.map +0 -1
  109. package/dist/src/environment.js +0 -110
  110. package/dist/src/environment.js.map +0 -1
  111. package/dist/src/errors/errors.js +0 -97
  112. package/dist/src/errors/errors.js.map +0 -1
  113. package/dist/src/errors/index.js +0 -18
  114. package/dist/src/errors/index.js.map +0 -1
  115. package/dist/src/events/analytics.js +0 -42
  116. package/dist/src/events/analytics.js.map +0 -1
  117. package/dist/src/events/asyncEvents/index.js +0 -19
  118. package/dist/src/events/asyncEvents/index.js.map +0 -1
  119. package/dist/src/events/asyncEvents/publisher.js +0 -27
  120. package/dist/src/events/asyncEvents/publisher.js.map +0 -1
  121. package/dist/src/events/asyncEvents/queue.js +0 -26
  122. package/dist/src/events/asyncEvents/queue.js.map +0 -1
  123. package/dist/src/events/backfill.js +0 -179
  124. package/dist/src/events/backfill.js.map +0 -1
  125. package/dist/src/events/documentId.js +0 -28
  126. package/dist/src/events/documentId.js.map +0 -1
  127. package/dist/src/events/events.js +0 -73
  128. package/dist/src/events/events.js.map +0 -1
  129. package/dist/src/events/identification.js +0 -300
  130. package/dist/src/events/identification.js.map +0 -1
  131. package/dist/src/events/index.js +0 -47
  132. package/dist/src/events/index.js.map +0 -1
  133. package/dist/src/events/processors/AnalyticsProcessor.js +0 -93
  134. package/dist/src/events/processors/AnalyticsProcessor.js.map +0 -1
  135. package/dist/src/events/processors/AuditLogsProcessor.js +0 -86
  136. package/dist/src/events/processors/AuditLogsProcessor.js.map +0 -1
  137. package/dist/src/events/processors/LoggingProcessor.js +0 -47
  138. package/dist/src/events/processors/LoggingProcessor.js.map +0 -1
  139. package/dist/src/events/processors/Processors.js +0 -52
  140. package/dist/src/events/processors/Processors.js.map +0 -1
  141. package/dist/src/events/processors/async/DocumentUpdateProcessor.js +0 -44
  142. package/dist/src/events/processors/async/DocumentUpdateProcessor.js.map +0 -1
  143. package/dist/src/events/processors/index.js +0 -23
  144. package/dist/src/events/processors/index.js.map +0 -1
  145. package/dist/src/events/processors/posthog/PosthogProcessor.js +0 -139
  146. package/dist/src/events/processors/posthog/PosthogProcessor.js.map +0 -1
  147. package/dist/src/events/processors/posthog/index.js +0 -8
  148. package/dist/src/events/processors/posthog/index.js.map +0 -1
  149. package/dist/src/events/processors/posthog/rateLimiting.js +0 -119
  150. package/dist/src/events/processors/posthog/rateLimiting.js.map +0 -1
  151. package/dist/src/events/processors/types.js +0 -3
  152. package/dist/src/events/processors/types.js.map +0 -1
  153. package/dist/src/events/publishers/account.js +0 -43
  154. package/dist/src/events/publishers/account.js.map +0 -1
  155. package/dist/src/events/publishers/app.js +0 -153
  156. package/dist/src/events/publishers/app.js.map +0 -1
  157. package/dist/src/events/publishers/auditLog.js +0 -34
  158. package/dist/src/events/publishers/auditLog.js.map +0 -1
  159. package/dist/src/events/publishers/auth.js +0 -80
  160. package/dist/src/events/publishers/auth.js.map +0 -1
  161. package/dist/src/events/publishers/automation.js +0 -117
  162. package/dist/src/events/publishers/automation.js.map +0 -1
  163. package/dist/src/events/publishers/backfill.js +0 -85
  164. package/dist/src/events/publishers/backfill.js.map +0 -1
  165. package/dist/src/events/publishers/backup.js +0 -41
  166. package/dist/src/events/publishers/backup.js.map +0 -1
  167. package/dist/src/events/publishers/datasource.js +0 -54
  168. package/dist/src/events/publishers/datasource.js.map +0 -1
  169. package/dist/src/events/publishers/email.js +0 -30
  170. package/dist/src/events/publishers/email.js.map +0 -1
  171. package/dist/src/events/publishers/environmentVariable.js +0 -44
  172. package/dist/src/events/publishers/environmentVariable.js.map +0 -1
  173. package/dist/src/events/publishers/group.js +0 -107
  174. package/dist/src/events/publishers/group.js.map +0 -1
  175. package/dist/src/events/publishers/index.js +0 -55
  176. package/dist/src/events/publishers/index.js.map +0 -1
  177. package/dist/src/events/publishers/installation.js +0 -52
  178. package/dist/src/events/publishers/installation.js.map +0 -1
  179. package/dist/src/events/publishers/layout.js +0 -34
  180. package/dist/src/events/publishers/layout.js.map +0 -1
  181. package/dist/src/events/publishers/license.js +0 -77
  182. package/dist/src/events/publishers/license.js.map +0 -1
  183. package/dist/src/events/publishers/org.js +0 -52
  184. package/dist/src/events/publishers/org.js.map +0 -1
  185. package/dist/src/events/publishers/plugin.js +0 -55
  186. package/dist/src/events/publishers/plugin.js.map +0 -1
  187. package/dist/src/events/publishers/query.js +0 -74
  188. package/dist/src/events/publishers/query.js.map +0 -1
  189. package/dist/src/events/publishers/role.js +0 -69
  190. package/dist/src/events/publishers/role.js.map +0 -1
  191. package/dist/src/events/publishers/rows.js +0 -32
  192. package/dist/src/events/publishers/rows.js.map +0 -1
  193. package/dist/src/events/publishers/screen.js +0 -46
  194. package/dist/src/events/publishers/screen.js.map +0 -1
  195. package/dist/src/events/publishers/serve.js +0 -47
  196. package/dist/src/events/publishers/serve.js.map +0 -1
  197. package/dist/src/events/publishers/table.js +0 -77
  198. package/dist/src/events/publishers/table.js.map +0 -1
  199. package/dist/src/events/publishers/user.js +0 -202
  200. package/dist/src/events/publishers/user.js.map +0 -1
  201. package/dist/src/events/publishers/view.js +0 -111
  202. package/dist/src/events/publishers/view.js.map +0 -1
  203. package/dist/src/featureFlags/index.js +0 -96
  204. package/dist/src/featureFlags/index.js.map +0 -1
  205. package/dist/src/helpers.js +0 -14
  206. package/dist/src/helpers.js.map +0 -1
  207. package/dist/src/index.js +0 -82
  208. package/dist/src/index.js.map +0 -1
  209. package/dist/src/installation.js +0 -138
  210. package/dist/src/installation.js.map +0 -1
  211. package/dist/src/logging/alerts.js +0 -24
  212. package/dist/src/logging/alerts.js.map +0 -1
  213. package/dist/src/logging/correlation/correlation.js +0 -17
  214. package/dist/src/logging/correlation/correlation.js.map +0 -1
  215. package/dist/src/logging/correlation/index.js +0 -18
  216. package/dist/src/logging/correlation/index.js.map +0 -1
  217. package/dist/src/logging/correlation/middleware.js +0 -17
  218. package/dist/src/logging/correlation/middleware.js.map +0 -1
  219. package/dist/src/logging/index.js +0 -35
  220. package/dist/src/logging/index.js.map +0 -1
  221. package/dist/src/logging/pino/logger.js +0 -218
  222. package/dist/src/logging/pino/logger.js.map +0 -1
  223. package/dist/src/logging/pino/middleware.js +0 -47
  224. package/dist/src/logging/pino/middleware.js.map +0 -1
  225. package/dist/src/logging/system.js +0 -101
  226. package/dist/src/logging/system.js.map +0 -1
  227. package/dist/src/middleware/adminOnly.js +0 -19
  228. package/dist/src/middleware/adminOnly.js.map +0 -1
  229. package/dist/src/middleware/auditLog.js +0 -16
  230. package/dist/src/middleware/auditLog.js.map +0 -1
  231. package/dist/src/middleware/authenticated.js +0 -204
  232. package/dist/src/middleware/authenticated.js.map +0 -1
  233. package/dist/src/middleware/builderOnly.js +0 -33
  234. package/dist/src/middleware/builderOnly.js.map +0 -1
  235. package/dist/src/middleware/builderOrAdmin.js +0 -33
  236. package/dist/src/middleware/builderOrAdmin.js.map +0 -1
  237. package/dist/src/middleware/csrf.js +0 -81
  238. package/dist/src/middleware/csrf.js.map +0 -1
  239. package/dist/src/middleware/errorHandling.js +0 -64
  240. package/dist/src/middleware/errorHandling.js.map +0 -1
  241. package/dist/src/middleware/index.js +0 -65
  242. package/dist/src/middleware/index.js.map +0 -1
  243. package/dist/src/middleware/internalApi.js +0 -30
  244. package/dist/src/middleware/internalApi.js.map +0 -1
  245. package/dist/src/middleware/joi-validator.js +0 -47
  246. package/dist/src/middleware/joi-validator.js.map +0 -1
  247. package/dist/src/middleware/matchers.js +0 -43
  248. package/dist/src/middleware/matchers.js.map +0 -1
  249. package/dist/src/middleware/passport/datasource/google.js +0 -95
  250. package/dist/src/middleware/passport/datasource/google.js.map +0 -1
  251. package/dist/src/middleware/passport/local.js +0 -81
  252. package/dist/src/middleware/passport/local.js.map +0 -1
  253. package/dist/src/middleware/passport/sso/google.js +0 -90
  254. package/dist/src/middleware/passport/sso/google.js.map +0 -1
  255. package/dist/src/middleware/passport/sso/oidc.js +0 -151
  256. package/dist/src/middleware/passport/sso/oidc.js.map +0 -1
  257. package/dist/src/middleware/passport/sso/sso.js +0 -165
  258. package/dist/src/middleware/passport/sso/sso.js.map +0 -1
  259. package/dist/src/middleware/passport/utils.js +0 -66
  260. package/dist/src/middleware/passport/utils.js.map +0 -1
  261. package/dist/src/middleware/querystringToBody.js +0 -29
  262. package/dist/src/middleware/querystringToBody.js.map +0 -1
  263. package/dist/src/middleware/tenancy.js +0 -37
  264. package/dist/src/middleware/tenancy.js.map +0 -1
  265. package/dist/src/migrations/definitions.js +0 -39
  266. package/dist/src/migrations/definitions.js.map +0 -1
  267. package/dist/src/migrations/index.js +0 -19
  268. package/dist/src/migrations/index.js.map +0 -1
  269. package/dist/src/migrations/migrations.js +0 -198
  270. package/dist/src/migrations/migrations.js.map +0 -1
  271. package/dist/src/objectStore/buckets/app.js +0 -73
  272. package/dist/src/objectStore/buckets/app.js.map +0 -1
  273. package/dist/src/objectStore/buckets/global.js +0 -58
  274. package/dist/src/objectStore/buckets/global.js.map +0 -1
  275. package/dist/src/objectStore/buckets/index.js +0 -20
  276. package/dist/src/objectStore/buckets/index.js.map +0 -1
  277. package/dist/src/objectStore/buckets/plugins.js +0 -95
  278. package/dist/src/objectStore/buckets/plugins.js.map +0 -1
  279. package/dist/src/objectStore/cloudfront.js +0 -40
  280. package/dist/src/objectStore/cloudfront.js.map +0 -1
  281. package/dist/src/objectStore/index.js +0 -20
  282. package/dist/src/objectStore/index.js.map +0 -1
  283. package/dist/src/objectStore/objectStore.js +0 -382
  284. package/dist/src/objectStore/objectStore.js.map +0 -1
  285. package/dist/src/objectStore/utils.js +0 -32
  286. package/dist/src/objectStore/utils.js.map +0 -1
  287. package/dist/src/platform/index.js +0 -33
  288. package/dist/src/platform/index.js.map +0 -1
  289. package/dist/src/platform/platformDb.js +0 -10
  290. package/dist/src/platform/platformDb.js.map +0 -1
  291. package/dist/src/platform/tenants.js +0 -139
  292. package/dist/src/platform/tenants.js.map +0 -1
  293. package/dist/src/platform/users.js +0 -96
  294. package/dist/src/platform/users.js.map +0 -1
  295. package/dist/src/plugin/index.js +0 -18
  296. package/dist/src/plugin/index.js.map +0 -1
  297. package/dist/src/plugin/utils.js +0 -145
  298. package/dist/src/plugin/utils.js.map +0 -1
  299. package/dist/src/queue/constants.js +0 -11
  300. package/dist/src/queue/constants.js.map +0 -1
  301. package/dist/src/queue/inMemoryQueue.js +0 -145
  302. package/dist/src/queue/inMemoryQueue.js.map +0 -1
  303. package/dist/src/queue/index.js +0 -19
  304. package/dist/src/queue/index.js.map +0 -1
  305. package/dist/src/queue/listeners.js +0 -186
  306. package/dist/src/queue/listeners.js.map +0 -1
  307. package/dist/src/queue/queue.js +0 -92
  308. package/dist/src/queue/queue.js.map +0 -1
  309. package/dist/src/redis/index.js +0 -37
  310. package/dist/src/redis/index.js.map +0 -1
  311. package/dist/src/redis/init.js +0 -138
  312. package/dist/src/redis/init.js.map +0 -1
  313. package/dist/src/redis/redis.js +0 -335
  314. package/dist/src/redis/redis.js.map +0 -1
  315. package/dist/src/redis/redlockImpl.js +0 -162
  316. package/dist/src/redis/redlockImpl.js.map +0 -1
  317. package/dist/src/redis/utils.js +0 -123
  318. package/dist/src/redis/utils.js.map +0 -1
  319. package/dist/src/security/encryption.js +0 -163
  320. package/dist/src/security/encryption.js.map +0 -1
  321. package/dist/src/security/permissions.js +0 -151
  322. package/dist/src/security/permissions.js.map +0 -1
  323. package/dist/src/security/roles.js +0 -388
  324. package/dist/src/security/roles.js.map +0 -1
  325. package/dist/src/security/sessions.js +0 -121
  326. package/dist/src/security/sessions.js.map +0 -1
  327. package/dist/src/tenancy/db.js +0 -10
  328. package/dist/src/tenancy/db.js.map +0 -1
  329. package/dist/src/tenancy/index.js +0 -19
  330. package/dist/src/tenancy/index.js.map +0 -1
  331. package/dist/src/tenancy/tenancy.js +0 -116
  332. package/dist/src/tenancy/tenancy.js.map +0 -1
  333. package/dist/src/timers/index.js +0 -18
  334. package/dist/src/timers/index.js.map +0 -1
  335. package/dist/src/timers/timers.js +0 -26
  336. package/dist/src/timers/timers.js.map +0 -1
  337. package/dist/src/users/db.js +0 -407
  338. package/dist/src/users/db.js.map +0 -1
  339. package/dist/src/users/events.js +0 -169
  340. package/dist/src/users/events.js.map +0 -1
  341. package/dist/src/users/index.js +0 -23
  342. package/dist/src/users/index.js.map +0 -1
  343. package/dist/src/users/lookup.js +0 -112
  344. package/dist/src/users/lookup.js.map +0 -1
  345. package/dist/src/users/users.js +0 -261
  346. package/dist/src/users/users.js.map +0 -1
  347. package/dist/src/users/utils.js +0 -92
  348. package/dist/src/users/utils.js.map +0 -1
  349. package/dist/src/utils/hashing.js +0 -47
  350. package/dist/src/utils/hashing.js.map +0 -1
  351. package/dist/src/utils/index.js +0 -20
  352. package/dist/src/utils/index.js.map +0 -1
  353. package/dist/src/utils/stringUtils.js +0 -9
  354. package/dist/src/utils/stringUtils.js.map +0 -1
  355. package/dist/src/utils/utils.js +0 -247
  356. package/dist/src/utils/utils.js.map +0 -1
  357. package/dist/tests/core/logging.js +0 -33
  358. package/dist/tests/core/logging.js.map +0 -1
  359. package/dist/tests/core/utilities/index.js +0 -37
  360. package/dist/tests/core/utilities/index.js.map +0 -1
  361. package/dist/tests/core/utilities/jestUtils.js +0 -21
  362. package/dist/tests/core/utilities/jestUtils.js.map +0 -1
  363. package/dist/tests/core/utilities/mocks/alerts.js +0 -30
  364. package/dist/tests/core/utilities/mocks/alerts.js.map +0 -1
  365. package/dist/tests/core/utilities/mocks/date.js +0 -6
  366. package/dist/tests/core/utilities/mocks/date.js.map +0 -1
  367. package/dist/tests/core/utilities/mocks/events.js +0 -143
  368. package/dist/tests/core/utilities/mocks/events.js.map +0 -1
  369. package/dist/tests/core/utilities/mocks/fetch.js +0 -15
  370. package/dist/tests/core/utilities/mocks/fetch.js.map +0 -1
  371. package/dist/tests/core/utilities/mocks/index.js +0 -43
  372. package/dist/tests/core/utilities/mocks/index.js.map +0 -1
  373. package/dist/tests/core/utilities/mocks/licenses.js +0 -97
  374. package/dist/tests/core/utilities/mocks/licenses.js.map +0 -1
  375. package/dist/tests/core/utilities/mocks/posthog.js +0 -9
  376. package/dist/tests/core/utilities/mocks/posthog.js.map +0 -1
  377. package/dist/tests/core/utilities/structures/Chance.js +0 -21
  378. package/dist/tests/core/utilities/structures/Chance.js.map +0 -1
  379. package/dist/tests/core/utilities/structures/accounts.js +0 -78
  380. package/dist/tests/core/utilities/structures/accounts.js.map +0 -1
  381. package/dist/tests/core/utilities/structures/apps.js +0 -24
  382. package/dist/tests/core/utilities/structures/apps.js.map +0 -1
  383. package/dist/tests/core/utilities/structures/common.js +0 -11
  384. package/dist/tests/core/utilities/structures/common.js.map +0 -1
  385. package/dist/tests/core/utilities/structures/db.js +0 -16
  386. package/dist/tests/core/utilities/structures/db.js.map +0 -1
  387. package/dist/tests/core/utilities/structures/documents/index.js +0 -18
  388. package/dist/tests/core/utilities/structures/documents/index.js.map +0 -1
  389. package/dist/tests/core/utilities/structures/documents/platform/index.js +0 -28
  390. package/dist/tests/core/utilities/structures/documents/platform/index.js.map +0 -1
  391. package/dist/tests/core/utilities/structures/documents/platform/installation.js +0 -38
  392. package/dist/tests/core/utilities/structures/documents/platform/installation.js.map +0 -1
  393. package/dist/tests/core/utilities/structures/generator.js +0 -9
  394. package/dist/tests/core/utilities/structures/generator.js.map +0 -1
  395. package/dist/tests/core/utilities/structures/index.js +0 -46
  396. package/dist/tests/core/utilities/structures/index.js.map +0 -1
  397. package/dist/tests/core/utilities/structures/koa.js +0 -10
  398. package/dist/tests/core/utilities/structures/koa.js.map +0 -1
  399. package/dist/tests/core/utilities/structures/licenses.js +0 -140
  400. package/dist/tests/core/utilities/structures/licenses.js.map +0 -1
  401. package/dist/tests/core/utilities/structures/plugins.js +0 -23
  402. package/dist/tests/core/utilities/structures/plugins.js.map +0 -1
  403. package/dist/tests/core/utilities/structures/quotas.js +0 -71
  404. package/dist/tests/core/utilities/structures/quotas.js.map +0 -1
  405. package/dist/tests/core/utilities/structures/scim.js +0 -63
  406. package/dist/tests/core/utilities/structures/scim.js.map +0 -1
  407. package/dist/tests/core/utilities/structures/shared.js +0 -14
  408. package/dist/tests/core/utilities/structures/shared.js.map +0 -1
  409. package/dist/tests/core/utilities/structures/sso.js +0 -132
  410. package/dist/tests/core/utilities/structures/sso.js.map +0 -1
  411. package/dist/tests/core/utilities/structures/tenants.js +0 -9
  412. package/dist/tests/core/utilities/structures/tenants.js.map +0 -1
  413. package/dist/tests/core/utilities/structures/userGroups.js +0 -13
  414. package/dist/tests/core/utilities/structures/userGroups.js.map +0 -1
  415. package/dist/tests/core/utilities/structures/users.js +0 -48
  416. package/dist/tests/core/utilities/structures/users.js.map +0 -1
  417. package/dist/tests/core/utilities/testContainerUtils.js +0 -84
  418. package/dist/tests/core/utilities/testContainerUtils.js.map +0 -1
  419. package/dist/tests/core/utilities/utils/index.js +0 -28
  420. package/dist/tests/core/utilities/utils/index.js.map +0 -1
  421. package/dist/tests/core/utilities/utils/time.js +0 -8
  422. package/dist/tests/core/utilities/utils/time.js.map +0 -1
  423. package/dist/tests/extra/DBTestConfiguration.js +0 -55
  424. package/dist/tests/extra/DBTestConfiguration.js.map +0 -1
  425. package/dist/tests/extra/index.js +0 -33
  426. package/dist/tests/extra/index.js.map +0 -1
  427. package/dist/tests/extra/testEnv.js +0 -127
  428. package/dist/tests/extra/testEnv.js.map +0 -1
  429. package/dist/tests/index.js +0 -18
  430. package/dist/tests/index.js.map +0 -1
  431. package/dist/tests/jestEnv.js +0 -8
  432. package/dist/tests/jestEnv.js.map +0 -1
  433. package/dist/tests/jestSetup.js +0 -28
  434. package/dist/tests/jestSetup.js.map +0 -1
  435. package/plugins.ts +0 -1
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.invalidateAppMetadata = exports.getAppMetadata = exports.AppState = void 0;
13
- const init_1 = require("../redis/init");
14
- const db_1 = require("../db");
15
- var AppState;
16
- (function (AppState) {
17
- AppState["INVALID"] = "invalid";
18
- })(AppState = exports.AppState || (exports.AppState = {}));
19
- const EXPIRY_SECONDS = 3600;
20
- /**
21
- * The default populate app metadata function
22
- */
23
- function populateFromDB(appId) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- return (0, db_1.doWithDB)(appId, (db) => {
26
- return db.get(db_1.DocumentType.APP_METADATA);
27
- }, { skip_setup: true });
28
- });
29
- }
30
- function isInvalid(metadata) {
31
- return !metadata || metadata.state === AppState.INVALID;
32
- }
33
- /**
34
- * Get the requested app metadata by id.
35
- * Use redis cache to first read the app metadata.
36
- * If not present fallback to loading the app metadata directly and re-caching.
37
- * @param {string} appId the id of the app to get metadata from.
38
- * @returns {object} the app metadata.
39
- */
40
- function getAppMetadata(appId) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- const client = yield (0, init_1.getAppClient)();
43
- // try cache
44
- let metadata = yield client.get(appId);
45
- if (!metadata) {
46
- let expiry = EXPIRY_SECONDS;
47
- try {
48
- metadata = yield populateFromDB(appId);
49
- }
50
- catch (err) {
51
- // app DB left around, but no metadata, it is invalid
52
- if (err && err.status === 404) {
53
- metadata = { state: AppState.INVALID };
54
- // don't expire the reference to an invalid app, it'll only be
55
- // updated if a metadata doc actually gets stored (app is remade/reverted)
56
- expiry = undefined;
57
- }
58
- else {
59
- throw err;
60
- }
61
- }
62
- // needed for cypress/some scenarios where the caching happens
63
- // so quickly the requests can get slightly out of sync
64
- // might store its invalid just before it stores its valid
65
- if (isInvalid(metadata)) {
66
- const temp = yield client.get(appId);
67
- if (temp) {
68
- metadata = temp;
69
- }
70
- }
71
- yield client.store(appId, metadata, expiry);
72
- }
73
- return metadata;
74
- });
75
- }
76
- exports.getAppMetadata = getAppMetadata;
77
- /**
78
- * Invalidate/reset the cached metadata when a change occurs in the db.
79
- * @param appId {string} the cache key to bust/update.
80
- * @param newMetadata {object|undefined} optional - can simply provide the new metadata to update with.
81
- * @return {Promise<void>} will respond with success when cache is updated.
82
- */
83
- function invalidateAppMetadata(appId, newMetadata) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- if (!appId) {
86
- throw "Cannot invalidate if no app ID provided.";
87
- }
88
- const client = yield (0, init_1.getAppClient)();
89
- yield client.delete(appId);
90
- if (newMetadata) {
91
- yield client.store(appId, newMetadata, EXPIRY_SECONDS);
92
- }
93
- });
94
- }
95
- exports.invalidateAppMetadata = invalidateAppMetadata;
96
- //# sourceMappingURL=appMetadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appMetadata.js","sourceRoot":"","sources":["../../../src/cache/appMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA4C;AAC5C,8BAA8C;AAG9C,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;AACrB,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB;AAMD,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B;;GAEG;AACH,SAAe,cAAc,CAAC,KAAa;;QACzC,OAAO,IAAA,aAAQ,EACb,KAAK,EACL,CAAC,EAAY,EAAE,EAAE;YACf,OAAO,EAAE,CAAC,GAAG,CAAC,iBAAY,CAAC,YAAY,CAAC,CAAA;QAC1C,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAA;IACH,CAAC;CAAA;AAED,SAAS,SAAS,CAAC,QAA4B;IAC7C,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,OAAO,CAAA;AACzD,CAAC;AAED;;;;;;GAMG;AACH,SAAsB,cAAc,CAAC,KAAa;;QAChD,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAY,GAAE,CAAA;QACnC,YAAY;QACZ,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,MAAM,GAAuB,cAAc,CAAA;YAC/C,IAAI;gBACF,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;aACvC;YAAC,OAAO,GAAQ,EAAE;gBACjB,qDAAqD;gBACrD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBAC7B,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;oBACtC,8DAA8D;oBAC9D,0EAA0E;oBAC1E,MAAM,GAAG,SAAS,CAAA;iBACnB;qBAAM;oBACL,MAAM,GAAG,CAAA;iBACV;aACF;YACD,8DAA8D;YAC9D,uDAAuD;YACvD,0DAA0D;YAC1D,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBACpC,IAAI,IAAI,EAAE;oBACR,QAAQ,GAAG,IAAI,CAAA;iBAChB;aACF;YACD,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;SAC5C;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CAAA;AAhCD,wCAgCC;AAED;;;;;GAKG;AACH,SAAsB,qBAAqB,CAAC,KAAa,EAAE,WAAiB;;QAC1E,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,0CAA0C,CAAA;SACjD;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAY,GAAE,CAAA;QACnC,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,WAAW,EAAE;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;SACvD;IACH,CAAC;CAAA;AATD,sDASC"}
@@ -1,120 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const context_1 = require("../../context");
36
- const redis = __importStar(require("../../redis/init"));
37
- function generateTenantKey(key) {
38
- const tenantId = (0, context_1.getTenantId)();
39
- return `${key}:${tenantId}`;
40
- }
41
- class BaseCache {
42
- constructor(client = undefined) {
43
- this.client = client;
44
- }
45
- getClient() {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- return !this.client ? yield redis.getCacheClient() : this.client;
48
- });
49
- }
50
- keys(pattern) {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- const client = yield this.getClient();
53
- return client.keys(pattern);
54
- });
55
- }
56
- /**
57
- * Read only from the cache.
58
- */
59
- get(key, opts = { useTenancy: true }) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- key = opts.useTenancy ? generateTenantKey(key) : key;
62
- const client = yield this.getClient();
63
- return client.get(key);
64
- });
65
- }
66
- /**
67
- * Write to the cache.
68
- */
69
- store(key, value, ttl = null, opts = { useTenancy: true }) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- key = opts.useTenancy ? generateTenantKey(key) : key;
72
- const client = yield this.getClient();
73
- yield client.store(key, value, ttl);
74
- });
75
- }
76
- /**
77
- * Remove from cache.
78
- */
79
- delete(key, opts = { useTenancy: true }) {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- key = opts.useTenancy ? generateTenantKey(key) : key;
82
- const client = yield this.getClient();
83
- return client.delete(key);
84
- });
85
- }
86
- /**
87
- * Read from the cache. Write to the cache if not exists.
88
- */
89
- withCache(key, ttl, fetchFn, opts = { useTenancy: true }) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- const cachedValue = yield this.get(key, opts);
92
- if (cachedValue) {
93
- return cachedValue;
94
- }
95
- try {
96
- const fetchedValue = yield fetchFn();
97
- yield this.store(key, fetchedValue, ttl, opts);
98
- return fetchedValue;
99
- }
100
- catch (err) {
101
- console.error("Error fetching before cache - ", err);
102
- throw err;
103
- }
104
- });
105
- }
106
- bustCache(key, opts = { client: null }) {
107
- return __awaiter(this, void 0, void 0, function* () {
108
- const client = yield this.getClient();
109
- try {
110
- yield client.delete(generateTenantKey(key));
111
- }
112
- catch (err) {
113
- console.error("Error busting cache - ", err);
114
- throw err;
115
- }
116
- });
117
- }
118
- }
119
- exports.default = BaseCache;
120
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cache/base/index.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bustCache = exports.withCache = exports.destroy = exports.store = exports.get = exports.keys = exports.TTL = exports.CacheKey = void 0;
4
- const BaseCache = require("./base");
5
- const GENERIC = new BaseCache.default();
6
- var CacheKey;
7
- (function (CacheKey) {
8
- CacheKey["CHECKLIST"] = "checklist";
9
- CacheKey["INSTALLATION"] = "installation";
10
- CacheKey["ANALYTICS_ENABLED"] = "analyticsEnabled";
11
- CacheKey["UNIQUE_TENANT_ID"] = "uniqueTenantId";
12
- CacheKey["EVENTS"] = "events";
13
- CacheKey["BACKFILL_METADATA"] = "backfillMetadata";
14
- CacheKey["EVENTS_RATE_LIMIT"] = "eventsRateLimit";
15
- })(CacheKey = exports.CacheKey || (exports.CacheKey = {}));
16
- var TTL;
17
- (function (TTL) {
18
- TTL[TTL["ONE_MINUTE"] = 600] = "ONE_MINUTE";
19
- TTL[TTL["ONE_HOUR"] = 3600] = "ONE_HOUR";
20
- TTL[TTL["ONE_DAY"] = 86400] = "ONE_DAY";
21
- })(TTL = exports.TTL || (exports.TTL = {}));
22
- function performExport(funcName) {
23
- return (...args) => GENERIC[funcName](...args);
24
- }
25
- exports.keys = performExport("keys");
26
- exports.get = performExport("get");
27
- exports.store = performExport("store");
28
- exports.destroy = performExport("delete");
29
- exports.withCache = performExport("withCache");
30
- exports.bustCache = performExport("bustCache");
31
- //# sourceMappingURL=generic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../src/cache/generic.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEnC,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAA;AAEvC,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,mCAAuB,CAAA;IACvB,yCAA6B,CAAA;IAC7B,kDAAsC,CAAA;IACtC,+CAAmC,CAAA;IACnC,6BAAiB,CAAA;IACjB,kDAAsC,CAAA;IACtC,iDAAqC,CAAA;AACvC,CAAC,EARW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAQnB;AAED,IAAY,GAIX;AAJD,WAAY,GAAG;IACb,2CAAgB,CAAA;IAChB,wCAAe,CAAA;IACf,uCAAe,CAAA;AACjB,CAAC,EAJW,GAAG,GAAH,WAAG,KAAH,WAAG,QAId;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACrD,CAAC;AAEY,QAAA,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAC5B,QAAA,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;AAC1B,QAAA,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAC9B,QAAA,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AACjC,QAAA,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;AACtC,QAAA,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.writethrough = exports.app = exports.user = exports.generic = void 0;
30
- exports.generic = __importStar(require("./generic"));
31
- exports.user = __importStar(require("./user"));
32
- exports.app = __importStar(require("./appMetadata"));
33
- exports.writethrough = __importStar(require("./writethrough"));
34
- __exportStar(require("./generic"), exports);
35
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAoC;AACpC,+CAA8B;AAC9B,qDAAoC;AACpC,+DAA8C;AAC9C,4CAAyB"}
@@ -1,108 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.invalidateUser = exports.getUser = void 0;
39
- const redis = __importStar(require("../redis/init"));
40
- const tenancy = __importStar(require("../tenancy"));
41
- const context = __importStar(require("../context"));
42
- const platform = __importStar(require("../platform"));
43
- const environment_1 = __importDefault(require("../environment"));
44
- const accounts = __importStar(require("../accounts"));
45
- const EXPIRY_SECONDS = 3600;
46
- /**
47
- * The default populate user function
48
- */
49
- function populateFromDB(userId, tenantId) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const db = tenancy.getTenantDB(tenantId);
52
- const user = yield db.get(userId);
53
- user.budibaseAccess = true;
54
- if (!environment_1.default.SELF_HOSTED && !environment_1.default.DISABLE_ACCOUNT_PORTAL) {
55
- const account = yield accounts.getAccount(user.email);
56
- if (account) {
57
- user.account = account;
58
- user.accountPortalAccess = true;
59
- }
60
- }
61
- return user;
62
- });
63
- }
64
- /**
65
- * Get the requested user by id.
66
- * Use redis cache to first read the user.
67
- * If not present fallback to loading the user directly and re-caching.
68
- * @param {*} userId the id of the user to get
69
- * @param {*} tenantId the tenant of the user to get
70
- * @param {*} populateUser function to provide the user for re-caching. default to couch db
71
- * @returns
72
- */
73
- function getUser(userId, tenantId, populateUser) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- if (!populateUser) {
76
- populateUser = populateFromDB;
77
- }
78
- if (!tenantId) {
79
- try {
80
- tenantId = context.getTenantId();
81
- }
82
- catch (err) {
83
- tenantId = yield platform.users.lookupTenantId(userId);
84
- }
85
- }
86
- const client = yield redis.getUserClient();
87
- // try cache
88
- let user = yield client.get(userId);
89
- if (!user) {
90
- user = yield populateUser(userId, tenantId);
91
- yield client.store(userId, user, EXPIRY_SECONDS);
92
- }
93
- if (user && !user.tenantId && tenantId) {
94
- // make sure the tenant ID is always correct/set
95
- user.tenantId = tenantId;
96
- }
97
- return user;
98
- });
99
- }
100
- exports.getUser = getUser;
101
- function invalidateUser(userId) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- const client = yield redis.getUserClient();
104
- yield client.delete(userId);
105
- });
106
- }
107
- exports.invalidateUser = invalidateUser;
108
- //# sourceMappingURL=user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/cache/user.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsC;AACtC,oDAAqC;AACrC,oDAAqC;AACrC,sDAAuC;AACvC,iEAAgC;AAChC,sDAAuC;AAEvC,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B;;GAEG;AACH,SAAe,cAAc,CAAC,MAAc,EAAE,QAAgB;;QAC5D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,CAAM,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,qBAAG,CAAC,WAAW,IAAI,CAAC,qBAAG,CAAC,sBAAsB,EAAE;YACnD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrD,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;gBACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;aAChC;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AAED;;;;;;;;GAQG;AACH,SAAsB,OAAO,CAC3B,MAAc,EACd,QAAiB,EACjB,YAAkB;;QAElB,IAAI,CAAC,YAAY,EAAE;YACjB,YAAY,GAAG,cAAc,CAAA;SAC9B;QACD,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI;gBACF,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;aACvD;SACF;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAA;QAC1C,YAAY;QACZ,IAAI,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC3C,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;SACjD;QACD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;YACtC,gDAAgD;YAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;SACzB;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AA3BD,0BA2BC;AAED,SAAsB,cAAc,CAAC,MAAc;;QACjD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAA;QAC1C,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;CAAA;AAHD,wCAGC"}
@@ -1,159 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.Writethrough = void 0;
39
- const base_1 = __importDefault(require("./base"));
40
- const init_1 = require("../redis/init");
41
- const logging_1 = require("../logging");
42
- const types_1 = require("@budibase/types");
43
- const locks = __importStar(require("../redis/redlockImpl"));
44
- const DEFAULT_WRITE_RATE_MS = 10000;
45
- let CACHE = null;
46
- function getCache() {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- if (!CACHE) {
49
- const client = yield (0, init_1.getWritethroughClient)();
50
- CACHE = new base_1.default(client);
51
- }
52
- return CACHE;
53
- });
54
- }
55
- function makeCacheKey(db, key) {
56
- return db.name + key;
57
- }
58
- function makeCacheItem(doc, lastWrite = null) {
59
- return { doc, lastWrite: lastWrite || Date.now() };
60
- }
61
- function put(db, doc, writeRateMs = DEFAULT_WRITE_RATE_MS) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- const cache = yield getCache();
64
- const key = doc._id;
65
- let cacheItem;
66
- if (key) {
67
- cacheItem = yield cache.get(makeCacheKey(db, key));
68
- }
69
- const updateDb = !cacheItem || cacheItem.lastWrite < Date.now() - writeRateMs;
70
- let output = doc;
71
- if (updateDb) {
72
- const lockResponse = yield locks.doWithLock({
73
- type: types_1.LockType.TRY_ONCE,
74
- name: types_1.LockName.PERSIST_WRITETHROUGH,
75
- resource: key,
76
- ttl: 15000,
77
- }, () => __awaiter(this, void 0, void 0, function* () {
78
- const writeDb = (toWrite) => __awaiter(this, void 0, void 0, function* () {
79
- // doc should contain the _id and _rev
80
- const response = yield db.put(toWrite, { force: true });
81
- output = Object.assign(Object.assign({}, doc), { _id: response.id, _rev: response.rev });
82
- });
83
- try {
84
- yield writeDb(doc);
85
- }
86
- catch (err) {
87
- if (err.status !== 409) {
88
- throw err;
89
- }
90
- else {
91
- // Swallow 409s but log them
92
- (0, logging_1.logWarn)(`Ignoring conflict in write-through cache`);
93
- }
94
- }
95
- }));
96
- if (!lockResponse.executed) {
97
- (0, logging_1.logWarn)(`Ignoring redlock conflict in write-through cache`);
98
- }
99
- }
100
- // if we are updating the DB then need to set the lastWrite to now
101
- cacheItem = makeCacheItem(output, updateDb ? null : cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.lastWrite);
102
- if (output._id) {
103
- yield cache.store(makeCacheKey(db, output._id), cacheItem);
104
- }
105
- return { ok: true, id: output._id, rev: output._rev };
106
- });
107
- }
108
- function get(db, id) {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- const cache = yield getCache();
111
- const cacheKey = makeCacheKey(db, id);
112
- let cacheItem = yield cache.get(cacheKey);
113
- if (!cacheItem) {
114
- const doc = yield db.get(id);
115
- cacheItem = makeCacheItem(doc);
116
- yield cache.store(cacheKey, cacheItem);
117
- }
118
- return cacheItem.doc;
119
- });
120
- }
121
- function remove(db, docOrId, rev) {
122
- return __awaiter(this, void 0, void 0, function* () {
123
- const cache = yield getCache();
124
- if (!docOrId) {
125
- throw new Error("No ID/Rev provided.");
126
- }
127
- const id = typeof docOrId === "string" ? docOrId : docOrId._id;
128
- rev = typeof docOrId === "string" ? rev : docOrId._rev;
129
- try {
130
- yield cache.delete(makeCacheKey(db, id));
131
- }
132
- finally {
133
- yield db.remove(id, rev);
134
- }
135
- });
136
- }
137
- class Writethrough {
138
- constructor(db, writeRateMs = DEFAULT_WRITE_RATE_MS) {
139
- this.db = db;
140
- this.writeRateMs = writeRateMs;
141
- }
142
- put(doc) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- return put(this.db, doc, this.writeRateMs);
145
- });
146
- }
147
- get(id) {
148
- return __awaiter(this, void 0, void 0, function* () {
149
- return get(this.db, id);
150
- });
151
- }
152
- remove(docOrId, rev) {
153
- return __awaiter(this, void 0, void 0, function* () {
154
- return remove(this.db, docOrId, rev);
155
- });
156
- }
157
- }
158
- exports.Writethrough = Writethrough;
159
- //# sourceMappingURL=writethrough.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"writethrough.js","sourceRoot":"","sources":["../../../src/cache/writethrough.ts"],"names":[],"mappings":"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"}