@budibase/backend-core 2.10.14 → 2.10.16-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/index.js +38 -0
  2. package/dist/index.js.map +2 -2
  3. package/dist/index.js.meta.json +1 -1
  4. package/dist/package.json +6 -14
  5. package/dist/plugins.js.meta.json +1 -1
  6. package/dist/src/cache/appMetadata.js +1 -1
  7. package/dist/src/cache/appMetadata.js.map +1 -1
  8. package/dist/src/cache/generic.js +2 -2
  9. package/dist/src/cache/generic.js.map +1 -1
  10. package/dist/src/cache/user.d.ts +13 -0
  11. package/dist/src/cache/user.js +51 -1
  12. package/dist/src/cache/user.js.map +1 -1
  13. package/dist/src/constants/db.js +3 -3
  14. package/dist/src/constants/db.js.map +1 -1
  15. package/dist/src/constants/misc.js +5 -5
  16. package/dist/src/constants/misc.js.map +1 -1
  17. package/dist/src/context/Context.js +1 -1
  18. package/dist/src/context/Context.js.map +1 -1
  19. package/dist/src/context/types.d.ts +1 -1
  20. package/dist/src/db/lucene.d.ts +1 -1
  21. package/dist/src/db/lucene.js +6 -6
  22. package/dist/src/db/lucene.js.map +1 -1
  23. package/dist/src/errors/errors.js +1 -1
  24. package/dist/src/errors/errors.js.map +1 -1
  25. package/dist/src/events/processors/AuditLogsProcessor.js +1 -1
  26. package/dist/src/events/processors/AuditLogsProcessor.js.map +1 -1
  27. package/dist/src/events/processors/async/DocumentUpdateProcessor.d.ts +2 -2
  28. package/dist/src/features/index.js +1 -1
  29. package/dist/src/features/index.js.map +1 -1
  30. package/dist/src/middleware/passport/datasource/google.d.ts +1 -1
  31. package/dist/src/objectStore/objectStore.d.ts +1 -1
  32. package/dist/src/queue/constants.js +1 -1
  33. package/dist/src/queue/constants.js.map +1 -1
  34. package/dist/src/queue/listeners.d.ts +1 -1
  35. package/dist/src/redis/redis.d.ts +1 -1
  36. package/dist/src/redis/redis.js.map +1 -1
  37. package/dist/src/redis/redlockImpl.d.ts +3 -3
  38. package/dist/src/redis/utils.js +2 -2
  39. package/dist/src/redis/utils.js.map +1 -1
  40. package/dist/src/security/encryption.js +1 -1
  41. package/dist/src/security/encryption.js.map +1 -1
  42. package/dist/src/security/permissions.d.ts +2 -2
  43. package/dist/src/security/permissions.js +1 -1
  44. package/dist/src/security/permissions.js.map +1 -1
  45. package/dist/src/users/db.d.ts +8 -8
  46. package/dist/src/users/users.d.ts +1 -1
  47. package/dist/tests/core/logging.js +1 -1
  48. package/dist/tests/core/logging.js.map +1 -1
  49. package/dist/tests/core/utilities/mocks/licenses.d.ts +1 -1
  50. package/dist/tests/core/utilities/mocks/licenses.js +4 -4
  51. package/dist/tests/core/utilities/mocks/licenses.js.map +1 -1
  52. package/dist/tests/core/utilities/structures/sso.js +3 -4
  53. package/dist/tests/core/utilities/structures/sso.js.map +1 -1
  54. package/dist/tests/core/utilities/structures/users.d.ts +4 -3
  55. package/dist/tests/core/utilities/structures/users.js +18 -10
  56. package/dist/tests/core/utilities/structures/users.js.map +1 -1
  57. package/dist/tests/extra/DBTestConfiguration.d.ts +1 -1
  58. package/dist/tests/extra/DBTestConfiguration.js.map +1 -1
  59. package/dist/tests/index.d.ts +1 -0
  60. package/dist/tests/index.js +1 -0
  61. package/dist/tests/index.js.map +1 -1
  62. package/package.json +6 -14
  63. package/src/cache/tests/user.spec.ts +145 -0
  64. package/src/cache/user.ts +60 -0
  65. package/src/middleware/passport/sso/tests/sso.spec.ts +1 -0
  66. package/src/redis/redis.ts +2 -2
  67. package/src/utils/utils.ts +1 -1
  68. package/tests/core/utilities/mocks/licenses.ts +2 -2
  69. package/tests/core/utilities/structures/sso.ts +3 -4
  70. package/tests/core/utilities/structures/users.ts +24 -3
  71. package/tests/extra/DBTestConfiguration.ts +1 -1
  72. package/tests/index.ts +1 -0
  73. package/dist/tests/core/utilities/structures/shared.d.ts +0 -3
  74. package/dist/tests/core/utilities/structures/shared.js +0 -14
  75. package/dist/tests/core/utilities/structures/shared.js.map +0 -1
  76. package/tests/core/utilities/structures/shared.ts +0 -19
package/dist/index.js CHANGED
@@ -5695,6 +5695,7 @@ var bustCache = performExport("bustCache");
5695
5695
  var user_exports = {};
5696
5696
  __export(user_exports, {
5697
5697
  getUser: () => getUser,
5698
+ getUsers: () => getUsers,
5698
5699
  invalidateUser: () => invalidateUser
5699
5700
  });
5700
5701
  init_init();
@@ -10020,6 +10021,27 @@ async function populateFromDB2(userId, tenantId) {
10020
10021
  }
10021
10022
  return user;
10022
10023
  }
10024
+ async function populateUsersFromDB(userIds) {
10025
+ const getUsersResponse = await UserDB.bulkGet(userIds);
10026
+ const notFoundIds = userIds.filter((uid, i) => !getUsersResponse[i]);
10027
+ const users = getUsersResponse.filter((x) => x);
10028
+ await Promise.all(
10029
+ users.map(async (user) => {
10030
+ user.budibaseAccess = true;
10031
+ if (!environment_default.SELF_HOSTED && !environment_default.DISABLE_ACCOUNT_PORTAL) {
10032
+ const account = await getAccount(user.email);
10033
+ if (account) {
10034
+ user.account = account;
10035
+ user.accountPortalAccess = true;
10036
+ }
10037
+ }
10038
+ })
10039
+ );
10040
+ if (notFoundIds.length) {
10041
+ return { users, notFoundIds };
10042
+ }
10043
+ return { users };
10044
+ }
10023
10045
  async function getUser(userId, tenantId, populateUser) {
10024
10046
  if (!populateUser) {
10025
10047
  populateUser = populateFromDB2;
@@ -10053,6 +10075,22 @@ async function getUser(userId, tenantId, populateUser) {
10053
10075
  }
10054
10076
  return user;
10055
10077
  }
10078
+ async function getUsers(userIds) {
10079
+ const client = await getUserClient();
10080
+ let usersFromCache = await client.bulkGet(userIds);
10081
+ const missingUsersFromCache = userIds.filter((uid) => !usersFromCache[uid]);
10082
+ const users = Object.values(usersFromCache);
10083
+ let notFoundIds;
10084
+ if (missingUsersFromCache.length) {
10085
+ const usersFromDb = await populateUsersFromDB(missingUsersFromCache);
10086
+ notFoundIds = usersFromDb.notFoundIds;
10087
+ for (const userToCache of usersFromDb.users) {
10088
+ await client.store(userToCache._id, userToCache, EXPIRY_SECONDS3);
10089
+ }
10090
+ users.push(...usersFromDb.users);
10091
+ }
10092
+ return { users, notFoundIds };
10093
+ }
10056
10094
  async function invalidateUser(userId) {
10057
10095
  const client = await getUserClient();
10058
10096
  await client.delete(userId);