@kelpie/server 0.11.0 → 0.12.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 (48) hide show
  1. package/dist/index.d.ts +3 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/errors.d.ts +18 -0
  6. package/dist/lib/errors.d.ts.map +1 -1
  7. package/dist/lib/errors.js +17 -0
  8. package/dist/lib/errors.js.map +1 -1
  9. package/dist/modules/auth/index.d.ts.map +1 -1
  10. package/dist/modules/auth/index.js +21 -4
  11. package/dist/modules/auth/index.js.map +1 -1
  12. package/dist/modules/auth/repository.d.ts +2 -1
  13. package/dist/modules/auth/repository.d.ts.map +1 -1
  14. package/dist/modules/auth/repository.js +1 -0
  15. package/dist/modules/auth/repository.js.map +1 -1
  16. package/dist/modules/auth/routes.d.ts.map +1 -1
  17. package/dist/modules/auth/routes.js +2 -6
  18. package/dist/modules/auth/routes.js.map +1 -1
  19. package/dist/modules/auth/schema.d.ts +18 -1
  20. package/dist/modules/auth/schema.d.ts.map +1 -1
  21. package/dist/modules/auth/schema.js +12 -1
  22. package/dist/modules/auth/schema.js.map +1 -1
  23. package/dist/modules/auth/service.d.ts +18 -0
  24. package/dist/modules/auth/service.d.ts.map +1 -1
  25. package/dist/modules/auth/service.js +95 -6
  26. package/dist/modules/auth/service.js.map +1 -1
  27. package/dist/modules/auth/session.d.ts +12 -0
  28. package/dist/modules/auth/session.d.ts.map +1 -1
  29. package/dist/modules/auth/session.js +12 -0
  30. package/dist/modules/auth/session.js.map +1 -1
  31. package/dist/runtime/module.d.ts +63 -1
  32. package/dist/runtime/module.d.ts.map +1 -1
  33. package/dist/runtime/registry.d.ts.map +1 -1
  34. package/dist/runtime/registry.js +40 -2
  35. package/dist/runtime/registry.js.map +1 -1
  36. package/migrations/0043_external_sign_in.sql +2 -0
  37. package/migrations/meta/_journal.json +7 -0
  38. package/package.json +2 -2
  39. package/src/index.ts +13 -1
  40. package/src/lib/errors.ts +30 -0
  41. package/src/modules/auth/index.ts +25 -4
  42. package/src/modules/auth/repository.ts +2 -1
  43. package/src/modules/auth/routes.ts +2 -8
  44. package/src/modules/auth/schema.ts +12 -1
  45. package/src/modules/auth/service.ts +143 -6
  46. package/src/modules/auth/session.ts +14 -0
  47. package/src/runtime/module.ts +70 -1
  48. package/src/runtime/registry.ts +54 -0
@@ -1,6 +1,6 @@
1
1
  import { APP_LINK_PATHS, buildAppLink } from '../../lib/appUrl.js';
2
2
  import { renderEmail } from '../../lib/emailContent.js';
3
- import { AppError } from '../../lib/errors.js';
3
+ import { AppError, ExternalSignInError } from '../../lib/errors.js';
4
4
  import { UNIQUE_VIOLATION, postgresErrorCode } from '../../lib/database.js';
5
5
  import { MINIMUM_PASSWORD_LENGTH, hashPassword, verifyPassword } from '../../lib/passwords.js';
6
6
  import { generateToken, hashToken } from '../../lib/tokens.js';
@@ -35,6 +35,14 @@ function toPreferenceValues(record) {
35
35
  function normaliseEmail(email) {
36
36
  return email.trim().toLowerCase();
37
37
  }
38
+ /**
39
+ * The name to use when a provider sends none. `users.name` is not nullable and
40
+ * an address is the only other thing an identity is guaranteed to carry.
41
+ */
42
+ function localPartOf(email) {
43
+ const [local] = email.split('@');
44
+ return local === undefined || local.length === 0 ? email : local;
45
+ }
38
46
  /**
39
47
  * Rejects a field that is only whitespace.
40
48
  *
@@ -64,7 +72,9 @@ export function createAuthService(dependencies) {
64
72
  }
65
73
  return user;
66
74
  }
67
- async function issueSession(db, user, device, location) {
75
+ async function issueSession(db, user, device, location,
76
+ /** The module that verified the identity, or null for a password sign-in. */
77
+ signedInVia = null) {
68
78
  const now = dependencies.now();
69
79
  const token = newToken();
70
80
  const expiresAt = new Date(now.getTime() + SESSION_LIFETIME_MS);
@@ -76,6 +86,7 @@ export function createAuthService(dependencies) {
76
86
  tokenHash: hashToken(token),
77
87
  device: device ?? null,
78
88
  location: location ?? null,
89
+ signedInVia,
79
90
  lastActiveAt: now,
80
91
  expiresAt,
81
92
  });
