8.0.0-alpha12
TopLogic Release
2026-10-30
TopLogic 8.0.0-alpha12 stellt die Engine auf Java 21 um, schließt die Umstellung der React-Oberfläche auf das Design-System-Paket ab und bringt Aktionsketten mit benannten Argumenten, eine einheitliche Zugriffsprüfung für Sichten und Befehle sowie einen neuen Projektaufbau ohne TopLogic-Parent-POM. Die KI-Module sind jetzt Teil der Engine.
Plattform und Build
- Java 21: Die Engine wird für Java 21 gebaut und läuft auf Java 21; Jetty wechselt auf die EE-11-Umgebung.
- Projekte ohne Parent-POM: Anwendungen und Fragmente können die BOM
tl-bomimportieren, die Packagingstl-app/tl-fragmentdestl-maven-pluginverwenden und Funktionen über die Startertl-starter-*wählen. - Archetyp mit React-Oberfläche:
tl-archetype-apperzeugt standardmäßig eine React-Anwendung; die Optionuiwähltreact,classicoderboth. - KI-Module in der Engine:
tl-ai-*undtl-chat*sind Engine-Module und erscheinen mit der Engine-Version. - Build-Prüfungen: Javadoc-Verweise und ungenutzte Imports werden im Maven-Build geprüft; ein Git-Merge-Treiber für die generierten Ressourcendateien vermeidet Konflikte zwischen parallelen Branches.
React-Oberfläche (TL Views)
- Design-System abgeschlossen: Alle übrigen Controls (Eingaben, Medien, Kalender, Kanban, Dashboard, Editoren) zeichnen mit dem Design-System-Paket;
tlReactControls.cssentfällt. - Aktionsketten mit benannten Argumenten: Auslöser liefern mehrere benannte Werte, Skripte verwenden sie ohne Lambda-Kopf als Variablen, Folgeaktionen einer Aktion mit Ergebnis stehen in
<with-result>. - Formulare: Aktionen
<enter-edit-mode/>/<leave-edit-mode/>, Normalisierung eingegebener Werte, per TL-Script berechnete Einfügevorschläge, Erwähnungen (@/#) im HTML-Editor, ein Auswahlfeld, das auch einen freien Wert annimmt, mehrwertige Binärwerte als Datei-Chips mit Mehrfach-Upload (<file-list>entfällt). - Tabellen und Bäume:
<tree-table>mit Excel-Export, Knotendarstellung undrow-class; nicht sortierbare Spalten; Filter-Presets mit Zähler und CSS-Klasse; schnellere Zeilenauswahl. - Weitere Elemente: schwebende Hauptaktion und Aktionsfächer, Mehrfachauswahl im
flow-diagram, Wertebereich des Schiebereglers aus Kanälen, Zeiteingabe mit Sekunden, Auswahloptionen in Listenreihenfolge, Titel des Browser-Tabs folgt der angezeigten Sicht. - Navigation im Tile-Stack:
<frame>-Deklarationen tragen eineidund werden geschachtelt;<navigate-push>und Darstellungsziele adressieren einen Frame. - Dienstkonfiguration: Die Konfiguration der Dienste lässt sich in der React-Oberfläche anzeigen, bearbeiten und speichern, gekennzeichnet mit "Neustart erforderlich".
- Fenster folgen fremden Commits: Commits anderer Threads erreichen jedes Fenster ohne eigene Konfiguration.
Sicherheit und Zugriffsrechte
- Eine Definition der Zugriffsprüfung: Sichten, Befehle und TL-Script-Funktionen deklarieren Zugriffsprüfungen gleich, als Operationen auf dem Typ des angezeigten Objekts; eigene Operationen werden am Typ deklariert.
- Entdeckungsrecht: Die modellbasierte Sicherheit kennt ein Recht, ein Objekt zu entdecken (gefilterte Objektquellen, maskierte Formularfelder).
- Initiale Gruppen: Jede Anwendung erhält die Gruppen
user(Default-Gruppe neuer Zugänge) undsuperusermit passenden Rollen. - Zugangsdaten ohne Geheimnisse in der Konfiguration: benannte Secret-Quellen, tokenbasierte Authentifizierung (Keycloak/OIDC, Workload Identity, Azure) und API-Gateway.
Konfiguration und Betrieb
- Eingabefelder per Annotation: Konfigurationsformulare wählen ihre Editoren über fachliche Annotationen (
@MultiLine,@Code,@Html,@Inline, …), in klassischer und React-Oberfläche gleich;@ControlProviderund@ConfigControlentfallen. - Start-Haken: Konfigurierbare Haken laufen nach dem Start aller Dienste und ersetzen mehrere Setup-Module.
- Konfigurationsverweise:
config:refadressiert einen Eintrag einer Liste mit Schlüssel über einen global eindeutigen Schlüssel; ein Sicht-Overlay adressiert jedes Element über seineid. - JSON Schema: Typisierte Konfigurationen lassen sich passend zu einem erzeugten JSON Schema 2020-12 serialisieren.
- XML-Import: Meldung unbekannter Elemente,
<set-translation>,<unless-known>und ein partitionsweises<resolve-existing>für sich weiterentwickelnde externe Formate. - KI: LLM-Anbieter lassen sich allein über Umgebungsvariablen aktivieren; der Modellkatalog hat eine eigene Ansicht.
- Mail-Server-Daemon: Neue Mails werden an ihrer IMAP-UID erkannt; unbekannte Mails bleiben standardmäßig im Postfach.
- Persistenz: schnelleres Löschen auf H2 und eine Ein-Branch-Konfiguration für Anwendungen ohne Branches.
Fehlerbehebungen
- React-Oberfläche: Darstellung von Tabellen nach dem Neuladen und bei großen gefilterten Zeilenmengen, Höhen von Panels in Split-Flächen, Tabs und Stacks, Größen in px im Split-Panel, Reiterleisten breiter als ihr Container, Sprungziele ohne gesetzte Auswahl, sofortiges Abmelden nach dem Login.
- Sicherheit und Modell: abgeleitete Attribute für Benutzer ohne Entdeckungsrecht, Aufzählungswerte für Nicht-Administratoren nicht entdeckbar, Gruppen und Adressen für Superuser nicht lesbar.
- Performance: quadratischer Aufbau von Mengen, Modulsuche in
TLModelUtil, Speicherverbrauch von Fenstern ohne SSE-Verbindung. - Migration und Build: Migrationen von Anwendungsmodulen ohne gespeicherte Version,
update-classin ein anderes Modul, mehrere instabile Tests.
Migration
Dieses Release erfordert Anpassungen in Anwendungen: Java 21 für Build und Betrieb, Stylesheets, die die entfallenen tl*-CSS-Klassen der React-Controls ansprechen, Skripte und Aktionen in .view.xml-Dateien (benannte Argumente, <with-result>, eindeutige ids, Frames des Tile-Stacks), Zugriffsprüfungen von Sichten und Befehlen, die entfallenen Annotationen @ControlProvider / @ConfigControl, durch Start-Haken ersetzte Setup-Module, die Konfiguration von Geheimnissen und der Mail-Server-Daemon. Der Migrationsabschnitt der Release Notes beschreibt jeden Schritt.