@atproto/pds 0.4.58 → 0.4.60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/actor-store/repo/sql-repo-reader.d.ts.map +1 -1
  3. package/dist/actor-store/repo/sql-repo-reader.js +2 -5
  4. package/dist/actor-store/repo/sql-repo-reader.js.map +1 -1
  5. package/dist/api/app/bsky/actor/getProfile.d.ts.map +1 -1
  6. package/dist/api/app/bsky/actor/getProfile.js +2 -9
  7. package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
  8. package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
  9. package/dist/api/app/bsky/actor/getProfiles.js +2 -6
  10. package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
  11. package/dist/api/app/bsky/feed/getActorLikes.d.ts.map +1 -1
  12. package/dist/api/app/bsky/feed/getActorLikes.js +2 -9
  13. package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
  14. package/dist/api/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
  15. package/dist/api/app/bsky/feed/getAuthorFeed.js +2 -9
  16. package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
  17. package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
  18. package/dist/api/app/bsky/feed/getFeed.js +2 -1
  19. package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
  20. package/dist/api/app/bsky/feed/getPostThread.d.ts.map +1 -1
  21. package/dist/api/app/bsky/feed/getPostThread.js +12 -14
  22. package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
  23. package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
  24. package/dist/api/app/bsky/feed/getTimeline.js +2 -6
  25. package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
  26. package/dist/api/com/atproto/repo/getRecord.js +1 -1
  27. package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
  28. package/dist/api/com/atproto/server/requestPasswordReset.js +1 -1
  29. package/dist/api/com/atproto/server/requestPasswordReset.js.map +1 -1
  30. package/dist/config/config.d.ts +9 -0
  31. package/dist/config/config.d.ts.map +1 -1
  32. package/dist/config/config.js +10 -1
  33. package/dist/config/config.js.map +1 -1
  34. package/dist/config/env.d.ts +6 -1
  35. package/dist/config/env.d.ts.map +1 -1
  36. package/dist/config/env.js +8 -1
  37. package/dist/config/env.js.map +1 -1
  38. package/dist/context.d.ts +6 -2
  39. package/dist/context.d.ts.map +1 -1
  40. package/dist/context.js +55 -11
  41. package/dist/context.js.map +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/lexicon/lexicons.d.ts +77 -0
  46. package/dist/lexicon/lexicons.d.ts.map +1 -1
  47. package/dist/lexicon/lexicons.js +86 -3
  48. package/dist/lexicon/lexicons.js.map +1 -1
  49. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +16 -0
  50. package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
  51. package/dist/lexicon/types/app/bsky/actor/defs.js +9 -1
  52. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  53. package/dist/lexicon/types/app/bsky/actor/profile.d.ts +1 -0
  54. package/dist/lexicon/types/app/bsky/actor/profile.d.ts.map +1 -1
  55. package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
  56. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +13 -2
  57. package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
  58. package/dist/lexicon/types/app/bsky/feed/defs.js +21 -1
  59. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  60. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts +1 -0
  61. package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
  62. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts +2 -0
  63. package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +1 -1
  64. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts +2 -0
  65. package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts.map +1 -1
  66. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +2 -0
  67. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  68. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  69. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +3 -0
  70. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  71. package/dist/mailer/index.d.ts +1 -1
  72. package/dist/mailer/index.d.ts.map +1 -1
  73. package/dist/mailer/index.js.map +1 -1
  74. package/dist/mailer/templates/confirm-email.js +1 -1
  75. package/dist/mailer/templates/confirm-email.js.map +2 -2
  76. package/dist/mailer/templates/delete-account.js +1 -1
  77. package/dist/mailer/templates/delete-account.js.map +2 -2
  78. package/dist/mailer/templates/plc-operation.js +1 -1
  79. package/dist/mailer/templates/plc-operation.js.map +2 -2
  80. package/dist/mailer/templates/reset-password.js +1 -1
  81. package/dist/mailer/templates/reset-password.js.map +2 -2
  82. package/dist/mailer/templates/update-email.js +1 -1
  83. package/dist/mailer/templates/update-email.js.map +2 -2
  84. package/dist/pipethrough.d.ts +26 -26
  85. package/dist/pipethrough.d.ts.map +1 -1
  86. package/dist/pipethrough.js +328 -228
  87. package/dist/pipethrough.js.map +1 -1
  88. package/dist/read-after-write/util.d.ts +13 -5
  89. package/dist/read-after-write/util.d.ts.map +1 -1
  90. package/dist/read-after-write/util.js +37 -22
  91. package/dist/read-after-write/util.js.map +1 -1
  92. package/package.json +16 -15
  93. package/src/actor-store/repo/sql-repo-reader.ts +3 -6
  94. package/src/api/app/bsky/actor/getProfile.ts +3 -17
  95. package/src/api/app/bsky/actor/getProfiles.ts +3 -15
  96. package/src/api/app/bsky/feed/getActorLikes.ts +3 -19
  97. package/src/api/app/bsky/feed/getAuthorFeed.ts +3 -17
  98. package/src/api/app/bsky/feed/getFeed.ts +3 -1
  99. package/src/api/app/bsky/feed/getPostThread.ts +16 -23
  100. package/src/api/app/bsky/feed/getTimeline.ts +3 -14
  101. package/src/api/com/atproto/repo/getRecord.ts +1 -1
  102. package/src/api/com/atproto/server/requestPasswordReset.ts +1 -1
  103. package/src/config/config.ts +21 -1
  104. package/src/config/env.ts +20 -2
  105. package/src/context.ts +62 -17
  106. package/src/index.ts +1 -0
  107. package/src/lexicon/lexicons.ts +92 -3
  108. package/src/lexicon/types/app/bsky/actor/defs.ts +25 -0
  109. package/src/lexicon/types/app/bsky/actor/profile.ts +1 -0
  110. package/src/lexicon/types/app/bsky/feed/defs.ts +38 -2
  111. package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +1 -0
  112. package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +2 -0
  113. package/src/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.ts +2 -0
  114. package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -0
  115. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +3 -0
  116. package/src/mailer/index.ts +1 -1
  117. package/src/mailer/templates/confirm-email.hbs +106 -336
  118. package/src/mailer/templates/delete-account.hbs +110 -346
  119. package/src/mailer/templates/plc-operation.hbs +107 -338
  120. package/src/mailer/templates/reset-password.d.ts +1 -1
  121. package/src/mailer/templates/reset-password.hbs +108 -344
  122. package/src/mailer/templates/update-email.hbs +107 -337
  123. package/src/pipethrough.ts +489 -233
  124. package/src/read-after-write/util.ts +58 -32
  125. package/tests/account-deletion.test.ts +1 -1
  126. package/tests/account.test.ts +2 -2
  127. package/tests/email-confirmation.test.ts +2 -2
  128. package/tests/plc-operations.test.ts +1 -1
  129. package/tests/proxied/proxy-catchall.test.ts +255 -0
  130. package/tests/proxied/proxy-header.test.ts +31 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pipethrough.js","sourceRoot":"","sources":["../src/pipethrough.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipethrough.js","sourceRoot":"","sources":["../src/pipethrough.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
