TopLogic - the automated application engine
  • Releases
  • Dokumentation
  • Github
  • Discord
  1. Home
  2. Releases
  3. TL_8.0.0-alpha7
  4. #29221

8.0.0-alpha7
TopLogic Release

2026-07-30

enhancement

critical
#29088
Model-based access rights
#29108
Lightweight UI definition layer (TL Views) based on React UI-Components
major
#28694
Beschreibung von Modellteilen als formatierter Text (Rich Text)
#28708
Standard-Selektion in (Baum-)Tabellen und Grids per TL-Script berechenbar machen
#29102
Add com.top_logic.layout.react module for React/SSE integration
#29221
Automatische Bestimmung möglicher Berechtigungskonfigurationen
#29349
XML-Parse-Funktionen für TL-Script über XMLImporter
#29374
TL-Script: gzip()
#29389
Code-Completion für Variablen ($) im TL-Script-Editor
#29396
Conversation display for TL Views: object-list element, file chips, card panels
#29399
Info-Service-Meldungen: unten statt oben anzeigen und beim Überfahren mit der Maus fixieren
#29400
Introduce a first-class application "operation mode" service (OperationMode enum + ApplicationModeService)
minor
#29085
Neu einloggen bei Session Timeout anstatt Redirect zur Login-Seite
#29089
TL-Script-Funktionen log() und info() um wählbaren Meldungs-Level (INFO, WARN, ERROR) erweitern
#29195
Probleme mit HTML-Attributen und TL-Script
#29306
TL Script: dateFormat() should accept an explicit timezone to format Calendar values losslessly
#29382
Expose a public classpath-driven Workspace.getAppPaths overload
#29385
App archetype should scaffold a standard git-ignored local-credentials overlay (tl_config) by default
#29392
Transaktionsabbruch bei Nicht-2xx Response
#29398
Login-Maske: Statt "Name" besser "Benutzername"

defect

major
#29383
Dead SOCKET_APPENDER (Chainsaw, localhost:4445) in default logging config can stall logging and abort operations under load
#29384
TL-Script resetSequence/generateSequenceId build a different sequence id than SequenceDefaultProvider (suffix/context order), so they cannot reset a provider-managed sequence with a dynamic context
#29394
Editable tables in the React UI: generalized row-set bindings for tabular editing in forms
#29410
Attribut filename der Structured-Text-Bildablage case-sensitive (binär) speichern
#29419
Understandable save failures and form validation feedback in the React view layer
minor
#28816
Referenzwertige Attribute erzeugen Fehler nur bei SingleSelection
#29359
Unsinniger Tooltip bei einigen Hauptreitern
#29360
Sporadische Fehlermeldung im Log: "mainLayout" ist null.
#29361
Invalide Datenbankdefinition für Tag
#29363
Fehlende Validierung von Dialogen bei GOTOs zu Dialogen von unsichtbaren Parents
#29380
Kontextabhängige Auto-Nummerierung schlägt fehl, wenn Kontext und nummeriertes Objekt in einer Transaktion erzeugt werden
#29381
Doppelklick in Grafikkomponente funktioniert nicht zuverlässig
#29390
Teilbaum-Auswahl endet zu früh, wenn die unterste Ebene vom Ebenen-Filter nicht mitgezählt wird
#29393
URL-Routing der React-View-Schicht defekt: ForwardingReactContext delegiert getRouteManager() nicht
#29401
Bilder in einem Bild-Drop-Feld können nicht über das Browser-Kontextmenü kopiert/gespeichert werden
#29402
Baum-Selektion geht bei Aktualisierung der Ansicht (invalidate) verloren
#29412
Flaky TestDynamicComponentService.testIncrementalUpdates: asserts on asynchronous WatchService event after a fixed 10ms sleep
#29416
Anzeige des Änderungslogs schlägt fehl, wenn parallel Änderungen committet werden
#29420
FlowDiagram: Fehlerfall im row-wise Sub-Grid: subGridCols=2 und subGridStartCol=1
#29426
FlowDiagram: Text in PDF-eingebettetem Diagramm ist nicht selektierbar

task

major
#29407
Security-Scan: npm-Abhängigkeiten der React-Module aktualisieren
#29408
Security-Scan: httpcore5 anheben; pdfbox-/azure-Findings bewerten
minor
#29415
Slim down the repository CLAUDE.md and consolidate developer guidance into skills and FAQ articles
enhancement

major

#29221

Automatische Bestimmung möglicher Berechtigungskonfigurationen

MigrationSecurity

In der Anwendung werden die Komponenten in verschiedene Berechtigungs-Domains eingeordnet. In der Rollen-Rechte Konfiguration werden dann für eine Berechtigungsdomain nur diese Komponenten angezeigt.

