mirror of
https://github.com/complexcaresolutions/frontend.porwoll.de.git
synced 2026-03-17 16:23:41 +00:00
- Add server.js to ESLint globalIgnores (CJS file for Passenger) - Remove unused cn import from QuoteBlock - Configure underscore-prefix pattern for unused vars Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
| active | iteration | max_iterations | completion_promise | started_at |
|---|---|---|---|---|
| true | 1 | 50 | PHASE1_COMPLETE | 2026-01-02T11:35:45Z |
SSL-Monitor Phase 1: Foundation
Kontext
- Verzeichnis: /home/frontend/ssl-monitor
- Tech Stack: Next.js 15 (App Router), Tailwind CSS, shadcn/ui, SQLite (better-sqlite3), BullMQ
- Port: 3009
- Redis: localhost:6379 (existiert bereits)
Ziel
Grundgerüst mit funktionierendem SSL-Check und Dashboard erstellen.
Aufgaben
1. Projekt-Setup
- Next.js 15 mit App Router initialisieren (falls nicht vorhanden)
- Dependencies installieren: better-sqlite3, bullmq, ioredis, zod, date-fns
- Tailwind CSS + shadcn/ui konfigurieren
- Projektstruktur gemäß umsetzung.md anlegen
2. Datenbank
- SQLite Schema erstellen (src/lib/db.ts)
- Tabellen: domains, ssl_checks, categories, settings
- Initial-Seed: 3 Default-Kategorien (Development, Production, External)
- Initial-Seed: 16 Domains aus umsetzung.md
3. SSL-Checker
- src/lib/ssl-checker.ts: tls.connect() Implementation
- Zertifikat-Parsing (Issuer, Subject, Validity, SANs)
- Certificate Chain Analyse
- OCSP-Status Check (src/lib/ocsp-checker.ts)
- Error-Handling mit Kategorisierung (dns, connection, certificate, timeout)
- Retry-Logik (Exponential Backoff)
4. Queue System
- src/lib/queue.ts: BullMQ Queue Setup
- worker/ssl-worker.ts: Worker Process
- Concurrency: 5 parallele Checks
- Job-Options: 3 Attempts, Exponential Backoff
5. API Routes
- GET/POST /api/domains - Domain CRUD
- GET/PUT/DELETE /api/domains/[id]
- POST /api/check - Single Domain Check (queued)
- POST /api/check/all - Alle Domains checken
- GET /api/history/[domainId] - Check History
6. Dashboard UI
- src/app/page.tsx: Dashboard mit Grid Layout
- components/dashboard/DomainCard.tsx: Expandable Card
- components/common/StatusBadge.tsx: Ampel (Grün/Gelb/Rot/Grau)
- components/dashboard/FilterBar.tsx: Kategorie + Status Filter + Suche
- components/domain/CertificateChain.tsx: Chain Visualisierung
Erfolgskriterien
pnpm builderfolgreichpnpm lintohne Errors- Dashboard zeigt alle 16 Domains
- SSL-Check für eine Domain funktioniert (manueller Test)
- Queue-Worker startet und verarbeitet Jobs
- StatusBadge zeigt korrekte Farben basierend auf daysRemaining
Selbst-Prüfung nach jeder Iteration
pnpm lint --fixpnpm build- Falls Fehler: analysieren, korrigieren, wiederholen
- Falls Build erfolgreich: nächste Aufgabe
Bei Blockade nach 40 Iterationen
- Dokumentiere in BLOCKERS.md was nicht funktioniert
- Liste versuchte Ansätze
- Markiere welche Aufgaben abgeschlossen sind
Referenz
Lies /home/frontend/ssl-monitor/umsetzung.md für Details zu:
- Datenbank-Schema (Abschnitt 2.2)
- SSLCheckResult Interface (Abschnitt 3.2.1)
- Domain-Seed Daten (Abschnitt 5.3)
Output PHASE1_COMPLETE wenn alle Aufgaben erledigt.