@@ -149,14 +160,86 @@ export function createAuthService(dependencies) {
149
160
  },
150
161
  async logIn(input) {
151
162
  const user = await repository.findUserByEmail(dependencies.db, normaliseEmail(input.email));
152
- // Hash a throwaway password when the user is unknown, so a missing account
153
- // and a wrong password take the same time to answer.
163
+ // Hash a throwaway password when the account is unknown or has no
164
+ // password, so all three cases take the same time to answer.
154
165
  const storedHash = user?.passwordHash ?? (await hashPassword('not-a-real-password-placeholder'));
155
- if (!(await verifyPassword(storedHash, input.password)) || user === undefined) {
166
+ // Always run the verify, even when the hash is the placeholder: skipping
167
+ // it would make a passwordless account answer faster than a wrong one.
168
+ const matches = await verifyPassword(storedHash, input.password);
169
+ // The null check is the guard, not the placeholder hash. Without it,
170
+ // whoever guessed the placeholder string would sign in to every account
171
+ // that has no password.
172
+ if (user === undefined || user.passwordHash === null || !matches) {
156
173
  throw AppError.unauthorized('Email or password is incorrect');
157
174
  }
158
175
  return dependencies.transaction(({ tx }) => issueSession(tx, user, input.device, input.location));
159
176
  },
177
+ /**
178
+ * Signs in an identity a module already verified.
179
+ *
180
+ * Core does not redo the verification and never learns the protocol. What
181
+ * it owns is everything downstream: finding or provisioning the account,
182
+ * issuing the session, and recording which module vouched for it.
183
+ */
184
+ async completeExternalSignIn(input) {
185
+ // An unverified address is not an identity. A provider that does not say
186
+ // it checked is treated as not having checked.
187
+ if (!input.emailVerified) {
188
+ throw new ExternalSignInError('email_unverified');
189
+ }
190
+ const email = requireText(normaliseEmail(input.email), 'email');
191
+ const name = requireText(input.name ?? localPartOf(email), 'name');
192
+ const now = dependencies.now();
193
+ const link = async (tx, user) => {
194
+ // Signing in through a provider on an account whose address was never
195
+ // confirmed is the pre-registration takeover case: somebody registered
196
+ // this address with a password and never proved they own it. The
197
+ // provider just proved the opposite. Drop that password and every
198
+ // session it opened; the real owner sets a new one through a reset.
199
+ if (user.emailVerifiedAt === null) {
200
+ await repository.updateUserPassword(tx, user.id, null, now);
201
+ await repository.deleteAllSessionsForUser(tx, user.id);
202
+ }
203
+ // The provider proved control of the address, which is the same thing
204
+ // accepting an invite proves.
205
+ await repository.markEmailVerified(tx, user.id, now);
206
+ const issued = await issueSession(tx, { ...user, emailVerifiedAt: user.emailVerifiedAt ?? now }, input.device, input.location, input.verifiedBy);
207
+ return { ...issued, created: false };
208
+ };
209
+ const existing = await repository.findUserByEmail(dependencies.db, email);
210
+ if (existing !== undefined) {
211
+ return dependencies.transaction(({ tx }) => link(tx, existing));
212
+ }
213
+ if (input.provision === 'refuse') {
214
+ throw new ExternalSignInError('unknown_identity');
215
+ }
216
+ return dependencies.transaction(async ({ tx }) => {
217
+ let user;
218
+ try {
219
+ user = await repository.insertUser(tx, {
220
+ id: dependencies.createId('user'),
221
+ email,
222
+ name,
223
+ passwordHash: null,
224
+ emailVerifiedAt: now,
225
+ });
226
+ }
227
+ catch (error) {
228
+ if (postgresErrorCode(error) !== UNIQUE_VIOLATION) {
229
+ throw error;
230
+ }
231
+ // Two first sign-ins for the same address at once. The other one won;
232
+ // this is now an ordinary link.
233
+ const raced = await repository.findUserByEmail(tx, email);
234
+ if (raced === undefined) {
235
+ throw error;
236
+ }
237
+ return link(tx, raced);
238
+ }
239
+ const issued = await issueSession(tx, user, input.device, input.location, input.verifiedBy);
240
+ return { ...issued, created: true };
241
+ });
242
+ },
160
243
  async logOut(actor) {
161
244
  await repository.deleteSession(dependencies.db, actor.userId, actor.sessionId);
162
245
  },
@@ -181,8 +264,11 @@ export function createAuthService(dependencies) {
181
264
  ? {}
182
265
  : { email: requireText(normaliseEmail(changes.email), 'email') }),
183
266
  };
