sgcWebSockets 2026.10 is uit. Twee lijnen lopen erdoorheen: sgcHTML heeft de onderdelen gekregen die een zakelijke webapplicatie nodig heeft en die je niet meer met de hand hoeft te schrijven, en de cryptografie is post-quantum geworden zonder ook maar één externe library toe te voegen.
Webapplicaties: het saaie werk, klaar
Sessies, login en CSRF. De nieuwe component TsgcHTMLAuth en de bijbehorende session stores houden de cookie bij, beantwoorden de login- en logoutaanvragen, sluiten inactieve sessies af en beperken mislukte inlogpogingen. Het CSRF-token reist mee in een meta tag, htmx voegt het vanzelf toe aan elk verzoek, en de server wijst een post af die het niet meestuurt.
FAuth := TsgcHTMLAuth.Create(Self);
FAuth.SessionStore := TsgcHTMLSessionStore_Memory.Create(Self);
FAuth.CookieName := 'app_session';
FEngine.Auth := FAuth;
Routes die lezen als routes. Padparameters, een methodefilter, en toegang tot de headers, de cookies en de body:
with FRouter.Routes.Add do
begin
Path := '/customers/{id}/edit';
Methods := [hrmGet, hrmPost];
RequireLogin := True;
RequireRoles := 'admin,sales';
end;
Pagina's die je kunt testen. DispatchDirect beantwoordt een verzoek zonder dat er een socket achter zit, en een nieuwe unit leest de gegenereerde HTML, vindt elementen op id, klasse, tag of attribuut en vergelijkt een pagina met een opgeslagen kopie, zodat een onbedoelde wijziging in de markup wordt opgemerkt door een test in plaats van door een klant.
Navigatie die aanvoelt als een applicatie. Pagina's veranderen zonder volledige herlaadbeurt en behouden de scrollpositie en wat de gebruiker aan het typen was, met een laadbalk, een dialoogvenster wanneer de verbinding wegvalt en een melding wanneer een verzoek mislukt. Dit alles standaard uitgeschakeld.
De vier hoofdfuncties
Elk van deze heeft een eigen artikel, aan het einde gelinkt, dus hier alleen wat het is:
- MCP Apps. Een MCP-tool die antwoordt met een pagina in plaats van een alinea, gerenderd binnen ChatGPT, Claude of VS Code, opgebouwd uit dezelfde componenten als elke andere sgcHTML-pagina.
- De AI-paginagenerator. Beschrijf een pagina, of geef de designer een screenshot, en hij bouwt hem op uit je geregistreerde componenten als een kandidaat die je accepteert of verwerpt.
- Het CRUD-component. Lijst, zoeken, paginering, formulier, verwijderen en het schrijfpad van één dataset, over een TDataSet of over je eigen SQL, met een IDE-wizard en een generator vanaf de command line.
- Het AI Data Pack. Stel een grid, een data table of een draaitabel een vraag in gewone taal, met een regelgebaseerde parser die antwoordt zelfs als er helemaal geen API-sleutel is.
Push, op twee manieren
Server sent events kunnen nu de updates dragen in plaats van een WebSocket, met herhaling van wat er gemist is terwijl de verbinding verbroken was, en het werkt met de gewone HTTP-server. Web Push bereikt een browser die gesloten is. Er komen een berichten-inbox en een voorkeurentabel bij, en het notificatiecomponent bepaalt welk kanaal een bepaalde gebruiker krijgt.
AI: antwoorden waar je iets mee kunt
TsgcAIChat kan nu via de nieuwe methode ChatJSON vragen om JSON dat een door jou opgegeven schema volgt, bij OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok en Mistral; de methode ontleedt het antwoord en vraagt nogmaals, met de parsefout erbij, wanneer het niet te lezen is. Het chatcomponent verstuurt en ontvangt nu ook afbeeldingen, en BaseUrl wordt nu door elke provider gerespecteerd en niet meer alleen door Ollama, zodat elk van hen naar een proxy of een lokale gateway kan worden gewezen.
Cryptografie: post-quantum, in Object Pascal
ML-KEM (FIPS 203), ML-DSA (FIPS 204) en SLH-DSA (FIPS 205), hybride sleutelencapsulatie met X-Wing, post-quantum X.509-certificaten en certificaatautoriteiten, en JWT's ondertekend met ML-DSA. Dit alles geschreven in Object Pascal in het sgcCrypto-pakket, zonder externe library, gevalideerd tegen de bekende NIST-testvectoren.
Daarbovenop staat een native TLS 1.3-engine, ook in puur Pascal: een client of een server spreekt TLS zonder OpenSSL en zonder SChannel, en onderhandelt daarbij over de hybride post-quantumgroepen van RFC 10024, met ALPN, S N I, clientcertificaten en optioneel gebruik van de vertrouwensopslag van het besturingssysteem.
De klassieke kant is in dezelfde slag verstevigd: geblindeerde RSA in constante tijd, scalaire vermenigvuldiging op elliptische krommen in constante tijd en Ed25519, tabelvrije AES en GHASH, geïmporteerde privésleutels die tegen hun publieke helft worden gecontroleerd, en niet-minimale DER-handtekeningen die worden geweigerd.
Reparaties die het noemen waard zijn
- Het ondertekenen en valideren van JWT met RSA- en ECDSA-sleutels, en geheugencorruptie in 32-bit applicaties, wanneer OpenSSL statisch is gelinkt.
- De SChannel-handler die bij elke verbinding met een PFX-bestand een kopie van de privésleutel achterliet in de Windows-sleutelopslag, en die op recente Windows-versies het clientcertificaat niet verstuurde.
- Gelijktijdige SChannel-verbindingen met een certificaat uit de Windows-opslag die de handshake lieten mislukken.
- De OAuth2-server die DPoP-bewijzen afwees die met RSA-sleutels waren ondertekend.
- Ondertekende CloudFront-URL's waarvan de handtekening niet URL-veilig gecodeerd was.
.NET
De .NET-library houdt gelijke tred: auth en sessies met een ClaimsPrincipal-brug voor ASP.NET Core, de router, de testhulpmiddelen, SPA-navigatie, het SSE-transport met een native endpoint, gestructureerde output, het AI Data Pack, Web Push, MCP Apps en het CRUD-component met zijn adapters, allemaal met dezelfde API-namen als in Delphi.
Upgraden
Alles wat nieuw is, is additief en standaard uitgeschakeld. Zet de nieuwe units erbij, herbouw je packages, en een bestaande applicatie gedraagt zich precies zoals daarvoor.
De volledige versies
- Draai je Delphi-app binnen ChatGPT en Claude
- Zet een screenshot om in een Delphi-webpagina
- Delphi TLS 1.3 zonder OpenSSL-DLL's
- Een Delphi-CRUD-webpagina in vijf minuten
- Stel je Delphi-grid een vraag in gewoon Engels
- Een gesloten browser bereiken, vanuit Delphi
Bekijk het
Er is een korte video hierover op het eSeGeCe-kanaal.
Vragen, feedback of hulp bij migratie? Neem contact op — je krijgt antwoord van de mensen die de code hebben geschreven.
