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(identity-wallet): PDS discovery & OAuth to arbitrary PDS #57

Summary

  • Add pds_client module with handle resolution (DNS TXT + HTTP fallback), PDS discovery from plc.directory, OAuth authorization server metadata fetching
  • Implement PDS OAuth helpers (PAR, token exchange, authorize URL construction) and XRPC identity methods (requestPlcOperationSignature, signPlcOperation, getRecommendedDidCredentials)
  • Wire PdsClient into AppState for Phase 4 Tauri command access
  • 33 pds_client tests + 19 identity_store tests (136 total passing)

Test plan

  • cargo test --package identity-wallet -- --test-threads=1 (136 pass, 3 ignored)
  • cargo clippy --package identity-wallet -- -D warnings (clean)
  • cargo fmt --all --check (clean)
  • Manual: DNS TXT resolution (--ignored test) — see docs/test-plans/2026-03-28-plc-key-management.md Phase 5
  • Manual: Full OAuth Safari/deep-link flow — see test plan Phase 6
  • Manual: Secure Enclave device key on physical iOS device — see test plan Phases 1-4
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:web:malpercio.dev/sh.tangled.repo.pull/3mi5qc65avp22
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