WUIC ← Zurück zu den Downloads

Release Notes — WUIC Framework v1.7.0

Datum: 11. August 2026 Zuvor veröffentlichte Version: 1.5.0 (21. Juli 2026) Backend: .NET 10 + IIS / Linux nginx Frontend: Angular 21


Pakete am 15. August 2026 ersetzt. Die zunächst veröffentlichten Archive enthielten eine appsettings.json mit autoGeneratedQueryTimeout auf 1: Mit diesem Wert endet jede Abfrage, die länger als eine Sekunde dauert, mit einem Serverfehler. Ebenso waren einige Kopfzeilen-Einstellungen (Logo, Menüausrichtung, Themenauswahl, Benachrichtigungen) aus einer Testsitzung zurückgeblieben. Die Archive wurden neu erstellt und ihre Prüfsummen aktualisiert.

Wenn Sie vor dem 15. August heruntergeladen haben: Laden Sie das Paket erneut herunter, oder öffnen Sie appsettings.json und setzen Sie autoGeneratedQueryTimeout zurück auf 30; entfernen Sie dabei die Schlüssel header-logo, header-logo-position, header-menu-orientation, header-show-theme-selector, header-menu-multicolumn-submenu und header-show-notifications, sofern Sie sie nicht selbst gesetzt haben. Keine der beiden Einstellungen berührt Ihre Daten: Datei anpassen und neu starten genügt.


Drei Wochen Arbeit an zwei Fronten. Die erste ist das Erscheinungsbild: Der neue Theme Builder ist eine Seite, auf der sich eigene Designs zusammenstellen lassen — Farben, Typografie, Hintergrund, Dichte, Darstellung der Tabelle —, die für alle Benutzer der Installation gelten; die Kopfzeile der Anwendung wurde neu gestaltet und konfigurierbar gemacht. Die zweite ist Integration und Beobachtbarkeit: Der neue Webhook Hub empfängt und sendet Ereignisse mit Signatur und Wiederholungen, und der Performance Inspector misst Fetch- und Renderzeiten pro Route. Der Chatbot lernt, auf drei weiteren Oberflächen der Anwendung zu handeln und das Datenbankschema abzufragen.


🎨 Theme Builder

Eine neue Seite unter Administration erlaubt es, eigene Designs ohne Codeänderung zusammenzustellen. Jedes gespeicherte Design erscheint im Design-Auswahlfeld aller Benutzer der Installation, neben den mitgelieferten.

Was sich einstellen lässt:

Die Vorschau ist live und wendet das Design beim Zusammenstellen auf die ganze Seite an, ohne die Einstellungen des Benutzers zu verändern: Beim Verlassen, Neuladen oder Schließen des Browsers kehrt das eigene Design zurück.

Der Excel-Export folgt dem Design: Eine mit aktivem eigenem Design exportierte Datei erhält dessen Farben — Kopfzeile, wechselnde Zeilen, Rahmen — statt der allgemeinen Grautöne. Für jede Preset-Familie wurden Ersatzstile ergänzt, sodass auch ein noch nicht erfasstes Design das Aussehen seiner Familie erbt.

Der Katalog der mitgelieferten Designs erhält neue Varianten, und das aktive Design wird bereits im ersten Bild nach einem Neuladen angewandt, ohne dass das vorherige aufblitzt.

🖥️ Neu gestaltete, konfigurierbare Kopfzeile

Die Kopfzeile der Anwendung ist jetzt eine Komponente des Frameworks: Installationen erben sie, statt eine Kopie zu pflegen. Der Block rechts oben wurde verdichtet — Design-Auswahl, Hell/Dunkel, Sprache, Benachrichtigungen und Benutzerbereich liegen in einer Karte, die sich beim Überfahren mit der Maus ausklappt —, und der Benutzerbereich zeigt Name, Rolle, Lizenz und Abmeldung.

Ein neuer Abschnitt Header & Menu in den Einstellungen erlaubt die Wahl der Menüausrichtung (waagerecht oben oder unten, senkrecht links oder rechts), das Hochladen und Positionieren eines Logos sowie das Ein- und Ausschalten von Sprachauswahl, Design-Auswahl und Benachrichtigungen. Ebenso lässt sich die automatische mehrspaltige Anordnung der Untermenüeinträge abschalten: Lange Untermenüs werden dann scrollbar, statt abgeschnitten zu werden.

🔗 Webhook Hub

Ein neues System zur Anbindung der Anwendung an externe Dienste, in beide Richtungen.

Ausgehend: Ereignisse werden in eine Warteschlange gestellt und asynchron zugestellt, mit HMAC-Signatur des Payloads, Wiederholungen in festem oder exponentiellem Abstand, einer Dead-Letter-Warteschlange für endgültig fehlgeschlagene Zustellungen und der Möglichkeit, eine Zustellung erneut abzuspielen. Jeder Versuch wird in den Logs festgehalten.