- import { Headers } from '@atproto/xrpc';
1
+ /// <reference types="node" />
2
+ import { HeadersMap } from '@atproto/xrpc';
3
+ import { HandlerPipeThrough } from '@atproto/xrpc-server';
4
+ import express from 'express';
2
5
  import AppContext from '../context';
3
6
  import { HandlerResponse, LocalRecords, MungeFn } from './types';
4
- import { HandlerPipeThrough } from '@atproto/xrpc-server';
5
- export declare const getRepoRev: (headers: Headers) => string | undefined;
7
+ export declare const getRepoRev: (headers: HeadersMap) => string | undefined;
6
8
  export declare const getLocalLag: (local: LocalRecords) => number | undefined;
7
- export declare const handleReadAfterWrite: <T>(ctx: AppContext, nsid: string, requester: string, res: HandlerPipeThrough, munge: MungeFn<T>) => Promise<HandlerResponse<T> | HandlerPipeThrough>;
8
- export declare const readAfterWriteInternal: <T>(ctx: AppContext, nsid: string, requester: string, res: HandlerPipeThrough, munge: MungeFn<T>) => Promise<HandlerResponse<T> | HandlerPipeThrough>;
9
+ export declare const pipethroughReadAfterWrite: <T>(ctx: AppContext, reqCtx: {
10
+ req: express.Request;
11
+ auth: {
12
+ credentials: {
13
+ did: string;
14
+ };
15
+ };
16
+ }, munge: MungeFn<T>) => Promise<HandlerResponse<T> | HandlerPipeThrough>;
9
17
  export declare const formatMungedResponse: <T>(body: T, lag?: number) => HandlerResponse<T>;
