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 POST /v1/dids — did:plc genesis op and account promotion (MM-89) #26

Summary#

  • Adds build_did_plc_genesis_op pure function to the crypto crate — ECDSA-SHA256 signed did:plc genesis operations with RFC 6979 determinism and base32-lowercase DID derivation
  • Adds POST /v1/dids route to the relay — authenticates via pending session Bearer token, calls plc.directory, then atomically promotes the pending account to a full account
  • V008 migration: nullable accounts.password_hash (mobile accounts have no password), pending_did column on pending_accounts for pre-store retry resilience

Test Plan#

  • cargo test --workspace — 253 tests, 0 failures (7 crypto unit tests + 7 relay integration tests with wiremock)
  • cargo clippy --workspace -- -D warnings — zero warnings
  • cargo fmt --all --check — clean
  • Human test plan: docs/test-plans/2026-03-13-MM-89.md
Labels

None yet.

assignee

None yet.

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