04 — Testen en publicatie

04 — Testen en publicatie

Aantonen dat de demo werkt, gegevens van bezoekers scheiden en gecontroleerd publiceren op een nog te kiezen subdomein van salomons.nl.

Build log (2)Knowledge (2)Tasks (2)
2 tasks
T10 — Publiceer op het bevestigde subdomein van salomons.nl In progress oplevering NORMAL

Publiceer via de bestaande omgeving nadat exacte hostname en toegang beschikbaar zijn. Richt HTTPS, persistente opslag, opschoning en herstelinstructie in; voer een publieke rooktest uit. Voorgangers: T09 (taak 247)

T09 — Doorloop het acceptatieplan en herstel blokkerende fouten Open oplevering NORMAL

Voer de gerichte automatische checks en handmatige desktop/mobielroutes uit. Controleer de hele werkroute en sessiescheiding met twee onafhankelijke bezoekers. Voorgangers: T06 (taak 244), T07 (taak 245), T08 (taak 246)

Build Log

2 entries

Live demo-start hersteld en publiek geverifieerd

Sep 21, 2026

De live demo-start gaf eerst 422 omdat de HTTPS-vhost de verkeerde forwarded scheme doorgaf; de HTTPS-vhost geeft nu X-Forwarded-Proto=https en poort 443 door. Vervolgens bleek json 3.0.2 niet compatibel met Rails 8.1-sessiecookies; release 0499e50 pinnt json < 3.0. Lokaal: bin/rails test slaagt (2 runs, 4 assertions, 0 failures/errors). Productie: een schone publieke sessie POST /demo geeft 302 naar /planning; GET /planning geeft 200 en toont de acht fictieve voorbeeldklussen. De HTTPS-URL en /up blijven 200. T10 blijft in uitvoering totdat de volledige acceptatieroute, mobiele weergave, reset en tweesessie-isolatietest aantoonbaar zijn afgerond.

ServiceOverzicht gepubliceerd op bevestigde HTTPS-host

Sep 21, 2026

Release 2ff6a03 is gepubliceerd op https://serviceoverzicht.salomons.nl via de bestaande VPS, gedeelde Kamal-proxy en een eigen persistente appvolume. Voor de bevestigde hostname is een nieuw Apache-vhost en Let’s Encrypt-certificaat ingericht; de certificaatvernieuwing is door Certbot gepland. Rooktest vanaf de publieke URL: GET / en GET /up gaven beide HTTP 200; de landingspagina bevat de Noord Onderhoud-demo en startknop. De container draait en de private proxy-healthcheck geeft 200. De dagelijkse, vergrendelde opschoning van verlopen demosessies is geïnstalleerd en eenmaal succesvol uitgevoerd in de actieve container. Bestaande containers zijn tijdens deze release niet vervangen. T10 blijft in uitvoering totdat de volledige productieacceptatie (nieuwe sessie, formulier, planning, reset, isolatie en mobiel) aantoonbaar is doorlopen.

Knowledge

2 items
📝
Publicatieplan — salomons.nl, beheer en herstel

## Doel De lokale Codex publiceert de app op een subdomein van salomons.nl, passend bij Henks bestaande hosting. Voorstel: serviceoverzicht.salomons.nl. 'xyz.salomons.nl' in de oorspronkelijke opdracht is een plaatsaanduiding, geen gekozen hostname. Geen nieuwe externe hostingdienst, account of betaald abonnement toevoegen zonder concrete aanleiding. Geen andere bestaande applicatie vervangen. ## Voorbereiden met lokale informatie 1. Lees repository-instructies en controleer aanwezige deployconfiguratie, beschikbare toegang en infrastructuur. 2. Bevestig de exacte hostname, bestaande DNS-records en eventuele reeds draaiende toepassing voordat DNS of routing wordt gewijzigd. 3. Bepaal appservice, database, persistent volume, configuratie en HTTPS via bestaande conventies. Gebruik werkelijke waarden uit de omgeving; zet geen credentials in dit openbare project. 4. Maak een reproduceerbare release vanuit een vastgelegde commit, met gerichte testresultaten en een lijst benodigde niet-geheime configuratienamen. Ontbreekt alleen toegang of de keuze voor het subdomein, rond dan eerst alle bouw- en testwerk af en beschrijf precies welke invoer nog nodig is. ## Eerste release Zorg voor een geïsoleerde appservice en database/schema, correcte productie-instellingen, migraties en automatische seed per demosessie. Geen centrale gedeelde voorbeeldset die iedere bezoeker wijzigt. Configureer DNS/routing en TLS pas voor de bevestigde bestemming. Controleer gezondheid vóór omschakelen als de infrastructuur dat ondersteunt. Stel dagelijkse opschoning in en verifieer databasepersistentie. Houd logging sober, zonder formulierinhoud of sessiegeheimen. ## Herstel Leg de vorige release/configuratie vast vóór een update en maak vóór destructieve datamigraties een passende backup. Beschrijf herdeploy van de vorige release en wat dat voor gegevens betekent. Demosessies zijn tijdelijk en hoeven geen zakelijke archiefgarantie. Het moet wel mogelijk zijn de app opnieuw op te bouwen en verse sessies te starten. Verlies van tijdelijke oefendata moet duidelijk blijven. Stop bij een bestaande onverwachte productieapp op de doelhostname; geen overschrijving op basis van aannames. ## Oplevering Registreer alleen de werkelijk gebruikte publieke URL en commit/release, een samenvatting van de rooktest en waar de beheerinstructie in de repo staat. Exacte serverdetails blijven in lokale operationele documentatie. Publicatie is pas voltooid na controle vanaf de publieke URL. Een lokale preview, geregistreerde site of gepland DNS-record telt niet als live app.

