Privacy/PII review-pass van Server Actions, API-routes, debug-paths en Sentry config: ✅ Sentry sendDefaultPii: false in alle drie configs (server/edge/client) ✅ Geen wachtwoord/email/token in console-logs ✅ Pair-id-logs zijn metadata-only (5-min TTL, geen secret) ⚠️ Vier debug-routes hadden geen auth-guard: - /api/debug/realtime-stream — rauwe pg_notify-stream zonder filtering - /api/debug/emit-test-notify — anonieme test-emit op het kanaal - /debug-env — lekt env-var-metadata (hostnames, lengtes, pooled-flag) - /debug-realtime — UI op dezelfde rauwe pg_notify-stream Allemaal gemarkeerd als TIJDELIJK met VERWIJDEREN-comments uit M8. Voor v1 launch: NODE_ENV-guard die in productie 404 retourneert. Lokaal dev blijft alles werken voor debugging. Toekomstige cleanup: kunnen worden verwijderd zodra M8-realtime stabiel draait in productie en niemand ze meer nodig heeft. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
1 KiB
TypeScript
27 lines
1 KiB
TypeScript
// TIJDELIJKE debug-pagina voor M8-acceptance.
|
|
// Geen auth, geen styling — toont alle inkomende pg_notify-events op
|
|
// `scrum4me_changes` in een tabel zodat we kunnen zien of de SSE + LISTEN-
|
|
// pipe überhaupt events doorstroomt op Vercel.
|
|
//
|
|
// VERWIJDEREN VOOR M8 OUT-OF-DRAFT.
|
|
|
|
import { notFound } from 'next/navigation'
|
|
import { DebugRealtimeClient } from './client'
|
|
|
|
export const dynamic = 'force-dynamic'
|
|
|
|
export default function DebugRealtimePage() {
|
|
// Productie-guard: deze pagina toont rauwe pg_notify-events zonder auth.
|
|
if (process.env.NODE_ENV === 'production') notFound()
|
|
|
|
return (
|
|
<div style={{ fontFamily: 'monospace', padding: 16 }}>
|
|
<h1 style={{ fontSize: 18, fontWeight: 'bold' }}>Realtime debug — scrum4me_changes</h1>
|
|
<p style={{ fontSize: 13, color: '#666' }}>
|
|
Live SSE-stream rechtstreeks van Postgres LISTEN op channel{' '}
|
|
<code>scrum4me_changes</code>. Geen auth, geen filtering. Verwijderen na M8 acceptance.
|
|
</p>
|
|
<DebugRealtimeClient />
|
|
</div>
|
|
)
|
|
}
|