Skip to content

feat(pds): add app password support#147

Merged
ascorbic merged 4 commits intomainfrom
feat/app-passwords
Mar 29, 2026
Merged

feat(pds): add app password support#147
ascorbic merged 4 commits intomainfrom
feat/app-passwords

Conversation

@ascorbic
Copy link
Copy Markdown
Owner

Summary

  • Implement AT Protocol app passwords (com.atproto.server.createAppPassword, listAppPasswords, revokeAppPassword)
  • Support login via app passwords in createSession — passwords hashed with bcrypt, same as the account password
  • Add CLI commands: pds app-password create <name>, pds app-password list, pds app-password revoke <name>
  • Non-privileged only (single-user PDS doesn't need the privileged tier)

Test plan

  • pds app-password create "test" generates password in xxxx-xxxx-xxxx-xxxx format
  • pds app-password list shows created passwords with name and date
  • Login with app password via createSession returns valid JWT
  • pds app-password revoke "test" removes the password
  • Revoked app password can no longer authenticate
  • Regular password login still works unchanged

🤖 Generated with Claude Code

Implement AT Protocol app passwords for client authentication.

- Add app_passwords storage table with bcrypt-hashed passwords
- Implement com.atproto.server.createAppPassword endpoint
- Implement com.atproto.server.listAppPasswords endpoint
- Implement com.atproto.server.revokeAppPassword endpoint
- Support app password login via createSession
- Add CLI commands: app-password create/list/revoke
- Generate passwords in xxxx-xxxx-xxxx-xxxx format
- Non-privileged only (single-user PDS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Mar 29, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
atproto-pds 204de19 Mar 29 2026, 03:35 PM

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new bot commented Mar 29, 2026

Open in StackBlitz

npm i https://pkg.pr.new/create-pds@147
npm i https://pkg.pr.new/@getcirrus/oauth-provider@147
npm i https://pkg.pr.new/@getcirrus/pds@147

commit: 204de19

ascorbic and others added 3 commits March 29, 2026 16:09
18 tests covering CRUD endpoints, authentication flow, revocation,
and the full create→list→auth→revoke→reject lifecycle. README updated
with CLI reference and API endpoint table entries.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Knip flagged isAppPassword as an unused export — it's only used
internally in the same file. Removed the export keyword.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
After displaying the generated password, prompts the user to confirm
they've saved it, then overwrites the display with a masked version
so the password doesn't linger in terminal scrollback.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@ascorbic ascorbic merged commit 2f06391 into main Mar 29, 2026
5 checks passed
@ascorbic ascorbic deleted the feat/app-passwords branch March 29, 2026 15:37
@mixie-bot mixie-bot bot mentioned this pull request Mar 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant