feat(frontend): página pública de verificación de actas (/verify)#63
Merged
Conversation
Hace tangible el diferenciador: un auditor/cliente/regulador pega el acta firmada y verifica la firma Ed25519 SIN cuenta en Mnemo. Usa los endpoints públicos que ya expone el backend (POST /certificates/verify, GET /certificates/pubkey). - Página pública /verify (fuera de /app → sin AuthGuard): pega el acta (JSON), muestra "firma válida/ no válida" + identidad del acta (veredicto, proyecto, run, commit, emisión) y la clave pública para verificar offline. - Route handlers proxy (verify POST, pubkey GET) — reenvían sin Authorization. - verifyCertificate/getCertificatePubkey en endpoints.ts (sin token) + tipos. - Tests: los endpoints no envían Authorization; el test de paridad cubre las rutas. Claude-Session: https://claude.ai/code/session_01X1fZebDm9ABFwLU2v3mq46
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto
Hace tangible el diferenciador de Mnemo ("SLSA para QA"): convierte los endpoints públicos de verificación (que ya expone el backend en
main, PR #61) en una página que un auditor/cliente/regulador puede usar sin cuenta en Mnemo.Cambios
/verify(src/app/verify/page.tsx) — vive fuera desrc/app/app/, así que NO pasa por elAuthGuard. El usuario pega el acta (JSON), pulsa "Verificar firma", y ve:canonical_json.identity).certificates/verify(POST) ycertificates/pubkey(GET) — el proxy solo reenvíaAuthorizationsi viene, así que funcionan sin sesión.verifyCertificate/getCertificatePubkeyenendpoints.ts(sin token) + tiposCertificateVerifyResponse,CertificatePubkey.{canonical_json, signature}mínimo; parseo con mensajes de error humanos.Test plan
certificate-verify.test.ts: verify/pubkey hacen la llamada correcta sin headerAuthorization.route-parity.test.tscubre la existencia de los dos route handlers nuevos.lint:cilimpio;tsc --noEmitEXIT=0.next build:/verifyprerenderiza como estática (○), los handlers como funciones (ƒ).Siguiente
/verifydesde el acta descargada (PDF) y desde la home, y reposicionar el copy como "el estándar de acta firmada de QA".https://claude.ai/code/session_01X1fZebDm9ABFwLU2v3mq46