An easy-to-host PDS on the ATProtocol, iPhone and MacOS. Maintain control of your keys and data, always.
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(relay): implement GET /xrpc/com.atproto.server.describeServer (MM-74) #18

Summary

  • Implements GET /xrpc/com.atproto.server.describeServer — the ATProto service discovery endpoint Bluesky clients hit first during login
  • Extends Config with available_user_domains (required), invite_code_required (default true), optional server_did, [links], and [contact] sections
  • Handler derives did:web: from public_url as a placeholder when server_did is not configured; Wave 3 will replace this with a real did:plc DID
  • Optional links and contact fields are omitted from the JSON response entirely when not configured (not serialized as null)
  • Updated relay.dev.toml with documented stubs for all new fields

Test plan

  • cargo test --workspace passes (63 tests, 0 failures)
  • cargo clippy --workspace -- -D warnings passes clean
  • curl http://localhost:8080/xrpc/com.atproto.server.describeServer returns valid JSON with availableUserDomains, inviteCodeRequired, phoneVerificationRequired, and a did field
  • Setting server_did in config returns that DID verbatim; leaving it unset returns did:web:
  • Setting [links] / [contact] in config includes them in the response; omitting them excludes those keys entirely
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:web:malpercio.dev/sh.tangled.repo.pull/3mgsduj6hzi22
Diff #0

No differences found between the selected revisions.

History

1 round 0 comments
sign up or login to add to the discussion
malpercio.dev submitted #0
patch application failed: error: No valid patches in input (allow with "--allow-empty")
expand 0 comments