@budibase/backend-core 3.2.26 → 3.2.27

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 (466) hide show
  1. package/dist/index.js +62 -23
  2. package/dist/index.js.map +4 -4
  3. package/dist/index.js.meta.json +1 -1
  4. package/dist/package.json +7 -7
  5. package/dist/plugins.js.map +2 -2
  6. package/dist/plugins.js.meta.json +1 -1
  7. package/dist/src/events/processors/types.d.ts +1 -1
  8. package/dist/src/events/publishers/index.d.ts +1 -0
  9. package/dist/src/events/publishers/rowAction.d.ts +6 -0
  10. package/dist/src/events/publishers/table.d.ts +2 -2
  11. package/dist/src/events/publishers/view.d.ts +17 -6
  12. package/dist/src/index.d.ts +11 -11
  13. package/dist/src/platform/platformDb.d.ts +1 -1
  14. package/dist/src/queue/queue.d.ts +1 -1
  15. package/dist/src/tenancy/db.d.ts +1 -1
  16. package/package.json +7 -7
  17. package/dist/jest.config.js +0 -25
  18. package/dist/jest.config.js.map +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 -102
  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 -198
  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 -75
  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 -189
  36. package/dist/src/cache/base/index.js.map +0 -1
  37. package/dist/src/cache/docWritethrough.js +0 -123
  38. package/dist/src/cache/docWritethrough.js.map +0 -1
  39. package/dist/src/cache/generic.js +0 -37
  40. package/dist/src/cache/generic.js.map +0 -1
  41. package/dist/src/cache/index.js +0 -48
  42. package/dist/src/cache/index.js.map +0 -1
  43. package/dist/src/cache/invite.js +0 -128
  44. package/dist/src/cache/invite.js.map +0 -1
  45. package/dist/src/cache/passwordReset.js +0 -92
  46. package/dist/src/cache/passwordReset.js.map +0 -1
  47. package/dist/src/cache/user.js +0 -183
  48. package/dist/src/cache/user.js.map +0 -1
  49. package/dist/src/cache/writethrough.js +0 -170
  50. package/dist/src/cache/writethrough.js.map +0 -1
  51. package/dist/src/configs/configs.js +0 -294
  52. package/dist/src/configs/configs.js.map +0 -1
  53. package/dist/src/configs/index.js +0 -18
  54. package/dist/src/configs/index.js.map +0 -1
  55. package/dist/src/constants/db.js +0 -75
  56. package/dist/src/constants/db.js.map +0 -1
  57. package/dist/src/constants/index.js +0 -19
  58. package/dist/src/constants/index.js.map +0 -1
  59. package/dist/src/constants/misc.js +0 -40
  60. package/dist/src/constants/misc.js.map +0 -1
  61. package/dist/src/context/Context.js +0 -14
  62. package/dist/src/context/Context.js.map +0 -1
  63. package/dist/src/context/identity.js +0 -81
  64. package/dist/src/context/identity.js.map +0 -1
  65. package/dist/src/context/index.js +0 -44
  66. package/dist/src/context/index.js.map +0 -1
  67. package/dist/src/context/mainContext.js +0 -446
  68. package/dist/src/context/mainContext.js.map +0 -1
  69. package/dist/src/context/types.js +0 -3
  70. package/dist/src/context/types.js.map +0 -1
  71. package/dist/src/db/Replication.js +0 -90
  72. package/dist/src/db/Replication.js.map +0 -1
  73. package/dist/src/db/couch/DatabaseImpl.js +0 -475
  74. package/dist/src/db/couch/DatabaseImpl.js.map +0 -1
  75. package/dist/src/db/couch/connections.js +0 -101
  76. package/dist/src/db/couch/connections.js.map +0 -1
  77. package/dist/src/db/couch/index.js +0 -26
  78. package/dist/src/db/couch/index.js.map +0 -1
  79. package/dist/src/db/couch/pouchDB.js +0 -108
  80. package/dist/src/db/couch/pouchDB.js.map +0 -1
  81. package/dist/src/db/couch/pouchDump.js +0 -2
  82. package/dist/src/db/couch/pouchDump.js.map +0 -1
  83. package/dist/src/db/couch/utils.js +0 -60
  84. package/dist/src/db/couch/utils.js.map +0 -1
  85. package/dist/src/db/db.js +0 -47
  86. package/dist/src/db/db.js.map +0 -1
  87. package/dist/src/db/errors.js +0 -21
  88. package/dist/src/db/errors.js.map +0 -1
  89. package/dist/src/db/index.js +0 -58
  90. package/dist/src/db/index.js.map +0 -1
  91. package/dist/src/db/instrumentation.js +0 -202
  92. package/dist/src/db/instrumentation.js.map +0 -1
  93. package/dist/src/db/lucene.js +0 -638
  94. package/dist/src/db/lucene.js.map +0 -1
  95. package/dist/src/db/searchIndexes/index.js +0 -18
  96. package/dist/src/db/searchIndexes/index.js.map +0 -1
  97. package/dist/src/db/searchIndexes/searchIndexes.js +0 -76
  98. package/dist/src/db/searchIndexes/searchIndexes.js.map +0 -1
  99. package/dist/src/db/utils.js +0 -212
  100. package/dist/src/db/utils.js.map +0 -1
  101. package/dist/src/db/views.js +0 -224
  102. package/dist/src/db/views.js.map +0 -1
  103. package/dist/src/docIds/conversions.js +0 -62
  104. package/dist/src/docIds/conversions.js.map +0 -1
  105. package/dist/src/docIds/ids.js +0 -125
  106. package/dist/src/docIds/ids.js.map +0 -1
  107. package/dist/src/docIds/index.js +0 -19
  108. package/dist/src/docIds/index.js.map +0 -1
  109. package/dist/src/docIds/newid.js +0 -8
  110. package/dist/src/docIds/newid.js.map +0 -1
  111. package/dist/src/docIds/params.js +0 -141
  112. package/dist/src/docIds/params.js.map +0 -1
  113. package/dist/src/docUpdates/index.js +0 -35
  114. package/dist/src/docUpdates/index.js.map +0 -1
  115. package/dist/src/environment.js +0 -182
  116. package/dist/src/environment.js.map +0 -1
  117. package/dist/src/errors/errors.js +0 -97
  118. package/dist/src/errors/errors.js.map +0 -1
  119. package/dist/src/errors/index.js +0 -18
  120. package/dist/src/errors/index.js.map +0 -1
  121. package/dist/src/events/analytics.js +0 -52
  122. package/dist/src/events/analytics.js.map +0 -1
  123. package/dist/src/events/asyncEvents/index.js +0 -19
  124. package/dist/src/events/asyncEvents/index.js.map +0 -1
  125. package/dist/src/events/asyncEvents/publisher.js +0 -26
  126. package/dist/src/events/asyncEvents/publisher.js.map +0 -1
  127. package/dist/src/events/asyncEvents/queue.js +0 -26
  128. package/dist/src/events/asyncEvents/queue.js.map +0 -1
  129. package/dist/src/events/backfill.js +0 -189
  130. package/dist/src/events/backfill.js.map +0 -1
  131. package/dist/src/events/documentId.js +0 -27
  132. package/dist/src/events/documentId.js.map +0 -1
  133. package/dist/src/events/events.js +0 -87
  134. package/dist/src/events/events.js.map +0 -1
  135. package/dist/src/events/identification.js +0 -299
  136. package/dist/src/events/identification.js.map +0 -1
  137. package/dist/src/events/index.js +0 -59
  138. package/dist/src/events/index.js.map +0 -1
  139. package/dist/src/events/processors/AnalyticsProcessor.js +0 -103
  140. package/dist/src/events/processors/AnalyticsProcessor.js.map +0 -1
  141. package/dist/src/events/processors/AuditLogsProcessor.js +0 -86
  142. package/dist/src/events/processors/AuditLogsProcessor.js.map +0 -1
  143. package/dist/src/events/processors/LoggingProcessor.js +0 -47
  144. package/dist/src/events/processors/LoggingProcessor.js.map +0 -1
  145. package/dist/src/events/processors/Processors.js +0 -52
  146. package/dist/src/events/processors/Processors.js.map +0 -1
  147. package/dist/src/events/processors/async/DocumentUpdateProcessor.js +0 -44
  148. package/dist/src/events/processors/async/DocumentUpdateProcessor.js.map +0 -1
  149. package/dist/src/events/processors/index.js +0 -23
  150. package/dist/src/events/processors/index.js.map +0 -1
  151. package/dist/src/events/processors/posthog/PosthogProcessor.js +0 -149
  152. package/dist/src/events/processors/posthog/PosthogProcessor.js.map +0 -1
  153. package/dist/src/events/processors/posthog/index.js +0 -8
  154. package/dist/src/events/processors/posthog/index.js.map +0 -1
  155. package/dist/src/events/processors/posthog/rateLimiting.js +0 -129
  156. package/dist/src/events/processors/posthog/rateLimiting.js.map +0 -1
  157. package/dist/src/events/processors/types.js +0 -3
  158. package/dist/src/events/processors/types.js.map +0 -1
  159. package/dist/src/events/publishers/account.js +0 -43
  160. package/dist/src/events/publishers/account.js.map +0 -1
  161. package/dist/src/events/publishers/ai.js +0 -30
  162. package/dist/src/events/publishers/ai.js.map +0 -1
  163. package/dist/src/events/publishers/app.js +0 -166
  164. package/dist/src/events/publishers/app.js.map +0 -1
  165. package/dist/src/events/publishers/auditLog.js +0 -34
  166. package/dist/src/events/publishers/auditLog.js.map +0 -1
  167. package/dist/src/events/publishers/auth.js +0 -80
  168. package/dist/src/events/publishers/auth.js.map +0 -1
  169. package/dist/src/events/publishers/automation.js +0 -117
  170. package/dist/src/events/publishers/automation.js.map +0 -1
  171. package/dist/src/events/publishers/backfill.js +0 -85
  172. package/dist/src/events/publishers/backfill.js.map +0 -1
  173. package/dist/src/events/publishers/backup.js +0 -41
  174. package/dist/src/events/publishers/backup.js.map +0 -1
  175. package/dist/src/events/publishers/datasource.js +0 -54
  176. package/dist/src/events/publishers/datasource.js.map +0 -1
  177. package/dist/src/events/publishers/email.js +0 -30
  178. package/dist/src/events/publishers/email.js.map +0 -1
  179. package/dist/src/events/publishers/environmentVariable.js +0 -44
  180. package/dist/src/events/publishers/environmentVariable.js.map +0 -1
  181. package/dist/src/events/publishers/group.js +0 -107
  182. package/dist/src/events/publishers/group.js.map +0 -1
  183. package/dist/src/events/publishers/index.js +0 -57
  184. package/dist/src/events/publishers/index.js.map +0 -1
  185. package/dist/src/events/publishers/installation.js +0 -52
  186. package/dist/src/events/publishers/installation.js.map +0 -1
  187. package/dist/src/events/publishers/layout.js +0 -34
  188. package/dist/src/events/publishers/layout.js.map +0 -1
  189. package/dist/src/events/publishers/license.js +0 -77
  190. package/dist/src/events/publishers/license.js.map +0 -1
  191. package/dist/src/events/publishers/org.js +0 -52
  192. package/dist/src/events/publishers/org.js.map +0 -1
  193. package/dist/src/events/publishers/plugin.js +0 -55
  194. package/dist/src/events/publishers/plugin.js.map +0 -1
  195. package/dist/src/events/publishers/query.js +0 -74
  196. package/dist/src/events/publishers/query.js.map +0 -1
  197. package/dist/src/events/publishers/role.js +0 -69
  198. package/dist/src/events/publishers/role.js.map +0 -1
  199. package/dist/src/events/publishers/rows.js +0 -32
  200. package/dist/src/events/publishers/rows.js.map +0 -1
  201. package/dist/src/events/publishers/screen.js +0 -46
  202. package/dist/src/events/publishers/screen.js.map +0 -1
  203. package/dist/src/events/publishers/serve.js +0 -47
  204. package/dist/src/events/publishers/serve.js.map +0 -1
  205. package/dist/src/events/publishers/table.js +0 -77
  206. package/dist/src/events/publishers/table.js.map +0 -1
  207. package/dist/src/events/publishers/user.js +0 -201
  208. package/dist/src/events/publishers/user.js.map +0 -1
  209. package/dist/src/events/publishers/view.js +0 -111
  210. package/dist/src/events/publishers/view.js.map +0 -1
  211. package/dist/src/features/features.js +0 -271
  212. package/dist/src/features/features.js.map +0 -1
  213. package/dist/src/features/index.js +0 -42
  214. package/dist/src/features/index.js.map +0 -1
  215. package/dist/src/features/tests/utils.js +0 -56
  216. package/dist/src/features/tests/utils.js.map +0 -1
  217. package/dist/src/helpers.js +0 -13
  218. package/dist/src/helpers.js.map +0 -1
  219. package/dist/src/index.js +0 -99
  220. package/dist/src/index.js.map +0 -1
  221. package/dist/src/installation.js +0 -159
  222. package/dist/src/installation.js.map +0 -1
  223. package/dist/src/logging/alerts.js +0 -23
  224. package/dist/src/logging/alerts.js.map +0 -1
  225. package/dist/src/logging/correlation/correlation.js +0 -18
  226. package/dist/src/logging/correlation/correlation.js.map +0 -1
  227. package/dist/src/logging/correlation/index.js +0 -18
  228. package/dist/src/logging/correlation/index.js.map +0 -1
  229. package/dist/src/logging/correlation/middleware.js +0 -17
  230. package/dist/src/logging/correlation/middleware.js.map +0 -1
  231. package/dist/src/logging/index.js +0 -45
  232. package/dist/src/logging/index.js.map +0 -1
  233. package/dist/src/logging/pino/logger.js +0 -234
  234. package/dist/src/logging/pino/logger.js.map +0 -1
  235. package/dist/src/logging/pino/middleware.js +0 -46
  236. package/dist/src/logging/pino/middleware.js.map +0 -1
  237. package/dist/src/logging/system.js +0 -110
  238. package/dist/src/logging/system.js.map +0 -1
  239. package/dist/src/middleware/adminOnly.js +0 -19
  240. package/dist/src/middleware/adminOnly.js.map +0 -1
  241. package/dist/src/middleware/auditLog.js +0 -18
  242. package/dist/src/middleware/auditLog.js.map +0 -1
  243. package/dist/src/middleware/authenticated.js +0 -254
  244. package/dist/src/middleware/authenticated.js.map +0 -1
  245. package/dist/src/middleware/builderOnly.js +0 -33
  246. package/dist/src/middleware/builderOnly.js.map +0 -1
  247. package/dist/src/middleware/builderOrAdmin.js +0 -33
  248. package/dist/src/middleware/builderOrAdmin.js.map +0 -1
  249. package/dist/src/middleware/contentSecurityPolicy.js +0 -124
  250. package/dist/src/middleware/contentSecurityPolicy.js.map +0 -1
  251. package/dist/src/middleware/csrf.js +0 -81
  252. package/dist/src/middleware/csrf.js.map +0 -1
  253. package/dist/src/middleware/errorHandling.js +0 -88
  254. package/dist/src/middleware/errorHandling.js.map +0 -1
  255. package/dist/src/middleware/index.js +0 -79
  256. package/dist/src/middleware/index.js.map +0 -1
  257. package/dist/src/middleware/internalApi.js +0 -30
  258. package/dist/src/middleware/internalApi.js.map +0 -1
  259. package/dist/src/middleware/ip.js +0 -23
  260. package/dist/src/middleware/ip.js.map +0 -1
  261. package/dist/src/middleware/joi-validator.js +0 -53
  262. package/dist/src/middleware/joi-validator.js.map +0 -1
  263. package/dist/src/middleware/matchers.js +0 -36
  264. package/dist/src/middleware/matchers.js.map +0 -1
  265. package/dist/src/middleware/passport/datasource/google.js +0 -107
  266. package/dist/src/middleware/passport/datasource/google.js.map +0 -1
  267. package/dist/src/middleware/passport/local.js +0 -91
  268. package/dist/src/middleware/passport/local.js.map +0 -1
  269. package/dist/src/middleware/passport/sso/google.js +0 -98
  270. package/dist/src/middleware/passport/sso/google.js.map +0 -1
  271. package/dist/src/middleware/passport/sso/oidc.js +0 -158
  272. package/dist/src/middleware/passport/sso/oidc.js.map +0 -1
  273. package/dist/src/middleware/passport/sso/sso.js +0 -150
  274. package/dist/src/middleware/passport/sso/sso.js.map +0 -1
  275. package/dist/src/middleware/passport/utils.js +0 -75
  276. package/dist/src/middleware/passport/utils.js.map +0 -1
  277. package/dist/src/middleware/querystringToBody.js +0 -29
  278. package/dist/src/middleware/querystringToBody.js.map +0 -1
  279. package/dist/src/middleware/tenancy.js +0 -37
  280. package/dist/src/middleware/tenancy.js.map +0 -1
  281. package/dist/src/migrations/definitions.js +0 -39
  282. package/dist/src/migrations/definitions.js.map +0 -1
  283. package/dist/src/migrations/index.js +0 -19
  284. package/dist/src/migrations/index.js.map +0 -1
  285. package/dist/src/migrations/migrations.js +0 -203
  286. package/dist/src/migrations/migrations.js.map +0 -1
  287. package/dist/src/objectStore/buckets/app.js +0 -95
  288. package/dist/src/objectStore/buckets/app.js.map +0 -1
  289. package/dist/src/objectStore/buckets/global.js +0 -68
  290. package/dist/src/objectStore/buckets/global.js.map +0 -1
  291. package/dist/src/objectStore/buckets/index.js +0 -20
  292. package/dist/src/objectStore/buckets/index.js.map +0 -1
  293. package/dist/src/objectStore/buckets/plugins.js +0 -104
  294. package/dist/src/objectStore/buckets/plugins.js.map +0 -1
  295. package/dist/src/objectStore/cloudfront.js +0 -73
  296. package/dist/src/objectStore/cloudfront.js.map +0 -1
  297. package/dist/src/objectStore/index.js +0 -20
  298. package/dist/src/objectStore/index.js.map +0 -1
  299. package/dist/src/objectStore/objectStore.js +0 -509
  300. package/dist/src/objectStore/objectStore.js.map +0 -1
  301. package/dist/src/objectStore/utils.js +0 -148
  302. package/dist/src/objectStore/utils.js.map +0 -1
  303. package/dist/src/platform/index.js +0 -43
  304. package/dist/src/platform/index.js.map +0 -1
  305. package/dist/src/platform/platformDb.js +0 -9
  306. package/dist/src/platform/platformDb.js.map +0 -1
  307. package/dist/src/platform/tenants.js +0 -149
  308. package/dist/src/platform/tenants.js.map +0 -1
  309. package/dist/src/platform/users.js +0 -118
  310. package/dist/src/platform/users.js.map +0 -1
  311. package/dist/src/plugin/index.js +0 -18
  312. package/dist/src/plugin/index.js.map +0 -1
  313. package/dist/src/plugin/utils.js +0 -158
  314. package/dist/src/plugin/utils.js.map +0 -1
  315. package/dist/src/queue/constants.js +0 -13
  316. package/dist/src/queue/constants.js.map +0 -1
  317. package/dist/src/queue/inMemoryQueue.js +0 -192
  318. package/dist/src/queue/inMemoryQueue.js.map +0 -1
  319. package/dist/src/queue/index.js +0 -19
  320. package/dist/src/queue/index.js.map +0 -1
  321. package/dist/src/queue/listeners.js +0 -199
  322. package/dist/src/queue/listeners.js.map +0 -1
  323. package/dist/src/queue/queue.js +0 -124
  324. package/dist/src/queue/queue.js.map +0 -1
  325. package/dist/src/redis/index.js +0 -47
  326. package/dist/src/redis/index.js.map +0 -1
  327. package/dist/src/redis/init.js +0 -184
  328. package/dist/src/redis/init.js.map +0 -1
  329. package/dist/src/redis/redis.js +0 -396
  330. package/dist/src/redis/redis.js.map +0 -1
  331. package/dist/src/redis/redlockImpl.js +0 -181
  332. package/dist/src/redis/redlockImpl.js.map +0 -1
  333. package/dist/src/redis/utils.js +0 -131
  334. package/dist/src/redis/utils.js.map +0 -1
  335. package/dist/src/security/auth.js +0 -26
  336. package/dist/src/security/auth.js.map +0 -1
  337. package/dist/src/security/encryption.js +0 -169
  338. package/dist/src/security/encryption.js.map +0 -1
  339. package/dist/src/security/index.js +0 -18
  340. package/dist/src/security/index.js.map +0 -1
  341. package/dist/src/security/permissions.js +0 -147
  342. package/dist/src/security/permissions.js.map +0 -1
  343. package/dist/src/security/roles.js +0 -566
  344. package/dist/src/security/roles.js.map +0 -1
  345. package/dist/src/security/secrets.js +0 -53
  346. package/dist/src/security/secrets.js.map +0 -1
  347. package/dist/src/security/sessions.js +0 -156
  348. package/dist/src/security/sessions.js.map +0 -1
  349. package/dist/src/sql/designDoc.js +0 -19
  350. package/dist/src/sql/designDoc.js.map +0 -1
  351. package/dist/src/sql/index.js +0 -47
  352. package/dist/src/sql/index.js.map +0 -1
  353. package/dist/src/sql/sql.js +0 -1536
  354. package/dist/src/sql/sql.js.map +0 -1
  355. package/dist/src/sql/sqlTable.js +0 -256
  356. package/dist/src/sql/sqlTable.js.map +0 -1
  357. package/dist/src/sql/utils.js +0 -179
  358. package/dist/src/sql/utils.js.map +0 -1
  359. package/dist/src/tenancy/db.js +0 -9
  360. package/dist/src/tenancy/db.js.map +0 -1
  361. package/dist/src/tenancy/index.js +0 -19
  362. package/dist/src/tenancy/index.js.map +0 -1
  363. package/dist/src/tenancy/tenancy.js +0 -125
  364. package/dist/src/tenancy/tenancy.js.map +0 -1
  365. package/dist/src/timers/index.js +0 -18
  366. package/dist/src/timers/index.js.map +0 -1
  367. package/dist/src/timers/timers.js +0 -25
  368. package/dist/src/timers/timers.js.map +0 -1
  369. package/dist/src/users/db.js +0 -489
  370. package/dist/src/users/db.js.map +0 -1
  371. package/dist/src/users/events.js +0 -179
  372. package/dist/src/users/events.js.map +0 -1
  373. package/dist/src/users/index.js +0 -23
  374. package/dist/src/users/index.js.map +0 -1
  375. package/dist/src/users/lookup.js +0 -126
  376. package/dist/src/users/lookup.js.map +0 -1
  377. package/dist/src/users/users.js +0 -376
  378. package/dist/src/users/users.js.map +0 -1
  379. package/dist/src/users/utils.js +0 -127
  380. package/dist/src/users/utils.js.map +0 -1
  381. package/dist/src/utils/Duration.js +0 -54
  382. package/dist/src/utils/Duration.js.map +0 -1
  383. package/dist/src/utils/hashing.js +0 -46
  384. package/dist/src/utils/hashing.js.map +0 -1
  385. package/dist/src/utils/index.js +0 -21
  386. package/dist/src/utils/index.js.map +0 -1
  387. package/dist/src/utils/stringUtils.js +0 -8
  388. package/dist/src/utils/stringUtils.js.map +0 -1
  389. package/dist/src/utils/utils.js +0 -267
  390. package/dist/src/utils/utils.js.map +0 -1
  391. package/dist/tests/core/logging.js +0 -33
  392. package/dist/tests/core/logging.js.map +0 -1
  393. package/dist/tests/core/utilities/index.js +0 -48
  394. package/dist/tests/core/utilities/index.js.map +0 -1
  395. package/dist/tests/core/utilities/jestUtils.js +0 -21
  396. package/dist/tests/core/utilities/jestUtils.js.map +0 -1
  397. package/dist/tests/core/utilities/mocks/alerts.js +0 -40
  398. package/dist/tests/core/utilities/mocks/alerts.js.map +0 -1
  399. package/dist/tests/core/utilities/mocks/date.js +0 -6
  400. package/dist/tests/core/utilities/mocks/date.js.map +0 -1
  401. package/dist/tests/core/utilities/mocks/events.js +0 -154
  402. package/dist/tests/core/utilities/mocks/events.js.map +0 -1
  403. package/dist/tests/core/utilities/mocks/index.js +0 -47
  404. package/dist/tests/core/utilities/mocks/index.js.map +0 -1
  405. package/dist/tests/core/utilities/mocks/licenses.js +0 -109
  406. package/dist/tests/core/utilities/mocks/licenses.js.map +0 -1
  407. package/dist/tests/core/utilities/queue.js +0 -21
  408. package/dist/tests/core/utilities/queue.js.map +0 -1
  409. package/dist/tests/core/utilities/structures/Chance.js +0 -21
  410. package/dist/tests/core/utilities/structures/Chance.js.map +0 -1
  411. package/dist/tests/core/utilities/structures/accounts.js +0 -43
  412. package/dist/tests/core/utilities/structures/accounts.js.map +0 -1
  413. package/dist/tests/core/utilities/structures/apps.js +0 -23
  414. package/dist/tests/core/utilities/structures/apps.js.map +0 -1
  415. package/dist/tests/core/utilities/structures/common.js +0 -11
  416. package/dist/tests/core/utilities/structures/common.js.map +0 -1
  417. package/dist/tests/core/utilities/structures/db.js +0 -15
  418. package/dist/tests/core/utilities/structures/db.js.map +0 -1
  419. package/dist/tests/core/utilities/structures/documents/index.js +0 -18
  420. package/dist/tests/core/utilities/structures/documents/index.js.map +0 -1
  421. package/dist/tests/core/utilities/structures/documents/platform/index.js +0 -38
  422. package/dist/tests/core/utilities/structures/documents/platform/index.js.map +0 -1
  423. package/dist/tests/core/utilities/structures/documents/platform/installation.js +0 -47
  424. package/dist/tests/core/utilities/structures/documents/platform/installation.js.map +0 -1
  425. package/dist/tests/core/utilities/structures/generator.js +0 -9
  426. package/dist/tests/core/utilities/structures/generator.js.map +0 -1
  427. package/dist/tests/core/utilities/structures/index.js +0 -56
  428. package/dist/tests/core/utilities/structures/index.js.map +0 -1
  429. package/dist/tests/core/utilities/structures/koa.js +0 -10
  430. package/dist/tests/core/utilities/structures/koa.js.map +0 -1
  431. package/dist/tests/core/utilities/structures/licenses.js +0 -157
  432. package/dist/tests/core/utilities/structures/licenses.js.map +0 -1
  433. package/dist/tests/core/utilities/structures/plugins.js +0 -22
  434. package/dist/tests/core/utilities/structures/plugins.js.map +0 -1
  435. package/dist/tests/core/utilities/structures/quotas.js +0 -73
  436. package/dist/tests/core/utilities/structures/quotas.js.map +0 -1
  437. package/dist/tests/core/utilities/structures/scim.js +0 -62
  438. package/dist/tests/core/utilities/structures/scim.js.map +0 -1
  439. package/dist/tests/core/utilities/structures/sso.js +0 -140
  440. package/dist/tests/core/utilities/structures/sso.js.map +0 -1
  441. package/dist/tests/core/utilities/structures/tenants.js +0 -8
  442. package/dist/tests/core/utilities/structures/tenants.js.map +0 -1
  443. package/dist/tests/core/utilities/structures/userGroups.js +0 -12
  444. package/dist/tests/core/utilities/structures/userGroups.js.map +0 -1
  445. package/dist/tests/core/utilities/structures/users.js +0 -53
  446. package/dist/tests/core/utilities/structures/users.js.map +0 -1
  447. package/dist/tests/core/utilities/testContainerUtils.js +0 -161
  448. package/dist/tests/core/utilities/testContainerUtils.js.map +0 -1
  449. package/dist/tests/core/utilities/utils/index.js +0 -39
  450. package/dist/tests/core/utilities/utils/index.js.map +0 -1
  451. package/dist/tests/core/utilities/utils/queue.js +0 -37
  452. package/dist/tests/core/utilities/utils/queue.js.map +0 -1
  453. package/dist/tests/core/utilities/utils/time.js +0 -7
  454. package/dist/tests/core/utilities/utils/time.js.map +0 -1
  455. package/dist/tests/extra/DBTestConfiguration.js +0 -65
  456. package/dist/tests/extra/DBTestConfiguration.js.map +0 -1
  457. package/dist/tests/extra/index.js +0 -43
  458. package/dist/tests/extra/index.js.map +0 -1
  459. package/dist/tests/extra/testEnv.js +0 -136
  460. package/dist/tests/extra/testEnv.js.map +0 -1
  461. package/dist/tests/index.js +0 -19
  462. package/dist/tests/index.js.map +0 -1
  463. package/dist/tests/jestEnv.js +0 -12
  464. package/dist/tests/jestEnv.js.map +0 -1
  465. package/dist/tests/jestSetup.js +0 -33
  466. package/dist/tests/jestSetup.js.map +0 -1