📝
Acceptatieplan — werking, mobiel en gegevensscheiding

## Gereed betekent aantoonbaar werkend Onderstaande controles zijn acceptatiecriteria voor de nog te bouwen app. Ze zijn nu niet uitgevoerd. Codex noteert datum, commit/revisie, gebruikte omgeving, resultaat en eventuele beperking bij oplevering. ## Gerichte automatische controles 1. De toegestane statusovergangen werken; verboden sprongen en ontbrekende planvelden worden servermatig afgewezen. 2. Een medewerker uit sessie B kan niet aan een aanvraag in sessie A worden gekoppeld. 3. Met twee aparte browsersessies kan A geen lijst/detail/notitie lezen of muteren van B, ook niet via geraden URL of direct HTTP-verzoek. 4. Terugzetten en verlopen van A laten B intact. Verlopen sessies zijn ook vóór opschonen ontoegankelijk. 5. Aanvraaggegevens, notities en historie blijven na herladen bewaard; dubbele identieke verzending maakt één aanvraag. 6. Een update vanuit een verouderd tabblad overschrijft geen nieuwere wijzigingen ongemerkt. 7. De hoofdroute aanvraag → plannen → uitvoeren → afronden werkt end-to-end. 8. Ongeldige invoer, HTML/scripttekst, te lange velden en overschreden demolimieten worden veilig afgehandeld. Gebruik het bestaande testframework; test gedrag en belangrijke grenzen. Geen omvangrijke tests van statische teksten of CSS-details. ## Handmatige acceptatie Desktop en telefoonbreedtes 360 en 390 px: landing, formulier, lijst, detail en Mijn werk zonder horizontaal scrollen. Toetsenbord: focus zichtbaar, labels verbonden, foutmelding bereikbaar, knoppen bedienbaar. Filters, lege resultaten en wissen filters werken. De medewerker ziet zowel Vandaag als Alle open klussen. Status is ook zonder kleur begrijpelijk. Browser terug/verversen behoudt opgeslagen wijzigingen. Een reset vereist bevestiging. Sessieverloop krijgt een begrijpelijke melding. Check in de beoogde browser én één tweede browser waar beschikbaar. Noteer wat werkelijk getest is; 'niet getest' blijft expliciet. ## Publicatiecontrole Publieke HTTPS-URL bereikbaar; alle statische middelen laden; productie toont geen stacktraces. Seed, reset, sessionisolatie en schrijfacties werken met productiecookie-instellingen. Geen secrets of echte persoonsgegevens in HTML, assets, voorbeelddata of Buildory. Opruimtaak is ingesteld en een gecontroleerde verlopen sessie wordt verwijderd. Runtimegegevens staan op persistente opslag. Leg de werkende URL, releaseverwijzing, beperkte testuitslag en eventuele restpunten vast. Markeer alleen werkelijk afgeronde taken als done. ## Demo versus echt bedrijfsgebruik Dit resultaat is een openbare demonstratie met tijdelijke oefengegevens. Echte inzet vraagt aanvullende accountrechten, bewaarbeleid, herstelprocedures en toetsing aan de concrete bedrijfsvoering. De marketing mag de demo niet als kant-en-klaar productiesysteem presenteren.