@tapflowio/relay 0.24.0 → 0.26.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 (164) hide show
  1. package/dist/RelayServer.d.ts +51 -0
  2. package/dist/RelayServer.d.ts.map +1 -1
  3. package/dist/RelayServer.js +262 -31
  4. package/dist/RelayServer.js.map +1 -1
  5. package/dist/api/apps.d.ts.map +1 -1
  6. package/dist/api/apps.js +6 -16
  7. package/dist/api/apps.js.map +1 -1
  8. package/dist/api/auth.d.ts +1 -1
  9. package/dist/api/auth.d.ts.map +1 -1
  10. package/dist/api/auth.js +30 -19
  11. package/dist/api/auth.js.map +1 -1
  12. package/dist/api/builds.d.ts.map +1 -1
  13. package/dist/api/builds.js +7 -5
  14. package/dist/api/builds.js.map +1 -1
  15. package/dist/api/comments.d.ts.map +1 -1
  16. package/dist/api/comments.js +41 -15
  17. package/dist/api/comments.js.map +1 -1
  18. package/dist/api/invitations.d.ts +2 -0
  19. package/dist/api/invitations.d.ts.map +1 -1
  20. package/dist/api/invitations.js +17 -17
  21. package/dist/api/invitations.js.map +1 -1
  22. package/dist/api/passwordReset.d.ts +13 -2
  23. package/dist/api/passwordReset.d.ts.map +1 -1
  24. package/dist/api/passwordReset.js +47 -12
  25. package/dist/api/passwordReset.js.map +1 -1
  26. package/dist/api/team.d.ts +2 -2
  27. package/dist/api/team.d.ts.map +1 -1
  28. package/dist/api/team.js +15 -5
  29. package/dist/api/team.js.map +1 -1
  30. package/dist/api/tokens.d.ts +1 -1
  31. package/dist/api/tokens.d.ts.map +1 -1
  32. package/dist/api/tokens.js +33 -8
  33. package/dist/api/tokens.js.map +1 -1
  34. package/dist/api/webhooks.d.ts.map +1 -1
  35. package/dist/api/webhooks.js +11 -5
  36. package/dist/api/webhooks.js.map +1 -1
  37. package/dist/lib/adminAccount.d.ts +0 -5
  38. package/dist/lib/adminAccount.d.ts.map +1 -1
  39. package/dist/lib/adminAccount.js +6 -7
  40. package/dist/lib/adminAccount.js.map +1 -1
  41. package/dist/lib/clientAddress.d.ts +7 -0
  42. package/dist/lib/clientAddress.d.ts.map +1 -1
  43. package/dist/lib/clientAddress.js +15 -0
  44. package/dist/lib/clientAddress.js.map +1 -1
  45. package/dist/lib/connectionAuth.d.ts +58 -2
  46. package/dist/lib/connectionAuth.d.ts.map +1 -1
  47. package/dist/lib/connectionAuth.js +66 -6
  48. package/dist/lib/connectionAuth.js.map +1 -1
  49. package/dist/lib/email.d.ts +16 -0
  50. package/dist/lib/email.d.ts.map +1 -0
  51. package/dist/lib/email.js +18 -0
  52. package/dist/lib/email.js.map +1 -0
  53. package/dist/middleware/auth.d.ts +63 -4
  54. package/dist/middleware/auth.d.ts.map +1 -1
  55. package/dist/middleware/auth.js +127 -28
  56. package/dist/middleware/auth.js.map +1 -1
  57. package/dist/migrations/014_normalize_emails.sql +16 -0
  58. package/package.json +3 -3
  59. package/public/assets/AppCenter-DZCsC2wa.js +26 -0
  60. package/public/assets/AppCenter-DZCsC2wa.js.br +0 -0
  61. package/public/assets/AppCenter-DZCsC2wa.js.gz +0 -0
  62. package/public/assets/Default-xD9Fmd5X.js +1 -0
  63. package/public/assets/Default-xD9Fmd5X.js.br +0 -0
  64. package/public/assets/Default-xD9Fmd5X.js.gz +0 -0
  65. package/public/assets/Invite-29Erwv8j.js +1 -0
  66. package/public/assets/Invite-29Erwv8j.js.br +0 -0
  67. package/public/assets/Invite-29Erwv8j.js.gz +0 -0
  68. package/public/assets/{MacResources-fCn40Tf5.js → MacResources-B0DQ9ISE.js} +1 -1
  69. package/public/assets/MacResources-B0DQ9ISE.js.br +0 -0
  70. package/public/assets/MacResources-B0DQ9ISE.js.gz +0 -0
  71. package/public/assets/QASession-D-n6PXuD.js +150 -0
  72. package/public/assets/QASession-D-n6PXuD.js.br +0 -0
  73. package/public/assets/QASession-D-n6PXuD.js.gz +0 -0
  74. package/public/assets/{ResetPassword-D-SFg4ap.js → ResetPassword-BnPIwTYH.js} +1 -1
  75. package/public/assets/ResetPassword-BnPIwTYH.js.br +0 -0
  76. package/public/assets/ResetPassword-BnPIwTYH.js.gz +0 -0
  77. package/public/assets/{Setup-ULjvIfAi.js → Setup-DmUGFblg.js} +1 -1
  78. package/public/assets/Setup-DmUGFblg.js.br +0 -0
  79. package/public/assets/Setup-DmUGFblg.js.gz +0 -0
  80. package/public/assets/Team-BpvRgFfZ.js +6 -0
  81. package/public/assets/Team-BpvRgFfZ.js.br +0 -0
  82. package/public/assets/Team-BpvRgFfZ.js.gz +0 -0
  83. package/public/assets/Tokens-x6BtCcL7.js +1 -0
  84. package/public/assets/Tokens-x6BtCcL7.js.br +0 -0
  85. package/public/assets/Tokens-x6BtCcL7.js.gz +0 -0
  86. package/public/assets/alert-dialog-C8wDimW-.js +1 -0
  87. package/public/assets/alert-dialog-C8wDimW-.js.br +0 -0
  88. package/public/assets/alert-dialog-C8wDimW-.js.gz +0 -0
  89. package/public/assets/{badge-B4QAWrzA.js → badge-CWVbeuH3.js} +1 -1
  90. package/public/assets/badge-CWVbeuH3.js.br +0 -0
  91. package/public/assets/badge-CWVbeuH3.js.gz +0 -0
  92. package/public/assets/{build-format-CtmRXihN.js → build-format-fzt-JrUX.js} +1 -1
  93. package/public/assets/build-format-fzt-JrUX.js.br +0 -0
  94. package/public/assets/build-format-fzt-JrUX.js.gz +0 -0
  95. package/public/assets/{dialog-BAFN_ONP.js → dialog-DQkbaw8h.js} +3 -3
  96. package/public/assets/dialog-DQkbaw8h.js.br +0 -0
  97. package/public/assets/dialog-DQkbaw8h.js.gz +0 -0
  98. package/public/assets/{index-COOWQXpW.js → index-C1Fo8g_c.js} +33 -33
  99. package/public/assets/index-C1Fo8g_c.js.br +0 -0
  100. package/public/assets/index-C1Fo8g_c.js.gz +0 -0
  101. package/public/assets/index-C2F1AgwB.css +1 -0
  102. package/public/assets/index-C2F1AgwB.css.br +0 -0
  103. package/public/assets/{index-ozCdBYxk.css.gz → index-C2F1AgwB.css.gz} +0 -0
  104. package/public/assets/{list-view-Rrqp8TkG.js → list-view-DxI397-H.js} +1 -1
  105. package/public/assets/list-view-DxI397-H.js.br +0 -0
  106. package/public/assets/list-view-DxI397-H.js.gz +0 -0
  107. package/public/assets/{pencil-CAHyK7Qf.js → pencil-BJcOp3oN.js} +1 -1
  108. package/public/assets/pencil-BJcOp3oN.js.br +0 -0
  109. package/public/assets/pencil-BJcOp3oN.js.gz +0 -0
  110. package/public/assets/resource-health-Cq3gqqVd.js +1 -0
  111. package/public/assets/resource-health-Cq3gqqVd.js.br +0 -0
  112. package/public/assets/resource-health-Cq3gqqVd.js.gz +0 -0
  113. package/public/assets/{trash-CkO-5TRA.js → trash-DhBxh6H7.js} +1 -1
  114. package/public/assets/trash-DhBxh6H7.js.br +0 -0
  115. package/public/assets/trash-DhBxh6H7.js.gz +0 -0
  116. package/public/index.html +2 -2
  117. package/public/index.html.br +0 -0
  118. package/public/index.html.gz +0 -0
  119. package/public/assets/AppCenter-BHz6vh5p.js +0 -26
  120. package/public/assets/AppCenter-BHz6vh5p.js.br +0 -0
  121. package/public/assets/AppCenter-BHz6vh5p.js.gz +0 -0
  122. package/public/assets/Default-bCqU0Qz9.js +0 -1
  123. package/public/assets/Default-bCqU0Qz9.js.br +0 -0
  124. package/public/assets/Default-bCqU0Qz9.js.gz +0 -0
  125. package/public/assets/Invite-EVMTsuNz.js +0 -1
  126. package/public/assets/Invite-EVMTsuNz.js.br +0 -0
  127. package/public/assets/Invite-EVMTsuNz.js.gz +0 -0
  128. package/public/assets/MacResources-fCn40Tf5.js.br +0 -0
  129. package/public/assets/MacResources-fCn40Tf5.js.gz +0 -0
  130. package/public/assets/QASession-CL-eyFxG.js +0 -150
  131. package/public/assets/QASession-CL-eyFxG.js.br +0 -0
  132. package/public/assets/QASession-CL-eyFxG.js.gz +0 -0
  133. package/public/assets/ResetPassword-D-SFg4ap.js.br +0 -0
  134. package/public/assets/ResetPassword-D-SFg4ap.js.gz +0 -0
  135. package/public/assets/Setup-ULjvIfAi.js.br +0 -0
  136. package/public/assets/Setup-ULjvIfAi.js.gz +0 -0
  137. package/public/assets/Team-DH91GD4w.js +0 -6
  138. package/public/assets/Team-DH91GD4w.js.br +0 -0
  139. package/public/assets/Team-DH91GD4w.js.gz +0 -0
  140. package/public/assets/Tokens-DImLpOVZ.js +0 -1
  141. package/public/assets/Tokens-DImLpOVZ.js.br +0 -0
  142. package/public/assets/Tokens-DImLpOVZ.js.gz +0 -0
  143. package/public/assets/alert-dialog-CwcUyDZQ.js +0 -1
  144. package/public/assets/alert-dialog-CwcUyDZQ.js.br +0 -0
  145. package/public/assets/alert-dialog-CwcUyDZQ.js.gz +0 -0
  146. package/public/assets/badge-B4QAWrzA.js.br +0 -0
  147. package/public/assets/badge-B4QAWrzA.js.gz +0 -0
  148. package/public/assets/build-format-CtmRXihN.js.br +0 -0
  149. package/public/assets/build-format-CtmRXihN.js.gz +0 -0
  150. package/public/assets/dialog-BAFN_ONP.js.br +0 -0
  151. package/public/assets/dialog-BAFN_ONP.js.gz +0 -0
  152. package/public/assets/index-COOWQXpW.js.br +0 -0
  153. package/public/assets/index-COOWQXpW.js.gz +0 -0
  154. package/public/assets/index-ozCdBYxk.css +0 -1
  155. package/public/assets/index-ozCdBYxk.css.br +0 -0
  156. package/public/assets/list-view-Rrqp8TkG.js.br +0 -0
  157. package/public/assets/list-view-Rrqp8TkG.js.gz +0 -0
  158. package/public/assets/pencil-CAHyK7Qf.js.br +0 -0
  159. package/public/assets/pencil-CAHyK7Qf.js.gz +0 -0
  160. package/public/assets/resource-health-BRpSwarg.js +0 -1
  161. package/public/assets/resource-health-BRpSwarg.js.br +0 -0
  162. package/public/assets/resource-health-BRpSwarg.js.gz +0 -0
  163. package/public/assets/trash-CkO-5TRA.js.br +0 -0
  164. package/public/assets/trash-CkO-5TRA.js.gz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"builds.d.ts","sourceRoot":"","sources":["../../src/api/builds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builds.d.ts","sourceRoot":"","sources":["../../src/api/builds.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAQvB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAWhC,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAEzF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAQ7D;AAsBD,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,CAAA;AA6CD,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQjE;AA0BD,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQjE;AAQD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAE/D;AAED,yIAAyI;AACzI,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CA6BxC;AAED,oIAAoI;AACpI,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAC/C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAClD,SAAS,EAAE,OAAO,CAAA;CACnB,CAcA;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAA;AAElC;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,EAC5B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACrH,WAAW,CAsBb;AA+CD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkBrF;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CA+C1F;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAaN;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAiEf;AAID,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAWN;AAGD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAMN;AAcD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgD3E;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CA6IN;AAkBD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAkClF"}
@@ -6,7 +6,7 @@ import { randomUUID } from 'crypto';
6
6
  import { spawnSync } from 'child_process';
7
7
  import busboy from 'busboy';
8
8
  import { getDb } from '../db.js';
9
- import { requireAuth, requireBuildAuth } from '../middleware/auth.js';
9
+ import { assertCanWrite, requireAuth, requireBuildAuth } from '../middleware/auth.js';
10
10
  import { json, readJson } from '../router.js';
11
11
  import { unlinkSafe } from '../lib/uploads.js';
12
12
  import { deliverWebhooks } from '../lib/webhooks.js';
@@ -347,7 +347,7 @@ export function handleGetBuild(req, res, params) {
347
347
  }
348
348
  export async function handleUpdateBuild(req, res, params) {
349
349
  const auth = requireAuth(req, res);
350
- if (!auth)
350
+ if (!auth || !assertCanWrite(res, auth.userId))
351
351
  return;
352
352
  // Parse the body before reading current state, so the SELECT and UPDATE below run
353
353
  // with no await between them. Closes a TOCTOU window where two concurrent PATCHes
@@ -411,7 +411,8 @@ export async function handleUpdateBuild(req, res, params) {
411
411
  // Schedule deletion: an explicit, manual action that puts the build on the purge
412
412
  // clock (delete_after = now + TTL). Orthogonal to status_label (issue #258).
413
413
  export function handleScheduleBuildDeletion(req, res, params) {
414
- if (!requireAuth(req, res))
414
+ const auth = requireAuth(req, res);
415
+ if (!auth || !assertCanWrite(res, auth.userId))
415
416
  return;
416
417
  const db = getDb();
417
418
  const result = db
@@ -425,7 +426,8 @@ export function handleScheduleBuildDeletion(req, res, params) {
425
426
  }
426
427
  // Cancel a scheduled deletion: take the build back off the purge clock.
427
428
  export function handleCancelBuildDeletion(req, res, params) {
428
- if (!requireAuth(req, res))
429
+ const auth = requireAuth(req, res);
430
+ if (!auth || !assertCanWrite(res, auth.userId))
429
431
  return;
430
432
  const result = getDb().prepare('UPDATE builds SET delete_after = NULL WHERE id = ?').run(params.id);
431
433
  if (result.changes === 0)
@@ -502,7 +504,7 @@ export async function validateTarGz(tarPath) {
502
504
  }
503
505
  export function handleUploadBuild(req, res, uploadsDir) {
504
506
  const auth = requireBuildAuth(req, res);
505
- if (!auth)
507
+ if (!auth || !assertCanWrite(res, auth.userId))
506
508
  return;
507
509
  const bb = busboy({ headers: req.headers, limits: { fileSize: maxBuildUploadBytes() } });
508
510
  const fields = {};
@@ -1 +1 @@
1
- {"version":3,"file":"builds.js","sourceRoot":"","sources":["../../src/api/builds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builds.js","sourceRoot":"","sources":["../../src/api/builds.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/api/comments.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CA0C5F;AAQD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CAoEN;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAeN"}
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/api/comments.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CA0C5F;AAQD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CAqFN;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAkBN"}
@@ -2,7 +2,7 @@ import fs from 'fs';
2
2
  import path from 'path';
3
3
  import busboy from 'busboy';
4
4
  import { getDb } from '../db.js';
5
- import { requireAuth } from '../middleware/auth.js';
5
+ import { currentRole, requireAuth, requireBuildAuth } from '../middleware/auth.js';
6
6
  import { json } from '../router.js';
7
7
  import { unlinkSafe } from '../lib/uploads.js';
8
8
  export function handleListComments(req, res) {
@@ -51,7 +51,9 @@ function maxCommentAttachmentBytes() {
51
51
  return Number.isFinite(v) && v > 0 ? v : 5 * 1024 * 1024;
52
52
  }
53
53
  export function handleCreateComment(req, res, uploadsDir) {
54
- const auth = requireAuth(req, res);
54
+ // Build auth, not cookie-only: CI posts build metadata here with the same PAT it uploaded with
55
+ // (docs/operate/ci-distribution.md), so a `builds:write` PAT has to be accepted.
56
+ const auth = requireBuildAuth(req, res);
55
57
  if (!auth)
56
58
  return;
57
59
  const bb = busboy({ headers: req.headers, limits: { fileSize: maxCommentAttachmentBytes() } });
@@ -93,18 +95,38 @@ export function handleCreateComment(req, res, uploadsDir) {
93
95
  return json(res, 400, { error: 'build_id and body required' });
94
96
  }
95
97
  const db = getDb();
96
- const commentResult = db.prepare("INSERT INTO comments (build_id, author_id, body, created_at) VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))").run(fields.build_id, auth.userId, fields.body.trim());
97
- const commentId = commentResult.lastInsertRowid;
98
- if (attachmentPath) {
99
- const size = fs.statSync(attachmentPath).size;
100
- db.prepare('INSERT INTO comment_attachments (comment_id, file_path, mime, size) VALUES (?, ?, ?, ?)').run(commentId, attachmentPath, attachmentMime, size);
98
+ // Checked here rather than left to the FK, so an unknown build gets a 404 rather than the 500 below.
99
+ if (!db.prepare('SELECT 1 FROM builds WHERE id = ?').get(fields.build_id)) {
100
+ if (attachmentPath)
101
+ unlinkSafe(attachmentPath, 'rejected attachment');
102
+ return json(res, 404, { error: 'Build not found' });
103
+ }
104
+ // This listener is async, so anything thrown in it is an unhandled rejection, and the CLI exits the
105
+ // relay on one. It can throw: author_id is a FK too, and a member an Admin removed keeps a valid
106
+ // cookie until it expires. One transaction, so a failed attachment row leaves no comment behind.
107
+ try {
108
+ const commentId = db.transaction(() => {
109
+ const id = db.prepare("INSERT INTO comments (build_id, author_id, body, created_at) VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))").run(fields.build_id, auth.userId, fields.body.trim()).lastInsertRowid;
110
+ if (attachmentPath) {
111
+ const size = fs.statSync(attachmentPath).size;
112
+ db.prepare('INSERT INTO comment_attachments (comment_id, file_path, mime, size) VALUES (?, ?, ?, ?)').run(id, attachmentPath, attachmentMime, size);
113
+ }
114
+ return id;
115
+ })();
116
+ const comment = db.prepare(`
117
+ SELECT c.id, c.body, c.created_at,
118
+ COALESCE(u.display_name, substr(u.email, 1, instr(u.email, '@') - 1)) as author
119
+ FROM comments c JOIN users u ON u.id = c.author_id
120
+ WHERE c.id = ?
121
+ `).get(commentId);
122
+ json(res, 201, comment);
123
+ }
124
+ catch {
125
+ if (attachmentPath)
126
+ unlinkSafe(attachmentPath, 'failed comment attachment');
127
+ if (!res.headersSent)
128
+ json(res, 500, { error: 'Could not save the comment' });
101
129
  }
102
- const comment = db.prepare(`
103
- SELECT c.id, c.body, c.created_at, u.display_name as author
104
- FROM comments c JOIN users u ON u.id = c.author_id
105
- WHERE c.id = ?
106
- `).get(commentId);
107
- json(res, 201, comment);
108
130
  });
109
131
  bb.on('error', () => json(res, 500, { error: 'Upload failed' }));
110
132
  req.pipe(bb);
@@ -117,8 +139,12 @@ export function handleDeleteComment(req, res, params) {
117
139
  const comment = db.prepare('SELECT author_id FROM comments WHERE id = ?').get(params.id);
118
140
  if (!comment)
119
141
  return json(res, 404, { error: 'Comment not found' });
120
- const user = db.prepare('SELECT role FROM users WHERE id = ?').get(auth.userId);
121
- if (comment.author_id !== auth.userId && user.role !== 'Admin') {
142
+ // A removed member's cookie outlives their row; `currentRole` answers 401 for that instead of the
143
+ // TypeError a missing row used to throw here.
144
+ const role = currentRole(res, auth.userId);
145
+ if (role === null)
146
+ return;
147
+ if (comment.author_id !== auth.userId && role !== 'Admin') {
122
148
  return json(res, 403, { error: 'Forbidden' });
123
149
  }
124
150
  db.prepare('DELETE FROM comments WHERE id = ?').run(params.id);
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/api/comments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,MAAM,UAAU,kBAAkB,CAAC,GAAyB,EAAE,GAAwB;IACpF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI;QAAE,OAAM;IAEjB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAChF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAEnE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;GAQ3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEf,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAK9B,CAAC,CAAC,GAAG,CAAC,OAAO,CAA0E,CAAA;IAExF,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAA;IACvD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACjE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,MAAM,GAAI,QAA+G;SAC5H,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,GAAG,CAAC;QACJ,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,qBAAqB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;YAC5D,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC;KACJ,CAAC,CAAC,CAAA;IAEL,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AACxB,CAAC;AAED,4DAA4D;AAC5D,SAAS,yBAAyB;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAyB,EACzB,GAAwB,EACxB,UAAkB;IAElB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI;QAAE,OAAM;IAEjB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9F,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,IAAI,cAAc,GAAG,EAAE,CAAA;IACvB,IAAI,cAAc,GAAG,EAAE,CAAA;IACvB,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAEnD,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA,CAAC,CAAC,CAAC,CAAA;IAErD,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAAC,OAAM;QAAC,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;QAChG,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;QACtC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC5D,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE/D,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;QAC/C,YAAY,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACxB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QACF,qDAAqD;QACrD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACzB,wCAAwC;QACxC,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,cAAc;gBAAE,UAAU,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACrE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAA;QAC9E,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;QAClB,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B,sHAAsH,CACvH,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAEvD,MAAM,SAAS,GAAG,aAAa,CAAC,eAAyB,CAAA;QAEzD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAA;YAC7C,EAAE,CAAC,OAAO,CACR,yFAAyF,CAC1F,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;;;;KAI1B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAEjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAA;IAChE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAyB,EACzB,GAAwB,EACxB,MAA8B;IAE9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI;QAAE,OAAM;IAEjB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAsC,CAAA;IAC7H,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAEnE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAqB,CAAA;IACnG,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/api/comments.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import http from 'http';
2
2
  export declare function handleVerify(req: http.IncomingMessage, res: http.ServerResponse): void;
3
3
  export declare function handleAccept(req: http.IncomingMessage, res: http.ServerResponse, uploadsDir: string): void;
4
+ /** Whether an address already belongs to a member, however it was capitalized or spaced when stored. */
5
+ export declare function isMemberEmail(email: string): boolean;
4
6
  //# sourceMappingURL=invitations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../src/api/invitations.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAUvB,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAYtF;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CA4EN"}
1
+ {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../src/api/invitations.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAWvB,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAYtF;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CAwEN;AAED,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -3,7 +3,8 @@ import path from 'path';
3
3
  import crypto from 'crypto';
4
4
  import busboy from 'busboy';
5
5
  import { getDb } from '../db.js';
6
- import { signJwt } from '../middleware/auth.js';
6
+ import { sessionCookie } from '../middleware/auth.js';
7
+ import { normalizeEmail, EMAIL_KEY_SQL, SYNTHETIC_EMAIL_DOMAIN } from '../lib/email.js';
7
8
  import { makePasswordHash } from './auth.js';
8
9
  import { json } from '../router.js';
9
10
  export function handleVerify(req, res) {
@@ -13,7 +14,7 @@ export function handleVerify(req, res) {
13
14
  const db = getDb();
14
15
  const inv = db.prepare(`
15
16
  SELECT role FROM invitations
16
- WHERE token = ? AND used_at IS NULL AND expires_at > datetime('now')
17
+ WHERE token = ? AND used_at IS NULL AND datetime(expires_at) > datetime('now')
17
18
  `).get(token);
18
19
  if (!inv)
19
20
  return json(res, 410, { error: 'Invitation expired or not found' });
@@ -56,25 +57,21 @@ export function handleAccept(req, res, uploadsDir) {
56
57
  const db = getDb();
57
58
  const inv = db.prepare(`
58
59
  SELECT id, email, role FROM invitations
59
- WHERE token = ? AND used_at IS NULL AND expires_at > datetime('now')
60
+ WHERE token = ? AND used_at IS NULL AND datetime(expires_at) > datetime('now')
60
61
  `).get(token);
61
62
  if (!inv)
62
63
  return json(res, 410, { error: 'Invitation expired or not found' });
63
64
  const passwordHash = makePasswordHash(password);
64
65
  const displayName = fields.display_name?.trim() || (inv.email?.split('@')[0] ?? 'User');
65
- let userId;
66
- const existing = inv.email
67
- ? db.prepare('SELECT id FROM users WHERE email = ?').get(inv.email)
68
- : undefined;
69
- if (existing) {
70
- db.prepare('UPDATE users SET password_hash = ?, role = ?, display_name = ? WHERE id = ?')
71
- .run(passwordHash, inv.role, displayName, existing.id);
72
- userId = existing.id;
73
- }
74
- else {
75
- const result = db.prepare('INSERT INTO users (email, role, password_hash, display_name) VALUES (?, ?, ?, ?)').run(inv.email ?? `user_${crypto.randomBytes(4).toString('hex')}@tapflow.local`, inv.role, passwordHash, displayName);
76
- userId = result.lastInsertRowid;
66
+ // An invitation creates an account; it never changes one. Accepting for an address that already
67
+ // has an account used to overwrite that account's password, role and name — an invite link worked
68
+ // as a password reset nobody approved. The address may have joined since the invitation was made,
69
+ // so this is checked here as well as when inviting.
70
+ if (inv.email && isMemberEmail(inv.email)) {
71
+ return json(res, 409, { error: 'This email already has an account. Sign in instead.' });
77
72
  }
73
+ const result = db.prepare('INSERT INTO users (email, role, password_hash, display_name) VALUES (?, ?, ?, ?)').run(inv.email ? normalizeEmail(inv.email) : `user_${crypto.randomBytes(4).toString('hex')}${SYNTHETIC_EMAIL_DOMAIN}`, inv.role, passwordHash, displayName);
74
+ const userId = result.lastInsertRowid;
78
75
  if (fileBuffer && fileMime) {
79
76
  const ext = fileMime === 'image/png' ? '.png' : '.jpg';
80
77
  const avatarPath = path.join(uploadsDir, 'avatars', `user-${userId}${ext}`);
@@ -84,12 +81,15 @@ export function handleAccept(req, res, uploadsDir) {
84
81
  }
85
82
  db.prepare("UPDATE invitations SET used_at = datetime('now') WHERE id = ?").run(inv.id);
86
83
  const user = db.prepare('SELECT email, role FROM users WHERE id = ?').get(userId);
87
- const jwtToken = signJwt({ userId, email: user.email, role: user.role });
88
- const cookie = `tapflow_token=${jwtToken}; HttpOnly; Path=/; SameSite=Lax; Max-Age=${7 * 24 * 3600}`;
84
+ const cookie = sessionCookie({ userId, email: user.email, role: user.role });
89
85
  res.writeHead(200, { 'Content-Type': 'application/json', 'Set-Cookie': cookie });
90
86
  res.end(JSON.stringify({ ok: true }));
91
87
  });
92
88
  bb.on('error', () => json(res, 500, { error: 'Failed to process request' }));
93
89
  req.pipe(bb);
94
90
  }
91
+ /** Whether an address already belongs to a member, however it was capitalized or spaced when stored. */
92
+ export function isMemberEmail(email) {
93
+ return getDb().prepare(`SELECT 1 FROM users WHERE ${EMAIL_KEY_SQL} = ?`).get(normalizeEmail(email)) !== undefined;
94
+ }
95
95
  //# sourceMappingURL=invitations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../src/api/invitations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../src/api/invitations.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,19 @@ import { type TapflowConfig } from '../lib/config.js';
3
3
  import { type TunnelRuntime } from '../lib/publicUrl.js';
4
4
  export declare function buildPasswordResetUrl(token: string, cfg: Pick<TapflowConfig, 'tunnel' | 'relay' | 'local'>, tunnel?: TunnelRuntime): string;
5
5
  export declare function passwordResetLinkWarning(url: string): string | null;
6
- export declare function sendPasswordResetEmail(userId: number, tunnel?: TunnelRuntime): Promise<boolean>;
6
+ /**
7
+ * Issues a reset link for a member and mails it when mail can reach them. Returns the token either way:
8
+ * the Admin who asked also gets the link, as with an invitation, so an install without SMTP can still
9
+ * reset a password.
10
+ *
11
+ * Only the newest link works. The earlier unused ones are spent here, so a link sent to the wrong place
12
+ * is dead as soon as the Admin makes another.
13
+ */
14
+ export declare function issuePasswordReset(userId: number, tunnel?: TunnelRuntime): Promise<{
15
+ token: string;
16
+ emailSent: boolean;
17
+ } | null>;
7
18
  export declare function handleVerifyReset(req: http.IncomingMessage, res: http.ServerResponse): void;
8
- export declare function handleDoReset(req: http.IncomingMessage, res: http.ServerResponse): Promise<void>;
19
+ export declare function handleDoReset(req: http.IncomingMessage, res: http.ServerResponse, onAuthChanged?: () => void): Promise<void>;
9
20
  export declare function handleSendMemberReset(req: http.IncomingMessage, res: http.ServerResponse, params: Record<string, string>, tunnel?: TunnelRuntime): Promise<void>;
10
21
  //# sourceMappingURL=passwordReset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"passwordReset.d.ts","sourceRoot":"","sources":["../../src/api/passwordReset.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAQvB,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAO5E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,EACtD,MAAM,CAAC,EAAE,aAAa,GACrB,MAAM,CAER;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBrG;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAY3F;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtG;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"passwordReset.d.ts","sourceRoot":"","sources":["../../src/api/passwordReset.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAQvB,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAA0D,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAQhH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,EACtD,MAAM,CAAC,EAAE,aAAa,GACrB,MAAM,CAER;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CA4BvD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAY3F;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,aAAa,GAAE,MAAM,IAAe,GACnC,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -6,7 +6,8 @@ import { makePasswordHash } from './auth.js';
6
6
  import { sendMail } from '../lib/mailer.js';
7
7
  import { json, readJson } from '../router.js';
8
8
  import { config } from '../lib/config.js';
9
- import { buildInviteBaseUrl } from '../lib/publicUrl.js';
9
+ import { buildInviteBaseUrl, forTeammates, resolvePublicBaseUrl } from '../lib/publicUrl.js';
10
+ import { SYNTHETIC_EMAIL_DOMAIN } from '../lib/email.js';
10
11
  const logger = createLogger('relay:password-reset');
11
12
  const INSECURE_RESET_LINK_WARNING = 'Password-reset email uses insecure HTTP. Reset tokens may be exposed in transit; configure HTTPS with tunnel.publicUrl or relay.url.';
12
13
  let warnedInsecureResetLink = false;
@@ -16,14 +17,29 @@ export function buildPasswordResetUrl(token, cfg, tunnel) {
16
17
  export function passwordResetLinkWarning(url) {
17
18
  return /^https:\/\//i.test(url) ? null : INSECURE_RESET_LINK_WARNING;
18
19
  }
19
- export async function sendPasswordResetEmail(userId, tunnel) {
20
+ /**
21
+ * Issues a reset link for a member and mails it when mail can reach them. Returns the token either way:
22
+ * the Admin who asked also gets the link, as with an invitation, so an install without SMTP can still
23
+ * reset a password.
24
+ *
25
+ * Only the newest link works. The earlier unused ones are spent here, so a link sent to the wrong place
26
+ * is dead as soon as the Admin makes another.
27
+ */
28
+ export async function issuePasswordReset(userId, tunnel) {
20
29
  const db = getDb();
21
30
  const user = db.prepare('SELECT id, email FROM users WHERE id = ?').get(userId);
22
31
  if (!user)
23
- return false;
32
+ return null;
24
33
  const token = crypto.randomBytes(32).toString('hex');
25
34
  const expiresAt = new Date(Date.now() + 2 * 60 * 60 * 1000).toISOString();
26
- db.prepare('INSERT INTO password_reset_tokens (user_id, token, expires_at) VALUES (?, ?, ?)').run(userId, token, expiresAt);
35
+ db.transaction(() => {
36
+ db.prepare("UPDATE password_reset_tokens SET used_at = datetime('now') WHERE user_id = ? AND used_at IS NULL").run(userId);
37
+ db.prepare('INSERT INTO password_reset_tokens (user_id, token, expires_at) VALUES (?, ?, ?)').run(userId, token, expiresAt);
38
+ })();
39
+ // A member invited without an email has a made-up `@tapflow.local` address. An SMTP server may well
40
+ // accept mail for it, which would report "sent" for a message nobody can receive.
41
+ if (user.email.endsWith(SYNTHETIC_EMAIL_DOMAIN))
42
+ return { token, emailSent: false };
27
43
  const link = buildPasswordResetUrl(token, config, tunnel);
28
44
  const warning = passwordResetLinkWarning(link);
29
45
  if (warning !== null && !warnedInsecureResetLink) {
@@ -33,7 +49,7 @@ export async function sendPasswordResetEmail(userId, tunnel) {
33
49
  const html = `<p>A password reset was requested for your tapflow account.</p>
34
50
  <p><a href="${link}">Reset your password</a></p>
35
51
  <p>This link expires in 2 hours. If you did not request this, ignore this email.</p>`;
36
- return sendMail(user.email, 'Reset your tapflow password', html);
52
+ return { token, emailSent: await sendMail(user.email, 'Reset your tapflow password', html) };
37
53
  }
38
54
  export function handleVerifyReset(req, res) {
39
55
  const token = new URL(req.url ?? '/', 'http://x').searchParams.get('token');
@@ -42,13 +58,13 @@ export function handleVerifyReset(req, res) {
42
58
  const db = getDb();
43
59
  const row = db.prepare(`
44
60
  SELECT id FROM password_reset_tokens
45
- WHERE token = ? AND used_at IS NULL AND expires_at > datetime('now')
61
+ WHERE token = ? AND used_at IS NULL AND datetime(expires_at) > datetime('now')
46
62
  `).get(token);
47
63
  if (!row)
48
64
  return json(res, 410, { error: 'Token expired or not found' });
49
65
  json(res, 200, { ok: true });
50
66
  }
51
- export async function handleDoReset(req, res) {
67
+ export async function handleDoReset(req, res, onAuthChanged = () => { }) {
52
68
  const body = await readJson(req);
53
69
  if (!body.token || !body.password)
54
70
  return json(res, 400, { error: 'token and password required' });
@@ -57,12 +73,24 @@ export async function handleDoReset(req, res) {
57
73
  const db = getDb();
58
74
  const row = db.prepare(`
59
75
  SELECT id, user_id FROM password_reset_tokens
60
- WHERE token = ? AND used_at IS NULL AND expires_at > datetime('now')
76
+ WHERE token = ? AND used_at IS NULL AND datetime(expires_at) > datetime('now')
61
77
  `).get(body.token);
62
78
  if (!row)
63
79
  return json(res, 410, { error: 'Token expired or not found' });
64
- db.prepare('UPDATE users SET password_hash = ? WHERE id = ?').run(makePasswordHash(body.password), row.user_id);
65
- db.prepare("UPDATE password_reset_tokens SET used_at = datetime('now') WHERE id = ?").run(row.id);
80
+ db.transaction(() => {
81
+ db.prepare('UPDATE users SET password_hash = ? WHERE id = ?').run(makePasswordHash(body.password), row.user_id);
82
+ // Every outstanding link for this user, not only the one used: the password they unlock is gone.
83
+ db.prepare("UPDATE password_reset_tokens SET used_at = datetime('now') WHERE user_id = ? AND used_at IS NULL").run(row.user_id);
84
+ // A reset is how an account is recovered, and whoever held it may have minted tokens that a new
85
+ // password alone would leave working. So a reset revokes all of them, CI and agent tokens included;
86
+ // the owner issues new ones. A self-service change does not: it needs the current password, and
87
+ // revoking there would break the owner's own CI without warning.
88
+ db.prepare('DELETE FROM personal_access_tokens WHERE user_id = ?').run(row.user_id);
89
+ })();
90
+ // The new hash has already ended the user's sessions (`passwordVersion`) and the tokens are gone;
91
+ // this closes their open sockets, token-authenticated agents included, now rather than on the next
92
+ // heartbeat.
93
+ onAuthChanged();
66
94
  json(res, 200, { ok: true });
67
95
  }
68
96
  export async function handleSendMemberReset(req, res, params, tunnel) {
@@ -73,7 +101,14 @@ export async function handleSendMemberReset(req, res, params, tunnel) {
73
101
  const member = db.prepare('SELECT id FROM users WHERE id = ?').get(params.id);
74
102
  if (!member)
75
103
  return json(res, 404, { error: 'Member not found' });
76
- const emailSent = await sendPasswordResetEmail(member.id, tunnel);
77
- json(res, 200, { ok: true, emailSent });
104
+ const issued = await issuePasswordReset(member.id, tunnel);
105
+ if (!issued)
106
+ return json(res, 404, { error: 'Member not found' });
107
+ // The same rule as an invitation's `inviteUrl` (#788): null when the only address is a loopback one,
108
+ // and the dashboard builds the link from the browser's origin with `token` instead.
109
+ const resetUrl = forTeammates(resolvePublicBaseUrl(config, tunnel)) === null
110
+ ? null
111
+ : buildPasswordResetUrl(issued.token, config, tunnel);
112
+ json(res, 200, { ok: true, emailSent: issued.emailSent, token: issued.token, resetUrl });
78
113
  }
79
114
  //# sourceMappingURL=passwordReset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"passwordReset.js","sourceRoot":"","sources":["../../src/api/passwordReset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"passwordReset.js","sourceRoot":"","sources":["../../src/api/passwordReset.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ import http from 'http';
2
2
  import { type TunnelRuntime } from '../lib/publicUrl.js';
3
3
  export declare function handleListMembers(req: http.IncomingMessage, res: http.ServerResponse): void;
4
4
  export declare function handleInvite(req: http.IncomingMessage, res: http.ServerResponse, tunnel?: TunnelRuntime): Promise<void>;
5
- export declare function handleUpdateMember(req: http.IncomingMessage, res: http.ServerResponse, params: Record<string, string>): Promise<void>;
6
- export declare function handleDeleteMember(req: http.IncomingMessage, res: http.ServerResponse, params: Record<string, string>): void;
5
+ export declare function handleUpdateMember(req: http.IncomingMessage, res: http.ServerResponse, params: Record<string, string>, onAuthChanged?: () => void): Promise<void>;
6
+ export declare function handleDeleteMember(req: http.IncomingMessage, res: http.ServerResponse, params: Record<string, string>, onAuthChanged?: () => void): void;
7
7
  //# sourceMappingURL=team.d.ts.map