@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.
- package/CHANGELOG.md +46 -0
- package/dist/actor-store/repo/sql-repo-reader.d.ts.map +1 -1
- package/dist/actor-store/repo/sql-repo-reader.js +2 -5
- package/dist/actor-store/repo/sql-repo-reader.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfile.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getProfile.js +2 -9
- package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.js +2 -6
- package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.js +2 -9
- package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.js +2 -9
- package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.js +2 -1
- package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.js +12 -14
- package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js +2 -6
- package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js +1 -1
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/api/com/atproto/server/requestPasswordReset.js +1 -1
- package/dist/api/com/atproto/server/requestPasswordReset.js.map +1 -1
- package/dist/config/config.d.ts +9 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +10 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts +6 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +8 -1
- package/dist/config/env.js.map +1 -1
- package/dist/context.d.ts +6 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +55 -11
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +77 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +86 -3
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +16 -0
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js +9 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.d.ts +1 -0
- package/dist/lexicon/types/app/bsky/actor/profile.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts +13 -2
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js +21 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts +1 -0
- package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts +2 -0
- package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts +2 -0
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +2 -0
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +3 -0
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
- package/dist/mailer/index.d.ts +1 -1
- package/dist/mailer/index.d.ts.map +1 -1
- package/dist/mailer/index.js.map +1 -1
- package/dist/mailer/templates/confirm-email.js +1 -1
- package/dist/mailer/templates/confirm-email.js.map +2 -2
- package/dist/mailer/templates/delete-account.js +1 -1
- package/dist/mailer/templates/delete-account.js.map +2 -2
- package/dist/mailer/templates/plc-operation.js +1 -1
- package/dist/mailer/templates/plc-operation.js.map +2 -2
- package/dist/mailer/templates/reset-password.js +1 -1
- package/dist/mailer/templates/reset-password.js.map +2 -2
- package/dist/mailer/templates/update-email.js +1 -1
- package/dist/mailer/templates/update-email.js.map +2 -2
- package/dist/pipethrough.d.ts +26 -26
- package/dist/pipethrough.d.ts.map +1 -1
- package/dist/pipethrough.js +328 -228
- package/dist/pipethrough.js.map +1 -1
- package/dist/read-after-write/util.d.ts +13 -5
- package/dist/read-after-write/util.d.ts.map +1 -1
- package/dist/read-after-write/util.js +37 -22
- package/dist/read-after-write/util.js.map +1 -1
- package/package.json +16 -15
- package/src/actor-store/repo/sql-repo-reader.ts +3 -6
- package/src/api/app/bsky/actor/getProfile.ts +3 -17
- package/src/api/app/bsky/actor/getProfiles.ts +3 -15
- package/src/api/app/bsky/feed/getActorLikes.ts +3 -19
- package/src/api/app/bsky/feed/getAuthorFeed.ts +3 -17
- package/src/api/app/bsky/feed/getFeed.ts +3 -1
- package/src/api/app/bsky/feed/getPostThread.ts +16 -23
- package/src/api/app/bsky/feed/getTimeline.ts +3 -14
- package/src/api/com/atproto/repo/getRecord.ts +1 -1
- package/src/api/com/atproto/server/requestPasswordReset.ts +1 -1
- package/src/config/config.ts +21 -1
- package/src/config/env.ts +20 -2
- package/src/context.ts +62 -17
- package/src/index.ts +1 -0
- package/src/lexicon/lexicons.ts +92 -3
- package/src/lexicon/types/app/bsky/actor/defs.ts +25 -0
- package/src/lexicon/types/app/bsky/actor/profile.ts +1 -0
- package/src/lexicon/types/app/bsky/feed/defs.ts +38 -2
- package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +1 -0
- package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +2 -0
- package/src/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.ts +2 -0
- package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -0
- package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +3 -0
- package/src/mailer/index.ts +1 -1
- package/src/mailer/templates/confirm-email.hbs +106 -336
- package/src/mailer/templates/delete-account.hbs +110 -346
- package/src/mailer/templates/plc-operation.hbs +107 -338
- package/src/mailer/templates/reset-password.d.ts +1 -1
- package/src/mailer/templates/reset-password.hbs +108 -344
- package/src/mailer/templates/update-email.hbs +107 -337
- package/src/pipethrough.ts +489 -233
- package/src/read-after-write/util.ts +58 -32
- package/tests/account-deletion.test.ts +1 -1
- package/tests/account.test.ts +2 -2
- package/tests/email-confirmation.test.ts +2 -2
- package/tests/plc-operations.test.ts +1 -1
- package/tests/proxied/proxy-catchall.test.ts +255 -0
- package/tests/proxied/proxy-header.test.ts +31 -1
package/dist/pipethrough.js.map
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
8
|
-
|
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":"
|
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.
|
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
|
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
|
-
|
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
|
61
|
+
return bufferRes ?? streamRes;
|
31
62
|
}
|
32
63
|
};
|
33
|
-
exports.
|
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":";;;
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/read-after-write/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@atproto/pds",
|
3
|
-
"version": "0.4.
|
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
|
47
|
-
"@atproto/
|
48
|
-
"@atproto/
|
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.
|
52
|
-
"@atproto/
|
53
|
-
"@atproto/
|
54
|
-
"@atproto/
|
55
|
-
"@atproto/
|
56
|
-
"@atproto/xrpc": "^0.6.
|
57
|
-
"@atproto/xrpc-server": "^0.
|
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.
|
76
|
-
"@atproto/bsky": "^0.0.
|
77
|
-
"@atproto/lex-cli": "^0.5.
|
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
|
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
|
-
|
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 (
|
19
|
-
|
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
|
-
|
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 (
|
19
|
-
|
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
|
-
|
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 (
|
19
|
-
|
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
|
-
|
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 (
|
20
|
-
|
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
|
-
|
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 {
|
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
|
-
|
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 (
|
35
|
-
const requester = auth.credentials.did
|
36
|
-
|
32
|
+
handler: async (reqCtx) => {
|
37
33
|
try {
|
38
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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 (
|
19
|
-
|
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
|
}
|
@@ -40,7 +40,7 @@ export default function (server: Server, ctx: AppContext) {
|
|
40
40
|
'reset_password',
|
41
41
|
)
|
42
42
|
await ctx.mailer.sendResetPassword(
|
43
|
-
{
|
43
|
+
{ handle: account.handle ?? account.email, token },
|
44
44
|
{ to: account.email },
|
45
45
|
)
|
46
46
|
},
|
package/src/config/config.ts
CHANGED
@@ -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.
|
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
|
-
|
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
|
-
|
249
|
+
fetchMaxResponseSize?: number
|
250
|
+
|
251
|
+
// proxy
|
252
|
+
proxyAllowHTTP2?: boolean
|
253
|
+
proxyHeadersTimeout?: number
|
254
|
+
proxyBodyTimeout?: number
|
255
|
+
proxyMaxResponseSize?: number
|
238
256
|
}
|