MijnBezoekmoment 2.2.26-rev38
Datum: 2026-10-26. Basis: 2.2.26-rev37; bevat alles uit rev37.
Opgelost
- Platform Beheer herkende rev37 niet als MijnBezoekmoment-app. De versie in de voettekst stond als losse link, waardoor de herkenningstekst `bezoekmoment-app v…` ontbrak. Gevolg: de platform-check van gratis omgevingen mislukte, en nieuwe gratis omgevingen met rev37 werden na 75 seconden teruggedraaid. De link staat nu om de hele tekst `bezoekmoment-app v2.2.26-rev38` heen.
Databasewijzigingen
- Geen.
Upgrade-opmerkingen
- Deployments die al op rev37 draaien, kunnen direct naar rev38. Dat geeft geen extra herinlog: de sessies van rev37 blijven geldig.
- Komt een deployment van rev36, dan gelden de opmerkingen van rev37: iedereen die met een wachtwoord was ingelogd, logt één keer opnieuw in.
MijnBezoekmoment 2.2.26-rev37
Datum: 2026-10-25
Beveiliging
- Sessies van wie met een wachtwoord inlogt, vervallen zodra het wachtwoord van die rol wijzigt, ook bij een reset vanuit Platform Beheer. Voorheen bleef een sessie tot 14 dagen geldig.
- Nieuw op de beheerpagina: **Iedereen afmelden**. Dit meldt alle wachtwoordsessies van alle rollen af; de beheerder zelf blijft ingelogd. QR- en toegangslinks trek je apart in.
- Ongeldige QR- en toegangslinks en loginpogingen tijdens een blokkade worden per IP-adres begrensd gelogd. Na 10 ongeldige links binnen 15 minuten volgt één samenvattende regel; daarna wordt er tijdelijk niet meer gelogd. Een geblokkeerde loginpoging levert per blokkade één auditregel en één melding op.
- De grootte van een verzoek wordt nu ook begrensd als `Content-Length` ontbreekt (chunked upload). Een ongeldige `Content-Length` geeft 400 in plaats van een serverfout.
Onderhoud
- Het archiveren van het auditlog gebeurt nu elke 6 uur en niet alleen bij het opstarten.
- Gebruiksstatistieken (`usage_events`) ouder dan 400 dagen worden automatisch verwijderd. Dit is in te stellen met `USAGE_EVENTS_RETENTION_DAYS`.
Nieuw
- Het versienummer in de voettekst linkt naar de release notes (`/release-notes`).
Databasewijzigingen
- Geen schemawijziging. Er komen nieuwe instellingen `account_session_epoch_<rol>` bij, die pas worden aangemaakt als iemand **Iedereen afmelden** gebruikt.
Upgrade-opmerkingen
- **Na deze update moet iedereen die met een wachtwoord was ingelogd, één keer opnieuw inloggen.** Oude sessies missen de nieuwe vingerafdruk. Sessies via QR- of toegangslinks blijven werken.
- Nieuwe, optionele omgevingsvariabelen: `ACCESS_LINK_FAIL_LOG_LIMIT` (10), `ACCESS_LINK_FAIL_WINDOW_SECONDS` (900), `USAGE_EVENTS_RETENTION_DAYS` (400) en `MAINTENANCE_INTERVAL_SECONDS` (21600).
- Platform Beheer 0.7.3-rev4 of hoger.
MijnBezoekmoment 2.2.26-rev36
Nieuw
- Duidelijk statusscherm na ingediend verzoek om een gratis omgeving te verwijderen.
Gewijzigd
- Het scherm meldt nu dat de verwijdering op de achtergrond wordt uitgevoerd, niet ten onrechte dat de omgeving al is verwijderd.
Opgelost
- Misleidende melding van succesvolle voltooiing terwijl Platform Beheer alleen het verwijderverzoek heeft aangenomen.
Databasewijzigingen
- Geen.
Compatibiliteit
- Platform Beheer 0.7.2-rev85 aanbevolen; bestaande deployments behouden gegevens en instellingen.
Upgrade-opmerkingen
- Update via de bestaande deployment-updateprocedure; maak vooraf een backup. Controleer een testomgeving en laat productie ongemoeid tijdens de proef.
- De beheerknop wordt alleen zichtbaar bij een geldige platform-delete-koppeling. Controleer de koppeling voor bestaande gratis deployments.
Bezoekmoment 2.2.26-rev35
Nieuw
- Privacyvriendelijke taalstatistiek: gebruiksevents kunnen de gekozen MijnBezoekmoment-taal (`nl`, `en`, enz.) meenemen zonder browsertaal, IP-adres of persoonsgegevens op te slaan.
- De interne usage-summary levert per taal het aantal anonieme gebruikers en events aan voor Platform Beheer.
Gewijzigd
- Relevante login-, QR/link-, reserverings-, bericht- en beheer-events registreren voortaan uitsluitend de gekozen app-taal als veilige metadata.
- Op de bevestigingspagina na zelfservice-verwijdering staat “We zien u graag nog eens terug.” op een nieuwe regel.
Opgelost
- De verwijderbevestiging leest rustiger doordat de slotzin niet meer direct achter “MijnBezoekmoment.” staat.
Databasewijzigingen
- Geen schemawijzigingen. De bestaande `usage_events.metadata`-JSON krijgt optioneel het veld `language`.
Compatibiliteit
- Rechtstreeks compatibel met 2.2.26-rev34.
- Bestaande statistiekhistorie blijft behouden; taalstatistieken vullen zich vanaf rev35 geleidelijk.
- Omgevingen zonder taalmetadata blijven gewoon werken en tonen voor historische periodes mogelijk nog geen taalgebruik.
Upgrade-opmerkingen
- Kan rechtstreeks over 2.2.26-rev34 worden geïnstalleerd.
- Geen handmatige databaseactie nodig.
- Controleer na de upgrade een login in Nederlands en eventueel Engels; daarna kan Platform Beheer rev82 het taalgebruik tonen.
Bezoekmoment 2.2.26-rev34
Nieuw
- Security-hardening op basis van een nieuwe audit van de actuele rev33-broncode en dependencyversies.
Gewijzigd
- De Docker-healthcheck draait nu elke **15 minuten** in plaats van elke 30 seconden. De bestaande lichte Python/`urllib`-controle blijft behouden.
- Nieuwe en gewijzigde accountwachtwoorden gebruiken PBKDF2-HMAC-SHA256 met **600.000 iteraties** in plaats van 260.000. Bestaande hashes blijven geldig doordat het iteratieaantal in de hash is opgeslagen.
- FastAPI is bijgewerkt naar `0.141.1` en Starlette wordt expliciet vastgezet op `1.5.1`.
- Jinja2 is bijgewerkt naar `3.1.6`, `python-multipart` naar `0.0.32` en Pillow naar `12.3.0`.
Opgelost
- De zeer frequente container-healthcheck veroorzaakt niet langer iedere 30 seconden een nieuw Python-proces per deployment.
- Verouderde web-/uploaddependencies uit rev33 zijn vervangen door actuele, gepatchte versies.
- Nieuwe deployments krijgen direct een wachtwoordhash met de verhoogde PBKDF2-workfactor.
Databasewijzigingen
- Geen schemawijzigingen.
- Bestaande wachtwoordhashes worden niet gedwongen gemigreerd; ze blijven valide en een nieuw/gewijzigd wachtwoord wordt automatisch met 600.000 iteraties opgeslagen.
Compatibiliteit
- Volledig compatibel met bestaande deployments op v2.2.26-rev33.
- QR/link-toegang, reserveringen, tijdsloten, database-inhoud, sessies en auditlog blijven ongewijzigd.
- Platform Beheer kan onafhankelijk worden bijgewerkt naar 0.7.2-rev81.
Upgrade-opmerkingen
- Kan rechtstreeks over v2.2.26-rev33 worden geïnstalleerd.
- De image wordt opnieuw gebouwd vanwege dependency-updates.
- Controleer na installatie dat de container `healthy` wordt; daarna zal Docker de healthcheck met een interval van 15 minuten uitvoeren.
- Er is geen handmatige databasemigratie nodig.
Bezoekmoment 2.2.26-rev33
Nieuw
- Geen nieuwe functionaliteit; deze release verfijnt de beheerervaring van de in rev32 toegevoegde QR/link-toegang.
Gewijzigd
- Meldingen na **QR/link aanmaken**, **verlengen**, **intrekken** en **mail naar mijzelf** worden nu direct in het onderdeel **Toegang delen via QR/link** getoond.
- Na zo'n actie blijft **Applicatie-instellingen** geopend en springt de pagina terug naar **Toegang delen via QR/link** in plaats van naar de bovenkant van Beheer.
- De QR-codeweergave gebruikt nu altijd de oorspronkelijke vierkante 1:1-verhouding, ook wanneer de beheerkaart smaller wordt.
Opgelost
- Opgelost dat na het aanmaken van een QR/link alle ingeklapte beheeronderdelen opnieuw dicht stonden en de beheerder terug naar boven op de pagina kwam.
- Opgelost dat een QR-code door flexibele kaartbreedtes visueel samengedrukt kon worden.
Databasewijzigingen
- Geen databasewijzigingen.
Compatibiliteit
- Volledig compatibel met bestaande deployments op v2.2.26-rev32.
- Bestaande QR/links, wachtwoorden, sessies, auditlog en gebruiksstatistieken blijven behouden.
- Geen wijziging nodig aan Platform Beheer 0.7.2-rev77.
Upgrade-opmerkingen
- Kan rechtstreeks over v2.2.26-rev32 worden geïnstalleerd.
- Test na installatie één keer **QR/link aanmaken** en controleer dat Beheer op **Toegang delen via QR/link** blijft staan en de QR-code vierkant wordt weergegeven.
Bezoekmoment 2.2.26-rev32
Deelbare toegang via QR-code en unieke link
- Beheerder kan voor Familie, Normale bezoeker en Cliënt elk maximaal één actieve QR/link aanmaken.
- Bestaande wachtwoordlogin blijft volledig intact en wordt apart gemeten.
- QR/link is zichtbaar in Beheer, native deelbaar, kopieerbaar, als QR-PNG te downloaden en uitsluitend naar het reeds bevestigde beheerder-e-mailadres te mailen.
- Intrekken maakt de link direct ongeldig en beëindigt ook sessies die via die link zijn gestart; het gewone wachtwoord blijft werken.
- Per link zijn gebruiksteller, laatste gebruik en duidelijke vervaldatum zichtbaar.
- Verlengen behoudt dezelfde QR/link en schuift de vervaldatum op volgens de platformpolicy.
- Automatische eenvoudige herinneringsmail 7 en 2 dagen voor verlopen.
- Aanmaken, intrekken, verlengen en herinneringen worden in de auditlog vastgelegd zonder de geheime link/token te loggen.
- Privacyvriendelijke analytics onderscheiden wachtwoordlogin en QR/link-login zodat het effect op foutieve logins meetbaar is.
- Access-links worden meegenomen in de normale JSON-backup/restore.
Bezoekmoment 2.2.26-rev31
Omgevingsprofiel neutraler weergegeven
- De profielkaart toont alleen het actieve profiel.
- De zichtbare aanduiding `vergrendeld` is verwijderd uit de beheerinstellingen.
- De toelichting is verkort naar: **Gekozen bij het aanmaken van de omgeving.**
- Geen wijzigingen aan profielgedrag, planning, reserveringen, databaseopbouw of bestaande Hospice-functionaliteit.
Bezoekmoment 2.2.26-rev30
Omgevingsprofiel duidelijk zichtbaar
- Het actieve omgevingsprofiel heeft nu een eigen kaart in de beheerinstellingen.
- De kaart toont het profiel en de vergrendelde status direct, zodat het niet meer verstopt zit in het blok Locatie/deployment.
- Geen wijzigingen aan profielgedrag, planning, reserveringen, databaseopbouw of bestaande Hospice-functionaliteit.
Bezoekmoment 2.2.26-rev29
- Introduceert het veilige fundament voor vier omgevingsprofielen: Hospice, Verzorgings-/verpleeghuis, Kraambezoek en Ziekenhuis.
- Bestaande, ingerichte deployments worden automatisch en zonder functionele wijziging als **Hospice** gemarkeerd en vergrendeld.
- Nieuwe deployments bevestigen het profiel tijdens de eerste inrichting; na afronding is het profiel niet meer als gewone instelling wijzigbaar.
- Bereidt Platform Beheer-integratie voor via `platform_location.json` (`profile_key`) en `/internal/platform/profile/status`.
- Toont het actieve profiel read-only bij **Beheer → Applicatie-instellingen → Locatie / deployment**.
- Neemt het profiel privacyvriendelijk mee in usage-events en de platform usage-summary.
- Reserveert capability-keys voor toekomstige profielspecifieke functies, maar **activeert in deze release geen enkel profielafhankelijk gedrag**.
- De bestaande Hospice-functionaliteit, planning, reserveringen, familie-modus, clientpagina en notificaties blijven ongewijzigd werken.
Bezoekmoment 2.2.26-rev28
- Corrigeert de zichtbare en interne app-revisie naar `v2.2.26-rev28`.
- Behoudt de veilige functionele Activiteiten-weergave uit rev27.
- Behoudt de browseronafhankelijke Nederlandse 24-uurs tijdinvoer (`UU:MM`) in de eerste-loginwizard.
- `app/VERSION` en `REVISION` zijn weer expliciet gelijkgetrokken.
Bezoekmoment 2.2.26-rev27
- Auditlog voor lokale beheerders vervangen door een gesanitized **Activiteiten**-weergave.
- Toont functionele gebeurtenissen (inloggen, reserveringen, berichten en relevante planning-/beheerwijzigingen) zonder technische details.
- IP-adressen, Docker/proxy-adressen, X-Forwarded-For en vrije technische auditdetails worden niet aan de lokale beheerder getoond.
- Technische auditdata blijft intern bewaard voor troubleshooting/platformbeheer.
- Nieuw beveiligd intern platform-API voor status en aan/uit zetten van de Activiteiten-weergave per deployment.
- Eerste-gebruik wizard gebruikt voor tijdvelden browseronafhankelijke 24-uurs `UU:MM` invoer, zodat AM/PM niet meer door browserlocale kan verschijnen.
- Gecontroleerd: overige app-tijden worden server-side in Europe/Amsterdam en 24-uursnotatie weergegeven.
Bezoekmoment 2.2.26-rev26
Privacyvriendelijke gebruiksanalytics voor Platform Beheer.
- Nieuwe `usage_events`-tabel, los van de inhoudelijke auditlog.
- Registreert uitsluitend eventtype, rol, tijdstip en een deployment-specifieke pseudonieme browser-id.
- Geen namen, e-mailadressen, IP-adressen, berichtinhoud of reserveringsinhoud in de analyticslaag.
- Events toegevoegd voor succesvolle/mislukte login, reservering maken/annuleren, bezoekersbericht, dagafwijking en relevante instellingen.
- Nieuw beveiligd platform-endpoint: `GET /internal/platform/usage-summary?days=30`.
- Endpoint gebruikt bestaande `PLATFORM_INTERNAL_TOKEN`-authorisatie en levert alleen geaggregeerde gebruiksdata.
- Bestaande `audit_log` blijft ongewijzigd voor operationele/security-auditing.
Bezoekmoment 2.2.26-rev25
Mobiele correctie voor de eerste-login basisrooster-wizard op iOS Safari.
- De native WebKit-weergave van `input[type="time"]` kan niet langer buiten de tijdsblokkaart tekenen.
- Tijdvelden blijven echte `type="time"` velden, zodat de iPhone-tijdkiezer behouden blijft.
- Geen wijzigingen aan roosterlogica, database-opslag of desktopfunctionaliteit.
MijnBezoekmoment 2.2.26-rev24
Kleine mobiele correctie voor de eerste-login basisrooster-wizard.
- `Van`- en `Tot`-tijdvelden blijven op iOS/Safari nu altijd binnen de witte tijdsblokkaart.
- De native mobiele tijdkiezer blijft behouden.
- Geen wijziging aan roosterlogica, opslag of desktopgedrag.