Something went wrong. Try again.
a pds written in elixir tempest.desertthunder.dev
elixir phoenix atproto pds
Something went wrong. Try again.
README.md
title: Milestone Tasks #
Milestones #
- Foundation
- XRPC Shell
- Accounts and Sessions
- Identity and Handles
- Repository Core
- Record APIs
- CAR and Sync Reads
- Firehose
- Blobs
- Lexicon Schemas
- Compatibility Hardening
- Security, OAuth, and Delegated Access
- Migration and Account Lifecycle
- Admin, Storage, and Operator Features
- Local PDS Compatibility Testing
- Deployment and Post-deployment Verification
- Public Stats Dashboard
- Doc Viewer
- Account Management Control Panel
- Password Resets and Resend Email Delivery
- Admin XRPC Methods
Each file in this directory is a milestone. Each task is intended to be the smallest useful unit of work: one focused implementation change, test, or integration check.
Target Profile Priority Map (Solo Login + Archive) #
Blocking work for the current target profile (see docs/specs/target-profile.md):
- Compatibility stays green:
test/smoke/tempest_basic.hurlandtest/smoke/tempest_compat.hurlmust pass. - Admin/operator feature work is complete for the local profile: admin auth, repo and backup commands, S3/R2 adapters, SMTP, telemetry, and operator UI.
- Local compatibility testing follows without requiring deployment: ConnCase endpoint checks, HTTP black-box tests, local Hurl smoke tests, migration tests, and restore drills.
- Deployment work comes after local proof: release config, Docker, reverse proxy docs, managed PaaS docs, persistent volume requirements, and R2 docs.
- Post-deployment testing proves external DID/handle verification, HTTPS XRPC, WebSocket firehose behavior, relay/AppView crawl, and real-client flows.
Deprioritized behind the above for this profile:
- migration and lifecycle between PDS instances (Milestone 12)
- MFA and advanced account/security UX (parts of Milestone 11/14)
- hosted-provider scale features
Status Labels #
Use these labels when work starts:
[ ] not started
[/] in progress
[x] done
Acceptance Pattern #
Every task should leave one of these behind:
- a passing unit test;
- a passing Phoenix integration test;
- a passing running-server Hurl smoke test;
- a small doc update that explains a verified behavior.
Milestone-level Hurl verification is mandatory.
Hurl Rule #
Smoke tests are Hurl files under test/smoke/*.hurl.
Run a single milestone:
hurl --test --variable base_url=http://localhost:4000 test/smoke/01-xrpc-shell.hurl
Run all smoke tests:
suffix="$(date +%s)"
hurl --test --jobs 1 \
--variable base_url=http://localhost:4000 \
--variable suffix="${suffix}" \
--variable account_handle="smoke-${suffix}.test" \
--variable account_email="smoke-${suffix}@example.com" \
--variable account_password="correct horse battery staple" \
test/smoke/
Use --jobs 1 for smoke suites that create shared accounts or depend on event order.