@atproto/pds 0.4.66 → 0.4.67

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atproto/pds
2
2
 
3
+ ## 0.4.67
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2924](https://github.com/bluesky-social/atproto/pull/2924) [`c1b0e176a`](https://github.com/bluesky-social/atproto/commit/c1b0e176adbc5108bff49d74fbae18de60e86732) Thanks [@dholms](https://github.com/dholms)! - Support alternate did mehtods in update handle
8
+
3
9
  ## 0.4.66
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"updateHandle.d.ts","sourceRoot":"","sources":["../../../../../src/api/com/atproto/identity/updateHandle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAI5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAkEvD"}
1
+ {"version":3,"file":"updateHandle.d.ts","sourceRoot":"","sources":["../../../../../src/api/com/atproto/identity/updateHandle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,UAAU,MAAM,qBAAqB,CAAA;AAI5C,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAoFvD"}
@@ -44,14 +44,24 @@ function default_1(server, ctx) {
44
44
  const account = await ctx.accountManager.getAccount(handle, {
45
45
  includeDeactivated: true,
46
46
  });
47
- if (account) {
48
- if (account.did !== requester) {
49
- throw new xrpc_server_1.InvalidRequestError(`Handle already taken: ${handle}`);
47
+ if (!account) {
48
+ if (requester.startsWith('did:plc:')) {
49
+ await ctx.plcClient.updateHandle(requester, ctx.plcRotationKey, handle);
50
50
  }
51
+ else {
52
+ const resolved = await ctx.idResolver.did.resolveAtprotoData(requester, true);
53
+ if (resolved.handle !== handle) {
54
+ throw new xrpc_server_1.InvalidRequestError('DID is not properly configured for handle');
55
+ }
56
+ }
57
+ await ctx.accountManager.updateHandle(requester, handle);
51
58
  }
52
59
  else {
53
- await ctx.plcClient.updateHandle(requester, ctx.plcRotationKey, handle);
54
- await ctx.accountManager.updateHandle(requester, handle);
60
+ // if we found an account with matching handle, check if it is the same as requester
61
+ // if so emit an identity event, otherwise error.
62
+ if (account.did !== requester) {
63
+ throw new xrpc_server_1.InvalidRequestError(`Handle already taken: ${handle}`);
64
+ }
55
65
  }
56
66
  try {
57
67
  await ctx.sequencer.sequenceHandleUpdate(requester, handle);
@@ -1 +1 @@
1
- {"version":3,"file":"updateHandle.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/identity/updateHandle.ts"],"names":[],"mappings":";;;;;AASA,4BAkEC;AA3ED,8DAAgC;AAChC,sDAA0D;AAC1D,4CAA6C;AAC7C,+CAA+D;AAG/D,+CAA+C;AAC/C,2DAAkD;AAElD,mBAAyB,MAAc,EAAE,GAAe;IACtD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC9D,SAAS,EAAE;YACT;gBACE,UAAU,EAAE,CAAC,GAAG,eAAM;gBACtB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG;aAC5C;YACD;gBACE,UAAU,EAAE,YAAG;gBACf,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG;aAC5C;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAA;YAEtC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;gBACtB,IAAA,qBAAM,EAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAExB,oBAAoB;gBACpB,oEAAoE;gBACpE,4EAA4E;gBAC5E,MAAM,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CACvD,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAC7C,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,EACpB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EACpB,cAAG,CAAC,8BAA8B,CACnC,CACF,CAAA;gBACD,OAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,mCAA0B,EAAC;gBAC9C,GAAG;gBACH,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;gBACzB,GAAG,EAAE,SAAS;aACf,CAAC,CAAA;YAEF,gFAAgF;YAChF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC1D,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAA;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,IAAI,iCAAmB,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;gBACvE,MAAM,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAC1D,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBAC3D,MAAM,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAC5D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mBAAU,CAAC,KAAK,CACd,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAC/B,kCAAkC,CACnC,CAAA;YACH,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"updateHandle.js","sourceRoot":"","sources":["../../../../../src/api/com/atproto/identity/updateHandle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/sequencer/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/sequencer/events.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,10 @@ const formatSeqCommit = async (did, commitData, writes) => {
14
14
  if (writes.length > 200 || commitData.newBlocks.byteSize > 1000000) {
15
15
  tooBig = true;
16
16
  const justRoot = new repo_1.BlockMap();
17
- justRoot.add(commitData.newBlocks.get(commitData.cid));
17
+ const rootBlock = commitData.newBlocks.get(commitData.cid);
18
+ if (rootBlock) {
19
+ justRoot.set(commitData.cid, rootBlock);
20
+ }
18
21
  carSlice = await (0, repo_1.blocksToCarFile)(commitData.cid, justRoot);
19
22
  }
20
23
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/sequencer/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/sequencer/events.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.66",
3
+ "version": "0.4.67",
4
4
  "license": "MIT",
5
5
  "description": "Reference implementation of atproto Personal Data Server (PDS)",
6
6
  "keywords": [
@@ -46,9 +46,9 @@
46
46
  "zod": "^3.23.8",
47
47
  "@atproto-labs/fetch-node": "0.1.3",
48
48
  "@atproto/api": "^0.13.12",
49
- "@atproto/aws": "^0.2.7",
50
49
  "@atproto/common": "^0.4.4",
51
50
  "@atproto/crypto": "^0.4.1",
51
+ "@atproto/aws": "^0.2.7",
52
52
  "@atproto/identity": "^0.4.2",
53
53
  "@atproto/lexicon": "^0.4.2",
54
54
  "@atproto/oauth-provider": "^0.2.6",
@@ -77,8 +77,8 @@
77
77
  "ws": "^8.12.0",
78
78
  "@atproto/api": "^0.13.12",
79
79
  "@atproto/bsky": "^0.0.90",
80
- "@atproto/lex-cli": "^0.5.1",
81
- "@atproto/oauth-client-browser-example": "0.0.0"
80
+ "@atproto/oauth-client-browser-example": "0.0.0",
81
+ "@atproto/lex-cli": "^0.5.1"
82
82
  },
83
83
  "scripts": {
84
84
  "codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",
@@ -53,13 +53,31 @@ export default function (server: Server, ctx: AppContext) {
53
53
  includeDeactivated: true,
54
54
  })
55
55
 
56
- if (account) {
56
+ if (!account) {
57
+ if (requester.startsWith('did:plc:')) {
58
+ await ctx.plcClient.updateHandle(
59
+ requester,
60
+ ctx.plcRotationKey,
61
+ handle,
62
+ )
63
+ } else {
64
+ const resolved = await ctx.idResolver.did.resolveAtprotoData(
65
+ requester,
66
+ true,
67
+ )
68
+ if (resolved.handle !== handle) {
69
+ throw new InvalidRequestError(
70
+ 'DID is not properly configured for handle',
71
+ )
72
+ }
73
+ }
74
+ await ctx.accountManager.updateHandle(requester, handle)
75
+ } else {
76
+ // if we found an account with matching handle, check if it is the same as requester
77
+ // if so emit an identity event, otherwise error.
57
78
  if (account.did !== requester) {
58
79
  throw new InvalidRequestError(`Handle already taken: ${handle}`)
59
80
  }
60
- } else {
61
- await ctx.plcClient.updateHandle(requester, ctx.plcRotationKey, handle)
62
- await ctx.accountManager.updateHandle(requester, handle)
63
81
  }
64
82
 
65
83
  try {
@@ -26,7 +26,10 @@ export const formatSeqCommit = async (
26
26
  if (writes.length > 200 || commitData.newBlocks.byteSize > 1000000) {
27
27
  tooBig = true
28
28
  const justRoot = new BlockMap()
29
- justRoot.add(commitData.newBlocks.get(commitData.cid))
29
+ const rootBlock = commitData.newBlocks.get(commitData.cid)
30
+ if (rootBlock) {
31
+ justRoot.set(commitData.cid, rootBlock)
32
+ }
30
33
  carSlice = await blocksToCarFile(commitData.cid, justRoot)
31
34
  } else {
32
35
  tooBig = false
@@ -1,9 +1,17 @@
1
1
  import { TestNetworkNoAppView, SeedClient } from '@atproto/dev-env'
2
2
  import { randomStr } from '@atproto/crypto'
3
- import { cborEncode, readFromGenerator, wait } from '@atproto/common'
4
- import { Sequencer, SeqEvt } from '../src/sequencer'
3
+ import {
4
+ cborDecode,
5
+ cborEncode,
6
+ readFromGenerator,
7
+ wait,
8
+ } from '@atproto/common'
9
+ import { Sequencer, SeqEvt, formatSeqCommit } from '../src/sequencer'
10
+ import { sequencer, repoPrepare } from '../../pds'
5
11
  import Outbox from '../src/sequencer/outbox'
6
12
  import userSeed from './seeds/users'
13
+ import { ids } from '../src/lexicon/lexicons'
14
+ import { readCarWithRoot } from '@atproto/repo'
7
15
 
8
16
  describe('sequencer', () => {
9
17
  let network: TestNetworkNoAppView
@@ -207,4 +215,40 @@ describe('sequencer', () => {
207
215
  }
208
216
  lastSeen = results[0].at(-1)?.seq ?? lastSeen
209
217
  })
218
+
219
+ it('root block must be returned in tooBig seq commit', async () => {
220
+ // Create good records to exceed the event limit (the current limit is 200 events)
221
+ // it creates events completely locally, so it doesn't need to be in the network
222
+ const eventsToCreate = 250
223
+ const createPostRecord = () =>
224
+ repoPrepare.prepareCreate({
225
+ did: sc.dids.alice,
226
+ collection: ids.AppBskyFeedPost,
227
+ record: { text: 'valid', createdAt: new Date().toISOString() },
228
+ })
229
+ const writesPromises = Array.from(
230
+ { length: eventsToCreate },
231
+ createPostRecord,
232
+ )
233
+ const writes = await Promise.all(writesPromises)
234
+ // just format commit without processing writes
235
+ const writeCommit = await network.pds.ctx.actorStore.transact(
236
+ sc.dids.alice,
237
+ (store) => store.repo.formatCommit(writes),
238
+ )
239
+
240
+ const repoSeqInsert = await formatSeqCommit(
241
+ sc.dids.alice,
242
+ writeCommit,
243
+ writes,
244
+ )
245
+
246
+ const evt = cborDecode<sequencer.CommitEvt>(repoSeqInsert.event)
247
+ expect(evt.tooBig).toBe(true)
248
+
249
+ const car = await readCarWithRoot(evt.blocks)
250
+ expect(car.root.toString()).toBe(writeCommit.cid.toString())
251
+ // in the case of tooBig, the blocks must contain the root block only
252
+ expect(car.blocks.size).toBe(1)
253
+ })
210
254
  })