Wat is Dokkie technisch?
Dokkie is een browserextensie volgens WebExtensions-standaard. Het is geen native applicatie, draait niet op een server bij de klant, en heeft geen toegang tot infrastructuur buiten de browser-tab.
| Browser | Manifest | UI | Status |
|---|---|---|---|
| Chrome | v3 | Side panel | Listed in Chrome Web Store |
| Edge | v3 | Side panel | Listed in Edge Add-ons |
| Firefox | v2 | Browser action popup | Listed in Firefox Add-ons (AMO) |
Bestanden in de extensie
| Bestand | Functie |
|---|---|
| content.js | Hoofdlogica: alle DOM-leestaken en invul-functies (~6900 regels). Inclusief prestatiecode-detectie, CCQ/ziektelast COPD en CNS-classificatie. |
| sidepanel.html / .js | Chrome/Edge UI (zijpaneel) |
| popup.html / .js | Firefox UI (browser action popup) |
| background.js | Service worker (Chrome/Edge): opent zijpaneel bij klik op extensie-icoon |
| juvoly.js | Content script op app.juvoly.nl: leest SOEP-velden uit Juvoly's interface en plaatst die in localStorage binnen de Juvoly-tab |
| manifest.json | Extensie-configuratie per browser |
| _locales/ | Vertalingen (NL/EN) voor extensie-naam en beschrijving |
| icons/ | PNG-icoontjes (16, 48, 96, 128px) |
Welke permissies vraagt Dokkie?
| Permission | Waarom |
|---|---|
| storage | Opslaan van licentiesleutel, gebruikersinstellingen (feature-toggles) en cache (lokaal in de browser) |
| activeTab | Toegang tot de actieve tab voor inject van content script |
| tabs | Tabbladen vinden (HC en Juvoly) voor cross-tab communicatie |
| scripting | Content script injectie (Chrome/Edge MV3) |
| sidePanel | Zijpaneel-functionaliteit (Chrome/Edge) |
Host-permissies (URL-toegang)
| URL | Doel |
|---|---|
| *://his.healthconnected.nl/* | Productieomgeving — DOM lezen/schrijven |
| *://*.staging.healthconnected.nl/* | HC staging-omgeving (interne testen) |
| *://*.acc.healthconnected.nl/* | HC acceptance-omgeving (interne testen) |
| *://app.juvoly.nl/* | SOEP-data uitlezen voor koppeling |
| https://dokkie-api.vercel.app/* | Licentievalidatie + feedback (zie §4) |
Hoe verloopt de licentiecheck?
Bij activatie en daarna periodiek (max 1× per uur) stuurt Dokkie de licentiesleutel naar de validatie-endpoint:
POST https://dokkie-api.vercel.app/api/verify
Content-Type: application/json
{ "sleutel": "DOKKIE-XXXX-XXXXXX" }
→ Response:
{ "ok": true, "praktijk": "Huisartsenpraktijk Madani" }
of
{ "ok": false, "reden": "Onbekende of inactieve licentiesleutel." }
De server retourneert alleen ok/niet-ok en de praktijknaam. Er wordt geen patiëntinformatie of identificeerbare gebruikersinformatie verstuurd.
Offline werking
Als de validatie-endpoint tijdelijk niet bereikbaar is, blijft Dokkie 7 dagen werken op basis van een eerdere succesvolle validatie. Daarna eist Dokkie een nieuwe validatie voor het opnieuw geactiveerd kan worden.
Hosting van het endpoint
Het endpoint draait op Vercel (regio: Frankfurt, EU). De licentiebron wordt niet publiek geserveerd — alleen het ja/nee-antwoord per gevraagde sleutel. De validatie-database bevat geen persoonsgegevens van eindgebruikers (alleen sleutel + praktijknaam + geldigheidsdatum).
Welke gegevens verlaten de browser?
| Doel | Wat wordt verstuurd | Wanneer |
|---|---|---|
| dokkie-api.vercel.app | Alleen licentiesleutel | Bij activatie + max 1×/uur tijdens gebruik |
| formspree.io | Feedback-tekst, licentiesleutel, praktijknaam, browser+versie | Alleen na klik op "Feedback sturen" door gebruiker |
| HealthConnected (his.) | Niets — alleen lezen/schrijven binnen DOM van actieve tab | n.v.t. |
| Juvoly (app.juvoly.nl) | Niets — alleen lezen/schrijven binnen DOM van actieve tab | n.v.t. |
AI-componenten in de runtime
Dokkie bevat geen AI- of machine-learning-modellen in de runtime. De volledige logica is regel-gebaseerd: expliciete patroonherkenning, reguliere expressies en gestructureerde beslisregels die in code zijn vastgelegd.
Dokkie is wél ontwikkeld met behulp van AI-tooling (zoals coding-assistants), maar geen enkele beslissing tijdens runtime wordt door een lerend model genomen. Elke uitkomst is reproduceerbaar en herleidbaar naar een specifieke regel in de broncode.
Beveiligingsmaatregelen
- HTTPS-only externe verbindingen — alle calls naar dokkie-api.vercel.app en formspree.io zijn versleuteld
- Content Security Policy — geen
eval(), geen externe script-loads, geen inline event handlers in popup/sidepanel - Sandbox — de extensie draait in de browser-sandbox volgens MV2/MV3 standaard
- Geen telemetrie — geen tracking, geen analytics, geen monitoring van gebruikersgedrag
- Geen externe code-loading — de extensie haalt geen JavaScript op tijdens runtime; alle code zit in het ondertekende bundle
- Code-review door browser-stores — Chrome, Edge en Mozilla hebben de extensie elk apart gereviewed voordat publicatie werd toegestaan
Hoe Dokkie wordt geüpdatet
Updates worden uitsluitend via de officiële browser-stores uitgerold. Browsers controleren standaard meerdere keren per dag op updates en installeren deze automatisch op de achtergrond. Gebruikers hoeven niets te doen.
Per update worden de wijzigingen door het store-reviewteam beoordeeld. Tussen indienen en uitrol zit doorgaans 1–10 werkdagen, afhankelijk van de browser.
Praktijken die updates centraal willen beheren kunnen Chrome/Edge enterprise-policies gebruiken om de extensie verplicht of verboden te maken (ExtensionInstallForcelist / ExtensionInstallBlocklist).
DigiZorgt als (sub)verwerker
Voor zover Dokkie aangemerkt zou worden als verwerker in de zin van AVG art. 28, sluit DigiZorgt op verzoek van de praktijk een verwerkersovereenkomst (DPA). Deze is op aanvraag beschikbaar via info@dokkie.app.
Sub-verwerkers van DigiZorgt:
- Vercel Inc. — hosting validatie-endpoint (regio: Frankfurt, EU)
- Formspree Inc. — verwerking van bestel- en feedbackformulier (VS, met DPF-certificering)
- Mollie B.V. — betalingsverwerking (Amsterdam)
Klachten over verwerking kunnen worden ingediend bij de Autoriteit Persoonsgegevens.
Voor IT-afdelingen die Dokkie willen toetsen
Voor onafhankelijke toetsing zijn de volgende bronnen beschikbaar:
- Source code in store-reviews — Mozilla en Google hebben de volledige niet-geminificeerde broncode geïnspecteerd vóór goedkeuring
- Network-monitoring — gebruik de browser DevTools (Network-tab) om alle externe verbindingen van Dokkie te observeren
- Permission-overzicht — zie §3 voor de complete lijst
- Privacyverklaring — dokkie.app/privacy.html
- Transparantiepagina — dokkie.app/transparantie.html
- Vragen over architectuur of code-review — neem contact op met info@dokkie.app, IT-vragen krijgen prioriteit