@synoikia/core 0.7.0 → 0.8.1
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/app.d.ts +2 -0
- package/dist/app.js +3 -1
- package/dist/app.js.map +1 -1
- package/dist/approvals/grants.d.ts +6 -0
- package/dist/approvals/grants.js +13 -0
- package/dist/approvals/grants.js.map +1 -1
- package/dist/approvals/service.d.ts +86 -0
- package/dist/approvals/service.js +18 -1
- package/dist/approvals/service.js.map +1 -1
- package/dist/auth/mcp-auth.d.ts +12 -0
- package/dist/auth/mcp-auth.js +83 -33
- package/dist/auth/mcp-auth.js.map +1 -1
- package/dist/auth/mcp-tokens.d.ts +27 -3
- package/dist/auth/mcp-tokens.js +32 -5
- package/dist/auth/mcp-tokens.js.map +1 -1
- package/dist/auth/oauth.d.ts +7 -1
- package/dist/auth/oauth.js +18 -1
- package/dist/auth/oauth.js.map +1 -1
- package/dist/auth/oidc.js +3 -2
- package/dist/auth/oidc.js.map +1 -1
- package/dist/auth/roles.d.ts +53 -0
- package/dist/auth/roles.js +177 -0
- package/dist/auth/roles.js.map +1 -0
- package/dist/auth/sessions.d.ts +8 -0
- package/dist/auth/sessions.js +33 -0
- package/dist/auth/sessions.js.map +1 -1
- package/dist/auth/users.d.ts +47 -2
- package/dist/auth/users.js +168 -15
- package/dist/auth/users.js.map +1 -1
- package/dist/catalog/groups.d.ts +62 -2
- package/dist/catalog/groups.js +60 -3
- package/dist/catalog/groups.js.map +1 -1
- package/dist/catalog/role-levels.d.ts +67 -0
- package/dist/catalog/role-levels.js +291 -0
- package/dist/catalog/role-levels.js.map +1 -0
- package/dist/catalog/rules.d.ts +137 -9
- package/dist/catalog/rules.js +97 -25
- package/dist/catalog/rules.js.map +1 -1
- package/dist/db/schema.d.ts +566 -0
- package/dist/db/schema.js +64 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/errors.d.ts +5 -2
- package/dist/errors.js +5 -0
- package/dist/errors.js.map +1 -1
- package/dist/gate/access.d.ts +23 -2
- package/dist/gate/access.js +31 -3
- package/dist/gate/access.js.map +1 -1
- package/dist/gate/pipeline.js +10 -1
- package/dist/gate/pipeline.js.map +1 -1
- package/dist/gate/preapproval.d.ts +2 -0
- package/dist/gate/preapproval.js +16 -3
- package/dist/gate/preapproval.js.map +1 -1
- package/dist/http/admin/auth.d.ts +4 -7
- package/dist/http/admin/auth.js +41 -47
- package/dist/http/admin/auth.js.map +1 -1
- package/dist/http/admin/instances.js +5 -64
- package/dist/http/admin/instances.js.map +1 -1
- package/dist/http/admin/me.d.ts +6 -0
- package/dist/http/admin/me.js +105 -0
- package/dist/http/admin/me.js.map +1 -0
- package/dist/http/admin/roles.d.ts +5 -0
- package/dist/http/admin/roles.js +39 -0
- package/dist/http/admin/roles.js.map +1 -0
- package/dist/http/admin/system.js +16 -41
- package/dist/http/admin/system.js.map +1 -1
- package/dist/http/admin-app.js +14 -3
- package/dist/http/admin-app.js.map +1 -1
- package/dist/http/common.d.ts +3 -2
- package/dist/http/common.js +7 -2
- package/dist/http/common.js.map +1 -1
- package/dist/http/mcp/approval-routes.js +11 -30
- package/dist/http/mcp/approval-routes.js.map +1 -1
- package/dist/http/mcp/endpoint.js +3 -3
- package/dist/http/mcp/endpoint.js.map +1 -1
- package/dist/http/mcp/oauth-routes.d.ts +2 -3
- package/dist/http/mcp/oauth-routes.js +18 -47
- package/dist/http/mcp/oauth-routes.js.map +1 -1
- package/dist/http/mcp-app.js +1 -1
- package/dist/http/mcp-app.js.map +1 -1
- package/dist/instances/manager.d.ts +36 -0
- package/dist/instances/manager.js +55 -6
- package/dist/instances/manager.js.map +1 -1
- package/dist/runtime/index.js +20 -8
- package/dist/runtime/index.js.map +1 -1
- package/dist/settings.d.ts +2 -0
- package/dist/settings.js +4 -0
- package/dist/settings.js.map +1 -1
- package/dist/testing/index.js +2 -1
- package/dist/testing/index.js.map +1 -1
- package/drizzle/0013_user_roles.sql +63 -0
- package/drizzle/0014_user_registration_source.sql +1 -0
- package/drizzle/meta/0013_snapshot.json +2833 -0
- package/drizzle/meta/0014_snapshot.json +2840 -0
- package/drizzle/meta/_journal.json +14 -0
- package/package.json +3 -3
package/dist/auth/sessions.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createHmac } from 'node:crypto';
|
|
2
2
|
import { and, eq, gt, lt, ne } from 'drizzle-orm';
|
|
3
|
+
import { writeAudit } from '../audit.js';
|
|
3
4
|
import { sessions, users } from '../db/schema.js';
|
|
4
5
|
import { randomToken } from './tokens.js';
|
|
5
6
|
const TOUCH_EVERY_MS = 60_000;
|
|
@@ -7,6 +8,8 @@ export class SessionService {
|
|
|
7
8
|
db;
|
|
8
9
|
pepper;
|
|
9
10
|
now;
|
|
11
|
+
/** When each MCP-port session last proved TOTP (design §5.3); in memory, so a restart asks again. */
|
|
12
|
+
totpProofs = new Map();
|
|
10
13
|
constructor(db, pepper, now = () => new Date()) {
|
|
11
14
|
this.db = db;
|
|
12
15
|
this.pepper = pepper;
|
|
@@ -92,6 +95,36 @@ export class SessionService {
|
|
|
92
95
|
.where(and(eq(sessions.userId, userId), eq(sessions.kind, kind)))
|
|
93
96
|
.run().changes;
|
|
94
97
|
}
|
|
98
|
+
/** The user signs out every approval browser at once (Profile page, design §5.3). */
|
|
99
|
+
revokeApprovalBrowsers(userId) {
|
|
100
|
+
return this.db.transaction((tx) => {
|
|
101
|
+
const count = tx
|
|
102
|
+
.delete(sessions)
|
|
103
|
+
.where(and(eq(sessions.userId, userId), eq(sessions.kind, 'approval_ui')))
|
|
104
|
+
.run().changes;
|
|
105
|
+
writeAudit(tx, {
|
|
106
|
+
kind: 'auth',
|
|
107
|
+
decision: 'approval_sessions_revoked',
|
|
108
|
+
actorKind: 'user',
|
|
109
|
+
actorId: userId,
|
|
110
|
+
detail: { count },
|
|
111
|
+
});
|
|
112
|
+
return count;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/** Proofs older than `maxAgeMs` are dropped on the way. */
|
|
116
|
+
recordTotpProof(idHash, maxAgeMs) {
|
|
117
|
+
const now = this.now().getTime();
|
|
118
|
+
for (const [k, at] of this.totpProofs)
|
|
119
|
+
if (now - at > maxAgeMs)
|
|
120
|
+
this.totpProofs.delete(k);
|
|
121
|
+
this.totpProofs.set(idHash, now);
|
|
122
|
+
}
|
|
123
|
+
/** Milliseconds since this session last proved TOTP, or Infinity if it never did. */
|
|
124
|
+
sinceTotpProof(idHash) {
|
|
125
|
+
const at = this.totpProofs.get(idHash);
|
|
126
|
+
return at === undefined ? Infinity : this.now().getTime() - at;
|
|
127
|
+
}
|
|
95
128
|
purgeExpired() {
|
|
96
129
|
return this.db.delete(sessions).where(lt(sessions.expiresAt, this.now())).run().changes;
|
|
97
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/auth/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/auth/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/users.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { LevelTarget, LevelView } from '../catalog/role-levels.js';
|
|
1
2
|
import type { SecretBox } from '../crypto/index.js';
|
|
2
3
|
import type { Db } from '../db/index.js';
|
|
3
4
|
import { users } from '../db/schema.js';
|
|
5
|
+
import type { AccessLevel } from '../gate/access.js';
|
|
6
|
+
import type { PublicRole } from './roles.js';
|
|
4
7
|
export type UserRow = typeof users.$inferSelect;
|
|
5
8
|
export interface PublicUser {
|
|
6
9
|
id: string;
|
|
@@ -11,25 +14,49 @@ export interface PublicUser {
|
|
|
11
14
|
disabled: boolean;
|
|
12
15
|
createdAt: Date;
|
|
13
16
|
lastLoginAt: Date | null;
|
|
17
|
+
role: PublicRole;
|
|
14
18
|
}
|
|
15
|
-
|
|
19
|
+
/** How a user came to exist without an admin creating them (design §6.5). */
|
|
20
|
+
export type RegistrationSource = 'oidc' | 'external' | 'signup';
|
|
16
21
|
export declare class UserService {
|
|
17
22
|
private readonly db;
|
|
18
23
|
private readonly box;
|
|
19
24
|
constructor(db: Db, box: SecretBox);
|
|
20
25
|
count(): number;
|
|
21
26
|
list(): PublicUser[];
|
|
27
|
+
/** A user's role; a dangling role id (none can be made through the API) reads as no access. */
|
|
28
|
+
roleOf(u: UserRow): PublicRole;
|
|
29
|
+
toPublic(u: UserRow): PublicUser;
|
|
30
|
+
isAdmin(u: UserRow): boolean;
|
|
22
31
|
get(id: string): UserRow;
|
|
23
32
|
byUsername(username: string): UserRow | undefined;
|
|
33
|
+
/** The user a proxy-named identity is (design §6.2): only one an admin made or that `external` mode
|
|
34
|
+
* registered, so nobody can claim a proxy identity by signing up or through OIDC first. */
|
|
35
|
+
byExternalIdentity(identity: string): UserRow | undefined;
|
|
36
|
+
/** Case-insensitive match. */
|
|
37
|
+
byUsernameInsensitive(username: string): UserRow | undefined;
|
|
24
38
|
byOidc(issuer: string, subject: string): UserRow | undefined;
|
|
25
39
|
create(input: {
|
|
26
40
|
username: string;
|
|
27
41
|
password?: string;
|
|
42
|
+
roleId?: string;
|
|
28
43
|
}, actor?: {
|
|
29
44
|
userId?: string;
|
|
30
45
|
}, opts?: {
|
|
31
46
|
onlyIfFirst?: boolean;
|
|
47
|
+
source?: RegistrationSource;
|
|
32
48
|
}): Promise<PublicUser>;
|
|
49
|
+
/** Self-registration (design §6.5): only while an admin has set a default role, which the user gets. */
|
|
50
|
+
register(input: {
|
|
51
|
+
username: string;
|
|
52
|
+
password?: string;
|
|
53
|
+
}, source: RegistrationSource): Promise<PublicUser>;
|
|
54
|
+
registrationOpen(): boolean;
|
|
55
|
+
/** Enabled admins other than `except`: someone must always be left to administer the server. */
|
|
56
|
+
private otherAdmins;
|
|
57
|
+
setRole(userId: string, roleId: string, actor?: {
|
|
58
|
+
userId?: string;
|
|
59
|
+
}): void;
|
|
33
60
|
/** First-run setup: only while no users exist (design §6.1). */
|
|
34
61
|
setupFirstUser(username: string, password: string): Promise<PublicUser>;
|
|
35
62
|
/** `ADMIN_BOOTSTRAP_*`: create the first user on boot if none exist; ignored afterwards. */
|
|
@@ -42,7 +69,10 @@ export declare class UserService {
|
|
|
42
69
|
setDisabled(userId: string, disabled: boolean, actor?: {
|
|
43
70
|
userId?: string;
|
|
44
71
|
}): void;
|
|
45
|
-
|
|
72
|
+
/** A successful sign-in on any surface; `detail` says how and where. */
|
|
73
|
+
recordLogin(userId: string, detail: Record<string, unknown>): void;
|
|
74
|
+
/** Local-password users must have TOTP when the admin requires it (OIDC-only users rely on the IdP). */
|
|
75
|
+
mustEnrollTotp(u: UserRow): boolean;
|
|
46
76
|
private totpSecret;
|
|
47
77
|
/** Starts (or restarts) enrollment. TOTP stays off until `confirmTotp` succeeds. */
|
|
48
78
|
beginTotp(userId: string): {
|
|
@@ -58,9 +88,24 @@ export declare class UserService {
|
|
|
58
88
|
verifyTotpCode(userId: string, code: string): boolean;
|
|
59
89
|
/** Second factor: a TOTP code (replay-protected) or a single-use recovery code. */
|
|
60
90
|
verifySecondFactor(userId: string, code: string): 'totp' | 'recovery' | null;
|
|
91
|
+
/** Turning TOTP off needs a current code, so a hijacked session alone can't remove it. False on a wrong code. */
|
|
92
|
+
disableOwnTotp(u: UserRow, code: string): boolean;
|
|
61
93
|
linkOidc(userId: string, issuer: string, subject: string): void;
|
|
62
94
|
unlinkOidc(userId: string, actor?: {
|
|
63
95
|
userId?: string;
|
|
64
96
|
}): void;
|
|
97
|
+
unlinkOwnOidc(u: UserRow): void;
|
|
98
|
+
/** While local login is off, refuse any change that would leave no enabled user linked to SSO (§6.1). */
|
|
99
|
+
assertSsoRemains(change: {
|
|
100
|
+
oidcOff?: boolean;
|
|
101
|
+
losingUser?: string;
|
|
102
|
+
}): void;
|
|
65
103
|
hasOidcLinkedUser(except?: string): boolean;
|
|
104
|
+
/** An endpoint of the user's role; any other answers 404, as if it didn't exist. */
|
|
105
|
+
ownEndpoint(u: UserRow, instanceId: string): string;
|
|
106
|
+
hasEndpoint(u: UserRow, instanceId: string): boolean;
|
|
107
|
+
assertAllowed(u: UserRow, cap: 'canSetOwnLevels' | 'canManageOwnRules'): void;
|
|
108
|
+
/** The user's levels on an endpoint; a non-admin sees only what they can call. */
|
|
109
|
+
levels(u: UserRow, instanceId: string): LevelView;
|
|
110
|
+
setOwnLevel(u: UserRow, instanceId: string, target: LevelTarget, level: AccessLevel | null): LevelView;
|
|
66
111
|
}
|
package/dist/auth/users.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { hash, verify } from '@node-rs/argon2';
|
|
3
|
-
import { and, asc, count, eq } from 'drizzle-orm';
|
|
3
|
+
import { and, asc, count, eq, ne, sql } from 'drizzle-orm';
|
|
4
4
|
import { writeAudit } from '../audit.js';
|
|
5
|
+
import { levelView, roleHasInstance, setOwnLevel } from '../catalog/role-levels.js';
|
|
5
6
|
import { aad } from '../crypto/index.js';
|
|
6
|
-
import { users } from '../db/schema.js';
|
|
7
|
-
import { ConflictError, NotFoundError, ValidationError } from '../errors.js';
|
|
7
|
+
import { roles, users } from '../db/schema.js';
|
|
8
|
+
import { ConflictError, ForbiddenError, NotFoundError, ValidationError } from '../errors.js';
|
|
9
|
+
import { ADMIN_ROLE_ID } from '../gate/access.js';
|
|
10
|
+
import { getSettings } from '../settings.js';
|
|
11
|
+
import { toPublicRole } from './roles.js';
|
|
8
12
|
import { randomToken, sha256 } from './tokens.js';
|
|
9
13
|
import { generateTotpSecret, otpauthUri, verifyTotp } from './totp.js';
|
|
10
|
-
/** Portal accounts (design §6.1): argon2id passwords, optional TOTP with recovery codes and OIDC link
|
|
11
|
-
*
|
|
14
|
+
/** Portal accounts (design §6.1): argon2id passwords, optional TOTP with recovery codes and OIDC link,
|
|
15
|
+
* and one role each (design §6.4). */
|
|
12
16
|
// argon2id, m = 64 MiB, t = 3, p = 1 (design §6.1). @node-rs/argon2 defaults to argon2id.
|
|
13
17
|
const ARGON = { memoryCost: 65536, timeCost: 3, parallelism: 1 };
|
|
14
|
-
const USERNAME = /^[a-zA-Z0-9._
|
|
18
|
+
const USERNAME = /^[a-zA-Z0-9._@:-]{2,64}$/;
|
|
15
19
|
const RECOVERY_CODES = 10;
|
|
16
|
-
|
|
20
|
+
const toPublicUser = (u, role) => ({
|
|
17
21
|
id: u.id,
|
|
18
22
|
username: u.username,
|
|
19
23
|
totpEnabled: u.totpEnabled,
|
|
@@ -22,6 +26,7 @@ export const toPublicUser = (u) => ({
|
|
|
22
26
|
disabled: u.disabled,
|
|
23
27
|
createdAt: u.createdAt,
|
|
24
28
|
lastLoginAt: u.lastLoginAt,
|
|
29
|
+
role,
|
|
25
30
|
});
|
|
26
31
|
function checkPasswordPolicy(password) {
|
|
27
32
|
if (typeof password !== 'string' || password.length < 12) {
|
|
@@ -43,7 +48,32 @@ export class UserService {
|
|
|
43
48
|
return this.db.select({ n: count() }).from(users).get()?.n ?? 0;
|
|
44
49
|
}
|
|
45
50
|
list() {
|
|
46
|
-
return this.db
|
|
51
|
+
return this.db
|
|
52
|
+
.select()
|
|
53
|
+
.from(users)
|
|
54
|
+
.orderBy(asc(users.username))
|
|
55
|
+
.all()
|
|
56
|
+
.map((u) => this.toPublic(u));
|
|
57
|
+
}
|
|
58
|
+
/** A user's role; a dangling role id (none can be made through the API) reads as no access. */
|
|
59
|
+
roleOf(u) {
|
|
60
|
+
const role = this.db.select().from(roles).where(eq(roles.id, u.roleId)).get();
|
|
61
|
+
return role
|
|
62
|
+
? toPublicRole(role)
|
|
63
|
+
: {
|
|
64
|
+
id: u.roleId,
|
|
65
|
+
name: 'Unknown',
|
|
66
|
+
isAdmin: false,
|
|
67
|
+
canSetOwnLevels: false,
|
|
68
|
+
canManageOwnRules: false,
|
|
69
|
+
canSeeStatus: false,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
toPublic(u) {
|
|
73
|
+
return toPublicUser(u, this.roleOf(u));
|
|
74
|
+
}
|
|
75
|
+
isAdmin(u) {
|
|
76
|
+
return u.roleId === ADMIN_ROLE_ID;
|
|
47
77
|
}
|
|
48
78
|
get(id) {
|
|
49
79
|
const u = this.db.select().from(users).where(eq(users.id, id)).get();
|
|
@@ -54,6 +84,21 @@ export class UserService {
|
|
|
54
84
|
byUsername(username) {
|
|
55
85
|
return this.db.select().from(users).where(eq(users.username, username)).get();
|
|
56
86
|
}
|
|
87
|
+
/** The user a proxy-named identity is (design §6.2): only one an admin made or that `external` mode
|
|
88
|
+
* registered, so nobody can claim a proxy identity by signing up or through OIDC first. */
|
|
89
|
+
byExternalIdentity(identity) {
|
|
90
|
+
const found = this.byUsernameInsensitive(identity);
|
|
91
|
+
return found && (found.registeredVia === null || found.registeredVia === 'external') ? found : undefined;
|
|
92
|
+
}
|
|
93
|
+
/** Case-insensitive match. */
|
|
94
|
+
byUsernameInsensitive(username) {
|
|
95
|
+
return this.db
|
|
96
|
+
.select()
|
|
97
|
+
.from(users)
|
|
98
|
+
.where(sql `lower(${users.username}) = lower(${username})`)
|
|
99
|
+
.orderBy(asc(users.createdAt))
|
|
100
|
+
.get();
|
|
101
|
+
}
|
|
57
102
|
byOidc(issuer, subject) {
|
|
58
103
|
return this.db
|
|
59
104
|
.select()
|
|
@@ -62,11 +107,15 @@ export class UserService {
|
|
|
62
107
|
.get();
|
|
63
108
|
}
|
|
64
109
|
async create(input, actor = {}, opts = {}) {
|
|
110
|
+
const roleId = input.roleId ?? ADMIN_ROLE_ID;
|
|
111
|
+
if (!this.db.select({ id: roles.id }).from(roles).where(eq(roles.id, roleId)).get())
|
|
112
|
+
throw new ValidationError('unknown_role', 'No such role');
|
|
65
113
|
const username = input.username.trim();
|
|
66
114
|
if (!USERNAME.test(username)) {
|
|
67
115
|
throw new ValidationError('invalid_username', 'Usernames are 2–64 letters, digits, dots, dashes, underscores or @');
|
|
68
116
|
}
|
|
69
|
-
|
|
117
|
+
// Unique regardless of case: proxy identities match names that way (design §6.2).
|
|
118
|
+
if (this.byUsernameInsensitive(username))
|
|
70
119
|
throw new ConflictError('username_taken', 'That username is taken');
|
|
71
120
|
if (input.password !== undefined)
|
|
72
121
|
checkPasswordPolicy(input.password);
|
|
@@ -75,24 +124,71 @@ export class UserService {
|
|
|
75
124
|
username,
|
|
76
125
|
passwordHash: input.password ? await hash(input.password, ARGON) : null,
|
|
77
126
|
createdAt: new Date(),
|
|
127
|
+
roleId,
|
|
128
|
+
registeredVia: opts.source ?? null,
|
|
78
129
|
};
|
|
79
130
|
this.db.transaction((tx) => {
|
|
80
131
|
// Re-checked after the (slow) hash, in the same transaction as the insert: of two concurrent
|
|
81
132
|
// first-run setups only one creates a user.
|
|
82
133
|
if (opts.onlyIfFirst && (tx.select({ n: count() }).from(users).get()?.n ?? 0) > 0)
|
|
83
134
|
throw new ConflictError('setup_done', 'Setup has already been completed');
|
|
84
|
-
if (tx
|
|
135
|
+
if (tx
|
|
136
|
+
.select({ id: users.id })
|
|
137
|
+
.from(users)
|
|
138
|
+
.where(sql `lower(${users.username}) = lower(${username})`)
|
|
139
|
+
.get())
|
|
85
140
|
throw new ConflictError('username_taken', 'That username is taken');
|
|
86
141
|
tx.insert(users).values(row).run();
|
|
87
142
|
writeAudit(tx, {
|
|
88
143
|
kind: 'auth',
|
|
89
|
-
decision: 'user_created',
|
|
144
|
+
decision: opts.source ? 'user_registered' : 'user_created',
|
|
90
145
|
actorKind: actor.userId ? 'user' : 'system',
|
|
91
146
|
actorId: actor.userId,
|
|
92
|
-
detail: { username },
|
|
147
|
+
detail: { username, roleId, ...(opts.source ? { source: opts.source } : {}) },
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
return this.toPublic(this.get(row.id));
|
|
151
|
+
}
|
|
152
|
+
/** Self-registration (design §6.5): only while an admin has set a default role, which the user gets. */
|
|
153
|
+
async register(input, source) {
|
|
154
|
+
const roleId = getSettings(this.db, 'security').defaultRoleId;
|
|
155
|
+
if (!roleId)
|
|
156
|
+
throw new ConflictError('registration_closed', 'This server does not accept new accounts');
|
|
157
|
+
// `:` names Cloudflare service tokens (`service:<id>`); only the proxy may bring such a name.
|
|
158
|
+
if (source !== 'external' && input.username.includes(':'))
|
|
159
|
+
throw new ValidationError('invalid_username', 'Usernames are 2–64 letters, digits, dots, dashes, underscores or @');
|
|
160
|
+
return this.create({ ...input, roleId }, {}, { source });
|
|
161
|
+
}
|
|
162
|
+
registrationOpen() {
|
|
163
|
+
const roleId = getSettings(this.db, 'security').defaultRoleId;
|
|
164
|
+
return !!roleId && !!this.db.select({ id: roles.id }).from(roles).where(eq(roles.id, roleId)).get();
|
|
165
|
+
}
|
|
166
|
+
/** Enabled admins other than `except`: someone must always be left to administer the server. */
|
|
167
|
+
otherAdmins(except) {
|
|
168
|
+
return (this.db
|
|
169
|
+
.select({ n: count() })
|
|
170
|
+
.from(users)
|
|
171
|
+
.where(and(eq(users.roleId, ADMIN_ROLE_ID), eq(users.disabled, false), ne(users.id, except)))
|
|
172
|
+
.get()?.n ?? 0);
|
|
173
|
+
}
|
|
174
|
+
setRole(userId, roleId, actor = {}) {
|
|
175
|
+
const user = this.get(userId);
|
|
176
|
+
if (!this.db.select({ id: roles.id }).from(roles).where(eq(roles.id, roleId)).get())
|
|
177
|
+
throw new ValidationError('unknown_role', 'No such role');
|
|
178
|
+
if (user.roleId === roleId)
|
|
179
|
+
return;
|
|
180
|
+
if (user.roleId === ADMIN_ROLE_ID && !user.disabled && this.otherAdmins(userId) === 0)
|
|
181
|
+
throw new ConflictError('last_admin', 'You cannot remove the last enabled admin');
|
|
182
|
+
this.db.transaction((tx) => {
|
|
183
|
+
tx.update(users).set({ roleId }).where(eq(users.id, userId)).run();
|
|
184
|
+
writeAudit(tx, {
|
|
185
|
+
kind: 'auth',
|
|
186
|
+
decision: 'user_role_changed',
|
|
187
|
+
actorKind: 'user',
|
|
188
|
+
actorId: actor.userId,
|
|
189
|
+
detail: { username: user.username, from: user.roleId, to: roleId },
|
|
93
190
|
});
|
|
94
191
|
});
|
|
95
|
-
return toPublicUser(this.get(row.id));
|
|
96
192
|
}
|
|
97
193
|
/** First-run setup: only while no users exist (design §6.1). */
|
|
98
194
|
async setupFirstUser(username, password) {
|
|
@@ -145,6 +241,8 @@ export class UserService {
|
|
|
145
241
|
if (active.length === 1 && active[0].id === userId) {
|
|
146
242
|
throw new ConflictError('last_user', 'You cannot disable the last active user');
|
|
147
243
|
}
|
|
244
|
+
if (user.roleId === ADMIN_ROLE_ID && !user.disabled && this.otherAdmins(userId) === 0)
|
|
245
|
+
throw new ConflictError('last_admin', 'You cannot disable the last enabled admin');
|
|
148
246
|
}
|
|
149
247
|
this.db.transaction((tx) => {
|
|
150
248
|
tx.update(users).set({ disabled }).where(eq(users.id, userId)).run();
|
|
@@ -157,8 +255,16 @@ export class UserService {
|
|
|
157
255
|
});
|
|
158
256
|
});
|
|
159
257
|
}
|
|
160
|
-
|
|
161
|
-
|
|
258
|
+
/** A successful sign-in on any surface; `detail` says how and where. */
|
|
259
|
+
recordLogin(userId, detail) {
|
|
260
|
+
this.db.transaction((tx) => {
|
|
261
|
+
tx.update(users).set({ lastLoginAt: new Date() }).where(eq(users.id, userId)).run();
|
|
262
|
+
writeAudit(tx, { kind: 'auth', decision: 'login', actorKind: 'user', actorId: userId, detail });
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
/** Local-password users must have TOTP when the admin requires it (OIDC-only users rely on the IdP). */
|
|
266
|
+
mustEnrollTotp(u) {
|
|
267
|
+
return getSettings(this.db, 'security').requireTotp && !!u.passwordHash && !u.totpEnabled;
|
|
162
268
|
}
|
|
163
269
|
// ── TOTP ─────────────────────────────────────────────────────────────────────────────────────────
|
|
164
270
|
totpSecret(user) {
|
|
@@ -258,6 +364,16 @@ export class UserService {
|
|
|
258
364
|
}
|
|
259
365
|
return null;
|
|
260
366
|
}
|
|
367
|
+
/** Turning TOTP off needs a current code, so a hijacked session alone can't remove it. False on a wrong code. */
|
|
368
|
+
disableOwnTotp(u, code) {
|
|
369
|
+
if (getSettings(this.db, 'security').requireTotp && u.passwordHash) {
|
|
370
|
+
throw new ConflictError('totp_required', 'Two-factor authentication is required on this server');
|
|
371
|
+
}
|
|
372
|
+
if (!this.verifySecondFactor(u.id, code))
|
|
373
|
+
return false;
|
|
374
|
+
this.resetTotp(u.id);
|
|
375
|
+
return true;
|
|
376
|
+
}
|
|
261
377
|
// ── OIDC links ───────────────────────────────────────────────────────────────────────────────────
|
|
262
378
|
linkOidc(userId, issuer, subject) {
|
|
263
379
|
const existing = this.byOidc(issuer, subject);
|
|
@@ -280,6 +396,20 @@ export class UserService {
|
|
|
280
396
|
writeAudit(tx, { kind: 'auth', decision: 'oidc_unlinked', actorKind: 'user', actorId: actor.userId ?? userId });
|
|
281
397
|
});
|
|
282
398
|
}
|
|
399
|
+
unlinkOwnOidc(u) {
|
|
400
|
+
if (!u.passwordHash)
|
|
401
|
+
throw new ConflictError('last_login_method', 'Set a password before unlinking single sign-on');
|
|
402
|
+
this.assertSsoRemains({ losingUser: u.id });
|
|
403
|
+
this.unlinkOidc(u.id);
|
|
404
|
+
}
|
|
405
|
+
/** While local login is off, refuse any change that would leave no enabled user linked to SSO (§6.1). */
|
|
406
|
+
assertSsoRemains(change) {
|
|
407
|
+
if (!getSettings(this.db, 'security').disableLocalLogin)
|
|
408
|
+
return;
|
|
409
|
+
if (change.oidcOff || !this.hasOidcLinkedUser(change.losingUser)) {
|
|
410
|
+
throw new ConflictError('local_login_disabled', 'Local login is disabled, so this would lock everyone out. Re-enable local login first.');
|
|
411
|
+
}
|
|
412
|
+
}
|
|
283
413
|
hasOidcLinkedUser(except) {
|
|
284
414
|
return this.db
|
|
285
415
|
.select()
|
|
@@ -287,5 +417,28 @@ export class UserService {
|
|
|
287
417
|
.all()
|
|
288
418
|
.some((u) => !!u.oidcSubject && !u.disabled && u.id !== except);
|
|
289
419
|
}
|
|
420
|
+
// ── the user's own endpoints (design §6.4) ──
|
|
421
|
+
/** An endpoint of the user's role; any other answers 404, as if it didn't exist. */
|
|
422
|
+
ownEndpoint(u, instanceId) {
|
|
423
|
+
if (!this.hasEndpoint(u, instanceId))
|
|
424
|
+
throw new NotFoundError('instance_not_found', 'No such endpoint');
|
|
425
|
+
return instanceId;
|
|
426
|
+
}
|
|
427
|
+
hasEndpoint(u, instanceId) {
|
|
428
|
+
return roleHasInstance(this.db, u.roleId, instanceId);
|
|
429
|
+
}
|
|
430
|
+
assertAllowed(u, cap) {
|
|
431
|
+
if (!this.roleOf(u)[cap])
|
|
432
|
+
throw new ForbiddenError('forbidden', 'Your role does not allow this');
|
|
433
|
+
}
|
|
434
|
+
/** The user's levels on an endpoint; a non-admin sees only what they can call. */
|
|
435
|
+
levels(u, instanceId) {
|
|
436
|
+
const who = { roleId: u.roleId, userId: u.id };
|
|
437
|
+
return levelView(this.db, instanceId, who, { reachableOnly: !this.roleOf(u).isAdmin });
|
|
438
|
+
}
|
|
439
|
+
setOwnLevel(u, instanceId, target, level) {
|
|
440
|
+
setOwnLevel(this.db, u.id, instanceId, target, level);
|
|
441
|
+
return this.levels(u, instanceId);
|
|
442
|
+
}
|
|
290
443
|
}
|
|
291
444
|
//# sourceMappingURL=users.js.map
|
package/dist/auth/users.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/auth/users.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/auth/users.ts"],"names":[],"mappings":"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"}
|
package/dist/catalog/groups.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare const accessInput: (op: OperationRow) => {
|
|
|
11
11
|
levelOverride: "none" | "read" | "ask" | "write" | null;
|
|
12
12
|
writeAcknowledged: boolean;
|
|
13
13
|
};
|
|
14
|
+
/** What the upstream API says the operation does, when it says. */
|
|
15
|
+
export declare const describeOf: (op: OperationRow) => string | null;
|
|
14
16
|
export interface GroupSummary {
|
|
15
17
|
key: string;
|
|
16
18
|
label: string;
|
|
@@ -25,6 +27,57 @@ export interface GroupSummary {
|
|
|
25
27
|
};
|
|
26
28
|
}
|
|
27
29
|
export declare function listGroups(db: DbLike, instanceId: string): GroupSummary[];
|
|
30
|
+
/** Filters from the operations list's query string; `'1'` turns a switch on. */
|
|
31
|
+
export interface OperationFilter {
|
|
32
|
+
stale?: string;
|
|
33
|
+
group?: string;
|
|
34
|
+
reason?: string;
|
|
35
|
+
needsReview?: string;
|
|
36
|
+
q?: string;
|
|
37
|
+
}
|
|
38
|
+
/** An endpoint's operations with their group, level in force and reachability. */
|
|
39
|
+
export declare function listOperations(db: DbLike, instanceId: string, filter?: OperationFilter): {
|
|
40
|
+
group: string | null;
|
|
41
|
+
level: "none" | "read" | "ask" | "write";
|
|
42
|
+
allowedLevels: ("none" | "read" | "ask" | "write")[];
|
|
43
|
+
description: string | null;
|
|
44
|
+
reachable: boolean;
|
|
45
|
+
mode: import("../gate/access.js").AccessMode | null;
|
|
46
|
+
pendingReview: boolean;
|
|
47
|
+
reason: import("../gate/access.js").AccessReason | null;
|
|
48
|
+
id: string;
|
|
49
|
+
instanceId: string;
|
|
50
|
+
key: string;
|
|
51
|
+
displayName: string | null;
|
|
52
|
+
kind: string;
|
|
53
|
+
pluginGroup: string;
|
|
54
|
+
groupId: string;
|
|
55
|
+
tag: string | null;
|
|
56
|
+
classification: "read" | "write";
|
|
57
|
+
classificationSource: "locked" | "override" | "inferred";
|
|
58
|
+
inferredClassification: "read" | "write";
|
|
59
|
+
inferredReason: string;
|
|
60
|
+
locked: boolean;
|
|
61
|
+
levelOverride: "none" | "read" | "ask" | "write" | null;
|
|
62
|
+
writeAcknowledged: boolean;
|
|
63
|
+
acknowledgedAt: Date | null;
|
|
64
|
+
acknowledgedBy: string | null;
|
|
65
|
+
typedConfirmation: boolean;
|
|
66
|
+
attestationRequired: boolean;
|
|
67
|
+
attestationWaived: boolean;
|
|
68
|
+
needsReview: boolean;
|
|
69
|
+
matchProfile: string | null;
|
|
70
|
+
paramsSchema: unknown;
|
|
71
|
+
sensitiveParams: string[] | null;
|
|
72
|
+
sensitiveResult: "whole" | {
|
|
73
|
+
keys: string[];
|
|
74
|
+
deep?: boolean | undefined;
|
|
75
|
+
} | null;
|
|
76
|
+
docs: unknown;
|
|
77
|
+
firstSeenAt: Date;
|
|
78
|
+
lastSeenAt: Date;
|
|
79
|
+
stale: boolean;
|
|
80
|
+
}[];
|
|
28
81
|
/** Access decision for one operation key; unknown or stale operations are unreachable. */
|
|
29
82
|
export declare function resolveAccess(db: DbLike, instanceId: string, key: string, principal?: AccessPrincipal): AccessDecision | {
|
|
30
83
|
reachable: false;
|
|
@@ -45,6 +98,13 @@ export declare function applyBulkLevel(db: Db, instanceId: string, level: string
|
|
|
45
98
|
label: string;
|
|
46
99
|
from: AccessLevel;
|
|
47
100
|
}[];
|
|
101
|
+
/** Renames, then sets the level of, one group; each change is its own audited write. */
|
|
102
|
+
export declare function updateGroup(db: Db, instanceId: string, key: string, patch: {
|
|
103
|
+
label?: string;
|
|
104
|
+
level?: string;
|
|
105
|
+
}, opts?: {
|
|
106
|
+
actor?: Actor;
|
|
107
|
+
}): GroupSummary | null;
|
|
48
108
|
export declare function renameGroup(db: Db, instanceId: string, key: string, label: string, opts?: {
|
|
49
109
|
actor?: Actor;
|
|
50
110
|
}): void;
|
|
@@ -65,9 +125,9 @@ export interface OperationPatch {
|
|
|
65
125
|
attestationRequired?: boolean;
|
|
66
126
|
}
|
|
67
127
|
/** Per-operation level and acknowledgement. The level must fit the operation's kind; locked refuses
|
|
68
|
-
* `write` (409). Setting a write to `write` acknowledges it. */
|
|
128
|
+
* `write` (409). Setting a write to `write` acknowledges it. Returns the operation as stored. */
|
|
69
129
|
export declare function updateOperation(db: Db, instanceId: string, opId: string, patch: OperationPatch, opts?: {
|
|
70
130
|
actor?: Actor;
|
|
71
131
|
now?: Date;
|
|
72
|
-
}):
|
|
132
|
+
}): OperationRow;
|
|
73
133
|
export {};
|