Eingehend: Der Endpoint POST /api/webhooks/inbound nimmt externe Aufrufe entgegen und leitet sie anhand einer Metadatenkonfiguration weiter — SQL-Ausführung, HTTP-Aufruf oder Methodenaufruf — mit Anti-Replay-Schutz.

Enthalten sind außerdem Benachrichtigungsregeln mit konfigurierbarer Ruhezeit, eine administrative API zur Verwaltung der Endpoints und ein Scheduler-Job, der die Warteschlange abarbeitet. Die gesamte Konfiguration — Endpoints, Ereignisse, Abonnements, Eingangsregeln — liegt in Metadatentabellen: Eine neue Integration erfordert weder eigenen Code noch ein neues Deployment. Die Seite „Webhook Hub" der In-App-Dokumentation beschreibt das Vorgehen vollständig in 5 Sprachen.

📈 Performance Inspector

Das Framework kann Fetch- und Render-Metriken für jede Route erfassen, aggregieren und in einem administrativen Dashboard anzeigen: Mittelwert, p95, Maximum und Anzahl, mit einer Aufbewahrung von 7 Tagen und routenweiser Erfassung.

Die Funktion ist standardmäßig ausgeschaltet und wird über AppSettings:enablePerformanceInspector im Hot-Reload aktiviert. Neben den Metriken steht ein Inspektor für die Datenqualität bereit, der pro Route über den Props Bag aktiviert wird (extraProps.qualityInspector).

🤖 Chatbot: neue Aktionen und Lesen des Schemas

Der RAG-Chatbot erhält zehn neue Aktionstypen und die Fähigkeit, die Struktur des Projekts abzufragen.

Eine neue Dokumentationsseite listet die unterstützten Prompts auf, abgeglichen mit den automatisierten Tests.

📊 Spreadsheet: Spaltensichtbarkeit an die Tabelle angeglichen

Das Spreadsheet berücksichtigt jetzt dieselben Sichtbarkeitsflags wie die List Grid: mc_hide_in_list, mc_hide_in_edit und mc_show_in_filters. Eine in der Liste ausgeblendete Spalte erscheint nicht mehr im Blatt, und eine beim Bearbeiten ausgeblendete Spalte ist in den Zellen nicht mehr änderbar.

🛡️ Sicherheit

Best-effort Hardening beim Erzeugen von Berichten: Der angeforderte Dateiname wird nun validiert, indem absolute Pfade und unzulässige Zeichen abgelehnt werden — mit einer Prüfung, die sich unter Windows und unter Linux gleich verhält. Zuvor stützte sie sich auf eine Normalisierung, die auf beiden Systemen unterschiedlich filterte. Der zurückgegebene Fehler unterscheidet eine ungültige Konfiguration von einem Fehlschlag der Erzeugung, sodass Integratoren das Problem nicht an der falschen Stelle suchen.

🐛 Bemerkenswerte Fehlerbehebungen

🔧 Empfohlene Schritte beim Aktualisieren

  1. appsettings.json prüfen nach der Aktualisierung: Die neuen Schlüssel haben zurückhaltende Standardwerte und erfordern kein Eingreifen, aber es ist ein guter Zeitpunkt, sie durchzugehen.
  2. Performance Inspector: AppSettings:enablePerformanceInspector auf true setzen, um ihn zu aktivieren; ohne den Schlüssel bleibt er aus.
  3. Webhook Hub: Es ist kein Eingriff nötig, um ihn erreichbar zu machen. Tabellen, administrative Routen und Menüeinträge — gebündelt in einem Untermenü „Webhook Hub" unter Administration — werden beim ersten Laden des Menüs angelegt, sowohl bei einer Neuinstallation als auch beim Aktualisieren einer früheren Version. Zu konfigurieren bleibt die Integration: ausgehend drei Zeilen (der Endpoint mit Ziel-URL, gemeinsamem Geheimnis, Timeout und Wiederholungsregel; das Ereignis; das verbindende Abonnement), eingehend ein Endpoint mit Richtung inbound und eine Weiterleitungsregel. Die Signatur reist im Header X-Wuic-Signature; das vollständige Vorgehen steht auf der Seite „Webhook Hub" der In-App-Dokumentation.
  4. Theme Builder: Die Designtabelle wird beim ersten Speichern angelegt. Bei Verwendung eigener Designs den Excel-Export einer Tabelle prüfen, um die erwarteten Farben zu bestätigen.
  5. Chatbot: Die neuen Aktionen stehen nach einem Neustart der RAG-Engine zur Verfügung; nicht umkehrbare Operationen verlangen eine Bestätigung und lassen sich ohne diese nicht anwenden.
  6. Linux hinter einem Reverse Proxy: Antwortet die Installation auf einem nicht standardmäßigen Port oder nur über HTTP, die nginx-Konfiguration neu erzeugen oder den bestehenden vhost von Hand auf proxy_set_header Host $http_host; und proxy_set_header X-Forwarded-Proto $scheme; angleichen. Aktualisierungen überschreiben einen vorhandenen vhost nicht.