···5353- [ ] Rate limit 2FA attempts
5454- [ ] Re-auth for sensitive actions (email change, adding new auth methods)
55555656-### Private/encrypted data
5757-Records that only authorized parties can see and decrypt. Requires key federation between PDSes.
5858-5959-- [ ] Survey current ATProto discourse on private data
6060-- [ ] Document Bluesky team's likely approach
6161-- [ ] Design key management strategy
6262-- [ ] Per-user encryption keys (separate from signing keys)
6363-- [ ] Key derivation for per-record or per-collection encryption
6464-- [ ] Encrypted record storage format
6565-- [ ] Transparent encryption/decryption in repo operations
6666-- [ ] Protocol for sharing decryption keys between PDSes
6767-- [ ] Handle key rotation and revocation
6868-6956### Plugin system
7057Extensible architecture allowing third-party plugins to add functionality, like minecraft mods or browser extensions.
7158···8168- [ ] Plugin SDK crate with traits and helpers
8269- [ ] Example plugins: custom feed algorithm, content filter, S3 backup
8370- [ ] Plugin registry with signature verification and version compatibility
7171+7272+### Plugin: Private/encrypted data
7373+Records that only authorized parties can see and decrypt. Requires key federation between PDSes. Implemented as a plugin using the plugin system above.
7474+7575+- [ ] Survey current ATProto discourse on private data
7676+- [ ] Document Bluesky team's likely approach
7777+- [ ] Design key management strategy
7878+- [ ] Per-user encryption keys (separate from signing keys)
7979+- [ ] Key derivation for per-record or per-collection encryption
8080+- [ ] Encrypted record storage format
8181+- [ ] Transparent encryption/decryption in repo operations
8282+- [ ] Protocol for sharing decryption keys between PDSes
8383+- [ ] Handle key rotation and revocation
84848585---
8686