@budibase/backend-core 2.29.9 → 2.29.13

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.
package/dist/index.js CHANGED
@@ -53704,7 +53704,10 @@ var require_strategy2 = __commonJS({
53704
53704
  var meta = state2;
53705
53705
  var callbackURL = meta.callbackURL;
53706
53706
  var oauth2 = self2._getOAuth2Client(meta);
53707
- var params2 = { grant_type: "authorization_code", redirect_uri: callbackURL };
53707
+ var params2 = {
53708
+ grant_type: "authorization_code",
53709
+ redirect_uri: callbackURL
53710
+ };
53708
53711
  if (state2.pkce) {
53709
53712
  params2.code_verifier = state2.params.verifier;
53710
53713
  }
@@ -53818,6 +53821,9 @@ var require_strategy2 = __commonJS({
53818
53821
  try {
53819
53822
  var json = JSON.parse(body2);
53820
53823
  profile.id = json.sub;
53824
+ if (jwtClaims && jwtClaims.oid) {
53825
+ profile.id = jwtClaims.oid;
53826
+ }
53821
53827
  if (!profile.id) {
53822
53828
  profile.id = json.user_id;
53823
53829
  }
@@ -54040,13 +54046,19 @@ var require_strategy2 = __commonJS({
54040
54046
  var verifier = base64url(crypto2.pseudoRandomBytes(32));
54041
54047
  switch (config.pkce) {
54042
54048
  case "S256":
54043
- params2.code_challenge = base64url(crypto2.createHash("sha256").update(verifier).digest());
54049
+ params2.code_challenge = base64url(
54050
+ crypto2.createHash("sha256").update(verifier).digest()
54051
+ );
54044
54052
  break;
54045
54053
  case "plain":
54046
54054
  params2.code_challenge = verifier;
54047
54055
  break;
54048
54056
  default:
54049
- return self2.error(new Error("Unsupported code verifier transformation method: " + config.pkce));
54057
+ return self2.error(
54058
+ new Error(
54059
+ "Unsupported code verifier transformation method: " + config.pkce
54060
+ )
54061
+ );
54050
54062
  }
54051
54063
  params2.code_challenge_method = config.pkce;
54052
54064
  params2.verifier = verifier;
@@ -56098,7 +56110,10 @@ var environment = {
56098
56110
  environment[key] = value;
56099
56111
  },
56100
56112
  ROLLING_LOG_MAX_SIZE: process.env.ROLLING_LOG_MAX_SIZE || "10M",
56101
- DISABLE_SCIM_CALLS: process.env.DISABLE_SCIM_CALLS
56113
+ DISABLE_SCIM_CALLS: process.env.DISABLE_SCIM_CALLS,
56114
+ BB_ADMIN_USER_EMAIL: process.env.BB_ADMIN_USER_EMAIL,
56115
+ BB_ADMIN_USER_PASSWORD: process.env.BB_ADMIN_USER_PASSWORD,
56116
+ OPENAI_API_KEY: process.env.OPENAI_API_KEY
56102
56117
  };
56103
56118
  for (let [key, value] of Object.entries(environment)) {
56104
56119
  if (value === "0") {
@@ -56524,6 +56539,11 @@ var CouchDBError = class extends Error {
56524
56539
  }
56525
56540
  };
56526
56541
  function DatabaseWithConnection(dbName, connection, opts) {
56542
+ if (!dbName || !connection) {
56543
+ throw new Error(
56544
+ "Unable to create database without database name or connection"
56545
+ );
56546
+ }
56527
56547
  const db = new DatabaseImpl(dbName, opts, connection);
56528
56548
  return new DDInstrumentedDatabase(db);
56529
56549
  }
@@ -64440,18 +64460,17 @@ var UserDB = class _UserDB {
64440
64460
  }
64441
64461
  const tenantId = getTenantId();
64442
64462
  const db = getGlobalDB();
64443
- let { email, _id, userGroups = [], roles } = user;
64463
+ const { email, _id, userGroups = [], roles } = user;
64444
64464
  if (!email && !_id) {
64445
64465
  throw new Error("_id or email is required");
64446
64466
  }
64447
64467
  let dbUser;
64448
64468
  if (_id) {
64449
64469
  try {
64450
- dbUser = await db.get(_id);
64451
- if (email && dbUser.email !== email) {
64452
- throw "Email address cannot be changed";
64470
+ dbUser = await getById(_id);
64471
+ if (email && dbUser.email !== email && !opts.allowChangingEmail) {
64472
+ throw new Error("Email address cannot be changed");
64453
64473
  }
64454
- email = dbUser.email;
64455
64474
  } catch (e) {
64456
64475
  if (e.status === 404) {
64457
64476
  } else {
@@ -64476,12 +64495,13 @@ var UserDB = class _UserDB {
64476
64495
  if (!dbUser && roles?.length) {
64477
64496
  builtUser.roles = { ...roles };
64478
64497
  }
64479
- let groupPromises = [];
64498
+ const groupPromises = [];
64480
64499
  if (!_id) {
64481
- _id = builtUser._id;
64482
64500
  if (userGroups.length > 0) {
64483
64501
  for (let groupId of userGroups) {
64484
- groupPromises.push(_UserDB.groups.addUsers(groupId, [_id]));
64502
+ groupPromises.push(
64503
+ _UserDB.groups.addUsers(groupId, [builtUser._id])
64504
+ );
64485
64505
  }
64486
64506
  }
64487
64507
  }
@@ -64489,6 +64509,9 @@ var UserDB = class _UserDB {
64489
64509
  let response = await db.put(builtUser);
64490
64510
  builtUser._rev = response.rev;
64491
64511
  await handleSaveEvents(builtUser, dbUser);
64512
+ if (dbUser && builtUser.email !== dbUser.email) {
64513
+ await users_exports2.removeUser({ email: dbUser.email });
64514
+ }
64492
64515
  await users_exports2.addUser(
64493
64516
  tenantId,
64494
64517
  builtUser._id,