Komponenten und Kommandos haben ihr eigenes Berechtigungsobjekt. Hier kann dann ein Berechtigungsobjekt konfiguriert werden, das nichts mit der Berechtigugs-Struktur zu tun hat, so dass inkonsistenzen konfiguriert werden können.

Verbesserung

  • Es gibt keine Berechtigungsstrukturen mehr. Damit ist es nicht mehr nötig Rollen zu duplizieren (z.B. navigation oder selection) welche logisch gleich sind aber auf allen Berechtigungsstrukturen definiert werden.
  • Der SecurityObjectProvider muss angeben, welche Typen das Security objekt haben können. Dann kann aus den Vererbungsregeln ausgerechnet werden, welche Rollen auf Objekten dieses Typs existieren können. So können die Optionen angeboten werden die theoretisch relevant sind.

Code-Migration

  • Rollenregeln der Form {{{

<inheritance-rule

base="structureRoot@MyModule"
...

/> }}} ersetzen durch {{{ <inheritance-rule

...

>

<script-step expr="MyModule#ROOT"/>

</inheritance-rule> }}}

  • Steps in Rollenregeln {{{

<step attribute="myAttr" meta-element="MyModule:MyClass" ... /> }}} ersetzen durch {{{ <step attribute="MyModule:MyClass#myAttr" ... /> }}}

  • Zuweisungen von Rollen an Singletons für Gruppen müssen durch normale Rollenregeln ersetzt werden. In : {{{

<config service-class="com.top_logic.util.model.ModelService"> <instance><settings>

<module name="MyModule">
<singletons>
<singleton type="Root">
<role-assignments>
<role-assignment role="MyModule.role" group="MyGroup"/>
....

}}} das Tag <role-assignments> inkl. Inhalt entfernen. Statt dessen ein Rollen-Regel einführen: {{{ <singleton-rule

target="MyModule#ROOT"
role="MyModule.role"

>

<group-with-name name="MyGroup"/>

</singleton-rule> }}}

  • Es sind Rollen "Navigation" und "Selektion" in der Basis vorhanden. Diese können statt der selbst definierten Rollen benutzt werden.
  • Rollen werden nicht mehr an einem Modul definiert sondern in einer zentralen Registry. Model-Dateien und Konfigurations-Dateien müssen angepasst werden und die Rollendefinition verschoben werden.

Beispiel in myModule.model.xml: {{{ <module name="myModule">

<annotations>
....
<roles> <-- Tag entfernen
<role name="myModule.role1"/>
</roles>
</annotations>

</module> }}} Beispiel in Anwendungskonfiguration: {{{ <config service-class="com.top_logic.util.model.ModelService"> <instance>

<settings>
<module name="myModule">
<roles> <-- Tag entfernen
<role name="myModule.role1"/>
</roles>
....
</module>
</settings>

</instance> </config> }}} Stattdessen: {{{ <config service-class="com.top_logic.base.services.InitialRolesManager">

<instance>
<roles>
<role name="myModule.role1"/>
</roles>
</instance>

</config> }}} Info: Das Modul als Prefix zu nutzen ist nicht mehr nötig. Hier wird es nur mit Prefix hingeschrieben, da dies der Identifier ist und ansonstent die Rollen nicht mit den existierenden identifiziert werden können.

  • Wird der SecurityObjectProvider "model" benutzt, sollte er, soweit möglich konkreisiert werden welchen Typ das Model haben kann. Hierzu suchen nach securityObject="model". Wenn das Modell in der konkreten Sicht z.B. entweder den Typ myModule:type1 oder myModule:type2 haben kann, sollte die Stelle ersetzt werden durch securityObject="model(myModule:type1,myModule:type2)"
  • Das default-Verhalten ob eine button-bar (z.B. in Dialogen) angezeigt wird hat sich geändert und muss geprüft werden
  • Das Verhalten ob ein layout als security-master betrachtet wird (z.B. wenn es im Dialog nur genau ein Layout gibt) hat sich geändert und muss überprüft werden. Besser eine Komponente explizit als security-master auszeichnen.
  • Rollenprofile müssen aktualisiert werden.
  • Security-Domain aus Layout-Dateien entfernen; Rollenregeln benötigen eine ID. Hierfür das Maven Target {{{

mvn exec:java@migrate-ticket29221 }}} ausführen. Layouts in der Datenbank werden automatisch aktualisiert.

  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

  • top-logic.com
  • Nutzungsbedingungen
  • Impressum
  • Rechtlicher Hinweis
  • Datenschutz
  • EN
  • Login