@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 +35 -12
- package/dist/index.js.map +2 -2
- package/dist/index.js.meta.json +1 -1
- package/dist/package.json +5 -6
- package/dist/plugins.js.map +1 -1
- package/dist/plugins.js.meta.json +1 -1
- package/dist/src/db/couch/DatabaseImpl.js +3 -0
- package/dist/src/db/couch/DatabaseImpl.js.map +1 -1
- package/dist/src/environment.d.ts +3 -0
- package/dist/src/environment.js +1 -1
- package/dist/src/environment.js.map +1 -1
- package/dist/src/users/db.js +10 -8
- package/dist/src/users/db.js.map +1 -1
- package/package.json +5 -6
- package/src/db/couch/DatabaseImpl.ts +5 -0
- package/src/environment.ts +3 -0
- package/src/users/db.ts +13 -9
- package/src/users/test/db.spec.ts +188 -0
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 = {
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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,
|