Harden and feature-flag the Friend System rollout
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 28/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript, mongodb, nodejs, react
- Ambito
- full-stack, observability, release, security, testing
Direzione di ricerca
Non sono indicati file né punti di ingresso dei test. Inizia tracciando il comportamento del server e i punti di ingresso del client, quindi esamina le dipendenze di avvio (#191, #185, #75, #82, #105, #186, #187 e #176); il lavoro è completo quando sono completati l'interruttore di rollout, il percorso di rollback, l'observability sicura per la privacy, i test di compatibilità e abuso, la documentazione e la checklist per l'abilitazione graduale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Goal
Ship the Friend System without turning user search, friend requests, notifications, or room invitations into new abuse, privacy, or operational failure modes.
Security and privacy requirements
- Deny social reads/actions by default unless the authenticated relationship and resource state allow them.
- Enforce authorization server-side on every HTTP and Socket.IO action.
- Apply an explicit HTTP/Socket origin allowlist instead of reflecting arbitrary origins.
- Validate and size-limit social payloads and add per-user/per-pair rate limits for search, requests, blocks, notification actions, and invitations.
- A block must prevent new friend requests and invites, revoke pending social actions, and avoid revealing to the blocked user that a block exists.
- Never request, retain, search, log, analyze, or deliver through email; #191 is a hard launch prerequisite.
- Never log names, WCA IDs, access tokens, room passwords, notification contents, or friend graph edges.
- Do not expose online presence, hidden WCA identity, or private-room metadata outside the intended audience.
Rollout and observability
- Gate server behavior and client entry points behind one documented
SOCIAL_FEATURES_ENABLEDrollout switch. - Ensure the disabled state leaves existing room/timer behavior unchanged and provides a tested rollback path.
- Add privacy-safe metrics for request creation/acceptance, invite creation/join conversion, notification delivery/reconciliation failures, authorization failures, and rate-limit triggers.
- Add indexes/retention jobs before enabling writes and expose health/degraded signals for required social persistence paths.
- Test old-client/new-server and new-client/old-server behavior for the adjacent release window.
- Add abuse/authorization tests for ID tampering, blocked pairs, duplicate/replayed actions, unauthenticated access, disallowed origins, oversized payloads, rate limits, and email-like discovery input.
- Document data retention, account deletion behavior, incident rollback, and a short production verification checklist.
- Enable for a small test cohort/staging first, verify metrics and two-user flows, then enable broadly.
Launch dependencies
- #191 stop requesting and purge WCA email
- #185 normalized username foundation
- #75 friendship lifecycle and blocking
- #82 discovery/public profiles
- #105 notification inbox
- #186 friends hub/presence
- #187 room invitations
- Complete the modernized production rollout in #176
Non-goals
- Direct messages (#189).
- Browser push.
- Opt-in stranger matching (#190).
- Lingua principale
- JavaScript
- Stelle
- 30
- Fork
- 9
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di coder13/LetsCube
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
area: data area: platform enhancement priority: P1
Difficoltà 5/5 Più di una settimana Idoneità per principianti 28/100
Tutte le issue di coder13/LetsCube
Issue simili
-
[Feature]:Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
automated issue report
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
lirantal/discoprint#36 ·
I maintainer di solito rispondono entro 1 giorno
-
accepting PR Content:HTML
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
mdn/content#45988 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
pnpm/pnpm#16635 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
txn2/mcp-data-platform#2030 ·
I maintainer di solito rispondono entro 1 giorno