KittoX 4.1: rilasciata la prima release stabile

4.1: la prima release stabile

È disponibile KittoX 4.1, la prima release stabile del framework Delphi di Ethea per costruire applicazioni web data-driven descritte in YAML, senza scrivere HTML, CSS o JavaScript.

Con questa versione il nuovo client HTMX sostituisce definitivamente ExtJS, arrivano l’API REST, l’autenticazione JWT, la validazione dei metadati con anteprima dal vivo delle view in KIDEX e un server MCP che apre il progetto agli agenti AI.

Il cuore del framework è gratuito e open source (Apache 2.0); gli strumenti avanzati dell’edizione Enterprise si provano gratis per 30 giorni.

Dalla beta alla versione 4.1

KittoX nasce come quarta generazione di Kitto, il framework che Ethea sviluppa e usa dal 2012 sui propri progetti. La 4.1 è la nuova e rivoluzionaria versione: il porting del client, il server REST e la coppia di strumenti KIDEX / MCP-KittoX sono completi, e l’intero codice è passato attraverso una revisione sistematica di sicurezza e correttezza.

L’idea di fondo non è cambiata: si descrive il modello dei dati e le viste in file YAML, e il server genera l’interfaccia. Il codice Delphi serve solo dove serve davvero, per le regole di business e i controller personalizzati.

Le ragioni dietro questa scelta — perché il server genera interfaccia invece di dati, perché non serve un ORM, come si compone una view in YAML — sono raccontate per esteso, con esempi di codice, nell’articolo KittoX 4.1: un approccio radicale allo sviluppo di applicazioni web con Delphi.

Un client leggero: HTMX al posto di ExtJS

La libreria commerciale ExtJS è stata sostituita da HTMX + Alpine.js: circa trenta kilobyte complessivi al posto di un megabyte e mezzo, senza licenze da rinnovare e senza una classe Delphi da mantenere per ogni componente del client.

Il server emette frammenti di HTML standard e HTMX li sostituisce nella pagina. Il risultato è un’applicazione completamente AJAX in cui paginazione, filtri, salvataggi e navigazione sono attributi nell’HTML generato, non codice JavaScript da scrivere.

Ne guadagna anche l’aspetto: 2122 icone SVG Material Design in cinque stili, temi chiaro/scuro/automatico costruiti su variabili CSS e selezionabili dall’utente finale, e rilevamento automatico del dispositivo con viste dedicate per telefono e tablet.

Nell’immagine, la Dashboard dell’applicazione di esempio TasKitto.

Comporre le viste: il controller List

Il controller List diventa un vero contenitore: al centro ospita la griglia, ma anche un grafico o un calendario, e nelle regioni laterali altri pannelli che condividono filtri e aggiornamento.

La novità che si nota di più è la form del record corrente accanto alla griglia: basta dichiarare EastController: Form e la scheda segue la riga selezionata, in sola lettura oppure modificabile sul posto. Sostituisce il vecchio AutoFormPlacement di Kitto 1 con un meccanismo dichiarativo e componibile.

Accanto ai controller storici ne arrivano di nuovi: Wizard per i processi a più passi, FlexPanel per i layout a flexbox, TilePanel per i menu a mattonelle adatti al mobile, TemplateDataPanel per presentare i dati con un template HTML proprio.

API REST e autenticazione JWT

Oltre all’interfaccia web, un’applicazione può esporre le stesse viste come servizio REST/JSON sotto /api/v4/{View}, con gli stessi modelli, le stesse regole di business e lo stesso controllo degli accessi della GUI. Sono inclusi documentazione OpenAPI 3.0, Swagger UI, CORS e autenticazione Bearer, in tutte le modalità di deployment.

L’autenticazione può passare a JWT aggiungendo un blocco di poche righe sotto qualunque authenticator esistente (database, file di testo, LDAP o personalizzato): il token firmato sostituisce il cookie di sessione, sopravvive ai riavvii e funziona su più istanze. Con AccessControl: JWT anche i permessi viaggiano nel token, azzerando le letture sul database a ogni controllo.

Notifiche, elaborazioni in background e Help Chat

Le esportazioni pesanti e i report non bloccano più l’utente: con RunMode: Background il tool viene affidato a un pool di worker separato dai thread HTTP e la richiesta ritorna subito. Un centro notifiche nella barra in alto segue avanzamento, esito ed eventuali errori, e mette a disposizione il file quando è pronto; i job sono persistiti su disco e sopravvivono al riavvio del processo.

