@cats-inc/cats-platform 0.1.10 → 0.1.21
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/.env.example +7 -10
- package/build/desktop/bootstrapPage.d.ts.map +1 -1
- package/build/desktop/bootstrapPage.js +162 -55
- package/build/desktop/bootstrapPage.js.map +1 -1
- package/build/desktop/cliInventoryProbe.d.ts +18 -0
- package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
- package/build/desktop/cliInventoryProbe.js +42 -0
- package/build/desktop/cliInventoryProbe.js.map +1 -1
- package/build/desktop/contracts.d.ts +9 -0
- package/build/desktop/contracts.d.ts.map +1 -1
- package/build/desktop/main.js +101 -20
- package/build/desktop/main.js.map +1 -1
- package/build/desktop/readiness.d.ts.map +1 -1
- package/build/desktop/readiness.js +35 -2
- package/build/desktop/readiness.js.map +1 -1
- package/build/desktop/tray.d.ts +1 -1
- package/build/desktop/tray.d.ts.map +1 -1
- package/build/desktop/tray.js +2 -7
- package/build/desktop/tray.js.map +1 -1
- package/build/desktop/trayMenu.d.ts +23 -2
- package/build/desktop/trayMenu.d.ts.map +1 -1
- package/build/desktop/trayMenu.js +24 -30
- package/build/desktop/trayMenu.js.map +1 -1
- package/build/desktop/updateDialog.d.ts +40 -0
- package/build/desktop/updateDialog.d.ts.map +1 -0
- package/build/desktop/updateDialog.js +178 -0
- package/build/desktop/updateDialog.js.map +1 -0
- package/build/desktop/updateNotifications.js +2 -2
- package/build/desktop/updateNotifications.js.map +1 -1
- package/build/desktop/updaterAdapter.d.ts +1 -0
- package/build/desktop/updaterAdapter.d.ts.map +1 -1
- package/build/desktop/updaterAdapter.js +13 -1
- package/build/desktop/updaterAdapter.js.map +1 -1
- package/build/renderer/assets/{ActiveSessionPermissionChip-Dl2UOFgh.js → ActiveSessionPermissionChip-DImsuR9T.js} +1 -1
- package/build/renderer/assets/{App-CPqGDXVi.js → App-BfOvMP2m.js} +1 -1
- package/build/renderer/assets/{App-ChvP0G9X.js → App-DKOSn0o_.js} +1 -1
- package/build/renderer/assets/{App-C57f4p8k.js → App-DWd7I3Z2.js} +1 -1
- package/build/renderer/assets/{WorkspaceAppRoutes-DYg2vnjz.js → WorkspaceAppRoutes-CrbTA9En.js} +1 -1
- package/build/renderer/assets/app-BTww3Hl4.js +43 -0
- package/build/renderer/assets/{app-XnXwkcD2.css → app-CPxWQwLA.css} +1 -1
- package/build/renderer/assets/conversationSidebarRecentEntries-QuaOPxCb.js +6 -0
- package/build/renderer/assets/{useDraftSessionChips-By3XXabI.js → useDraftSessionChips-DCIId0eY.js} +1 -1
- package/build/renderer/index.html +2 -2
- package/build/server/app/renderer/auth/api.d.ts +28 -2
- package/build/server/app/renderer/auth/api.d.ts.map +1 -1
- package/build/server/app/renderer/auth/api.js +29 -4
- package/build/server/app/renderer/auth/api.js.map +1 -1
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts +11 -4
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts.map +1 -1
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js +25 -5
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js.map +1 -1
- package/build/server/app/server/authGatePolicy.js +1 -2
- package/build/server/app/server/authGatePolicy.js.map +1 -1
- package/build/server/app/server/authRoutes.d.ts +14 -1
- package/build/server/app/server/authRoutes.d.ts.map +1 -1
- package/build/server/app/server/authRoutes.js +395 -76
- package/build/server/app/server/authRoutes.js.map +1 -1
- package/build/server/app/server/contracts.d.ts +4 -1
- package/build/server/app/server/contracts.d.ts.map +1 -1
- package/build/server/app/server/dependencies.d.ts.map +1 -1
- package/build/server/app/server/dependencies.js +6 -1
- package/build/server/app/server/dependencies.js.map +1 -1
- package/build/server/app/server/platformSetupRoutes.d.ts +2 -1
- package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
- package/build/server/app/server/platformSetupRoutes.js +129 -64
- package/build/server/app/server/platformSetupRoutes.js.map +1 -1
- package/build/server/app/server/requestRouter.d.ts.map +1 -1
- package/build/server/app/server/requestRouter.js +3 -0
- package/build/server/app/server/requestRouter.js.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.js +12 -17
- package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
- package/build/server/config.d.ts +1 -3
- package/build/server/config.d.ts.map +1 -1
- package/build/server/config.js +2 -13
- package/build/server/config.js.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.js +4 -1
- package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.js +3 -1
- package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
- package/build/server/platform/auth/actionGrant.d.ts +61 -0
- package/build/server/platform/auth/actionGrant.d.ts.map +1 -0
- package/build/server/platform/auth/actionGrant.js +108 -0
- package/build/server/platform/auth/actionGrant.js.map +1 -0
- package/build/server/platform/auth/adminCredentials.d.ts +37 -0
- package/build/server/platform/auth/adminCredentials.d.ts.map +1 -0
- package/build/server/platform/auth/adminCredentials.js +63 -0
- package/build/server/platform/auth/adminCredentials.js.map +1 -0
- package/build/server/platform/auth/bootstrap.d.ts +14 -0
- package/build/server/platform/auth/bootstrap.d.ts.map +1 -1
- package/build/server/platform/auth/bootstrap.js +29 -4
- package/build/server/platform/auth/bootstrap.js.map +1 -1
- package/build/server/platform/auth/config.d.ts.map +1 -1
- package/build/server/platform/auth/config.js +1 -1
- package/build/server/platform/auth/config.js.map +1 -1
- package/build/server/platform/auth/errorCodes.d.ts +2 -0
- package/build/server/platform/auth/errorCodes.d.ts.map +1 -1
- package/build/server/platform/auth/errorCodes.js +2 -0
- package/build/server/platform/auth/errorCodes.js.map +1 -1
- package/build/server/platform/auth/googleAccount.d.ts +40 -13
- package/build/server/platform/auth/googleAccount.d.ts.map +1 -1
- package/build/server/platform/auth/googleAccount.js +89 -70
- package/build/server/platform/auth/googleAccount.js.map +1 -1
- package/build/server/platform/auth/index.d.ts +4 -0
- package/build/server/platform/auth/index.d.ts.map +1 -1
- package/build/server/platform/auth/index.js +4 -0
- package/build/server/platform/auth/index.js.map +1 -1
- package/build/server/platform/auth/localLogin.d.ts +10 -0
- package/build/server/platform/auth/localLogin.d.ts.map +1 -1
- package/build/server/platform/auth/localLogin.js +17 -0
- package/build/server/platform/auth/localLogin.js.map +1 -1
- package/build/server/platform/auth/loginMethods.d.ts +18 -0
- package/build/server/platform/auth/loginMethods.d.ts.map +1 -0
- package/build/server/platform/auth/loginMethods.js +19 -0
- package/build/server/platform/auth/loginMethods.js.map +1 -0
- package/build/server/platform/auth/securityEvents.d.ts +31 -0
- package/build/server/platform/auth/securityEvents.d.ts.map +1 -0
- package/build/server/platform/auth/securityEvents.js +45 -0
- package/build/server/platform/auth/securityEvents.js.map +1 -0
- package/build/server/products/chat/api/contracts.d.ts +0 -8
- package/build/server/products/chat/api/contracts.d.ts.map +1 -1
- package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
- package/build/server/products/chat/api/setupRoutes.js +2 -84
- package/build/server/products/chat/api/setupRoutes.js.map +1 -1
- package/build/server/products/shared/api/workspaceContracts.d.ts +0 -8
- package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
- package/build/server/runtime/client.d.ts +11 -0
- package/build/server/runtime/client.d.ts.map +1 -1
- package/build/server/runtime/client.js +23 -1
- package/build/server/runtime/client.js.map +1 -1
- package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/en.js +40 -0
- package/build/server/shared/i18n/catalogs/en.js.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.js +39 -0
- package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
- package/build/server/shared/i18n/index.d.ts +39 -0
- package/build/server/shared/i18n/index.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.d.ts +39 -0
- package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.js +39 -0
- package/build/server/shared/i18n/messageKeys.js.map +1 -1
- package/build/server/shared/providerCatalog.d.ts +3 -2
- package/build/server/shared/providerCatalog.d.ts.map +1 -1
- package/build/server/shared/providerCatalog.js +9 -1
- package/build/server/shared/providerCatalog.js.map +1 -1
- package/build/server/shared/providerCatalogData.d.ts +11 -1
- package/build/server/shared/providerCatalogData.d.ts.map +1 -1
- package/build/server/shared/providerCatalogData.js +9 -0
- package/build/server/shared/providerCatalogData.js.map +1 -1
- package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
- package/build/server/shared/providerCatalogInstances.js +3 -0
- package/build/server/shared/providerCatalogInstances.js.map +1 -1
- package/package.json +1 -1
- package/scripts/README.md +30 -0
- package/scripts/linux/node-cli-common.sh +2 -75
- package/scripts/macos/node-cli-common.sh +2 -75
- package/scripts/windows/Check-WindowsSetupReadiness.ps1 +14 -443
- package/scripts/windows/Remove-MergedBranches.ps1 +229 -0
- package/build/renderer/assets/app-DVN9Ghrk.js +0 -43
- package/build/renderer/assets/conversationSidebarRecentEntries-XZVCnMLw.js +0 -6
|
@@ -1,58 +1,13 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { issueBrowserSession } from './session.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
id: accountId,
|
|
12
|
-
displayName: input.identity.displayName ?? input.identity.email,
|
|
13
|
-
email: input.identity.email,
|
|
14
|
-
avatarUrl: input.identity.avatarUrl,
|
|
15
|
-
status: 'active',
|
|
16
|
-
createdAt: nowIso,
|
|
17
|
-
updatedAt: nowIso,
|
|
18
|
-
};
|
|
19
|
-
const providerIdentity = {
|
|
20
|
-
id: `auth-identity-${randomUUID()}`,
|
|
21
|
-
accountId,
|
|
22
|
-
provider: 'google',
|
|
23
|
-
providerSubject: input.identity.providerSubject,
|
|
24
|
-
email: input.identity.email,
|
|
25
|
-
createdAt: nowIso,
|
|
26
|
-
updatedAt: nowIso,
|
|
27
|
-
};
|
|
28
|
-
const membership = {
|
|
29
|
-
id: `auth-membership-${randomUUID()}`,
|
|
30
|
-
accountId,
|
|
31
|
-
roles: ['owner', 'admin'],
|
|
32
|
-
coreActorId: 'actor-owner',
|
|
33
|
-
createdAt: nowIso,
|
|
34
|
-
updatedAt: nowIso,
|
|
35
|
-
};
|
|
36
|
-
const session = issueBrowserSession({
|
|
37
|
-
accountId,
|
|
38
|
-
sessionSecret: input.sessionSecret,
|
|
39
|
-
ttlMs: input.sessionTtlMs,
|
|
40
|
-
now,
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
state: {
|
|
44
|
-
...input.state,
|
|
45
|
-
updatedAt: nowIso,
|
|
46
|
-
accounts: [account],
|
|
47
|
-
identities: [providerIdentity],
|
|
48
|
-
memberships: [membership],
|
|
49
|
-
sessions: [session.session],
|
|
50
|
-
},
|
|
51
|
-
account,
|
|
52
|
-
identity: providerIdentity,
|
|
53
|
-
membership,
|
|
54
|
-
session,
|
|
55
|
-
};
|
|
2
|
+
import { issueBrowserSession, revokeSession, } from './session.js';
|
|
3
|
+
/**
|
|
4
|
+
* ADR-111 section 4: trim and lowercase only. Cats deliberately does not apply
|
|
5
|
+
* Gmail alias, dot, or plus-address canonicalization, so two addresses Google
|
|
6
|
+
* may route to one mailbox stay distinct here.
|
|
7
|
+
*/
|
|
8
|
+
export function normalizePlatformAccountEmail(value) {
|
|
9
|
+
const normalized = value?.trim().toLowerCase();
|
|
10
|
+
return normalized ? normalized : null;
|
|
56
11
|
}
|
|
57
12
|
export function linkGoogleIdentityToAccount(input) {
|
|
58
13
|
const account = input.state.accounts.find((candidate) => candidate.id === input.accountId && candidate.status === 'active') ?? null;
|
|
@@ -60,24 +15,32 @@ export function linkGoogleIdentityToAccount(input) {
|
|
|
60
15
|
? input.state.memberships.find((candidate) => candidate.accountId === account.id) ?? null
|
|
61
16
|
: null;
|
|
62
17
|
if (!account || !membership) {
|
|
63
|
-
return
|
|
18
|
+
return { ok: false, reason: 'account_not_found' };
|
|
64
19
|
}
|
|
65
20
|
const identityForSubject = input.state.identities.find((candidate) => candidate.provider === 'google'
|
|
66
21
|
&& candidate.providerSubject === input.identity.providerSubject) ?? null;
|
|
67
22
|
if (identityForSubject && identityForSubject.accountId !== account.id) {
|
|
68
|
-
|
|
23
|
+
return { ok: false, reason: 'subject_owned_by_other_account' };
|
|
69
24
|
}
|
|
70
25
|
const identityForAccount = input.state.identities.find((candidate) => candidate.provider === 'google'
|
|
71
26
|
&& candidate.accountId === account.id) ?? null;
|
|
72
27
|
if (identityForAccount
|
|
73
28
|
&& identityForAccount.providerSubject !== input.identity.providerSubject) {
|
|
74
|
-
|
|
29
|
+
return { ok: false, reason: 'account_has_other_google_identity' };
|
|
30
|
+
}
|
|
31
|
+
// SPEC-113 requirements 28 and 29: an account that already carries an email
|
|
32
|
+
// must match it exactly. Only an email-less local-handle account may adopt
|
|
33
|
+
// the verified Google address, and only through this step-up-protected path.
|
|
34
|
+
const accountEmail = normalizePlatformAccountEmail(account.email);
|
|
35
|
+
const verifiedEmail = normalizePlatformAccountEmail(input.identity.email);
|
|
36
|
+
if (accountEmail && accountEmail !== verifiedEmail) {
|
|
37
|
+
return { ok: false, reason: 'email_mismatch' };
|
|
75
38
|
}
|
|
76
39
|
const nowIso = (input.now ?? new Date()).toISOString();
|
|
77
40
|
const linkedIdentity = identityForSubject
|
|
78
41
|
? {
|
|
79
42
|
...identityForSubject,
|
|
80
|
-
email:
|
|
43
|
+
email: verifiedEmail,
|
|
81
44
|
updatedAt: nowIso,
|
|
82
45
|
}
|
|
83
46
|
: {
|
|
@@ -85,13 +48,14 @@ export function linkGoogleIdentityToAccount(input) {
|
|
|
85
48
|
accountId: account.id,
|
|
86
49
|
provider: 'google',
|
|
87
50
|
providerSubject: input.identity.providerSubject,
|
|
88
|
-
email:
|
|
51
|
+
email: verifiedEmail,
|
|
89
52
|
createdAt: nowIso,
|
|
90
53
|
updatedAt: nowIso,
|
|
91
54
|
};
|
|
55
|
+
const adoptedAccountEmail = accountEmail === null && verifiedEmail !== null;
|
|
92
56
|
const updatedAccount = {
|
|
93
57
|
...account,
|
|
94
|
-
email:
|
|
58
|
+
email: adoptedAccountEmail ? verifiedEmail : account.email,
|
|
95
59
|
avatarUrl: input.identity.avatarUrl ?? account.avatarUrl,
|
|
96
60
|
updatedAt: nowIso,
|
|
97
61
|
};
|
|
@@ -99,15 +63,71 @@ export function linkGoogleIdentityToAccount(input) {
|
|
|
99
63
|
? input.state.identities.map((candidate) => candidate.id === identityForSubject.id ? linkedIdentity : candidate)
|
|
100
64
|
: [...input.state.identities, linkedIdentity];
|
|
101
65
|
return {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
66
|
+
ok: true,
|
|
67
|
+
result: {
|
|
68
|
+
state: {
|
|
69
|
+
...input.state,
|
|
70
|
+
updatedAt: nowIso,
|
|
71
|
+
accounts: input.state.accounts.map((candidate) => candidate.id === account.id ? updatedAccount : candidate),
|
|
72
|
+
identities: nextIdentities,
|
|
73
|
+
},
|
|
74
|
+
account: updatedAccount,
|
|
75
|
+
identity: linkedIdentity,
|
|
76
|
+
membership: structuredClone(membership),
|
|
77
|
+
adoptedAccountEmail,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* ADR-111 section 6: unlinking must preserve a usable local login and must not
|
|
83
|
+
* leave ambient access behind. Session records do not retain which identity
|
|
84
|
+
* established them, so every other browser and mobile session for the account
|
|
85
|
+
* is revoked and only the step-up-verified session survives.
|
|
86
|
+
*/
|
|
87
|
+
export function unlinkGoogleIdentityFromAccount(input) {
|
|
88
|
+
const account = input.state.accounts.find((candidate) => candidate.id === input.accountId && candidate.status === 'active') ?? null;
|
|
89
|
+
const membership = account
|
|
90
|
+
? input.state.memberships.find((candidate) => candidate.accountId === account.id) ?? null
|
|
91
|
+
: null;
|
|
92
|
+
if (!account || !membership) {
|
|
93
|
+
return { ok: false, reason: 'account_not_found' };
|
|
94
|
+
}
|
|
95
|
+
const googleIdentity = input.state.identities.find((candidate) => candidate.provider === 'google' && candidate.accountId === account.id) ?? null;
|
|
96
|
+
if (!googleIdentity) {
|
|
97
|
+
return { ok: false, reason: 'google_not_linked' };
|
|
98
|
+
}
|
|
99
|
+
const hasLocalFallback = input.state.identities.some((candidate) => candidate.provider === 'local_password'
|
|
100
|
+
&& candidate.accountId === account.id
|
|
101
|
+
&& Boolean(candidate.passwordHash)
|
|
102
|
+
&& Boolean(candidate.passwordHashAlgorithm));
|
|
103
|
+
if (!hasLocalFallback) {
|
|
104
|
+
return { ok: false, reason: 'local_fallback_missing' };
|
|
105
|
+
}
|
|
106
|
+
const now = input.now ?? new Date();
|
|
107
|
+
const nowIso = now.toISOString();
|
|
108
|
+
const revokedSessionIds = [];
|
|
109
|
+
const sessions = input.state.sessions.map((session) => {
|
|
110
|
+
if (session.accountId !== account.id
|
|
111
|
+
|| session.id === input.keepSessionId
|
|
112
|
+
|| session.revokedAt !== null) {
|
|
113
|
+
return session;
|
|
114
|
+
}
|
|
115
|
+
revokedSessionIds.push(session.id);
|
|
116
|
+
return revokeSession(session, now);
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
ok: true,
|
|
120
|
+
result: {
|
|
121
|
+
state: {
|
|
122
|
+
...input.state,
|
|
123
|
+
updatedAt: nowIso,
|
|
124
|
+
identities: input.state.identities.filter((candidate) => candidate.id !== googleIdentity.id),
|
|
125
|
+
sessions,
|
|
126
|
+
},
|
|
127
|
+
account: structuredClone(account),
|
|
128
|
+
membership: structuredClone(membership),
|
|
129
|
+
revokedSessionIds,
|
|
107
130
|
},
|
|
108
|
-
account: updatedAccount,
|
|
109
|
-
identity: linkedIdentity,
|
|
110
|
-
membership: structuredClone(membership),
|
|
111
131
|
};
|
|
112
132
|
}
|
|
113
133
|
export function createGoogleBrowserSessionForLinkedIdentity(input) {
|
|
@@ -132,12 +152,11 @@ export function createGoogleBrowserSessionForLinkedIdentity(input) {
|
|
|
132
152
|
});
|
|
133
153
|
const updatedIdentity = {
|
|
134
154
|
...providerIdentity,
|
|
135
|
-
email: input.identity.email,
|
|
155
|
+
email: normalizePlatformAccountEmail(input.identity.email),
|
|
136
156
|
updatedAt: nowIso,
|
|
137
157
|
};
|
|
138
158
|
const updatedAccount = {
|
|
139
159
|
...account,
|
|
140
|
-
email: input.identity.email,
|
|
141
160
|
avatarUrl: input.identity.avatarUrl ?? account.avatarUrl,
|
|
142
161
|
updatedAt: nowIso,
|
|
143
162
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleAccount.js","sourceRoot":"","sources":["../../../../src/platform/auth/googleAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,
|
|
1
|
+
{"version":3,"file":"googleAccount.js","sourceRoot":"","sources":["../../../../src/platform/auth/googleAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './actionGrant.js';
|
|
1
2
|
export * from './actorAttribution.js';
|
|
3
|
+
export * from './adminCredentials.js';
|
|
2
4
|
export * from './bootstrap.js';
|
|
3
5
|
export * from './bootstrapEnvelope.js';
|
|
4
6
|
export * from './browserHandoff.js';
|
|
@@ -12,11 +14,13 @@ export * from './googleCsrf.js';
|
|
|
12
14
|
export * from './googleJwksVerifier.js';
|
|
13
15
|
export * from './googleVerifier.js';
|
|
14
16
|
export * from './localLogin.js';
|
|
17
|
+
export * from './loginMethods.js';
|
|
15
18
|
export * from './originGate.js';
|
|
16
19
|
export * from './password.js';
|
|
17
20
|
export * from './principal.js';
|
|
18
21
|
export * from './readiness.js';
|
|
19
22
|
export * from './recovery.js';
|
|
23
|
+
export * from './securityEvents.js';
|
|
20
24
|
export * from './session.js';
|
|
21
25
|
export * from './state.js';
|
|
22
26
|
export * from './store.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './actionGrant.js';
|
|
1
2
|
export * from './actorAttribution.js';
|
|
3
|
+
export * from './adminCredentials.js';
|
|
2
4
|
export * from './bootstrap.js';
|
|
3
5
|
export * from './bootstrapEnvelope.js';
|
|
4
6
|
export * from './browserHandoff.js';
|
|
@@ -12,11 +14,13 @@ export * from './googleCsrf.js';
|
|
|
12
14
|
export * from './googleJwksVerifier.js';
|
|
13
15
|
export * from './googleVerifier.js';
|
|
14
16
|
export * from './localLogin.js';
|
|
17
|
+
export * from './loginMethods.js';
|
|
15
18
|
export * from './originGate.js';
|
|
16
19
|
export * from './password.js';
|
|
17
20
|
export * from './principal.js';
|
|
18
21
|
export * from './readiness.js';
|
|
19
22
|
export * from './recovery.js';
|
|
23
|
+
export * from './securityEvents.js';
|
|
20
24
|
export * from './session.js';
|
|
21
25
|
export * from './state.js';
|
|
22
26
|
export * from './store.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -4,6 +4,16 @@ export interface PlatformLocalPasswordCredentialMatch {
|
|
|
4
4
|
account: PlatformAccountRecord;
|
|
5
5
|
membership: PlatformMembershipRecord;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* SPEC-113 requirement 16: step-up verifies the local-password Identity that
|
|
9
|
+
* belongs to the *current* account. The caller must never be able to choose
|
|
10
|
+
* which identity is checked, so this takes an account id rather than a
|
|
11
|
+
* client-supplied identifier.
|
|
12
|
+
*/
|
|
13
|
+
export declare function verifyPlatformLocalPasswordForAccount(state: PlatformAuthState, input: {
|
|
14
|
+
accountId: string;
|
|
15
|
+
password: string;
|
|
16
|
+
}): Promise<PlatformLocalPasswordCredentialMatch | null>;
|
|
7
17
|
export declare function verifyPlatformLocalPasswordCredential(state: PlatformAuthState, input: {
|
|
8
18
|
identifier: string;
|
|
9
19
|
password: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localLogin.d.ts","sourceRoot":"","sources":["../../../../src/platform/auth/localLogin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,EAAE,wBAAwB,CAAC;CACtC;AAED,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE;IACL,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CA4BtD"}
|
|
1
|
+
{"version":3,"file":"localLogin.d.ts","sourceRoot":"","sources":["../../../../src/platform/auth/localLogin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,EAAE,wBAAwB,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAYtD;AAED,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE;IACL,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CA4BtD"}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
import { verifyLocalPassword } from './password.js';
|
|
2
|
+
/**
|
|
3
|
+
* SPEC-113 requirement 16: step-up verifies the local-password Identity that
|
|
4
|
+
* belongs to the *current* account. The caller must never be able to choose
|
|
5
|
+
* which identity is checked, so this takes an account id rather than a
|
|
6
|
+
* client-supplied identifier.
|
|
7
|
+
*/
|
|
8
|
+
export async function verifyPlatformLocalPasswordForAccount(state, input) {
|
|
9
|
+
const identity = state.identities.find((candidate) => candidate.provider === 'local_password'
|
|
10
|
+
&& candidate.accountId === input.accountId) ?? null;
|
|
11
|
+
if (!identity) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
return verifyPlatformLocalPasswordCredential(state, {
|
|
15
|
+
identifier: identity.providerSubject,
|
|
16
|
+
password: input.password,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
2
19
|
export async function verifyPlatformLocalPasswordCredential(state, input) {
|
|
3
20
|
const identity = state.identities.find((candidate) => candidate.provider === 'local_password'
|
|
4
21
|
&& (candidate.providerSubject === input.identifier
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localLogin.js","sourceRoot":"","sources":["../../../../src/platform/auth/localLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAcpD,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,KAAwB,EACxB,KAGC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACnD,SAAS,CAAC,QAAQ,KAAK,gBAAgB;WACpC,CACD,SAAS,CAAC,eAAe,KAAK,KAAK,CAAC,UAAU;eAC3C,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,UAAU,CACvD,CACF,IAAI,IAAI,CAAC;IACV,MAAM,OAAO,GAAG,QAAQ;QACtB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI;QACjF,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI;QACnF,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,KAAK,GAAG,QAAQ,EAAE,YAAY,IAAI,QAAQ,CAAC,qBAAqB;QACpE,CAAC,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE;YACxC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;SACtD,CAAC;QACJ,CAAC,CAAC,KAAK,CAAC;IACV,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;QACjC,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;KACxC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"localLogin.js","sourceRoot":"","sources":["../../../../src/platform/auth/localLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAcpD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,KAAwB,EACxB,KAGC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACnD,SAAS,CAAC,QAAQ,KAAK,gBAAgB;WACpC,SAAS,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAC3C,IAAI,IAAI,CAAC;IACV,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,qCAAqC,CAAC,KAAK,EAAE;QAClD,UAAU,EAAE,QAAQ,CAAC,eAAe;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,KAAwB,EACxB,KAGC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACnD,SAAS,CAAC,QAAQ,KAAK,gBAAgB;WACpC,CACD,SAAS,CAAC,eAAe,KAAK,KAAK,CAAC,UAAU;eAC3C,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,UAAU,CACvD,CACF,IAAI,IAAI,CAAC;IACV,MAAM,OAAO,GAAG,QAAQ;QACtB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI;QACjF,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI;QACnF,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,KAAK,GAAG,QAAQ,EAAE,YAAY,IAAI,QAAQ,CAAC,qBAAqB;QACpE,CAAC,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE;YACxC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;SACtD,CAAC;QACJ,CAAC,CAAC,KAAK,CAAC;IACV,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;QACjC,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PlatformAuthState } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* SPEC-113 requirement 10: the authenticated auth-status projection reports
|
|
4
|
+
* which login methods the current account owns. Requirement 13 makes Identity
|
|
5
|
+
* records the only source; the renderer must not infer linked state from
|
|
6
|
+
* account email, avatar, or a prior login result.
|
|
7
|
+
*/
|
|
8
|
+
export interface PlatformLoginMethodsSummary {
|
|
9
|
+
localPassword: {
|
|
10
|
+
linked: boolean;
|
|
11
|
+
};
|
|
12
|
+
google: {
|
|
13
|
+
linked: boolean;
|
|
14
|
+
email: string | null;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare function summarizePlatformLoginMethods(state: PlatformAuthState, accountId: string): PlatformLoginMethodsSummary;
|
|
18
|
+
//# sourceMappingURL=loginMethods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginMethods.d.ts","sourceRoot":"","sources":["../../../../src/platform/auth/loginMethods.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE;QACb,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,GAChB,2BAA2B,CAsB7B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { normalizePlatformAccountEmail } from './googleAccount.js';
|
|
2
|
+
export function summarizePlatformLoginMethods(state, accountId) {
|
|
3
|
+
const identities = state.identities.filter((identity) => identity.accountId === accountId);
|
|
4
|
+
const googleIdentity = identities.find((identity) => identity.provider === 'google') ?? null;
|
|
5
|
+
return {
|
|
6
|
+
localPassword: {
|
|
7
|
+
linked: identities.some((identity) => identity.provider === 'local_password'
|
|
8
|
+
&& Boolean(identity.passwordHash)
|
|
9
|
+
&& Boolean(identity.passwordHashAlgorithm)),
|
|
10
|
+
},
|
|
11
|
+
google: {
|
|
12
|
+
linked: googleIdentity !== null,
|
|
13
|
+
email: googleIdentity
|
|
14
|
+
? normalizePlatformAccountEmail(googleIdentity.email)
|
|
15
|
+
: null,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=loginMethods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginMethods.js","sourceRoot":"","sources":["../../../../src/platform/auth/loginMethods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAmBnE,MAAM,UAAU,6BAA6B,CAC3C,KAAwB,EACxB,SAAiB;IAEjB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CACxC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAC/C,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAC7C,IAAI,IAAI,CAAC;IACV,OAAO;QACL,aAAa,EAAE;YACb,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnC,QAAQ,CAAC,QAAQ,KAAK,gBAAgB;mBACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;mBAC9B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAC3C;SACF;QACD,MAAM,EAAE;YACN,MAAM,EAAE,cAAc,KAAK,IAAI;YAC/B,KAAK,EAAE,cAAc;gBACnB,CAAC,CAAC,6BAA6B,CAAC,cAAc,CAAC,KAAK,CAAC;gBACrD,CAAC,CAAC,IAAI;SACT;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret-free identity-lifecycle security events.
|
|
3
|
+
*
|
|
4
|
+
* ADR-111 section 7 requires these to be emitted through an injected reporter
|
|
5
|
+
* so a later audit sink can persist the same events without rewriting the auth
|
|
6
|
+
* routes. The payload is deliberately narrow: stable Cats identifiers, an
|
|
7
|
+
* outcome, and a bounded reason code. Passwords, raw session or action tokens,
|
|
8
|
+
* Google credentials, and provider-token claims must never reach a reporter.
|
|
9
|
+
*/
|
|
10
|
+
export declare const PLATFORM_AUTH_SECURITY_EVENT_KINDS: readonly ["first_admin_created", "step_up_succeeded", "step_up_failed", "google_link_succeeded", "google_link_failed", "google_unlink_succeeded", "google_unlink_failed"];
|
|
11
|
+
export type PlatformAuthSecurityEventKind = (typeof PLATFORM_AUTH_SECURITY_EVENT_KINDS)[number];
|
|
12
|
+
export type PlatformAuthSecurityEventOutcome = 'success' | 'failure';
|
|
13
|
+
export interface PlatformAuthSecurityEvent {
|
|
14
|
+
kind: PlatformAuthSecurityEventKind;
|
|
15
|
+
outcome: PlatformAuthSecurityEventOutcome;
|
|
16
|
+
occurredAt: string;
|
|
17
|
+
accountId: string | null;
|
|
18
|
+
sessionId: string | null;
|
|
19
|
+
reason: string | null;
|
|
20
|
+
}
|
|
21
|
+
export type PlatformAuthSecurityEventReporter = (event: PlatformAuthSecurityEvent) => void | Promise<void>;
|
|
22
|
+
export interface CreatePlatformAuthSecurityEventInput {
|
|
23
|
+
kind: PlatformAuthSecurityEventKind;
|
|
24
|
+
outcome: PlatformAuthSecurityEventOutcome;
|
|
25
|
+
now: Date;
|
|
26
|
+
accountId?: string | null;
|
|
27
|
+
sessionId?: string | null;
|
|
28
|
+
reason?: string | null;
|
|
29
|
+
}
|
|
30
|
+
export declare function createPlatformAuthSecurityEvent(input: CreatePlatformAuthSecurityEventInput): PlatformAuthSecurityEvent;
|
|
31
|
+
//# sourceMappingURL=securityEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"securityEvents.d.ts","sourceRoot":"","sources":["../../../../src/platform/auth/securityEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,kCAAkC,2KAQrC,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,gCAAgC,GAAG,SAAS,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,6BAA6B,CAAC;IACpC,OAAO,EAAE,gCAAgC,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,iCAAiC,GAAG,CAC9C,KAAK,EAAE,yBAAyB,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,oCAAoC;IACnD,IAAI,EAAE,6BAA6B,CAAC;IACpC,OAAO,EAAE,gCAAgC,CAAC;IAC1C,GAAG,EAAE,IAAI,CAAC;IACV,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAID,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,oCAAoC,GAC1C,yBAAyB,CAS3B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret-free identity-lifecycle security events.
|
|
3
|
+
*
|
|
4
|
+
* ADR-111 section 7 requires these to be emitted through an injected reporter
|
|
5
|
+
* so a later audit sink can persist the same events without rewriting the auth
|
|
6
|
+
* routes. The payload is deliberately narrow: stable Cats identifiers, an
|
|
7
|
+
* outcome, and a bounded reason code. Passwords, raw session or action tokens,
|
|
8
|
+
* Google credentials, and provider-token claims must never reach a reporter.
|
|
9
|
+
*/
|
|
10
|
+
export const PLATFORM_AUTH_SECURITY_EVENT_KINDS = [
|
|
11
|
+
'first_admin_created',
|
|
12
|
+
'step_up_succeeded',
|
|
13
|
+
'step_up_failed',
|
|
14
|
+
'google_link_succeeded',
|
|
15
|
+
'google_link_failed',
|
|
16
|
+
'google_unlink_succeeded',
|
|
17
|
+
'google_unlink_failed',
|
|
18
|
+
];
|
|
19
|
+
const MAX_REASON_LENGTH = 64;
|
|
20
|
+
export function createPlatformAuthSecurityEvent(input) {
|
|
21
|
+
return {
|
|
22
|
+
kind: input.kind,
|
|
23
|
+
outcome: input.outcome,
|
|
24
|
+
occurredAt: input.now.toISOString(),
|
|
25
|
+
accountId: input.accountId ?? null,
|
|
26
|
+
sessionId: input.sessionId ?? null,
|
|
27
|
+
reason: normalizeReason(input.reason),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Reason codes are machine-readable slugs, never free text a caller supplied.
|
|
32
|
+
* Anything longer than a slug is dropped rather than truncated so an unexpected
|
|
33
|
+
* value cannot smuggle credential material into a log line.
|
|
34
|
+
*/
|
|
35
|
+
function normalizeReason(reason) {
|
|
36
|
+
const trimmed = reason?.trim();
|
|
37
|
+
if (!trimmed) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
if (trimmed.length > MAX_REASON_LENGTH || !/^[a-z0-9_]+$/u.test(trimmed)) {
|
|
41
|
+
return 'unspecified';
|
|
42
|
+
}
|
|
43
|
+
return trimmed;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=securityEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"securityEvents.js","sourceRoot":"","sources":["../../../../src/platform/auth/securityEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,qBAAqB;IACrB,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB;IACvB,oBAAoB;IACpB,yBAAyB;IACzB,sBAAsB;CACd,CAAC;AA6BX,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,UAAU,+BAA+B,CAC7C,KAA2C;IAE3C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAAiC;IACxD,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -685,14 +685,6 @@ export interface ChannelExportPayload {
|
|
|
685
685
|
assignedParticipants?: ChatChannelParticipant[];
|
|
686
686
|
assignedCats: ChatChannelCat[];
|
|
687
687
|
}
|
|
688
|
-
export interface SetupCompleteInput {
|
|
689
|
-
ownerDisplayName: string;
|
|
690
|
-
bossCatName?: string;
|
|
691
|
-
bossCatProvider: string;
|
|
692
|
-
bossCatInstance?: string;
|
|
693
|
-
bossCatModel?: string;
|
|
694
|
-
bossCatModelSelection?: ProviderModelSelection | null;
|
|
695
|
-
}
|
|
696
688
|
export interface CreateBotBindingInput {
|
|
697
689
|
platform: 'telegram' | 'line';
|
|
698
690
|
botName: string;
|