267
+ // A passwordless account cannot prove itself this way. It sets a password
268
+ // through the reset flow first, which is the same bar this check is.
184
269
  if (changes.email !== undefined &&
185
270
  (changes.currentPassword === undefined ||
271
+ user.passwordHash === null ||
186
272
  !(await verifyPassword(user.passwordHash, changes.currentPassword)))) {
187
273
  throw AppError.unauthorized('Current password is incorrect');
188
274
  }
@@ -250,6 +336,7 @@ export function createAuthService(dependencies) {
250
336
  location: record.location,
251
337
  lastActiveAt: record.lastActiveAt,
252
338
  current: record.id === actor.sessionId,
339
+ signedInVia: record.signedInVia,
253
340
  }));
254
341
  },
255
342
  async revokeSession(actor, sessionId) {
@@ -320,7 +407,9 @@ export function createAuthService(dependencies) {
320
407
  ]);
321
408
  }
322
409
  const user = await repository.findUserById(dependencies.db, actor.userId);
323
- if (user === undefined || !(await verifyPassword(user.passwordHash, currentPassword))) {
410
+ if (user === undefined ||
411
+ user.passwordHash === null ||
412
+ !(await verifyPassword(user.passwordHash, currentPassword))) {
324
413
  throw AppError.unauthorized('Current password is incorrect');
325
414
  }
326
415
  const now = dependencies.now();
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/auth/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAE3E,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG9D,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;;;;;;GAOG;AAEH,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AACpD,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAC9C,8GAA8G;AAC9G,MAAM,oCAAoC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AA4DhE,SAAS,aAAa,CAAC,IAA2B;IAChD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAA;AAC1G,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAwC;IAClE,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;AACH,CAAC;AAED,iEAAiE;AACjE,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAE5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,CAAC,gBAAgB,CAAC,GAAG,KAAK,kBAAkB,EAAE;YAC1D,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE;SACtC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAuBD,MAAM,UAAU,iBAAiB,CAAC,YAA8B;IAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,aAAa,CAAA;IAEvD;;;OAGG;IACH,KAAK,UAAU,WAAW,CAAC,MAAc;QACvC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAEnE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,QAAQ,CAAC,YAAY,CAAC,8CAA8C,CAAC,CAAA;QAC7E,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,UAAU,YAAY,CACzB,EAAwB,EACxB,IAA2B,EAC3B,MAA0B,EAC1B,QAA4B;QAE5B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,mBAAmB,CAAC,CAAA;QAC/D,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAEpE,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,EAAE;YACjC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,iBAAiB,EAAE,UAAU,EAAE,WAAW,IAAI,IAAI;YAClD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC;YAC3B,MAAM,EAAE,MAAM,IAAI,IAAI;YACtB,QAAQ,EAAE,QAAQ,IAAI,IAAI;YAC1B,YAAY,EAAE,GAAG;YACjB,SAAS;SACV,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC;YAC5B,YAAY,EAAE,KAAK;YACnB,SAAS;YACT,iBAAiB,EAAE,UAAU,EAAE,WAAW,IAAI,IAAI;SACnD,CAAA;IACH,CAAC;IAED,SAAS,qBAAqB,CAAC,EAAU,EAAE,KAAa;QACtD,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACrF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAChC;YACE,MAAM,EAAE;gBACN,YAAY,EAAE,yDAAyD;gBACvE,UAAU,EAAE,sBAAsB;gBAClC,IAAI;aACL;YACD,KAAK,EAAE,+BAA+B;SACvC,EACD,YAAY,CAAC,UAAU,CACxB,CAAA;QAED,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,EAAE;YACF,OAAO,EAAE,kCAAkC;YAC3C,IAAI,EAAE,IAAI;YACV,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,2EAA2E;QAC3E,KAAK,CAAC,MAAM,CAAC,KAAkB;YAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBACpD,MAAM,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,EAAE;oBACvD,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,uBAAuB,aAAa,EAAE;iBACzF,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACzC,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACvD,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;YAC9B,MAAM,iBAAiB,GAAG,QAAQ,EAAE,CAAA;YAEpC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC7D,IAAI,IAA2B,CAAA;gBAE/B,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE;wBACrC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACjC,KAAK;wBACL,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,YAAY;qBACb,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,gBAAgB,EAAE,CAAC;wBAClD,sEAAsE;wBACtE,oCAAoC;wBACpC,MAAM,QAAQ,CAAC,QAAQ,CAAC,2CAA2C,EAAE;4BACnE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE;yBAClD,CAAC,CAAA;oBACJ,CAAC;oBAED,MAAM,KAAK,CAAA;gBACb,CAAC;gBAED,MAAM,UAAU,CAAC,4BAA4B,CAAC,EAAE,EAAE;oBAChD,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;oBACnD,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC;oBACvC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,oCAAoC,CAAC;iBAC1E,CAAC,CAAA;gBAEF,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAA;YAEF,mEAAmE;YACnE,MAAM,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;YAErD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,KAAiB;YAC3B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;YAE3F,2EAA2E;YAC3E,qDAAqD;YACrD,MAAM,UAAU,GAAG,IAAI,EAAE,YAAY,IAAI,CAAC,MAAM,YAAY,CAAC,iCAAiC,CAAC,CAAC,CAAA;YAEhG,IAAI,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9E,MAAM,QAAQ,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAA;YAC/D,CAAC;YAED,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnG,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAmB;YAC9B,MAAM,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QAChF,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,KAAmB;YAClC,OAAO,aAAa,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACvD,CAAC;QAED;;;;;;;;;WASG;QACH,KAAK,CAAC,aAAa,CAAC,KAAmB,EAAE,OAA6B;YACpE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5C,MAAM,MAAM,GAAG;gBACb,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBAClF,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;oBAC7B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;aACpE,CAAA;YAED,IACE,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC3B,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;oBACpC,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EACtE,CAAC;gBACD,MAAM,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAA;YAC9D,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAA;YAEhC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC9D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;oBAE9F,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,QAAQ,CAAC,YAAY,CAAC,8CAA8C,CAAC,CAAA;oBAC7E,CAAC;oBAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAChC,MAAM,UAAU,CAAC,0BAA0B,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;oBAChF,CAAC;oBAED,OAAO,KAAK,CAAA;gBACd,CAAC,CAAC,CAAA;gBAEF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAChC;wBACE,KAAK,EAAE,0CAA0C,aAAa,OAAO,OAAO,CAAC,KAAK,oEAAoE;qBACvJ,EACD,YAAY,CAAC,UAAU,CACxB,CAAA;oBAED,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;wBAC5B,EAAE,EAAE,aAAa;wBACjB,OAAO,EAAE,mCAAmC;wBAC5C,IAAI,EAAE,IAAI;wBACV,IAAI;qBACL,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,gBAAgB,EAAE,CAAC;oBAClD,uEAAuE;oBACvE,yDAAyD;oBACzD,MAAM,QAAQ,CAAC,QAAQ,CAAC,2CAA2C,EAAE;wBACnE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE;qBAClD,CAAC,CAAA;gBACJ,CAAC;gBAED,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,KAAmB;YACtC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAE9E,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAChF,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,iBAAiB,CACrB,KAAmB,EACnB,OAA0B;YAE1B,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE/B,OAAO,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjE,MAAM,MAAM,GAAG,sBAAsB,CACnC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAC7D,OAAO,CACR,CAAA;gBAED,OAAO,kBAAkB,CACvB,MAAM,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE;oBACrC,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,GAAG,MAAM;oBACT,SAAS,EAAE,YAAY,CAAC,GAAG,EAAE;iBAC9B,CAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,KAAmB;YACpC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAEnF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS;aACvC,CAAC,CAAC,CAAA;QACL,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,KAAmB,EAAE,SAAiB;YACxD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAExF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,qEAAqE;gBACrE,mEAAmE;gBACnE,MAAM,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,oBAAoB,CAAC,KAAa;YACtC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;YAErF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAM;YACR,CAAC;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;YAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;YAExB,MAAM,UAAU,CAAC,wBAAwB,CAAC,YAAY,CAAC,EAAE,EAAE;gBACzD,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAC/C,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC;gBAC3B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,uBAAuB,CAAC;aAC7D,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;YACvF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAChC;gBACE,MAAM,EAAE;oBACN,YAAY,EAAE,yDAAyD;oBACvE,UAAU,EAAE,gBAAgB;oBAC5B,IAAI;iBACL;gBACD,KAAK,EAAE,yCAAyC;aACjD,EACD,YAAY,CAAC,UAAU,CACxB,CAAA;YAED,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC5B,EAAE,EAAE,IAAI,CAAC,KAAK;gBACd,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,IAAI;gBACV,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,kFAAkF;QAClF,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,WAAmB;YAC3D,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBACjD,MAAM,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,EAAE;oBACvD,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,uBAAuB,aAAa,EAAE;iBACzF,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;YAC9B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,4BAA4B,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;YAEpG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,QAAQ,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAA;YAC1E,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAA;YAEpD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC9C,MAAM,UAAU,CAAC,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC/D,MAAM,UAAU,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;gBACzE,MAAM,UAAU,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAC9D,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,+DAA+D;QAC/D,KAAK,CAAC,cAAc,CAAC,KAAmB,EAAE,eAAuB,EAAE,WAAmB;YACpF,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBACjD,MAAM,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,EAAE;oBACvD,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,uBAAuB,aAAa,EAAE;iBAC7F,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAEzE,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;gBACtF,MAAM,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAA;YAC9D,CAAC;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;YAC9B,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAA;YAEpD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC9C,MAAM,UAAU,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;gBACnE,MAAM,UAAU,CAAC,0BAA0B,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;YAC3E,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,wBAAwB,CAAC,KAAmB;YAChD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5C,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBAClC,OAAM;YACR,CAAC;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;YAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;YAExB,MAAM,UAAU,CAAC,4BAA4B,CAAC,YAAY,CAAC,EAAE,EAAE;gBAC7D,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;gBACnD,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC;gBAC3B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,oCAAoC,CAAC;aAC1E,CAAC,CAAA;YAEF,MAAM,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAChD,CAAC;QAED,KAAK,CAAC,wBAAwB,CAAC,KAAa;YAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;YAC9B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gCAAgC,CAC9D,YAAY,CAAC,EAAE,EACf,SAAS,CAAC,KAAK,CAAC,EAChB,GAAG,CACJ,CAAA;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,QAAQ,CAAC,YAAY,CAAC,kDAAkD,CAAC,CAAA;YACjF,CAAC;YAED,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC9C,MAAM,UAAU,CAAC,8BAA8B,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACnE,MAAM,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAC5D,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/auth/service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,18 @@ import type { Context } from 'hono';
7
7
  * key, never from a header, a path segment, or a request body.
8
8
  */
9
9
  export declare const SESSION_COOKIE = "kelpie_session";
10
+ /**
11
+ * The device and location shown on the Security page come from the request
12
+ * itself.
13
+ *
14
+ * Here rather than in `routes.ts` because the external sign-in handler needs
15
+ * the same description, and a session created by a module should look the same
16
+ * on that page as one created by the login form.
17
+ */
18
+ export declare function describeClient(context: Context): {
19
+ device?: string;
20
+ location?: string;
21
+ };
10
22
  export interface SessionCookieOptions {
11
23
  /** Only sent over HTTPS outside development. */
12
24
  readonly secure: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;;;GAMG;AAEH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAK9C,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAQvG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAQxF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;;;GAMG;AAEH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAIvF;AAKD,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAQvG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAQxF"}
@@ -7,6 +7,18 @@ import { setCookie } from 'hono/cookie';
7
7
  * key, never from a header, a path segment, or a request body.
8
8
  */
9
9
  export const SESSION_COOKIE = 'kelpie_session';
10
+ /**
11
+ * The device and location shown on the Security page come from the request
12
+ * itself.
13
+ *
14
+ * Here rather than in `routes.ts` because the external sign-in handler needs
15
+ * the same description, and a session created by a module should look the same
16
+ * on that page as one created by the login form.
17
+ */
18
+ export function describeClient(context) {
19
+ const userAgent = context.req.header('User-Agent');
20
+ return userAgent === undefined ? {} : { device: userAgent };
21
+ }
10
22
  /** Thirty days, matching the session row's expiry. */
11
23
  const COOKIE_MAX_AGE_SECONDS = 30 * 24 * 60 * 60;
12
24
  export function writeSessionCookie(context, token, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/modules/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAE9C,sDAAsD;AACtD,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAOhD,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,KAAa,EAAE,OAA6B;IAC/F,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE;QACxC,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,sBAAsB;KAC/B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,OAA6B;IAChF,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;QACrC,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,CAAC;KACV,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/modules/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAElD,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC7D,CAAC;AAED,sDAAsD;AACtD,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAOhD,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,KAAa,EAAE,OAA6B;IAC/F,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE;QACxC,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,sBAAsB;KAC/B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,OAA6B;IAChF,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;QACrC,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,CAAC;KACV,CAAC,CAAA;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Handler, Hono, MiddlewareHandler } from 'hono';
1
+ import type { Context, Handler, Hono, MiddlewareHandler } from 'hono';
2
2
  import type { ZodType } from 'zod';
3
3
  import type { Actor } from '../lib/actor.ts';
4
4
  import type { Database } from '../lib/database.ts';
@@ -51,6 +51,46 @@ export interface McpTool {
51
51
  export interface McpToolRegistry {
52
52
  tool<Input>(definition: McpToolDefinition<Input>): void;
53
53
  }
54
+ /**
55
+ * An identity a module verified somewhere else, handed back for core to sign in.
56
+ *
57
+ * Core never learns what OIDC or SAML is. Verification is the module's job and
58
+ * core does not redo it; core's job is that everything downstream of the cookie
59
+ * is identical to a password sign-in.
60
+ */
61
+ export interface VerifiedIdentity {
62
+ readonly email: string;
63
+ /** Core refuses the identity when false, rather than assuming the module checked. */
64
+ readonly emailVerified: boolean;
65
+ /** The provider's display name, when it has one. The local part of the address is used otherwise. */
66
+ readonly name: string | null;
67
+ /** Who verified it, recorded on the session: the module id, optionally suffixed (`sign-in:google`). */
68
+ readonly verifiedBy: string;
69
+ /**
70
+ * What to do with an address core has never seen. The policy is the module's,
71
+ * because only it knows whether its provider vouches for strangers; executing
72
+ * it is core's.
73
+ */
74
+ readonly provision: 'create' | 'refuse';
75
+ }
76
+ /** The account a completed sign-in belongs to. */
77
+ export interface CompletedSignInAccount {
78
+ readonly id: string;
79
+ readonly email: string;
80
+ readonly name: string;
81
+ readonly emailVerified: boolean;
82
+ }
83
+ export interface CompletedSignIn {
84
+ readonly account: CompletedSignInAccount;
85
+ /** True when this sign-in provisioned the account rather than finding it. */
86
+ readonly created: boolean;
87
+ readonly activeWorkspaceId: string | null;
88
+ }
89
+ /**
90
+ * Completes a sign-in. Takes the Hono context because writing the session
91
+ * cookie on it is the point.
92
+ */
93
+ export type ExternalSignInHandler = (context: Context, identity: VerifiedIdentity) => Promise<CompletedSignIn>;
54
94
  /**
55
95
  * What a module gets to build with, beyond its own contributions.
56
96
  *
@@ -111,6 +151,28 @@ export interface ModuleContext extends ModuleServices {
111
151
  * delegates to the provider `email.provider` picked.
112
152
  */
113
153
  readonly email: EmailSender;
154
+ /**
155
+ * Installs the one implementation of external sign-in. Core's `auth` module
156
+ * calls this; a second caller fails boot.
157
+ *
158
+ * The same shape as `provideEmailSender`: a capability only one module owns,
159
+ * reached by every module through a proxy, so registration order does not
160
+ * matter to a consumer.
161
+ */
162
+ provideExternalSignIn(handler: ExternalSignInHandler): void;
163
+ /**
164
+ * Completes a sign-in for an identity this module already verified: finds or
165
+ * provisions the account, issues a session, and writes the session cookie on
166
+ * `context`.
167
+ *
168
+ * The alternative is a module writing core's `sessions` table itself, which
169
+ * ties it to core's token hashing, cookie flags and expiry with nothing
170
+ * keeping the two in step (`modules.md`).
171
+ *
172
+ * @throws ExternalSignInError when the identity is unverified, or unknown and
173
+ * the module asked for `provision: 'refuse'`.
174
+ */
175
+ completeExternalSignIn(context: Context, identity: VerifiedIdentity): Promise<CompletedSignIn>;
114
176
  /**
115
177
  * Registers routes that mount under `/v1/public`, take no credentials, and
116
178
  * answer cross-origin requests from any site.
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/runtime/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/runtime/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAElC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;;;GAMG;AAEH,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAClE;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACvE;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;CACxD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,qFAAqF;IACrF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,qGAAqG;IACrG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,uGAAuG;IACvG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;CACxC;AAED,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB,KACvB,OAAO,CAAC,eAAe,CAAC,CAAA;AAE7B;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAA;IACtC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAA;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;CAC/D;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,kFAAkF;IAClF,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAA;IAC3C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IAChE;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B;;;;;;;OAOG;IACH,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC3D;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC9F;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAA;IACjD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3F;;;;;;;;;OASG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAChE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9E,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;IAC1C,iFAAiF;IACjF,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;CACrE;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"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"}
@@ -43,15 +43,52 @@ class EmailSenderProxy {
43
43
  return this.target.send(message);
44
44
  }
45
45
  }
46
+ /**
47
+ * Completes a sign-in for an identity a module verified elsewhere.
48
+ *
49
+ * Same shape as `EmailSenderProxy`, and for the same reason: one module owns
50
+ * the implementation, every module reaches it through this object, and a
51
+ * consumer captures the proxy at register time but only calls it at request
52
+ * time, so registration order does not matter.
53
+ *
54
+ * Exactly one installer, unlike email's named registry: there is one `users`
55
+ * table and one session cookie, so "which implementation" is never a question
56
+ * an assembly should have to answer.
57
+ */
58
+ class ExternalSignInProxy {
59
+ target = undefined;
60
+ installedBy = undefined;
61
+ install(moduleId, handler) {
62
+ if (this.installedBy !== undefined) {
63
+ throw new ModuleBootError([
64
+ `module "${moduleId}" provides external sign-in, but module "${this.installedBy}" already did`,
65
+ ]);
66
+ }
67
+ this.target = handler;
68
+ this.installedBy = moduleId;
69
+ }
70
+ complete(context, identity) {
71
+ if (this.target === undefined) {
72
+ return Promise.reject(new Error('external sign-in used before a module installed it. Is the auth module in the assembly?'));
73
+ }
74
+ return this.target(context, identity);
75
+ }
76
+ }
46
77
  /**
47
78
  * The name the runtime uses for its built-in log sender. Reserved: a module
48
79
  * that tries to register under this name fails boot.
49
80
  */
50
81
  const LOG_PROVIDER_NAME = 'log';
51
- function createModuleContext(module, accumulator, options, events, entitlements, moduleCatalog, emailProxy, providers) {
82
+ function createModuleContext(module, accumulator, options, events, entitlements, moduleCatalog, emailProxy, providers, externalSignIn) {
52
83
  return {
53
84
  ...options.services,
54
85
  email: emailProxy,
86
+ provideExternalSignIn(handler) {
87
+ externalSignIn.install(module.id, handler);
88
+ },
89
+ completeExternalSignIn(context, identity) {
90
+ return externalSignIn.complete(context, identity);
91
+ },
55
92
  provideEmailSender(name, build) {
56
93
  if (name === LOG_PROVIDER_NAME) {
57
94
  throw new ModuleBootError([
@@ -160,6 +197,7 @@ export async function registerModules(options) {
160
197
  const entitlements = options.entitlements ?? createEntitlementRegistry();
161
198
  const emailProxy = new EmailSenderProxy();
162
199
  const emailProviders = new Map();
200
+ const externalSignIn = new ExternalSignInProxy();
163
201
  // The built-in log provider is always available, no module required. Named
164
202
  // 'log' in kelpie.config.ts's email.provider picks this one. Built eagerly
165
203
  // because it has no env to parse and never fails.
@@ -224,7 +262,7 @@ export async function registerModules(options) {
224
262
  }
225
263
  }
226
264
  for (const module of ordered) {
227
- const context = createModuleContext(module, accumulator, options, events, entitlements, moduleCatalog, emailProxy, emailProviders);
265
+ const context = createModuleContext(module, accumulator, options, events, entitlements, moduleCatalog, emailProxy, emailProviders, externalSignIn);
228
266
  try {
229
267
  await module.register(context);
230
268
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "users" ALTER COLUMN "password_hash" DROP NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "sessions" ADD COLUMN "signed_in_via" text;
@@ -302,6 +302,13 @@
302
302
  "when": 1788600000000,
303
303
  "tag": "0042_drop_workspace_identity",
304
304
  "breakpoints": true
305
+ },
306
+ {
307
+ "idx": 43,
308
+ "version": "7",
309
+ "when": 1788700000000,
310
+ "tag": "0043_external_sign_in",
311
+ "breakpoints": true
305
312
  }
306
313
  ]
307
314
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kelpie/server",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "The Kelpie service as a library: module runtime, core CRM modules, REST API, MCP surface, and the shared migration pipeline.",
5
5
  "keywords": [
6
6
  "kelpie",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@hono/node-server": "^2.0.12",
55
- "@kelpie/schemas": "^0.11.0",
55
+ "@kelpie/schemas": "^0.12.0",
56
56
  "@node-rs/argon2": "^2.0.2",
57
57
  "drizzle-orm": "^0.45.2",
58
58
  "emittery": "^2.0.0",
package/src/index.ts CHANGED
@@ -64,13 +64,21 @@ export type { SecretCipher, SecretEncryptionConfig } from './lib/secrets.ts'
64
64
 
65
65
  export {
66
66
  AppError,
67
+ ExternalSignInError,
67
68
  describeThrown,
68
69
  describeValidationIssue,
69
70
  internalErrorBody,
70
71
  toErrorBody,
71
72
  toErrorDetails,
72
73
  } from './lib/errors.ts'
73
- export type { ErrorBody, ErrorCode, ErrorDetail, ErrorStatus, ValidationIssue } from './lib/errors.ts'
74
+ export type {
75
+ ErrorBody,
76
+ ErrorCode,
77
+ ErrorDetail,
78
+ ErrorStatus,
79
+ ExternalSignInRefusal,
80
+ ValidationIssue,
81
+ } from './lib/errors.ts'
74
82
 
75
83
  export { createIdFactory, idPrefixes } from './lib/ids.ts'
76
84
  export type { IdFactory, ObjectKind } from './lib/ids.ts'
@@ -84,6 +92,9 @@ export {
84
92
  export type { CreateLoggerOptions, LogFields, Logger, LoggingDestination } from './lib/logger.ts'
85
93
 
86
94
  export type {
95
+ CompletedSignIn,
96
+ CompletedSignInAccount,
97
+ ExternalSignInHandler,
87
98
  KelpieModule,
88
99
  McpTool,
89
100
  McpToolDefinition,
@@ -91,6 +102,7 @@ export type {
91
102
  ModuleCatalogEntry,
92
103
  ModuleContext,
93
104
  SchemaContribution,
105
+ VerifiedIdentity,
94
106
  } from './runtime/module.ts'
95
107
 
96
108
  export { ModuleBootError, orderModules } from './runtime/order.ts'
package/src/lib/errors.ts CHANGED
@@ -83,6 +83,36 @@ export class AppError extends Error {
83
83
  }
84
84
  }
85
85
 
86
+ /**
87
+ * Why core refused an identity a module handed to `completeExternalSignIn`.
88
+ *
89
+ * A reason rather than a message, so a provider module can branch on it (to
90
+ * redirect somewhere useful, say) without matching on English text.
91
+ */
92
+ export type ExternalSignInRefusal = 'email_unverified' | 'unknown_identity'
93
+
94
+ /**
95
+ * An external sign-in core would not complete.
96
+ *
97
+ * An `AppError`, so an uncaught one still renders as the `api.md` body. No new
98
+ * `ErrorCode`: refusing an unverified identity is an ordinary `401`, and
99
+ * refusing to provision is an ordinary `403`.
100
+ */
101
+ export class ExternalSignInError extends AppError {
102
+ readonly reason: ExternalSignInRefusal
103
+
104
+ constructor(reason: ExternalSignInRefusal) {
105
+ super(
106
+ reason === 'email_unverified' ? 'unauthorized' : 'forbidden',
107
+ reason === 'email_unverified'
108
+ ? 'The identity provider did not verify this email address'
109
+ : 'No account exists for this identity',
110
+ )
111
+ this.name = 'ExternalSignInError'
112
+ this.reason = reason
113
+ }
114
+ }
115
+
86
116
  /**
87
117
  * Renders an `AppError` into the wire body from `api.md`. `details` is omitted
88
118
  * rather than sent as null when the error carries none.