Optionele diagnostiek en Phantom Wing

PayCal bevat een optionele diagnostische laag die u beheert. Hier staat precies wat die verzamelt, wat op uw apparaat blijft en hoe het wordt gebruikt.

Overzicht

PayCal bevat een ingebouwde diagnostische laag met de naam Phantom Wing. Standaard is die bijna volledig stil: hij legt alleen ernstige, onbehandelde fouten vast en verzendt niets zonder uw expliciete toestemming.

Als u een probleem tegenkomt en meer context met support wilt delen, kunt u extra diagnostiek inschakelen via Instellingen - Debugging (optioneel). Elke instelling is onafhankelijk; u kunt alleen de relevante inschakelen. Alle drie staan standaard Uit.

De drie optionele controles

Elke controle staat in het paneel Debugging (optioneel) onderaan uw instellingenpagina. Ze zijn alleen bedoeld voor probleemoplossing; inschakelen kan interacties licht vertragen doordat de browser extra werk uitvoert.

Instelling Wat dit inschakelt Wie het ziet
Consoleberichten Stuurt waarschuwingen, informatielogs en prestatiemarkers naar de ontwikkelaarsconsole. Voor zelfdiagnose opent u DevTools en zoekt u naar berichten met [PayCal]. Alleen u: browserconsole, nooit verzonden.
Gedetailleerde diagnostiek Schakelt stapsgewijze interne logging in. Phantom Wing legt levenscycli van bewerkingen vast in een geheugenlog dat alleen wordt opgenomen in een supportrapport dat u deelt. Alleen u, tenzij u een supportrapport deelt.
Netwerkinzichten Logt API-timing, responsgroottes en of batching of caching is toegepast. Helpt traagheid bij specifieke bewerkingen te diagnosticeren. Alleen u: browserconsole, nooit verzonden.

Wat Phantom Wing standaard doet

Zelfs als alle drie controles uit staan, draait Phantom Wing een lichte basismonitor die alleen ernstige fouten vastlegt:

  • Niet-afgevangen JavaScript-exceptions (window.onerror)
  • Onbehandelde promise rejections
  • Fetch-aanroepen die falen door een netwerkfout, niet HTTP-fouten die per functie worden afgehandeld

Deze basisgegevens blijven volledig in het geheugen en worden nooit verzonden. Ze verschijnen één seconde als samenvatting in de browserconsole bij het laden van de pagina en worden daarna weggegooid.

// Baseline output when all clear (console, diagnostics off):
[PHANTOM WING] All clear - no errors or warnings detected.

// Baseline output when issues exist:
[PHANTOM WING] Error Summary
Total issues: 2 across 2 grouped location(s).
WARN 1: FormSubmit timed out after 8000ms
ERROR 1: Uncaught TypeError in calendar renderer

Phantom Wing en telemetrie

Phantom Wing heeft een licht telemetriekanaal om betrouwbaarheid van functies geaggregeerd te meten, bijvoorbeeld om ongewoon hoge foutpercentages te ontdekken.

Wat telemetrie verzendt

  • Geanonimiseerde eventtellingen per uur, bijvoorbeeld pw.performance.metrics: count=1, bucket_hour=2026030914
  • Foutcategorie en type, nooit het volledige foutbericht of stacktrace
  • Geen gebruikers-ID’s, sessietokens of IP-adressen

Wat telemetrie nooit verzendt

  • Uw naam, e-mailadres of accountgegevens
  • Inkomsten, betaalperiode of financiële gegevens
  • Volledige foutberichten of stacktraces
  • URL-paden of querystrings
  • Toetsaanslagen of formulierwaarden

Rate limiting en back-off

Telemetrie-inzendingen worden server-side per gebruiker per minuut begrensd. Overschrijdt de client de drempel, dan bevestigt de server stil en verwerpt het teveel; niets wordt opgeslagen. De client gebruikt ook exponentiële back-off: na twee serverfouten achter elkaar wordt telemetrie automatisch tien minuten uitgeschakeld.

// Telemetry payload shape (no personal data):
{
  "type": "pw.performance.metrics",
  "fields": {
    "count": 1,
    "bucket_hour": 2026030914,
    "flush_reason": "timer"
  }
}

Gegevensredactie

Voordat een waarde wordt opgeslagen of via telemetrie wordt verzonden, past Phantom Wing automatische redactie toe. Waarden die bekende gevoelige patronen volgen, worden vervangen door [REDACTED]:

  • E-mailadressen
  • Bearer-tokens en autorisatieheaderwaarden
  • CSRF-tokens
  • Teksten die lijken op cryptografische sleutels of lange base64-blobs

Redactie geldt voor alle argumenten van onderschepte consolemethoden en alle telemetriewaarden voordat ze in de wachtrij komen. Dit kan niet worden omzeild door diagnostiek in te schakelen.

Bereikwaarborgen: pagina’s waar diagnostiek wordt onderdrukt

Telemetrie wordt volledig onderdrukt op authenticatiepagina’s (/auth/). Ook met Netwerkinzichten aan wordt niets verzonden tijdens aanmelden, registreren of herstel. Dit voorkomt dat gegevens rond inloggegevens in diagnostische kanalen verschijnen.

Uw controle

Alle drie diagnostische instellingen worden opgeslagen als accountvoorkeuren, niet als browsercookies. Ze volgen uw account over apparaten en sessies en staan voor elk account, ook nieuwe, standaard Uit. U kunt ze altijd wijzigen via Instellingen - Debugging (optioneel).

Een instelling uitschakelen werkt bij de volgende paginalading. Er worden geen diagnostische gegevens tussen sessies bewaard: het geheugenlog van Phantom Wing wordt gewist wanneer u weg navigeert of het tabblad sluit.

Samenvatting

  1. Alle drie debugcontroles staan standaard Uit en moeten expliciet door u worden ingeschakeld
  2. Consoleberichten en Netwerkinzichten verlaten uw apparaat nooit
  3. Gedetailleerde diagnostiek blijft in het geheugen en wordt alleen gedeeld als u een rapport deelt
  4. Telemetrie verzendt alleen geanonimiseerde geaggregeerde tellingen: geen persoonsgegevens
  5. Alle waarden worden geredigeerd voor opslag of verzending, ongeacht instellingen
  6. Telemetrie is volledig onderdrukt op alle authenticatiepagina’s
  7. Rate limiting en automatische back-off voorkomen accidenteel overrapporteren

Phantom Wing is zo ontworpen dat u alle diagnostiek onbeperkt uit kunt laten. De optionele controles geven u en support een gedeelde taal wanneer er iets misgaat, niet om standaard gegevens te verzamelen.