10
18
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/read-after-write/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAKzD,eAAO,MAAM,UAAU,YAAa,OAAO,KAAG,MAAM,GAAG,SAEtD,CAAA;AAED,eAAO,MAAM,WAAW,UAAW,YAAY,KAAG,MAAM,GAAG,SAS1D,CAAA;AAED,eAAO,MAAM,oBAAoB,WAC1B,UAAU,QACT,MAAM,aACD,MAAM,OACZ,kBAAkB,SAChB,QAAQ,CAAC,CAAC,KAChB,QAAQ,gBAAgB,CAAC,CAAC,GAAG,kBAAkB,CAOjD,CAAA;AAED,eAAO,MAAM,sBAAsB,WAC5B,UAAU,QACT,MAAM,aACD,MAAM,OACZ,kBAAkB,SAChB,QAAQ,CAAC,CAAC,KAChB,QAAQ,gBAAgB,CAAC,CAAC,GAAG,kBAAkB,CAajD,CAAA;AAED,eAAO,MAAM,oBAAoB,YACzB,CAAC,QACD,MAAM,KACX,gBAAgB,CAAC,CASlB,CAAA"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/read-after-write/util.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EACL,kBAAkB,EAGnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,UAAU,MAAM,YAAY,CAAA;AAQnC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAKhE,eAAO,MAAM,UAAU,YAAa,UAAU,KAAG,MAAM,GAAG,SAEzD,CAAA;AAED,eAAO,MAAM,WAAW,UAAW,YAAY,KAAG,MAAM,GAAG,SAS1D,CAAA;AAED,eAAO,MAAM,yBAAyB,WAC/B,UAAU,UACP;IAAE,GAAG,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE;QAAE,WAAW,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,SACjE,QAAQ,CAAC,CAAC,KAChB,QAAQ,gBAAgB,CAAC,CAAC,GAAG,kBAAkB,CA4CjD,CAAA;AAED,eAAO,MAAM,oBAAoB,YACzB,CAAC,QACD,MAAM,KACX,gBAAgB,CAAC,CASlB,CAAA"}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatMungedResponse = exports.readAfterWriteInternal = exports.handleReadAfterWrite = exports.getLocalLag = exports.getRepoRev = void 0;
3
+ exports.formatMungedResponse = exports.pipethroughReadAfterWrite = exports.getLocalLag = exports.getRepoRev = void 0;
4
+ const lexicon_1 = require("@atproto/lexicon");
5
+ const xrpc_server_1 = require("@atproto/xrpc-server");
6
+ const lexicons_1 = require("../lexicon/lexicons");
4
7
  const logger_1 = require("../logger");
5
- const viewer_1 = require("./viewer");
6
8
  const pipethrough_1 = require("../pipethrough");
9
+ const viewer_1 = require("./viewer");
7
10
  const REPO_REV_HEADER = 'atproto-repo-rev';
