fase(15): reporting module with pdf generation
This commit is contained in:
@@ -223,65 +223,65 @@ Spec: `.ralph/specs/phase-11-dashboard.md`
|
||||
|
||||
---
|
||||
|
||||
## Phase 12: Sessions Pages [PENDIENTE]
|
||||
## Phase 12: Sessions Pages [COMPLETO]
|
||||
Spec: `.ralph/specs/phase-12-sessions-pages.md`
|
||||
|
||||
- [ ] 12.1: Crear `components/sessions/NewExplorationForm.tsx` — React Hook Form + Zod: URL, seed, maxStates, maxDepth, allowedDomains (chips), excludedPaths (chips), auth type (none/cookies/headers/login_flow) con campos condicionales, fuzzing toggle + intensity, collapsible advanced section
|
||||
- [ ] 12.2: Crear `pages/sessions/SessionList.tsx` — TanStack Table: status badge, url, findings count, duration, created at; sortable + filterable
|
||||
- [ ] 12.3: Crear `pages/sessions/SessionDetail.tsx` — layout con tabs
|
||||
- [ ] 12.4: Crear `components/sessions/LiveFeed.tsx` — streaming WebSocket con auto-scroll, colores por event type (verde state, amarillo action, rojo anomaly)
|
||||
- [ ] 12.5: Crear `components/sessions/SessionFindings.tsx` — findings de esta sesión con severity badges
|
||||
- [ ] 12.6: Crear `components/sessions/SessionConfig.tsx` — ExplorationConfig read-only
|
||||
- [ ] 12.7: Progress bar estados explorados / maxStates
|
||||
- [ ] 12.8: Stop button funcional (DELETE /api/sessions/:id)
|
||||
- [ ] 12.9: Verificar frontend build + commit: `fase(12): session pages with live feed`
|
||||
- [x] 12.1: Crear `components/sessions/NewExplorationForm.tsx` — React Hook Form + Zod: URL, seed, maxStates, maxDepth, allowedDomains (chips), excludedPaths (chips), auth type (none/cookies/headers/login_flow) con campos condicionales, fuzzing toggle + intensity, collapsible advanced section
|
||||
- [x] 12.2: Crear `pages/sessions/SessionList.tsx` — TanStack Table: status badge, url, findings count, duration, created at; sortable + filterable
|
||||
- [x] 12.3: Crear `pages/sessions/SessionDetail.tsx` — layout con tabs
|
||||
- [x] 12.4: Crear `components/sessions/LiveFeed.tsx` — streaming WebSocket con auto-scroll, colores por event type (verde state, amarillo action, rojo anomaly)
|
||||
- [x] 12.5: Crear `components/sessions/SessionFindings.tsx` — findings de esta sesión con severity badges
|
||||
- [x] 12.6: Crear `components/sessions/SessionConfig.tsx` — ExplorationConfig read-only
|
||||
- [x] 12.7: Progress bar estados explorados / maxStates
|
||||
- [x] 12.8: Stop button funcional (DELETE /api/sessions/:id)
|
||||
- [x] 12.9: Verificar frontend build + commit: `fase(12): session pages with live feed`
|
||||
|
||||
---
|
||||
|
||||
## Phase 13: Findings Pages [PENDIENTE]
|
||||
## Phase 13: Findings Pages [COMPLETO]
|
||||
Spec: `.ralph/specs/phase-13-findings-pages.md`
|
||||
|
||||
- [ ] 13.1: Crear `pages/findings/FindingsList.tsx` — TanStack Table con filtros: severity multi-select, type multi-select, status, session dropdown, text search
|
||||
- [ ] 13.2: Crear `pages/findings/FindingDetail.tsx` — split layout
|
||||
- [ ] 13.3: Crear `components/findings/ReproductionSteps.tsx` — numbered step cards con action type, selector, screenshot thumb
|
||||
- [ ] 13.4: Crear `components/findings/EvidencePanel.tsx` — tabs: Console (syntax-highlighted), Network (request/response table), DOM (snapshot viewer)
|
||||
- [ ] 13.5: Crear `components/findings/AIAnalysisPanel.tsx` — muestra enrichment si existe, o botón "Analyze with AI"
|
||||
- [ ] 13.6: Export buttons: "Export as Playwright", "Export as Markdown", "Export as JSON"
|
||||
- [ ] 13.7: Status workflow buttons: open → investigating → resolved → closed
|
||||
- [ ] 13.8: `components/common/SeverityBadge.tsx` — reutilizable con colores critical=rojo, high=naranja, medium=amarillo, low=azul
|
||||
- [ ] 13.9: Verificar frontend build + commit: `fase(13): findings pages with detail view`
|
||||
- [x] 13.1: Crear `pages/findings/FindingsList.tsx` — TanStack Table con filtros: severity multi-select, type multi-select, status, session dropdown, text search
|
||||
- [x] 13.2: Crear `pages/findings/FindingDetail.tsx` — split layout
|
||||
- [x] 13.3: Crear `components/findings/ReproductionSteps.tsx` — numbered step cards con action type, selector, screenshot thumb
|
||||
- [x] 13.4: Crear `components/findings/EvidencePanel.tsx` — tabs: Console (syntax-highlighted), Network (request/response table), DOM (snapshot viewer)
|
||||
- [x] 13.5: Crear `components/findings/AIAnalysisPanel.tsx` — muestra enrichment si existe, o botón "Analyze with AI"
|
||||
- [x] 13.6: Export buttons: "Export as Playwright", "Export as Markdown", "Export as JSON"
|
||||
- [x] 13.7: Status workflow buttons: open → investigating → resolved → closed
|
||||
- [x] 13.8: `components/common/SeverityBadge.tsx` — reutilizable con colores critical=rojo, high=naranja, medium=amarillo, low=azul
|
||||
- [x] 13.9: Verificar frontend build + commit: `fase(13): findings pages with detail view`
|
||||
|
||||
---
|
||||
|
||||
## Phase 14: Settings Pages [PENDIENTE]
|
||||
## Phase 14: Settings Pages [COMPLETO]
|
||||
Spec: `.ralph/specs/phase-14-settings-pages.md`
|
||||
|
||||
- [ ] 14.1: Crear `pages/settings/SettingsLayout.tsx` — layout con sidebar navigation entre sections
|
||||
- [ ] 14.2: Section "Profile" — cambiar nombre, email, password
|
||||
- [ ] 14.3: Section "Organization" — nombre org, invitar miembros, manage roles
|
||||
- [ ] 14.4: Section "API Keys" — crear (con nombre + permisos), listar, revocar
|
||||
- [ ] 14.5: Section "Exploration Defaults" — form con defaults para nuevas exploraciones
|
||||
- [ ] 14.6: Section "Notifications" — Slack webhook URL, min severity
|
||||
- [ ] 14.7: Section "Appearance" — tema dark/light, accent color
|
||||
- [ ] 14.8: Section "License" — ver status licencia, input para activar key
|
||||
- [ ] 14.9: Verificar frontend build + commit: `fase(14): settings pages`
|
||||
- [x] 14.1: Crear `pages/settings/SettingsLayout.tsx` — layout con sidebar navigation entre sections
|
||||
- [x] 14.2: Section "Profile" — cambiar nombre, email, password
|
||||
- [x] 14.3: Section "Organization" — nombre org, invitar miembros, manage roles
|
||||
- [x] 14.4: Section "API Keys" — crear (con nombre + permisos), listar, revocar
|
||||
- [x] 14.5: Section "Exploration Defaults" — form con defaults para nuevas exploraciones
|
||||
- [x] 14.6: Section "Notifications" — Slack webhook URL, min severity
|
||||
- [x] 14.7: Section "Appearance" — tema dark/light, accent color
|
||||
- [x] 14.8: Section "License" — ver status licencia, input para activar key
|
||||
- [x] 14.9: Verificar frontend build + commit: `fase(14): settings pages`
|
||||
|
||||
---
|
||||
|
||||
## Phase 15: Reporting Module [PENDIENTE]
|
||||
## Phase 15: Reporting Module [COMPLETO]
|
||||
Spec: `.ralph/specs/phase-15-reporting.md`
|
||||
|
||||
- [ ] 15.1: Crear domain: `Report.ts` (AggregateRoot), value objects `ReportFormat.ts` (pdf/html/json), `DateRange.ts`
|
||||
- [ ] 15.2: Crear port: `IReportGenerator.ts`
|
||||
- [ ] 15.3: Crear `commands/GenerateReportCommand.ts` — crea report con findings de un rango de fechas/sesión
|
||||
- [ ] 15.4: Crear `infrastructure/generators/HTMLReportGenerator.ts` — genera HTML report completo
|
||||
- [ ] 15.5: Crear `infrastructure/generators/PDFReportGenerator.ts` — usa Playwright para renderizar HTML → PDF
|
||||
- [ ] 15.6: Crear `infrastructure/http/ReportingController.ts` — POST /api/reports, GET /api/reports, GET /api/reports/:id/download
|
||||
- [ ] 15.7: Integrar con job queue: generación async
|
||||
- [ ] 15.8: Migración Kysely: tabla reports
|
||||
- [ ] 15.9: Frontend: `pages/Reports.tsx` — generar (dialog con filtros), listar, descargar
|
||||
- [ ] 15.10: Tests: GenerateReportCommand con mock generator
|
||||
- [ ] 15.11: Verificar build completo + commit: `fase(15): reporting module with pdf generation`
|
||||
- [x] 15.1: Crear domain: `Report.ts` (AggregateRoot), value objects `ReportFormat.ts` (pdf/html/json), `DateRange.ts`
|
||||
- [x] 15.2: Crear port: `IReportGenerator.ts`
|
||||
- [x] 15.3: Crear `commands/GenerateReportCommand.ts` — crea report con findings de un rango de fechas/sesión
|
||||
- [x] 15.4: Crear `infrastructure/generators/HTMLReportGenerator.ts` — genera HTML report completo
|
||||
- [x] 15.5: Crear `infrastructure/generators/PDFReportGenerator.ts` — usa Playwright para renderizar HTML → PDF
|
||||
- [x] 15.6: Crear `infrastructure/http/ReportingController.ts` — POST /api/reports, GET /api/reports, GET /api/reports/:id/download
|
||||
- [x] 15.7: Integrar con job queue: generación async
|
||||
- [x] 15.8: Migración Kysely: tabla reports
|
||||
- [x] 15.9: Frontend: `pages/Reports.tsx` — generar (dialog con filtros), listar, descargar
|
||||
- [x] 15.10: Tests: GenerateReportCommand con mock generator
|
||||
- [x] 15.11: Verificar build completo + commit: `fase(15): reporting module with pdf generation`
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user