Add a feature-flagged PostgreSQL solve-history read API
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- postgresql
- Ambito
- api, authentication, authorization, backend, database, testing
Direzione di ricerca
Inizia dalla dipendenza #199 e dai relativi #200, #203, #204, #175 e #202 collegati, quindi conferma l’aggregato PostgreSQL Room/RaceSession e i prerequisiti di rollout di #176 e PR #195. Usa i test di autorizzazione indicati per private/hidden/deleted-room, empty-history, disabled e pagination come primi punti di validazione; completato significa che l’API dei cursori autenticata e il contratto documentato client/csTimer soddisfano ogni criterio di accettazione senza fallback a MongoDB né registrazione dei dati di soluzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Goal
Expose durable per-user solve history from PostgreSQL only after the Room/RaceSession aggregate is authoritative. Do not build this API around the legacy room-embedded attempt model.
Read contract
- Require the authenticated user.
- Return cursor-paginated completed solves with stable solve ID, event, time, +2/DNF penalties, scramble, Room/RaceSession reference, and timestamps.
- Authorize private, hidden, expired, and deleted-room history server-side. Do not return passwords, access codes, room membership, or moderation data.
- Query the canonical PostgreSQL
Solve → Attempt → RaceSession → Roomrelationship;Solve.room_idis only a temporary migration compatibility field and must not define API semantics. - Use a session-aware deterministic index and cursor compatible with the final schema.
- Gate the client endpoint behind configuration and retain an explicit disable path, not a MongoDB fallback after aggregate cutover.
- Instrument latency and error/disable behavior without logging solve data or identity.
Acceptance criteria
- The API is authenticated, cursor-paginated, and stable across concurrent new solves.
- It returns the final Room/RaceSession-shaped representation and correct penalties/scrambles.
- Private-room, hidden/deleted-room, empty-history, disabled, and pagination authorization tests pass.
- Disabled PostgreSQL behavior is explicit and does not read MongoDB room/result state.
- Client history and csTimer-export consumers are documented against the final contract.
Dependencies
- #199, including #200, #203, #204, #175, and #202.
- Stable production rollout from #176 and settled room ownership/admin semantics from PR #195.
- The PostgreSQL aggregate cutover and reconciliation must complete before implementation begins.
Unlocks
- #160
- #161
- #163
- 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
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
FuRongJun-1999/dsh-memory#56 ·
I maintainer di solito rispondono entro 1 giorno
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
pgadmin-org/pgadmin4#10503 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
521xueweihan/HelloGitHub#3856 ·
-
needs-ac
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Ikalus1988/MisakaNet#2845 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
rage/ohjelmointi-26#23 ·