@@ -1,509 +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
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.SIGNED_FILE_PREFIX = void 0;
16
- exports.sanitizeKey = sanitizeKey;
17
- exports.sanitizeBucket = sanitizeBucket;
18
- exports.ObjectStore = ObjectStore;
19
- exports.createBucketIfNotExists = createBucketIfNotExists;
20
- exports.upload = upload;
21
- exports.streamUpload = streamUpload;
22
- exports.retrieve = retrieve;
23
- exports.listAllObjects = listAllObjects;
24
- exports.getPresignedUrl = getPresignedUrl;
25
- exports.retrieveToTmp = retrieveToTmp;
26
- exports.retrieveDirectory = retrieveDirectory;
27
- exports.deleteFile = deleteFile;
28
- exports.deleteFiles = deleteFiles;
29
- exports.deleteFolder = deleteFolder;
30
- exports.uploadDirectory = uploadDirectory;
31
- exports.downloadTarballDirect = downloadTarballDirect;
32
- exports.downloadTarball = downloadTarball;
33
- exports.getReadStream = getReadStream;
34
- exports.getObjectMetadata = getObjectMetadata;
35
- exports.extractBucketAndPath = extractBucketAndPath;
36
- const sanitize = require("sanitize-s3-objectkey");
37
- const aws_sdk_1 = __importDefault(require("aws-sdk"));
38
- const stream_1 = __importDefault(require("stream"));
39
- const node_fetch_1 = __importDefault(require("node-fetch"));
40
- const tar_fs_1 = __importDefault(require("tar-fs"));
41
- const zlib_1 = __importDefault(require("zlib"));
42
- const util_1 = require("util");
43
- const path_1 = require("path");
44
- const fs_1 = __importDefault(require("fs"));
45
- const environment_1 = __importDefault(require("../environment"));
46
- const utils_1 = require("./utils");
47
- const uuid_1 = require("uuid");
48
- const db_1 = require("../db");
49
- const promises_1 = __importDefault(require("fs/promises"));
50
- const streamPipeline = (0, util_1.promisify)(stream_1.default.pipeline);
51
- // use this as a temporary store of buckets that are being created
52
- const STATE = {
53
- bucketCreationPromises: {},
54
- };
55
- exports.SIGNED_FILE_PREFIX = "/files/signed";
56
- const CONTENT_TYPE_MAP = {
57
- txt: "text/plain",
58
- html: "text/html",
59
- css: "text/css",
60
- js: "application/javascript",
61
- json: "application/json",
62
- gz: "application/gzip",
63
- svg: "image/svg+xml",
64
- form: "multipart/form-data",
65
- };
66
- const STRING_CONTENT_TYPES = [
67
- CONTENT_TYPE_MAP.html,
68
- CONTENT_TYPE_MAP.css,
69
- CONTENT_TYPE_MAP.js,
70
- CONTENT_TYPE_MAP.json,
71
- ];
72
- // does normal sanitization and then swaps dev apps to apps
73
- function sanitizeKey(input) {
74
- return sanitize(sanitizeBucket(input)).replace(/\\/g, "/");
75
- }
76
- // simply handles the dev app to app conversion
77
- function sanitizeBucket(input) {
78
- return input.replace(new RegExp(db_1.APP_DEV_PREFIX, "g"), db_1.APP_PREFIX);
79
- }
80
- /**
81
- * Gets a connection to the object store using the S3 SDK.
82
- * @param bucket the name of the bucket which blobs will be uploaded/retrieved from.
83
- * @param opts configuration for the object store.
84
- * @return an S3 object store object, check S3 Nodejs SDK for usage.
85
- * @constructor
86
- */
87
- function ObjectStore(bucket, opts = { presigning: false }) {
88
- const config = {
89
- s3ForcePathStyle: true,
90
- signatureVersion: "v4",
91
- apiVersion: "2006-03-01",
92
- accessKeyId: environment_1.default.MINIO_ACCESS_KEY,
93
- secretAccessKey: environment_1.default.MINIO_SECRET_KEY,
94
- region: environment_1.default.AWS_REGION,
95
- };
96
- if (bucket) {
97
- config.params = {
98
- Bucket: sanitizeBucket(bucket),
99
- };
100
- }
101
- // for AWS Credentials using temporary session token
102
- if (!environment_1.default.MINIO_ENABLED && environment_1.default.AWS_SESSION_TOKEN) {
103
- config.sessionToken = environment_1.default.AWS_SESSION_TOKEN;
104
- }
105
- // custom S3 is in use i.e. minio
106
- if (environment_1.default.MINIO_URL) {
107
- if (opts.presigning && environment_1.default.MINIO_ENABLED) {
108
- // IMPORTANT: Signed urls will inspect the host header of the request.
109
- // Normally a signed url will need to be generated with a specified host in mind.
110
- // To support dynamic hosts, e.g. some unknown self-hosted installation url,
111
- // use a predefined host. The host 'minio-service' is also forwarded to minio requests via nginx
112
- config.endpoint = "minio-service";
113
- }
114
- else {
115
- config.endpoint = environment_1.default.MINIO_URL;
116
- }
117
- }
118
- return new aws_sdk_1.default.S3(config);
119
- }
120
- /**
121
- * Given an object store and a bucket name this will make sure the bucket exists,
122
- * if it does not exist then it will create it.
123
- */
124
- function createBucketIfNotExists(client, bucketName) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- bucketName = sanitizeBucket(bucketName);
127
- try {
128
- yield client
129
- .headBucket({
130
- Bucket: bucketName,
131
- })
132
- .promise();
133
- return { created: false, exists: true };
134
- }
135
- catch (err) {
136
- const promises = STATE.bucketCreationPromises;
137
- const doesntExist = err.statusCode === 404, noAccess = err.statusCode === 403;
138
- if (promises[bucketName]) {
139
- yield promises[bucketName];
140
- return { created: false, exists: true };
141
- }
142
- else if (doesntExist || noAccess) {
143
- if (doesntExist) {
144
- promises[bucketName] = client
145
- .createBucket({
146
- Bucket: bucketName,
147
- })
148
- .promise();
149
- yield promises[bucketName];
150
- delete promises[bucketName];
151
- return { created: true, exists: false };
152
- }
153
- else {
154
- throw new Error("Access denied to object store bucket." + err);
155
- }
156
- }
157
- else {
158
- throw new Error("Unable to write to object store bucket.");
159
- }
160
- }
161
- });
162
- }
163
- /**
164
- * Uploads the contents of a file given the required parameters, useful when
165
- * temp files in use (for example file uploaded as an attachment).
166
- */
167
- function upload(_a) {
168
- return __awaiter(this, arguments, void 0, function* ({ bucket: bucketName, filename, path, type, metadata, body, ttl, }) {
169
- const extension = filename.split(".").pop();
170
- const fileBytes = path ? (yield promises_1.default.open(path)).createReadStream() : body;
171
- const objectStore = ObjectStore(bucketName);
172
- const bucketCreated = yield createBucketIfNotExists(objectStore, bucketName);
173
- if (ttl && bucketCreated.created) {
174
- let ttlConfig = (0, utils_1.bucketTTLConfig)(bucketName, ttl);
175
- yield objectStore.putBucketLifecycleConfiguration(ttlConfig).promise();
176
- }
177
- let contentType = type;
178
- if (!contentType) {
179
- contentType = extension
180
- ? CONTENT_TYPE_MAP[extension.toLowerCase()]
181
- : CONTENT_TYPE_MAP.txt;
182
- }
183
- const config = {
184
- // windows file paths need to be converted to forward slashes for s3
185
- Key: sanitizeKey(filename),
186
- Body: fileBytes,
187
- ContentType: contentType,
188
- };
189
- if (metadata && typeof metadata === "object") {
190
- // remove any nullish keys from the metadata object, as these may be considered invalid
191
- for (let key of Object.keys(metadata)) {
192
- if (!metadata[key] || typeof metadata[key] !== "string") {
193
- delete metadata[key];
194
- }
195
- }
196
- config.Metadata = metadata;
197
- }
198
- return objectStore.upload(config).promise();
199
- });
200
- }
201
- /**
202
- * Similar to the upload function but can be used to send a file stream
203
- * through to the object store.
204
- */
205
- function streamUpload(_a) {
206
- return __awaiter(this, arguments, void 0, function* ({ bucket: bucketName, stream, filename, type, extra, ttl, }) {
207
- if (!stream) {
208
- throw new Error("Stream to upload is invalid/undefined");
209
- }
210
- const extension = filename.split(".").pop();
211
- const objectStore = ObjectStore(bucketName);
212
- const bucketCreated = yield createBucketIfNotExists(objectStore, bucketName);
213
- if (ttl && bucketCreated.created) {
214
- let ttlConfig = (0, utils_1.bucketTTLConfig)(bucketName, ttl);
215
- yield objectStore.putBucketLifecycleConfiguration(ttlConfig).promise();
216
- }
217
- // Set content type for certain known extensions
218
- if (filename === null || filename === void 0 ? void 0 : filename.endsWith(".js")) {
219
- extra = Object.assign(Object.assign({}, extra), { ContentType: "application/javascript" });
220
- }
221
- else if (filename === null || filename === void 0 ? void 0 : filename.endsWith(".svg")) {
222
- extra = Object.assign(Object.assign({}, extra), { ContentType: "image" });
223
- }
224
- let contentType = type;
225
- if (!contentType) {
226
- contentType = extension
227
- ? CONTENT_TYPE_MAP[extension.toLowerCase()]
228
- : CONTENT_TYPE_MAP.txt;
229
- }
230
- const bucket = sanitizeBucket(bucketName), objKey = sanitizeKey(filename);
231
- const params = Object.assign({ Bucket: bucket, Key: objKey, Body: stream, ContentType: contentType }, extra);
232
- const details = yield objectStore.upload(params).promise();
233
- const headDetails = yield objectStore
234
- .headObject({
235
- Bucket: bucket,
236
- Key: objKey,
237
- })
238
- .promise();
239
- return Object.assign(Object.assign({}, details), { ContentLength: headDetails.ContentLength });
240
- });
241
- }
242
- /**
243
- * retrieves the contents of a file from the object store, if it is a known content type it
244
- * will be converted, otherwise it will be returned as a buffer stream.
245
- */
246
- function retrieve(bucketName, filepath) {
247
- return __awaiter(this, void 0, void 0, function* () {
248
- const objectStore = ObjectStore(bucketName);
249
- const params = {
250
- Bucket: sanitizeBucket(bucketName),
251
- Key: sanitizeKey(filepath),
252
- };
253
- const response = yield objectStore.getObject(params).promise();
254
- // currently these are all strings
255
- if (STRING_CONTENT_TYPES.includes(response.ContentType)) {
256
- return response.Body.toString("utf8");
257
- }
258
- else {
259
- return response.Body;
260
- }
261
- });
262
- }
263
- function listAllObjects(bucketName, path) {
264
- return __awaiter(this, void 0, void 0, function* () {
265
- const objectStore = ObjectStore(bucketName);
266
- const list = (params = {}) => {
267
- return objectStore
268
- .listObjectsV2(Object.assign(Object.assign({}, params), { Bucket: sanitizeBucket(bucketName), Prefix: sanitizeKey(path) }))
269
- .promise();
270
- };
271
- let isTruncated = false, token, objects = [];
272
- do {
273
- let params = {};
274
- if (token) {
275
- params.ContinuationToken = token;
276
- }
277
- const response = yield list(params);
278
- if (response.Contents) {
279
- objects = objects.concat(response.Contents);
280
- }
281
- isTruncated = !!response.IsTruncated;
282
- token = response.NextContinuationToken;
283
- } while (isTruncated && token);
284
- return objects;
285
- });
286
- }
287
- /**
288
- * Generate a presigned url with a default TTL of 1 hour
289
- */
290
- function getPresignedUrl(bucketName, key, durationSeconds = 3600) {
291
- const objectStore = ObjectStore(bucketName, { presigning: true });
292
- const params = {
293
- Bucket: sanitizeBucket(bucketName),
294
- Key: sanitizeKey(key),
295
- Expires: durationSeconds,
296
- };
297
- const url = objectStore.getSignedUrl("getObject", params);
298
- if (!environment_1.default.MINIO_ENABLED) {
299
- // return the full URL to the client
300
- return url;
301
- }
302
- else {
303
- // return the path only to the client
304
- // use the presigned url route to ensure the static
305
- // hostname will be used in the request
306
- const signedUrl = new URL(url);
307
- const path = signedUrl.pathname;
308
- const query = signedUrl.search;
309
- return `${exports.SIGNED_FILE_PREFIX}${path}${query}`;
310
- }
311
- }
312
- /**
313
- * Same as retrieval function but puts to a temporary file.
314
- */
315
- function retrieveToTmp(bucketName, filepath) {
316
- return __awaiter(this, void 0, void 0, function* () {
317
- bucketName = sanitizeBucket(bucketName);
318
- filepath = sanitizeKey(filepath);
319
- const data = yield retrieve(bucketName, filepath);
320
- const outputPath = (0, path_1.join)((0, utils_1.budibaseTempDir)(), (0, uuid_1.v4)());
321
- fs_1.default.writeFileSync(outputPath, data);
322
- return outputPath;
323
- });
324
- }
325
- function retrieveDirectory(bucketName, path) {
326
- return __awaiter(this, void 0, void 0, function* () {
327
- let writePath = (0, path_1.join)((0, utils_1.budibaseTempDir)(), (0, uuid_1.v4)());
328
- fs_1.default.mkdirSync(writePath);
329
- const objects = yield listAllObjects(bucketName, path);
330
- let streams = yield Promise.all(objects.map(obj => getReadStream(bucketName, obj.Key)));
331
- let count = 0;
332
- const writePromises = [];
333
- for (let obj of objects) {
334
- const filename = obj.Key;
335
- const stream = streams[count++];
336
- const possiblePath = filename.split("/");
337
- const dirs = possiblePath.slice(0, possiblePath.length - 1);
338
- const possibleDir = (0, path_1.join)(writePath, ...dirs);
339
- if (possiblePath.length > 1 && !fs_1.default.existsSync(possibleDir)) {
340
- fs_1.default.mkdirSync(possibleDir, { recursive: true });
341
- }
342
- const writeStream = fs_1.default.createWriteStream((0, path_1.join)(writePath, ...possiblePath), {
343
- mode: 0o644,
344
- });
345
- stream.pipe(writeStream);
346
- writePromises.push(new Promise((resolve, reject) => {
347
- stream.on("finish", resolve);
348
- stream.on("error", reject);
349
- writeStream.on("error", reject);
350
- }));
351
- }
352
- yield Promise.all(writePromises);
353
- return writePath;
354
- });
355
- }
356
- /**
357
- * Delete a single file.
358
- */
359
- function deleteFile(bucketName, filepath) {
360
- return __awaiter(this, void 0, void 0, function* () {
361
- const objectStore = ObjectStore(bucketName);
362
- yield createBucketIfNotExists(objectStore, bucketName);
363
- const params = {
364
- Bucket: bucketName,
365
- Key: sanitizeKey(filepath),
366
- };
367
- return objectStore.deleteObject(params).promise();
368
- });
369
- }
370
- function deleteFiles(bucketName, filepaths) {
371
- return __awaiter(this, void 0, void 0, function* () {
372
- const objectStore = ObjectStore(bucketName);
373
- yield createBucketIfNotExists(objectStore, bucketName);
374
- const params = {
375
- Bucket: bucketName,
376
- Delete: {
377
- Objects: filepaths.map((path) => ({ Key: sanitizeKey(path) })),
378
- },
379
- };
380
- return objectStore.deleteObjects(params).promise();
381
- });
382
- }
383
- /**
384
- * Delete a path, including everything within.
385
- */
386
- function deleteFolder(bucketName, folder) {
387
- return __awaiter(this, void 0, void 0, function* () {
388
- var _a, _b, _c;
389
- bucketName = sanitizeBucket(bucketName);
390
- folder = sanitizeKey(folder);
391
- const client = ObjectStore(bucketName);
392
- const listParams = {
393
- Bucket: bucketName,
394
- Prefix: folder,
395
- };
396
- const existingObjectsResponse = yield client.listObjects(listParams).promise();
397
- if (((_a = existingObjectsResponse.Contents) === null || _a === void 0 ? void 0 : _a.length) === 0) {
398
- return;
399
- }
400
- const deleteParams = {
401
- Bucket: bucketName,
402
- Delete: {
403
- Objects: [],
404
- },
405
- };
406
- (_b = existingObjectsResponse.Contents) === null || _b === void 0 ? void 0 : _b.forEach((content) => {
407
- deleteParams.Delete.Objects.push({ Key: content.Key });
408
- });
409
- const deleteResponse = yield client.deleteObjects(deleteParams).promise();
410
- // can only empty 1000 items at once
411
- if (((_c = deleteResponse.Deleted) === null || _c === void 0 ? void 0 : _c.length) === 1000) {
412
- return deleteFolder(bucketName, folder);
413
- }
414
- });
415
- }
416
- function uploadDirectory(bucketName, localPath, bucketPath) {
417
- return __awaiter(this, void 0, void 0, function* () {
418
- bucketName = sanitizeBucket(bucketName);
419
- let uploads = [];
420
- const files = fs_1.default.readdirSync(localPath, { withFileTypes: true });
421
- for (let file of files) {
422
- const path = sanitizeKey((0, path_1.join)(bucketPath, file.name));
423
- const local = (0, path_1.join)(localPath, file.name);
424
- if (file.isDirectory()) {
425
- uploads.push(uploadDirectory(bucketName, local, path));
426
- }
427
- else {
428
- uploads.push(streamUpload({
429
- bucket: bucketName,
430
- filename: path,
431
- stream: fs_1.default.createReadStream(local),
432
- }));
433
- }
434
- }
435
- yield Promise.all(uploads);
436
- return files;
437
- });
438
- }
439
- function downloadTarballDirect(url_1, path_2) {
440
- return __awaiter(this, arguments, void 0, function* (url, path, headers = {}) {
441
- path = sanitizeKey(path);
442
- const response = yield (0, node_fetch_1.default)(url, { headers });
443
- if (!response.ok) {
444
- throw new Error(`unexpected response ${response.statusText}`);
445
- }
446
- yield streamPipeline(response.body, zlib_1.default.createUnzip(), tar_fs_1.default.extract(path));
447
- });
448
- }
449
- function downloadTarball(url, bucketName, path) {
450
- return __awaiter(this, void 0, void 0, function* () {
451
- bucketName = sanitizeBucket(bucketName);
452
- path = sanitizeKey(path);
453
- const response = yield (0, node_fetch_1.default)(url);
454
- if (!response.ok) {
455
- throw new Error(`unexpected response ${response.statusText}`);
456
- }
457
- const tmpPath = (0, path_1.join)((0, utils_1.budibaseTempDir)(), path);
458
- yield streamPipeline(response.body, zlib_1.default.createUnzip(), tar_fs_1.default.extract(tmpPath));
459
- if (!environment_1.default.isTest() && environment_1.default.SELF_HOSTED) {
460
- yield uploadDirectory(bucketName, tmpPath, path);
461
- }
462
- // return the temporary path incase there is a use for it
463
- return tmpPath;
464
- });
465
- }
466
- function getReadStream(bucketName, path) {
467
- return __awaiter(this, void 0, void 0, function* () {
468
- bucketName = sanitizeBucket(bucketName);
469
- path = sanitizeKey(path);
470
- const client = ObjectStore(bucketName);
471
- const params = {
472
- Bucket: bucketName,
473
- Key: path,
474
- };
475
- return client.getObject(params).createReadStream();
476
- });
477
- }
478
- function getObjectMetadata(bucket, path) {
479
- return __awaiter(this, void 0, void 0, function* () {
480
- bucket = sanitizeBucket(bucket);
481
- path = sanitizeKey(path);
482
- const client = ObjectStore(bucket);
483
- const params = {
484
- Bucket: bucket,
485
- Key: path,
486
- };
487
- try {
488
- return yield client.headObject(params).promise();
489
- }
490
- catch (err) {
491
- throw new Error("Unable to retrieve metadata from object");
492
- }
493
- });
494
- }
495
- /*
496
- Given a signed url like '/files/signed/tmp-files-attachments/app_123456/myfile.txt' extract
497
- the bucket and the path from it
498
- */
499
- function extractBucketAndPath(url) {
500
- const baseUrl = url.split("?")[0];
501
- const regex = new RegExp(`^${exports.SIGNED_FILE_PREFIX}/(?<bucket>[^/]+)/(?<path>.+)$`);
502
- const match = baseUrl.match(regex);
503
- if (match && match.groups) {
504
- const { bucket, path } = match.groups;
505
- return { bucket, path };
506
- }
507
- return null;
508
- }
509
- //# sourceMappingURL=objectStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectStore.js","sourceRoot":"","sources":["../../../src/objectStore/objectStore.ts"],"names":[],"mappings":"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"}
@@ -1,148 +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 () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- var __importDefault = (this && this.__importDefault) || function (mod) {
45
- return (mod && mod.__esModule) ? mod : { "default": mod };
46
- };
47
- Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.bucketTTLConfig = exports.ObjectStoreBuckets = void 0;
49
- exports.budibaseTempDir = budibaseTempDir;
50
- exports.processObjectStoreAttachment = processObjectStoreAttachment;
51
- exports.processAutomationAttachment = processAutomationAttachment;
52
- const path_1 = __importStar(require("path"));
53
- const os_1 = require("os");
54
- const fs_1 = __importDefault(require("fs"));
55
- const environment_1 = __importDefault(require("../environment"));
56
- const objectStore = __importStar(require("./objectStore"));
57
- const stream_1 = __importDefault(require("stream"));
58
- /****************************************************
59
- * NOTE: When adding a new bucket - name *
60
- * sure that S3 usages (like budibase-infra) *
61
- * have been updated to have a unique bucket name. *
62
- ****************************************************/
63
- // can't be an enum - only numbers can be used for computed types
64
- exports.ObjectStoreBuckets = {
65
- BACKUPS: environment_1.default.BACKUPS_BUCKET_NAME,
66
- APPS: environment_1.default.APPS_BUCKET_NAME,
67
- TEMPLATES: environment_1.default.TEMPLATES_BUCKET_NAME,
68
- GLOBAL: environment_1.default.GLOBAL_BUCKET_NAME,
69
- PLUGINS: environment_1.default.PLUGIN_BUCKET_NAME,
70
- TEMP: environment_1.default.TEMP_BUCKET_NAME,
71
- };
72
- const bbTmp = (0, path_1.join)((0, os_1.tmpdir)(), ".budibase");
73
- try {
74
- fs_1.default.mkdirSync(bbTmp);
75
- }
76
- catch (e) {
77
- if (e.code !== "EEXIST") {
78
- throw e;
79
- }
80
- }
81
- function budibaseTempDir() {
82
- return bbTmp;
83
- }
84
- const bucketTTLConfig = (bucketName, days) => {
85
- const lifecycleRule = {
86
- ID: `${bucketName}-ExpireAfter${days}days`,
87
- Prefix: "",
88
- Status: "Enabled",
89
- Expiration: {
90
- Days: days,
91
- },
92
- };
93
- const lifecycleConfiguration = {
94
- Rules: [lifecycleRule],
95
- };
96
- return {
97
- Bucket: bucketName,
98
- LifecycleConfiguration: lifecycleConfiguration,
99
- };
100
- };
101
- exports.bucketTTLConfig = bucketTTLConfig;
102
- function processUrlAttachment(attachment) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- const response = yield fetch(attachment.url);
105
- if (!response.ok || !response.body) {
106
- throw new Error(`Unexpected response ${response.statusText}`);
107
- }
108
- const fallbackFilename = path_1.default.basename(new URL(attachment.url).pathname);
109
- if (!response.body) {
110
- throw new Error("No response received for attachment");
111
- }
112
- return {
113
- filename: attachment.filename || fallbackFilename,
114
- content: stream_1.default.Readable.fromWeb(response.body),
115
- };
116
- });
117
- }
118
- function processObjectStoreAttachment(attachment) {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- const result = objectStore.extractBucketAndPath(attachment.url);
121
- if (result === null) {
122
- throw new Error("Invalid signed URL");
123
- }
124
- const { bucket, path: objectPath } = result;
125
- const readStream = yield objectStore.getReadStream(bucket, objectPath);
126
- const fallbackFilename = path_1.default.basename(objectPath);
127
- return {
128
- bucket,
129
- path: objectPath,
130
- filename: attachment.filename || fallbackFilename,
131
- content: readStream,
132
- };
133
- });
134
- }
135
- function processAutomationAttachment(attachment) {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- var _a, _b;
138
- const isFullyFormedUrl = ((_a = attachment.url) === null || _a === void 0 ? void 0 : _a.startsWith("http://")) ||
139
- ((_b = attachment.url) === null || _b === void 0 ? void 0 : _b.startsWith("https://"));
140
- if (isFullyFormedUrl) {
141
- return yield processUrlAttachment(attachment);
142
- }
143
- else {
144
- return yield processObjectStoreAttachment(attachment);
145
- }
146
- });
147
- }
148
- //# sourceMappingURL=utils.js.map