8
11
  const getRepoRev = (headers) => {
9
12
  return headers[REPO_REV_HEADER];
@@ -21,32 +24,44 @@ const getLocalLag = (local) => {
21
24
  return Date.now() - new Date(oldest).getTime();
22
25
  };
23
26
  exports.getLocalLag = getLocalLag;
24
- const handleReadAfterWrite = async (ctx, nsid, requester, res, munge) => {
27
+ const pipethroughReadAfterWrite = async (ctx, reqCtx, munge) => {
28
+ const { req, auth } = reqCtx;
29
+ const requester = auth.credentials.did;
30
+ const streamRes = await (0, pipethrough_1.pipethrough)(ctx, req, { iss: requester });
31
+ const rev = (0, exports.getRepoRev)(streamRes.headers);
32
+ if (!rev)
33
+ return streamRes;
34
+ if ((0, pipethrough_1.isJsonContentType)(streamRes.headers['content-type']) === false) {
35
+ // content-type is present but not JSON, we can't munge this
36
+ return streamRes;
37
+ }
38
+ // if the munging fails, we can't return the original response because the
39
+ // stream will already have been read. If we end-up buffering the response,
40
+ // we'll return the buffered response in case of an error.
41
+ let bufferRes;
25
42
  try {
26
- return await (0, exports.readAfterWriteInternal)(ctx, nsid, requester, res, munge);
43
+ const lxm = (0, xrpc_server_1.parseReqNsid)(req);
44
+ return await ctx.actorStore.read(requester, async (store) => {
45
+ const local = await (0, viewer_1.getRecordsSinceRev)(store, rev);
46
+ if (local.count === 0)
47
+ return streamRes;
48
+ const { buffer } = (bufferRes = await (0, pipethrough_1.asPipeThroughBuffer)(streamRes));
49
+ const lex = (0, lexicon_1.jsonToLex)(JSON.parse(buffer.toString('utf8')));
50
+ const parsedRes = lexicons_1.lexicons.assertValidXrpcOutput(lxm, lex);
51
+ const localViewer = ctx.localViewer(store);
52
+ const data = await munge(localViewer, parsedRes, local, requester);
53
+ return (0, exports.formatMungedResponse)(data, (0, exports.getLocalLag)(local));
54
+ });
27
55
  }
28
56
  catch (err) {
57
+ // The error occurred while reading the stream, this is non-recoverable
58
+ if (!bufferRes && !streamRes.stream.readable)
59
+ throw err;
29
60
  logger_1.readStickyLogger.warn({ err, requester }, 'error in read after write munge');
30
- return res;
61
+ return bufferRes ?? streamRes;
31
62
  }
32
63
  };
33
- exports.handleReadAfterWrite = handleReadAfterWrite;
34
- const readAfterWriteInternal = async (ctx, nsid, requester, res, munge) => {
35
- const rev = (0, exports.getRepoRev)(res.headers ?? {});
36
- if (!rev)
37
- return res;
38
- return ctx.actorStore.read(requester, async (store) => {
39
- const local = await (0, viewer_1.getRecordsSinceRev)(store, rev);
40
- if (local.count === 0) {
41
- return res;
42
- }
43
- const localViewer = ctx.localViewer(store);
44
- const parsedRes = (0, pipethrough_1.parseRes)(nsid, res);
45
- const data = await munge(localViewer, parsedRes, local, requester);
46
- return (0, exports.formatMungedResponse)(data, (0, exports.getLocalLag)(local));
47
- });
48
- };
49
- exports.readAfterWriteInternal = readAfterWriteInternal;
64
+ exports.pipethroughReadAfterWrite = pipethroughReadAfterWrite;
50
65
  const formatMungedResponse = (body, lag) => ({
51
66
  encoding: 'application/json',
52
67
  body,
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/read-after-write/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/read-after-write/util.ts"],"names":[],"mappings":";;;AAAA,8CAA4C;AAE5C,sDAI6B;AAI7B,kDAA8C;AAC9C,sCAAmD;AACnD,gDAIuB;AAEvB,qCAA6C;AAE7C,MAAM,eAAe,GAAG,kBAAkB,CAAA;AAEnC,MAAM,UAAU,GAAG,CAAC,OAAmB,EAAsB,EAAE;IACpE,OAAO,OAAO,CAAC,eAAe,CAAC,CAAA;AACjC,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB;AAEM,MAAM,WAAW,GAAG,CAAC,KAAmB,EAAsB,EAAE;IACrE,IAAI,MAAM,GAAuB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAA;IACzD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YACvC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;QACzB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AAChD,CAAC,CAAA;AATY,QAAA,WAAW,eASvB;AAEM,MAAM,yBAAyB,GAAG,KAAK,EAC5C,GAAe,EACf,MAAwE,EACxE,KAAiB,EACiC,EAAE;IACpD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;IAEtC,MAAM,SAAS,GAAG,MAAM,IAAA,yBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;IAEjE,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAE1B,IAAI,IAAA,+BAAiB,EAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACnE,4DAA4D;QAC5D,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,0DAA0D;IAC1D,IAAI,SAA+C,CAAA;IAEnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,0BAAY,EAAC,GAAG,CAAC,CAAA;QAE7B,OAAO,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAG,MAAM,IAAA,2BAAkB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAClD,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAA;YAEvC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,MAAM,IAAA,iCAAmB,EAAC,SAAS,CAAC,CAAC,CAAA;YAErE,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAE1D,MAAM,SAAS,GAAG,mBAAQ,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAM,CAAA;YAE/D,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAE1C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;YAClE,OAAO,IAAA,4BAAoB,EAAC,IAAI,EAAE,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uEAAuE;QACvE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,GAAG,CAAA;QAEvD,yBAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,iCAAiC,CAAC,CAAA;QAC/D,OAAO,SAAS,IAAI,SAAS,CAAA;IAC/B,CAAC;AACH,CAAC,CAAA;AAhDY,QAAA,yBAAyB,6BAgDrC;AAEM,MAAM,oBAAoB,GAAG,CAClC,IAAO,EACP,GAAY,EACQ,EAAE,CAAC,CAAC;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,IAAI;IACJ,OAAO,EACL,GAAG,KAAK,SAAS;QACf,CAAC,CAAC;YACE,sBAAsB,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;SACzC;QACH,CAAC,CAAC,SAAS;CAChB,CAAC,CAAA;AAZW,QAAA,oBAAoB,wBAY/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/pds",
3
- "version": "0.4.58",
3
+ "version": "0.4.60",
4
4
  "license": "MIT",
5
5
  "description": "Reference implementation of atproto Personal Data Server (PDS)",
6
6
  "keywords": [
@@ -42,19 +42,20 @@
42
42
  "sharp": "^0.32.6",
43
43
  "typed-emitter": "^2.1.0",
44
44
  "uint8arrays": "3.0.0",
45
+ "undici": "^6.19.8",
45
46
  "zod": "^3.23.8",
46
- "@atproto-labs/fetch-node": "0.1.0",
47
- "@atproto/api": "^0.13.6",
48
- "@atproto/aws": "^0.2.4",
49
- "@atproto/common": "^0.4.1",
47
+ "@atproto/api": "^0.13.8",
48
+ "@atproto/aws": "^0.2.6",
49
+ "@atproto/common": "^0.4.3",
50
50
  "@atproto/crypto": "^0.4.1",
51
- "@atproto/identity": "^0.4.1",
52
- "@atproto/lexicon": "^0.4.1",
53
- "@atproto/oauth-provider": "^0.2.1",
54
- "@atproto/repo": "^0.5.0",
55
- "@atproto/syntax": "^0.3.0",
56
- "@atproto/xrpc": "^0.6.1",
57
- "@atproto/xrpc-server": "^0.6.3"
51
+ "@atproto/identity": "^0.4.2",
52
+ "@atproto-labs/fetch-node": "0.1.1",
53
+ "@atproto/lexicon": "^0.4.2",
54
+ "@atproto/oauth-provider": "^0.2.2",
55
+ "@atproto/repo": "^0.5.2",
56
+ "@atproto/xrpc": "^0.6.3",
57
+ "@atproto/xrpc-server": "^0.7.0",
58
+ "@atproto/syntax": "^0.3.0"
58
59
  },
59
60
  "devDependencies": {
60
61
  "@atproto/pds-entryway": "npm:@atproto/pds@0.3.0-entryway.3",
@@ -72,9 +73,9 @@
72
73
  "jest": "^28.1.2",
73
74
  "ts-node": "^10.8.2",
74
75
  "ws": "^8.12.0",
75
- "@atproto/api": "^0.13.6",
76
- "@atproto/bsky": "^0.0.82",
77
- "@atproto/lex-cli": "^0.5.0"
76
+ "@atproto/api": "^0.13.8",
77
+ "@atproto/bsky": "^0.0.84",
78
+ "@atproto/lex-cli": "^0.5.1"
78
79
  },
79
80
  "scripts": {
80
81
  "codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",
@@ -4,7 +4,7 @@ import {
4
4
  ReadableBlockstore,
5
5
  writeCarStream,
6
6
  } from '@atproto/repo'
7
- import { chunkArray } from '@atproto/common'
7
+ import { chunkArray, wait } from '@atproto/common'
8
8
  import { CID } from 'multiformats/cid'
9
9
  import { ActorDb } from '../db'
10
10
  import { sql } from 'kysely'
@@ -94,13 +94,12 @@ export class SqlRepoReader extends ReadableBlockstore {
94
94
  }
95
95
  }
96
96
  // allow us to write to car while fetching the next page
97
- let writePromise: Promise<void> = Promise.resolve()
98
97
  do {
99
98
  const res = await this.getBlockRange(since, cursor)
100
- await writePromise
101
- writePromise = writeRows(res)
99
+ await writeRows(res)
102
100
  const lastRow = res.at(-1)
103
101
  if (lastRow && lastRow.repoRev) {
102
+ await wait(100) // @NOTE temporary measure to prevent over-writing to buffer. can remove once we refactor car writer to give back pressure on streams
104
103
  cursor = {
105
104
  cid: CID.parse(lastRow.cid),
106
105
  rev: lastRow.repoRev,
@@ -109,8 +108,6 @@ export class SqlRepoReader extends ReadableBlockstore {
109
108
  cursor = undefined
110
109
  }
111
110
  } while (cursor)
112
- // ensure we flush the last page of blocks
113
- await writePromise
114
111
  })
115
112
  }
116
113
 
@@ -4,30 +4,16 @@ import { OutputSchema } from '../../../../lexicon/types/app/bsky/actor/getProfil
4
4
  import {
5
5
  LocalViewer,
6
6
  LocalRecords,
7
- handleReadAfterWrite,
7
+ pipethroughReadAfterWrite,
8
8
  } from '../../../../read-after-write'
9
- import { pipethrough } from '../../../../pipethrough'
10
-
11
- const METHOD_NSID = 'app.bsky.actor.getProfile'
12
9
 
13
10
  export default function (server: Server, ctx: AppContext) {
14
11
  const { bskyAppView } = ctx.cfg
15
12
  if (!bskyAppView) return
16
13
  server.app.bsky.actor.getProfile({
17
14
  auth: ctx.authVerifier.accessStandard(),
18
- handler: async ({ req, auth }) => {
19
- const requester = auth.credentials.did
20
- const res = await pipethrough(ctx, req, requester)
21
- if (!requester) {
22
- return res
23
- }
24
- return handleReadAfterWrite(
25
- ctx,
26
- METHOD_NSID,
27
- requester,
28
- res,
29
- getProfileMunge,
30
- )
15
+ handler: async (reqCtx) => {
16
+ return pipethroughReadAfterWrite(ctx, reqCtx, getProfileMunge)
31
17
  },
32
18
  })
33
19
  }
@@ -1,31 +1,19 @@
1
1
  import AppContext from '../../../../context'
2
2
  import { Server } from '../../../../lexicon'
3
3
  import { OutputSchema } from '../../../../lexicon/types/app/bsky/actor/getProfiles'
4
- import { pipethrough } from '../../../../pipethrough'
5
4
  import {
6
5
  LocalViewer,
7
- handleReadAfterWrite,
6
+ pipethroughReadAfterWrite,
8
7
  LocalRecords,
9
8
  } from '../../../../read-after-write'
10
9
 
11
- const METHOD_NSID = 'app.bsky.actor.getProfiles'
12
-
13
10
  export default function (server: Server, ctx: AppContext) {
14
11
  const { bskyAppView } = ctx.cfg
15
12
  if (!bskyAppView) return
16
13
  server.app.bsky.actor.getProfiles({
17
14
  auth: ctx.authVerifier.accessStandard(),
18
- handler: async ({ req, auth }) => {
19
- const requester = auth.credentials.did
20
-
21
- const res = await pipethrough(ctx, req, requester)
22
- return handleReadAfterWrite(
23
- ctx,
24
- METHOD_NSID,
25
- requester,
26
- res,
27
- getProfilesMunge,
28
- )
15
+ handler: async (reqCtx) => {
16
+ return pipethroughReadAfterWrite(ctx, reqCtx, getProfilesMunge)
29
17
  },
30
18
  })
31
19
  }
@@ -3,33 +3,17 @@ import AppContext from '../../../../context'
3
3
  import { OutputSchema } from '../../../../lexicon/types/app/bsky/feed/getAuthorFeed'
4
4
  import {
5
5
  LocalViewer,
6
- handleReadAfterWrite,
6
+ pipethroughReadAfterWrite,
7
7
  LocalRecords,
8
8
  } from '../../../../read-after-write'
9
- import { pipethrough } from '../../../../pipethrough'
10
-
11
- const METHOD_NSID = 'app.bsky.feed.getActorLikes'
12
9
 
13
10
  export default function (server: Server, ctx: AppContext) {
14
11
  const { bskyAppView } = ctx.cfg
15
12
  if (!bskyAppView) return
16
13
  server.app.bsky.feed.getActorLikes({
17
14
  auth: ctx.authVerifier.accessStandard(),
18
- handler: async ({ req, auth }) => {
19
- const requester = auth.credentials.did
20
- const res = await pipethrough(ctx, req, requester)
21
-
22
- if (!requester) {
23
- return res
24
- }
25
-
26
- return await handleReadAfterWrite(
27
- ctx,
28
- METHOD_NSID,
29
- requester,
30
- res,
31
- getAuthorMunge,
32
- )
15
+ handler: async (reqCtx) => {
16
+ return pipethroughReadAfterWrite(ctx, reqCtx, getAuthorMunge)
33
17
  },
34
18
  })
35
19
  }
@@ -4,31 +4,17 @@ import { OutputSchema } from '../../../../lexicon/types/app/bsky/feed/getAuthorF
4
4
  import { isReasonRepost } from '../../../../lexicon/types/app/bsky/feed/defs'
5
5
  import {
6
6
  LocalViewer,
7
- handleReadAfterWrite,
7
+ pipethroughReadAfterWrite,
8
8
  LocalRecords,
9
9
  } from '../../../../read-after-write'
10
- import { pipethrough } from '../../../../pipethrough'
11
-
12
- const METHOD_NSID = 'app.bsky.feed.getAuthorFeed'
13
10
 
14
11
  export default function (server: Server, ctx: AppContext) {
15
12
  const { bskyAppView } = ctx.cfg
16
13
  if (!bskyAppView) return
17
14
  server.app.bsky.feed.getAuthorFeed({
18
15
  auth: ctx.authVerifier.accessStandard(),
19
- handler: async ({ req, auth }) => {
20
- const requester = auth.credentials.did
21
- const res = await pipethrough(ctx, req, requester)
22
- if (!requester) {
23
- return res
24
- }
25
- return await handleReadAfterWrite(
26
- ctx,
27
- METHOD_NSID,
28
- requester,
29
- res,
30
- getAuthorMunge,
31
- )
16
+ handler: async (reqCtx) => {
17
+ return pipethroughReadAfterWrite(ctx, reqCtx, getAuthorMunge)
32
18
  },
33
19
  })
34
20
  }
@@ -20,7 +20,9 @@ export default function (server: Server, ctx: AppContext) {
20
20
  ids.AppBskyFeedGetFeedGenerator,
21
21
  ),
22
22
  )
23
- return pipethrough(ctx, req, requester, {
23
+
24
+ return pipethrough(ctx, req, {
25
+ iss: requester,
24
26
  aud: feed.view.did,
25
27
  lxm: ids.AppBskyFeedGetFeedSkeleton,
26
28
  })
@@ -1,6 +1,7 @@
1
1
  import assert from 'node:assert'
2
2
  import { AtUri } from '@atproto/syntax'
3
- import { Headers, XRPCError } from '@atproto/xrpc'
3
+ import { XRPCError } from '@atproto/xrpc'
4
+
4
5
  import { Server } from '../../../../lexicon'
5
6
  import AppContext from '../../../../context'
6
7
  import {
@@ -18,35 +19,30 @@ import {
18
19
  getRepoRev,
19
20
  LocalRecords,
20
21
  RecordDescript,
21
- handleReadAfterWrite,
22
+ pipethroughReadAfterWrite,
22
23
  formatMungedResponse,
23
24
  } from '../../../../read-after-write'
24
- import { pipethrough } from '../../../../pipethrough'
25
25
  import { ids } from '../../../../lexicon/lexicons'
26
26
 
27
- const METHOD_NSID = 'app.bsky.feed.getPostThread'
28
-
29
27
  export default function (server: Server, ctx: AppContext) {
30
28
  const { bskyAppView } = ctx.cfg
31
29
  if (!bskyAppView) return
32
30
  server.app.bsky.feed.getPostThread({
33
31
  auth: ctx.authVerifier.accessStandard(),
34
- handler: async ({ req, auth, params }) => {
35
- const requester = auth.credentials.did
36
-
32
+ handler: async (reqCtx) => {
37
33
  try {
38
- const res = await pipethrough(ctx, req, requester)
39
-
40
- return await handleReadAfterWrite(
41
- ctx,
42
- METHOD_NSID,
43
- requester,
44
- res,
45
- getPostThreadMunge,
46
- )
34
+ return await pipethroughReadAfterWrite(ctx, reqCtx, getPostThreadMunge)
47
35
  } catch (err) {
48
36
  if (err instanceof XRPCError && err.error === 'NotFound') {
49
- const headers = err.headers
37
+ const { auth, params } = reqCtx
38
+ const requester = auth.credentials.did
39
+
40
+ const rev = err.headers && getRepoRev(err.headers)
41
+ if (!rev) throw err
42
+
43
+ const uri = new AtUri(params.uri)
44
+ if (uri.hostname !== requester) throw err
45
+
50
46
  const local = await ctx.actorStore.read(requester, (store) => {
51
47
  const localViewer = ctx.localViewer(store)
52
48
  return readAfterWriteNotFound(
@@ -54,7 +50,7 @@ export default function (server: Server, ctx: AppContext) {
54
50
  localViewer,
55
51
  params,
56
52
  requester,
57
- headers,
53
+ rev,
58
54
  )
59
55
  })
60
56
  if (local === null) {
@@ -168,11 +164,8 @@ const readAfterWriteNotFound = async (
168
164
  localViewer: LocalViewer,
169
165
  params: QueryParams,
170
166
  requester: string,
171
- headers?: Headers,
167
+ rev: string,
172
168
  ): Promise<{ data: OutputSchema; lag?: number } | null> => {
173
- if (!headers) return null
174
- const rev = getRepoRev(headers)
175
- if (!rev) return null
176
169
  const uri = new AtUri(params.uri)
177
170
  if (uri.hostname !== requester) {
178
171
  return null
@@ -3,28 +3,17 @@ import AppContext from '../../../../context'
3
3
  import { OutputSchema } from '../../../../lexicon/types/app/bsky/feed/getTimeline'
4
4
  import {
5
5
  LocalViewer,
6
- handleReadAfterWrite,
6
+ pipethroughReadAfterWrite,
7
7
  LocalRecords,
8
8
  } from '../../../../read-after-write'
9
- import { pipethrough } from '../../../../pipethrough'
10
-
11
- const METHOD_NSID = 'app.bsky.feed.getTimeline'
12
9
 
13
10
  export default function (server: Server, ctx: AppContext) {
14
11
  const { bskyAppView } = ctx.cfg
15
12
  if (!bskyAppView) return
16
13
  server.app.bsky.feed.getTimeline({
17
14
  auth: ctx.authVerifier.accessStandard(),
18
- handler: async ({ req, auth }) => {
19
- const requester = auth.credentials.did
20
- const res = await pipethrough(ctx, req, requester)
21
- return await handleReadAfterWrite(
22
- ctx,
23
- METHOD_NSID,
24
- requester,
25
- res,
26
- getTimelineMunge,
27
- )
15
+ handler: async (reqCtx) => {
16
+ return pipethroughReadAfterWrite(ctx, reqCtx, getTimelineMunge)
28
17
  },
29
18
  })
30
19
  }
@@ -32,6 +32,6 @@ export default function (server: Server, ctx: AppContext) {
32
32
  throw new InvalidRequestError(`Could not locate record`)
33
33
  }
34
34
 
35
- return await pipethrough(ctx, req, null)
35
+ return pipethrough(ctx, req)
36
36
  })
37
37
  }
@@ -40,7 +40,7 @@ export default function (server: Server, ctx: AppContext) {
40
40
  'reset_password',
41
41
  )
42
42
  await ctx.mailer.sendResetPassword(
43
- { identifier: account.handle ?? account.email, token },
43
+ { handle: account.handle ?? account.email, token },
44
44
  { to: account.email },
45
45
  )
46
46
  },
@@ -236,7 +236,16 @@ export const envToCfg = (env: ServerEnvironment): ServerConfig => {
236
236
  const crawlersCfg: ServerConfig['crawlers'] = env.crawlers ?? []
237
237
 
238
238
  const fetchCfg: ServerConfig['fetch'] = {
239
- disableSsrfProtection: env.fetchDisableSsrfProtection ?? false,
239
+ disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,
240
+ maxResponseSize: env.fetchMaxResponseSize ?? 512 * 1024, // 512kb
241
+ }
242
+
243
+ const proxyCfg: ServerConfig['proxy'] = {
244
+ disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,
245
+ allowHTTP2: env.proxyAllowHTTP2 ?? false,
246
+ headersTimeout: env.proxyHeadersTimeout ?? 10e3,
247
+ bodyTimeout: env.proxyBodyTimeout ?? 30e3,
248
+ maxResponseSize: env.proxyMaxResponseSize ?? 10 * 1024 * 1024, // 10mb
240
249
  }
241
250
 
242
251
  const oauthCfg: ServerConfig['oauth'] = entrywayCfg
@@ -302,6 +311,7 @@ export const envToCfg = (env: ServerEnvironment): ServerConfig => {
302
311
  rateLimits: rateLimitsCfg,
303
312
  crawlers: crawlersCfg,
304
313
  fetch: fetchCfg,
314
+ proxy: proxyCfg,
305
315
  oauth: oauthCfg,
306
316
  }
307
317
  }
@@ -324,6 +334,7 @@ export type ServerConfig = {
324
334
  rateLimits: RateLimitsConfig
325
335
  crawlers: string[]
326
336
  fetch: FetchConfig
337
+ proxy: ProxyConfig
327
338
  oauth: OAuthConfig
328
339
  }
329
340
 
@@ -393,6 +404,15 @@ export type EntrywayConfig = {
393
404
 
394
405
  export type FetchConfig = {
395
406
  disableSsrfProtection: boolean
407
+ maxResponseSize: number
408
+ }
409
+
410
+ export type ProxyConfig = {
411
+ disableSsrfProtection: boolean
412
+ allowHTTP2: boolean
413
+ headersTimeout: number
414
+ bodyTimeout: number
415
+ maxResponseSize: number
396
416
  }
397
417
 
398
418
  export type OAuthConfig = {
package/src/config/env.ts CHANGED
@@ -117,8 +117,17 @@ export const readEnv = (): ServerEnvironment => {
117
117
  'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX',
118
118
  ),
119
119
 
120
+ // user provided url http requests
121
+ disableSsrfProtection: envBool('PDS_DISABLE_SSRF_PROTECTION'),
122
+
120
123
  // fetch
121
- fetchDisableSsrfProtection: envBool('PDS_DISABLE_SSRF_PROTECTION'),
124
+ fetchMaxResponseSize: envInt('PDS_FETCH_MAX_RESPONSE_SIZE'),
125
+
126
+ // proxy
127
+ proxyAllowHTTP2: envBool('PDS_PROXY_ALLOW_HTTP2'),
128
+ proxyHeadersTimeout: envInt('PDS_PROXY_HEADERS_TIMEOUT'),
129
+ proxyBodyTimeout: envInt('PDS_PROXY_BODY_TIMEOUT'),
130
+ proxyMaxResponseSize: envInt('PDS_PROXY_MAX_RESPONSE_SIZE'),
122
131
  }
123
132
  }
124
133
 
@@ -233,6 +242,15 @@ export type ServerEnvironment = {
233
242
  plcRotationKeyKmsKeyId?: string
234
243
  plcRotationKeyK256PrivateKeyHex?: string
235
244
 
245
+ // user provided url http requests
246
+ disableSsrfProtection?: boolean
247
+
236
248
  // fetch
237
- fetchDisableSsrfProtection?: boolean
249
+ fetchMaxResponseSize?: number
250
+
251
+ // proxy
252
+ proxyAllowHTTP2?: boolean
253
+ proxyHeadersTimeout?: number
254
+ proxyBodyTimeout?: number
255
+ proxyMaxResponseSize?: number
238
256
  }