Per l’utente finale arriva anche una Help Chat: una bolla che risponde alle domande sull’applicazione in uso, cercando nella documentazione di KittoX. Funziona senza chiavi API e offline; in alternativa può appoggiarsi a un provider AI che risponde sempre basandosi sugli stessi documenti.

Nell’immagine, il notification center:

Nell’immagine, l’help chat:

Cinque modi di mettere in produzione

La stessa applicazione gira, senza modifiche al codice, come applicazione desktop VCL, come servizio Windows, come server console (comodo in Docker), come modulo ISAPI sotto IIS o come modulo Apache. La modalità Desktop Embedded la ospita dentro una finestra VCL con WebView2: all’utente sembra un’applicazione desktop nativa, senza browser attorno.

KIDEX: i metadati sotto controllo

L’IDE visuale KIDEX conosce lo schema del framework attraverso gli attributi RTTI delle classi: valida modelli, viste, layout e Config.yaml mentre li scrivi, segnala nodi sconosciuti, tipi sbagliati e riferimenti rotti, e propone i nodi figli ammessi con i valori di default già compilati. Lo stesso controllo si esegue senza interfaccia con MCPKittoX --validate, quindi entra in una build o in un controllo pre-commit.

La novità più utile di questa release è la Live Preview: si apre una view — o il primo layout che la usa — e la si vede renderizzata dal motore reale, in un browser integrato, senza compilare né avviare l’applicazione. Si ricarica da sola quando salvi un file, emula telefoni e tablet e può autenticarsi da sola con l’utente o il profilo che scegli.

Completano il quadro il wizard di creazione progetto, che genera un’applicazione Win64 funzionante per una qualsiasi delle modalità di deployment, e il Database Wizard, che genera ed esegue la DDL per allineare il database ai modelli del progetto, in più dialetti e con anteprima modificabile.

Nell’immagine, l’IDE di KIDEX

MCP-KittoX: il progetto a portata di agente AI

MCPKittoX.exe espone le funzionalità di KIDEX agli agenti AI attraverso il Model Context Protocol: Claude Code, Claude Desktop, Codex, LM Studio e qualunque client compatibile. Un agente può creare l’impianto di una nuova applicazione, ricavare i modelli da un database esistente, generare viste e layout, ispezionare il database, validare i metadati e aggiornare le traduzioni, conversando, senza uscire dall’agente.

Sono 44 tool distribuiti su tredici aree; le operazioni di scrittura vanno abilitate esplicitamente e lo spazio di lavoro è confinato alla cartella del progetto.

Qualità: revisione di sicurezza e test automatici

La 4.1 chiude una revisione sistematica del perimetro esposto: algoritmo JWT vincolato, revoca immediata del token al logout e al cambio password, contenimento dei path traversal sui file statici e sui BLOB, cache dei permessi per utente resa thread-safe, credenziali lette solo dal corpo della richiesta.

La suite automatica conta 271 test, verdi su Win64; i test di integrazione girano su server reali SQL Server, Oracle, Firebird e PostgreSQL, e caricano per intero il catalogo dei metadati di tutte le applicazioni di esempio.

Anche le librerie di terze parti sono allineate alle ultime versioni, lato Delphi e lato client, e i bundle non più referenziati sono stati rimossi.

Licenze: il cuore è gratuito

Il core di KittoX è open source con licenza Apache 2.0, una delle più permissive: uso libero, anche commerciale e closed-source, senza royalty e senza obbligo di ridistribuire il codice. Comprende tutti i controller fondamentali, il routing, l’autenticazione JWT, il supporto multi-database, l’API REST, il centro notifiche, la Help Chat e le applicazioni di esempio complete.

All’edizione Enterprise appartengono i controller di visualizzazione avanzata — grafici, calendario, mappe, dashboard — gli strumenti di reportistica e i due strumenti di produttività, KIDEX e MCP-KittoX.

Prova subito la trial gratuita di 30 giorni

L’installer configura l’ambiente in pochi click e installa una versione di prova completamente funzionante per 30 giorni: abbastanza per valutare l’edizione Enterprise su un progetto vero, dal primo file YAML al deploy. Agli eventi a cui Ethea partecipa, Delphi Day e ITDevCon, viene distribuito un coupon che porta la prova a 90 giorni.

Alla scadenza il framework continua a funzionare, moduli Enterprise compilati compresi: solo KIDEX e MCP-KittoX richiedono una licenza commerciale per proseguire.

Come si parte

Spread the word. Share this post!