SKOOR Webservice Changelog

9.0.1

  • Erzwingt die Überprüfung der Benutzerrolle auf allen Endpunkten. Wichtige Änderungen, die möglicherweise zu Fehlfunktionen führen:
    • Viele Endpunkte, die Daten ändern, sind nun auf Administratoren beschränkt:
      • POST /files/{filename}
      • POST /styles/{filename}
      • POST /translations/{language}
      • POST /scripts
      • POST /dataSources
      • Viele weitere, siehe API-Dokumentation
    • Viele Endpunkte zur Datenänderung sind nun auf Editoren beschränkt:
      • POST /dashboards
      • PUT /dashboards/{id}
      • POST /devices
      • POST /devices/{id}
      • Viele weitere, siehe API-Dokumentation
    • Nur eine kleine Anzahl von Endpunkten ist ohne Authentifizierung zugänglich.
    • Da der Endpunkt „POST /translations/{language}“ nun auf Administratoren beschränkt ist, während Redakteure weiterhin Dashboards übersetzen müssen, werden Dashboard-Übersetzungen nun innerhalb der Dashboard-Objekte gespeichert und nicht mehr im globalen Übersetzungsspeicher.
  • Es gelten strenge Regeln dafür, was ein Benutzer an seinen eigenen Daten und denen anderer Benutzer ändern darf.
    • Nur Administratoren dürfen nun Benutzernamen ändern. Dies behebt eine Sicherheitslücke bei der Benutzernamen-Enumeration, die es Benutzern zuvor ermöglichte, die Benutzernamen anderer zu erraten.
    • Die meisten Benutzereinstellungen sind nun auf Administratoren beschränkt. Benutzer ohne Administratorrechte können nur ihre Einstellungen unter fullname, email, phone, startDashboardId, language und timeZone aktualisieren sowie ihr Passwort ändern und MFA aktivieren oder deaktivieren (sofern dies nicht von einem Administrator erzwungen wird).
    • Nur Administratoren können die Einstellungen für gemeinsam genutzte Benutzer ändern.
    • Der Benutzertyp kann nicht mehr von oder zu LDAP_MANAGED geändert werden.
    • Benutzer vom Typ LDAP_MANAGED können nur ihre Einstellungen unter startDashboardId, language und timeZone aktualisieren.
  • Entfernt die Einstellung „visuallyImpaired“ sowohl aus „User“ als auch aus „UserGroup“, da sie vom Dashboard nicht mehr benötigt wird.
  • Beschränkt „POST /files/{filename}“ auf die folgenden MIME-Typen: image/avif, image/bmp, image/gif, image/heic, image/heif, image/jpeg, image/jp2, image/jpx, image/jxl, image/png, image/svg+xml, image/tiff, image/vnd.microsoft.icon, image/webp, audio/3 gpp, audio/3 gpp2, audio/aac, audio/flac, audio/midi, audio/mp4, audio/mpeg, audio/ogg, audio/opus, audio/wav, audio/webm, audio/x-aiff, audio/x-m4a, audio/x-ms-wma, video/3 gpp, video/3 gpp2, video/mp2t, video/mp4, video/mpeg, video/ogg, video/quicktime, video/webm, video/x-flv, video/x-m4v, video/x-matroska, video/x-ms-asf, video/x-msvideo, application/ttml+xml, application/x-subrip, text/vtt, text/plain, text/csv, text/markdown, application/json, application/xml, text/xml, application/yaml, text/yaml, application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.oasis.opendocument.text, application/vnd.oasis.opendocument.spreadsheet, application/vnd.oasis.opendocument.presentation, application/rtf, application/epub+zip, application/vnd.apple.pages, application/vnd.apple.numbers, application/vnd.apple.keynote
  • Beschränkt PUT /styles/{filename} auf die folgenden MIME-Typen: text/css , text/plain
  • Beschränkt POST /scripts/{script}/run auf die folgenden MIME-Typen: text/plain , text/csv , text/tab-separated-values , text/tsv , text/markdown , text/vtt , application/json , application/x-ndjson, application/jsonl , application/xml , text/xml , application/yaml , text/yaml , application/x-yaml, application/sql , text/sql , application/pdf , application/msword , application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel , application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-powerpoint , application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.oasis.opendocument.text , application/vnd.oasis.opendocument.spreadsheet, application/vnd.oasis.opendocument.presentation , application/rtf , application/epub+zip, application/parquet , application/x-parquet , application/avro , application/x-avro , application/vnd.apache.arrow.file, application/vnd.apache.arrow.stream , application/orc , application/x-orc , application/zip, application/x-zip-compressed , application/gzip , application/x-gzip , application/x-bzip2 , application/x-xz, application/zstd , application/x-zstd , application/x-tar , application/x-7z-compressed
  • Skripte:
    • Behebt ein Problem bei der Skript-Zeitplanverwaltung, das dazu führte, dass geplante Ausführungen ausgelöst wurden, wenn der Ausführungsverlauf leer war.

9.0.0

  • Fügt die Anzahl der Quellzeilen in den Endpunkten „.../columns/{column}/values“ und „.../{id}/distinctValues“ hinzu. Dies kann zur Erstellung von Histogrammen verwendet werden.
  • Fügt neue Endpunkte für die Batch-Aktualisierung hinzu:
    • Benutzer in einer Benutzergruppe: /userGroups/{id}/users
    • Benutzergruppen eines Benutzers: /userGroups/users/{userId}
  • Führt WebserviceUser/UserGroup ein, um ErangerUsers/UserGroup zu verpacken
  • Fügt Unterstützung für die Passwortrichtlinie hinzu
  • Fügt Unterstützung für MFA (Multi-Faktor-Authentifizierung) hinzu
  • Führt neue UserRole ein: Data_Editor
    • Kann Daten aus DataSources bearbeiten, solange der Benutzer im Geltungsbereich liegt.
    • Kann auf DataQueries zugreifen, diese erstellen und bearbeiten
    • Kann Skripte anzeigen/bearbeiten (RunConfigs/ScheduleConfigs)/ausführen
  • Löscht Passwörter in den envVariables und RunConfigs des Skripts.
  • Ermöglicht die Einstellung eines Timeouts von 0 für Skripte (kein Timeout) und die Anpassung in Ausführungskonfigurationen.
  • Import/Export
    • Verbessert den Import/Export von Dashboards mit Skripten, indem versucht wird, Skripte in Zielsystemen anhand ihrer Namen abzugleichen.

8.1.31

  • Behebt einen Fehler, der die Datenabfrage-Engine manchmal daran hinderte, materialisierte Tabellen zu finden.

8.1.30

  • Behebt einen Fehler, der manchmal dazu führte, dass materialisierte Datenabfragen nicht ordnungsgemäß materialisiert wurden.

8.1.29

  • Korrekte Verarbeitung von Filtern auf Spalten mit eindeutiger Zählung.

8.1.28

  • Aktiviert automatische Dashboard-Übersetzungen für alle Kunden durch Bereitstellung eines gemeinsamen DeepL-API-Schlüssels.

8.1.27

  • Behebt einen Fehler, der manchmal dazu führte, dass Dashboards mit URL-Namen nicht ordnungsgemäß gespeichert wurden.

8.1

  • Ermöglicht die Einbindung von Kopf- und Fußzeilen in PDF-Berichte.

8.1.25

  • Hinzufügen von „SKOOR_USER_USERGROUP_IDS“ und „SKOOR_USER_USERGROUP_NAMES“ zu den Umgebungsvariablen in Skripten.
  • Behebt eine Race Condition, die dazu führt, dass Datenabfragen im Aktualisierungszustand hängen bleiben.
  • Behebt einen Fehler, der Datenabfragen unterbricht, bei denen Vorlagen und Parameter gemischt werden.

8.1.24

  • Deaktiviert das Caching in der CashPilot-Datenquelle.

8.1.23

  • Aktualisiert die Abhängigkeit, um Swagger UI zu beheben.

8.1.22

  • Behebt einen Fehler, der manchmal verschachtelte Datenabfragen unter Verwendung von Scoped-Tabellen unterbricht.

8.1.21

  • Verbessert die Analyse von Datenabfragen weiter, um Referenzen abzurufen.

8.1.20

  • Mildert andere Ausnahmen beim Parsen von Datenabfragen.

8.1.19

  • Behebt einige IndexOutOfBoundsExceptions beim Parsen von Datenabfragen.

8.1.18

  • Gibt keinen Fehler aus, wenn die Datenabfrage leer ist.

8.1.17

  • Behebt einen Fehler, der den Import von Dashboards unterbricht, wenn Dashboards mit URL-Namen vorhanden sind.

8.1.16

  • Gibt den korrekten Statuscode 401 zurück, wenn die Basisauthentifizierung fehlschlägt.
  • Behandelt Magellan-Organisationen korrekt, wenn Datenabfragen materialisiert werden, die auf eine StableNet-Datenquelle zugreifen.
  • In früheren Versionen wurden Datenabfragen, die auf einer StableNet-Datenquelle basierten, immer dynamisch aktualisiert. Dieses Verhalten wurde nun so geändert, dass nur Abfragen, die auf StableNet-Fremdtabellen basieren, dynamisch aktualisiert werden.
  • Behebt einen Fehler, der manchmal dazu führt, dass Datenabfrage-Referenzen fehlen, die für Bereiche oder Unterdatenabfragen verwendet werden.
  • Aktualisiert anfällige Abhängigkeiten.

8.1.15

  • Implementiert einige erforderliche Änderungen zur Unterstützung neuer Funktionen von StableNet FDW.
  • Datenabfragen
    • Stellt die vorhandene Datenabfrage als Kontext bereit, wenn Text2SQL im Datenabfrage-Editor ausgeführt wird.
    • Ermöglicht die Generierung von Beispiel-Datenabfragen für eine bestimmte Datenquelle mithilfe von Google Vertex AI.
  • Skripte
    • Implementiert einen Endpunkt für den Codegenerator
  • Fügt neue Endpunkte hinzu, um die Objektstruktur abzurufen
    • /root/tree
    • /{parentType}/{parentId}/tree
  • Löscht die zwischengespeicherten Dateien und Stile auf der Festplatte beim Neustart des Webdienstes.

8.1.14

  • Zulässige CORS-Ursprünge können nun über die Eigenschaft „cors.allowed.origins“ (durch Kommas getrennte Liste) konfiguriert werden. Wenn Webanwendungen aus anderen Ursprüngen (z. B. StableNet Portal) asynchrone Anfragen an den SKOOR Webservice senden müssen, müssen deren Ursprungs-URLs hinzugefügt werden; andernfalls funktionieren diese Anwendungen nicht mehr.

8.1.13

  • Behebt einen Fehler, der zum Hängenbleiben der Datenbankverbindung führt.

8.1.12

  • Korrigiert searchPath-Endpunkte, indem Leerzeichen in Pfadsegmenten entfernt werden.
  • Anpassung der CashPilot-Datenquelle für die Multi-User-Datensynchronisation.
  • Optimiert die Materialisierung von Datenabfragen
  • Filtert einige Scanner-Störgeräusche aus dem Protokoll heraus.
  • Ermöglicht die Erklärung von Datenabfragen ohne Analyse.
  • Behebt die Erkennung von Datenabfragetabellenreferenzen, wenn auf den Tabellennamen direkt ein „)“ folgt. Dies verhinderte manchmal die korrekte Anwendung von Scopes.

8.1.12

  • Korrigiert searchPath-Endpunkte durch Entfernen der Leerzeichen in den Pfadsegmenten.
  • Passt die CashPilot-Datenquelle für die Multi-User-Datensynchronisation an.

8.1.11

  • Aktiviert oder startet den Dienst bei einer Paketaktualisierung auf Standby-Systemen nicht.
  • Behebt einen Fehler, der den Übersetzungs-Endpunkt beschädigt, wenn ein leeres Text-Array in der Nutzlast bereitgestellt wird.
  • Fügt Unterstützung für Groß-/Kleinschreibung bei den searchPath-Endpunkten hinzu

8.1.10

  • Verbessert den Skript-Export/Import
    • Fügt „script_metadata.json“ zum Export hinzu.
    • Ermöglicht das Überschreiben bestehender Skripte mit dem Überschreibungsflag.
    • Ermöglicht den Import von Metadaten aus „script_metadata.json“, sofern vorhanden.
  • Dashboards
    • Verhindert doppelte URL-Namen.
  • Google Vertex AI (wird für die Funktionen „Script Copilot“ und „Data Query Text to SQL“ verwendet)
  • Lässt Python-Skripte ungepuffert ausführen (Ausgaben werden direkt in ConsoleOutput angezeigt).

8.1.9

  • Ändert den Eigentümer einiger Konfigurationsdateien auf eranger.
  • Implementiert Basic-Authentifizierung für API-Aufrufe.
  • Führt zwei neue Endpunkte im ObjectSearchController ein
    • /root/searchPath , um nach SKOOR-Objekten anhand ihres Pfades ausgehend vom Stammverzeichnis zu suchen.
    • /{parentType}/{parentId}/searchPath um nach SKOOR-Objekten anhand ihres Pfads von einem bestimmten übergeordneten Objekt aus zu suchen.
  • Reduziert die Anzahl der gleichzeitig aktualisierten materialisierten Datenabfragen auf 8. Dies trägt dazu bei, IO-Konflikte zu verringern.
  • Behebt einen Fehler im Abfrage-Cache, der dazu führt, dass dieselbe Abfrage mehrfach parallel ausgeführt wird, anstatt das Ergebnis aus dem Abfrage-Cache zu übernehmen.
  • Begrenzt die Anzahl der Skript-Protokollzeilen auf 1000 und die Länge einer einzelnen Protokollzeile auf 10000 Zeichen.

8.1.8

  • Skripte
    • Behebt einen Fehler, der das Laden von .env-Dateien bei der Skriptausführung verhindert, wenn diese sich nicht im Stammverzeichnis befinden.
    • Behebt einen Fehler, der das Speichern von Änderungen an einem Skript verhindert, wenn dieses in einem Dashboard verwendet wird.
    • ScriptsConfig wird zur besseren Wartbarkeit umgestaltet
  • DataSource
    • Reduziert die TTL für nicht zwischengespeicherte Daten auf 1 Sekunde
  • Datenabfragen
    • Behebt einen Fehler, der Datenabfrageparameter in MySQL-Datenbanken beeinträchtigt.

8.1.7

  • Datenabfragen
    • Fügt Unterstützung für das erzwungene Löschen von Datenabfragen/Datenabfragegruppen hinzu
    • Fügt Unterstützung für die erzwungene Veröffentlichung von Datenabfragen hinzu
    • Entfernt „dependantsCount“ aus „SimpleScriptConfig“.
    • Entfernt den LocalAI-Anbieter und macht Google Vertex AI zum neuen Standard.

8.1.6

  • Behebt das Problem mit leeren „SKOOR_SESSION_ID“ in Skripten.

8.1.5

  • Dashboard/DQs Importieren und Exportieren
    • Behebt das Importieren von Dashboards ohne Dashboard-Zuordnungen.
    • Behebt die Überprüfung der Benutzer und Benutzergruppen, auch wenn die Bereiche und Berechtigungen falsch sind.
    • Fügt den Importhinweisen eine Warnung hinzu, wenn das Exportsystem neuer ist als das Zielsystem.
  • Skript-Updates:
    • Vereinheitlicht ScriptConfig ohne ScriptConfigType
    • Skripte verwenden Runner. Der Runner wird automatisch anhand der im Skriptverzeichnis vorhandenen Dateien ausgewählt
      • PythonRunner: wird ausgewählt, wenn „main.py“ vorhanden ist.
      • ShellRunner: wird ausgewählt, wenn „run.sh“ vorhanden ist.
      • TalendRunner: wird ausgewählt, wenn Talend-Assets erkannt werden.
    • Fügt eine Poetry-Deaktivierungsoption hinzu, indem „pyproject.toml“ umbenannt oder gelöscht wird.
    • Erweitert ExtendedScriptConfig um dependentWidgets und Widgets-Details.
    • Erweitert SimpleScriptConfig um dependantsCount.
    • Fügt requestParam für deleteScript hinzu, um Skripte mit Abhängigkeiten zwangsweise zu löschen; andernfalls wird eine Ausnahme ausgelöst.

8.1.4

  • Behebt Probleme beim Hochladen von Talend-Skripten.
    • Entfernt Versionsnummern aus dem ZIP-Namen, d. h.: newScript_1.3.zip wird als Skript mit dem Namen newScript importiert
  • Behebt das korrekte Zuordnen von Assets beim Importieren von Dashboards.
  • Macht den Namen des Dashboards obligatorisch.

8.1.3

  • Ermöglicht die Definition von zusammengesetzten Indizes für materialisierte Datenabfragen.
  • Behebt das Mapping von Dashboards für den Export/Import
  • CashPilot-Datenquelle
    • Fügt Paginierungsparameter zur Service-URL hinzu
    • Verwenden Sie Ausdrucksvorlagen und Formatierungen für Filter.
  • Ermöglicht die Ausführung von Python-Skripten auf Offline-Systemen.

8.1.2

  • Datenquellen / Datenabfragen
    • Ermöglicht das Sortieren eindeutiger Werte nach Spalten.
  • Behebt einige Fehler, die dazu führten, dass die Skriptplanung und das erneute Einreihen nicht ordnungsgemäß funktionierten.

8.1.1

  • Unterstützt neue Puppeteer

8.1.0

  • Verwendet Paginierung beim Abrufen von Daten aus CashPilot
  • Stellt einen Endpunkt für die automatische Übersetzung mit DeepL bereit. Um diese Funktion zu aktivieren, muss ein DeepL-API-Schlüssel in /etc/opt/eranger/eranger-webservice.cfg mithilfe der Eigenschaft „i18n.deeplApiKey“ angegeben werden.
  • Führt einen neuen Endpunkt, /script/, sowie einen ScriptController ein, der die Entwicklung benutzerdefinierter Skripte ermöglicht.
    • Skripte bieten ein leistungsstarkes Werkzeug zum Entwickeln, Ausführen, Anpassen und Planen verschiedener Skripttypen.
    • Skripte bestehen aus drei Hauptabschnitten:
      • Einstellungen: Umfasst Name, Beschreibung, Zeitlimit, Ausführungskonfigurationen und Zeitplan-Konfigurationen.
      • Dateien: Eine dateisystemähnliche Struktur, die Standard-CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) unterstützt.
      • Ausführung: Ermöglicht das Auslösen und Verfolgen von Skriptausführungen. Der Ausführungsverlauf ist auf 1.000 Jobs begrenzt.
    • Unterstützt das Hochladen von ZIP-basierten Skripten in Python, Talend und Shell.
    • Unterstützung für Webhook-Token hinzugefügt, wodurch Skripte über Webhooks ausgelöst werden können.
  • Ermöglicht die Verwendung von FreeMarker-Vorlagen in DataQueries.
  • Überprüft asynchron die Konnektivität zu externen Diensten wie SKOOR AI und DeepL, um settings.json sofort bereitstellen zu können.
  • Erweitert den Endpunkt /alarms, um auch Berechtigungen und Eigenschaften zugewiesener Objekte abzurufen.
  • Fügt die POST-Methode zu /alarms/{id}/comment und /alarms/{id}/assign hinzu.

8.0.22

  • Behebt einen Fehler, der Unterabfragen in MySQL und in einigen anderen Fällen unterbricht.

8.0.21

  • Optimiert die Art und Weise, wie Unterabfragen verarbeitet werden (verwendet nicht materialisierte CTEs). Dies steigert die Abfrageleistung in vielen Anwendungsfällen um eine Größenordnung.

8.0.20

  • Die Wertehistorie für SLCs wird nicht mehr zwischengespeichert, da SLC-Werte nachträglich neu berechnet werden können.
  • Bereinigt Caches für materialisierte Datenabfragen bei anderen Fehlern als Zeitüberschreitungen
  • Behebt einen Fehler, der die Aktualisierung materialisierter Datenabfragen verhinderte, wenn eine Kombination aus materialisierten und nicht materialisierten Abfragen vorlag.

8.0.19

  • StableNet-Datenquelle
    • Behebt einen Fehler, der dazu führt, dass Abfragen beim Überprüfen von Fremdtabellen blockieren.
  • Datenabfragen
    • Optimiert die Aktualisierung
    • Unterstützt Unterabfragen bei Verwendung der PostgreSQL-Funktion CROSSTAB
    • Ermöglicht die Erläuterung eines Datenabfrageplans mithilfe des Endpunkts „/dataQueries/explain“.

8.0.18

  • Entfernt das dynamische Caching von Datenabfragen vollständig.

8.0.17

  • Behebt einen Fehler, der verhinderte, dass PostgreSQL-Verbindungen parallele Worker nutzen konnten.

8.0.16

  • Behebt einen Fehler, der das Caching von Datenabfragen unterbricht, wenn Fremdtabellen beteiligt sind.

8.0.15

  • Datenabfragen
    • Behebt einen Fehler, der manchmal dazu führte, dass dieselbe materialisierte Datenabfrage gleichzeitig aktualisiert wurde.
    • Deaktiviert das dynamische Caching, da dies in vielen Situationen den Abfrageplaner beeinträchtigt.

8.0.14

  • Datenabfragen
    • Behebt einen Fehler, der manchmal dazu führte, dass materialisierte Datenabfragetabellen nach einem Absturz des PostgreSQL-Servers leer waren.

8.0.13

  • Datenabfragen
    • Ermöglicht die Verwendung von „WITH RECURSIVE“.
    • Behebt einen Fehler, der verhindert, dass Datenabfragen bei VARCHAR-Spalten materialisiert werden.

8.0.12

  • Behebt einen Fehler, der dazu führte, dass verschachtelte Datenabfragen fehlschlugen, wenn Unterabfragen auf eine bestimmte Weise verschachtelt waren.
  • Deaktiviert Zeilenzahlschätzungen, wenn Fremdtabellen beteiligt sind.

8.0.11

  • Behebt einen Fehler, der dazu führt, dass einige Datenbankverbindungen für längere Zeit im Status „idle in transaction“ verbleiben.
    • Erhöht die Anzahl der gleichzeitigen Datenbankverbindungen auf 60.
  • CashPilot-Datenquelle
    • Unterstützt „page_size“ und „error_message_path“ von REST FDW. Dies ermöglicht das Abrufen paginierter Ergebnisse und die Verarbeitung von Fehlermeldungen.
    • Unterstützt „certificate“, „basic_auth_username“ und „basic_auth_password“ von REST FDW.

8.0.10

  • Behebt einen Fehler, der dazu führt, dass „/alarmrecipients“ fehlschlägt.

8.0.9

  • Datenabfragen
    • Behebt einen Fehler, der dazu führt, dass Datenabfragespalten nicht sofort nach der Veröffentlichung aktualisiert werden.
    • Behebt einen Fehler, der manchmal dazu führt, dass Datenabfragen fehlschlagen, wenn eine Datenquelle oder Datenabfrage mehrfach referenziert wird.
  • Datenquelle
    • Ermöglicht das Filtern von Daten mithilfe eines einzelnen Platzhalter%
    • Behebt einen Fehler, der dazu führte, dass Bereiche nicht ordnungsgemäß funktionierten.

8.0.8

  • Datenabfragen
    • Behebt einen Fehler, der das Löschen mehrerer Datenabfragegruppen hintereinander verhindert.
    • Ermöglicht den Export von Datenabfragen, die auf Datenquellen-Scopes mit gelöschten Benutzern verweisen.
    • Behebt einen Fehler, der die Auswahl der Datenquelle beim Erstellen einer Datenabfrage unterbricht.

8.0.7

  • Datenquellen
    • Entfernt das Passwort beim Exportieren der Liste der Datenquellen.

8.0.6

  • Datenquellen
    • Verbesserte Fehlerbehandlung beim Import aus XLSX-Dateien
  • Behebt einen Fehler, der dazu führt, dass die Migration der alten Konfiguration fehlschlägt, wenn das Update von Version 7.2.x statt von 7.3.x durchgeführt wird.

8.0.5

  • Unterstützt arabischen Text in der Fußzeile von PDF-Berichten.
  • Fügt die CashPilot-Datenquelle hinzu.
  • Ermöglicht Common Table Expressions (WITH-Abfragen) in Datenabfragen.

8.0.4

  • Behebt einen Fehler, der dazu führte, dass ältere Konfigurationen bei mehreren Mandanten nicht ordnungsgemäß konvertiert wurden.

8.0.3

  • Behebt fehlerhafte Konfigurations-DB-Verbindungen bei mehreren Mandanten.

8.0.2

  • Datenquellen
    • Bietet bessere Fehlermeldungen beim Importieren von Daten aus XLS-/XLSX-Dateien.

8.0.1

  • Datenquellen
    • Verwendet beim Parsen von Importdaten einen RFC4180-konformen CSV-Parser.
  • Behebt einen Fehler, der dazu führt, dass Multi-Tenancy-Konfigurationen nicht ordnungsgemäß funktionieren, wenn kein Standard-Tenant vorhanden ist.

8.0.0

  • Fügt „dataSources/{id}/tables/{table}/distinctValues “ und „dataSources/{id}/tables/{table}/distinctValues “ hinzu, mit denen eindeutige Werte für Spaltenkombinationen abgerufen werden können.
  • Behebt einen Fehler, der die Sortierung in der Datenquellen-Vorschau unterbricht, wenn nach Spalten sortiert wird, die doppelte Werte enthalten.
  • Verschiebt die Konfiguration vom Dateisystem in die Datenbank. Dies umfasst (Dateien, Stile, Übersetzungen, Datenquellen, Datenabfragen)
  • Datenabfragen
    • Verbessert die Umbenennung von Datenabfragen. Durch das Umbenennen einer Datenabfrage wird deren Name auch in den abhängigen Abfragen geändert.
    • Verbessert den Export/Import von Datenabfragen.
    • Optimiert das Caching von Datenabfragen.
  • Updates auf Spring Boot 3.3.0.
  • Aktualisierung auf Java 21.0.3.
  • Fügt die neue Aggregatfunktion „distinct_count“ hinzu
  • GIS-Controller: Geografisches Informationssystem
    • Fügt „/dataQuery/{id}/cluster“ hinzu, das Unterstützung für Geo-Karten mithilfe von Datenabfragen bietet.
    • Fügt „gis/cluster“ hinzu, das Unterstützung für Geo-Links in Geo-Karten bietet.
    • Filtert leere Adressen vor der Geokodierung.

7.3.21

  • Behebt einen Fehler, der auf einigen Systemen beim Exportieren einer Datenquellentabelle die Fehlermeldung „Kein MIME-Typ für *.csv gefunden“ verursacht.

7.3.20

  • Behebt einen Fehler beim Import von Datenquellentabellendaten.

7.3.19

  • Behebt einen Fehler, der manchmal dazu führt, dass Selects fehlschlagen, wenn die Abfrage ein leeres Argument enthält.

7.3.18

  • Caches für dynamische Datenabfragen werden beim Neustart des Webdienstes nicht mehr gelöscht.

7.3.17

  • Behebt einen Fehler, der Tabellenanmerkungen beschädigt.
  • Führt mehr Caching durch, um Datenabfragen noch weiter zu beschleunigen.

7.3.16

  • Behebt einen Fehler, der zu einem Fehler führt, wenn auf eine untergeordnete Datenabfrage mehrfach auf verschiedenen Ebenen verwiesen wird.

7.3.15

  • Weitere Korrekturen zur Verbesserung der Leistung bei Datenabfragen.

7.3.14

  • Verschiedene Korrekturen zur Verbesserung der Leistung bei Datenabfragen.

7.3.13

  • Optimiert das Caching statischer SKOOR Dashboard-Assets.
  • Behebt einen Fehler, der das Zwischenspeichern von API-Aufrufen verhindert.

7.3.12

  • Erhöht die Leistung von Endpunkten für eindeutige Werte.
  • Verhindert, dass materialisierte Datenabfragen mit sehr großen Ergebnismengen den gesamten Webservice blockieren.

7.3.11

  • Verwendet die neue Tabelle „stablenet_permission_hash“ aus StableNet FDW. Dies ermöglicht eine erhebliche Optimierung von Abfragen auf materialisierten Daten und des Caching im Allgemeinen.

7.3.10

  • Verwendet Java-HTTP-Client-Instanzen wieder.
  • StableNet-Auth-Token werden nach SELECT-Anfragen nicht mehr ungültig gemacht, da dies nun automatisch von SKOOR Auth übernommen wird. Dies spart einen Roundtrip zum SKOOR-Auth-Dienst.
  • Versuchen Sie nicht, unlogged-Tabellen für materialisierte Datenabfragen auf MySQL-Backends zu verwenden.

7.3.9

  • Speichert einige Metadaten von Datenbanktabellen im Cache, um den Datenbankzugriff zu reduzieren.

7.3.8

  • Reduziert die Anzahl der gleichzeitig aktualisierten materialisierten Datenabfragen auf 10.

7.3.7

  • Der Data Query Cache Refresher verwirft keine zwischengespeicherten Daten mehr, wenn es zu einem vorübergehenden Fehler bei der Aktualisierung der StableNet-Authentifizierungstoken kommt.

7.3.6

  • Verringert das dynamische Cache-Limit für Datenabfragen von 100'000 auf 10'000 Zeilen. Dies sollte die Schreibvorgänge auf die Festplatte für nicht materialisierte Datenabfragen reduzieren.

7.3.5

  • Ersetzt das veraltete `server.tomcat.max-threads` durch `server.tomcat.threads.max`.

7.3.4

  • Erhöht die Anzahl der gleichzeitigen Verbindungen zum SKOOR Engine-Server.

7.3.3

  • Behebt einen Fehler, der verhindert, dass Datenabfragen materialisierte Daten nutzen.
  • Passt die Zeitüberschreitungen für die Aktualisierung materialisierter Datenabfragen basierend auf dem Aktualisierungsintervall an.
    • keine: 600 s
    • täglich: 600 s
    • stündlich: 60 s
    • minütlich: 10 s
  • Begrenzt die maximale Zeilenanzahl bei Abfragen auf materialisierte Daten basierend auf dem Aktualisierungsintervall.
    • keine: 10'000'000
    • täglich: 10'000'000
    • stündlich: 1'000'000
    • minütlich: 100'000

7.3.2

  • Behebt einen Fehler, der den Export von Datenquellentabellen verhindert.

7.3.1

  • Erhöht die maximale Anzahl an Threads in Spring Boot auf 400.
  • Optimiert die Parallelität beim Aktualisieren materialisierter Datenabfragen.

7.3.0

  • Fügt den Datenquellentyp „StableNet“ hinzu, der den StableNet Foreign Data Wrapper verwendet.
  • Behebt einen Fehler, der zu einer Diskrepanz zwischen Engine-Werten und Wertedefinitionen führt.
  • Behebt einen Fehler, der bei großen Datensätzen zu sehr schlechter Datenbankleistung führte, wenn nach Ganzzahlwerten gefiltert wurde.
  • Verschiedene weitere Leistungsoptimierungen für große Datensätze.
  • Neue Export-/Import-Endpunkte für Dashboards und Datenabfragen.

7.2.15

  • Behebt den Datenimport aus XLS(X)-Dateien in die Datenquelle, bei dem in einigen Zeilen die letzten Zellen fehlten.

7.2.14

  • Behebt einen Fehler, der dazu führt, dass der „PUT /{parentType}/{parentId}/children“ fehlschlägt, wenn das übergeordnete Element ein SLC ist.

7.2.13

  • Erhöht den Datenbank-Verbindungspool während der Verarbeitung von 8 auf 30, um mehr parallele Anfragen zu ermöglichen.

7.2.12

  • Verbessert das Timeout-Verhalten bei MySQL-Datenquellen.

7.2.11

  • Genauere Funktion zur Schätzung der Ergebniszeilen für Datenquellen und Datenabfragen.
  • Unterstützt auch Datums-Trunkierungsfunktionen wie „month()“ und „day()“ in MySQL.

7.2.10

  • Behebt Probleme mit Zeitzonen und Sommerzeit bei MySQL-Verbindungen.
  • Stellt Zeiten im ISO-8601-Format in der Zeitzone des Webdienstes bereit anstelle von UTC (z. B. 2023-01-02T08:00:00+01:00 anstelle von 2023-01-02T07:00:00Z). Dies ist bei der Arbeit mit dem Webservice wesentlich übersichtlicher und sollte bestehende Clients nicht beeinträchtigen, da diese den Zeitversatz stets berücksichtigen sollten.

7.2.9

  • Schätzt zudem die Zeilenanzahl in MySQL, um die Abfrageleistung zu verbessern.

7.2.8

  • Behandelt die JSON-Operatoren ?, ?| und ?& in Datenabfragen korrekt.

7.2.7

  • Behebt Probleme bei der Verarbeitung von Datums- und Zeitparametern mit Zeitzonen.

7.2.6

  • Behebt einen Fehler, der PDF-Berichte mit Sonderzeichen in den Fußzeilenfeldern beschädigt.

7.2.5

  • Behebt ein Problem mit der Positionsmarkierung, wenn die Datenabfrage Fehler enthält.

7.2.4

  • Behebt einen Deadlock, wenn parallel mehrfach auf eine langsame Datenabfrage zugegriffen wird.

7.2.3

  • Beschränkt die Spalten in der Datenquellen/columnsation auf das aktuelle Schema.
  • Behebt das Laden von Datenquellen-Scopes.

7.2.2

  • Behebt einen Fehler, der Anfragen an Datenquellen und Datenabfragen unterbricht, die Anführungszeichen in Suchabfragewerten enthalten.
  • Behebt Datenabfragen in Datenbanken, die das Erstellen des Cache-Schemas nicht zulassen.

7.2.1

  • Hört auf allen IPv4- und IPv6-Adressen statt nur auf IPv4.

7.2.0

  • Ermöglicht die Änderung von Tabellenschemata von Datenquellen
  • Ermöglicht das Ändern von Daten in Datenquellen
  • Implementiert Annotationen
  • Ändert die Darstellung der aktiven Neubewertungszeit, sodass „begin“ nur die lokale Zeitkomponente anstelle einer vollständigen ISO-8601-Zeichenkette enthält.
  • Aktualisierungsintervall für materialisierte Datenabfragen.

7.1.3

  • Behebt einen Fehler, der dazu führt, dass „/{type}/{id}/children“-Anfragen fehlschlagen, falls ein Objekt „Alarmrecepients“ enthält.

7.1.2

  • Datenquellen
    • Behebt die Schätzung der Zeilenzahl bei Abfragen, die IN()-Bedingungen enthalten.

7.1.1

  • Skript-Datenquelle
    • Behebt einen Fehler, der zu einer Fehlermeldung führt, wenn der Offset größer ist als die Anzahl der zurückgegebenen Zeilen.

7.1.0

  • Lehnt Werte ab, die an „/webcollector“ übergeben werden und zu weit in der Zukunft liegen
  • Schätzt die Anzahl der aus PostgreSQL-Datenbanken abgerufenen Zeilen, anstatt sie zu berechnen, wenn die Anzahl der abgerufenen Zeilen größer als 1'000'000 ist. Dies erhöht die Abfrageleistung bei großen Datensätzen erheblich.
  • Behebt einen Fehler, der dazu führt, dass das Abrufen von Job-Meldungen fehlschlägt, wenn ein Objekt nicht auf einem Kollektor geplant ist.

7.0.7

  • Datenabfragen
    • Behebt einen Deadlock beim Aktualisieren verschachtelter Datenabfragen.
    • Behebt einen Fehler, der dazu führt, dass bei der Abhängigkeitsauflösung dieselbe Abhängigkeit mehrfach gefunden wird.

7.0.6

  • Stellt „defaultParams“ in der Anfrage „/dashboards/groups/nested“ bereit

7.0.5

  • Behebt einen Fehler, der dazu führte, dass eine „select“-Anfrage an eine Skript-Datenquelle abstürzte, wenn keine Parameter für „offset“ und „limit“ angegeben wurden.
  • Behebt das Parsen von Datenabfragen, die „with“ enthalten

7.0.4

  • Inventory Controller
    • Behebt die Verarbeitung von „tree“-Anfragen mit leeren Objekten.

7.0.3

  • PDF-Berichte
    • Behebt außerdem den Seitenumbruch bei Tabellen

7.0.2

  • PDF-Berichte
    • Behebt Seitenumbruch
    • Behebt doppelte Tabellenüberschriften

7.0.1

  • Ermöglicht den Export einzelner Datenabfragen
  • Behebt einen Fehler, der manchmal die Erkennung bereits materialisierter Datenabfragen beim Neustart des Dienstes verhinderte.

7.0.0

  • Verbessert Datenabfragen
    • Ermöglicht die Materialisierung von Datenabfragen ähnlich wie bei materialisierten Ansichten.
    • Entfernt Semver-Versionen zugunsten von reinen Datumsangaben.
    • Verbessert die Referenzerkennung.
    • Erzwingt die Berechtigungen aus der Datenquelle auch in dmvn-Testabfragen.
    • Speichert Ergebnisse von Datenabfragen im Cache, um die Leistung zu verbessern.
  • Bündelt PDF-Berichtsrasterisierer, um die Leistung zu verbessern.
  • Aktualisiert den MySQL-JDBC-Konnektor. Erfordert MySQL >= 8.
  • Fügt InventoryController hinzu, das optimierte Endpunkte für das SKOOR Dashboard-Inventar-Widget bereitstellt

6.4.3

  • Release zur Einbindung der Änderungen aus 6.3.4.

6.4.2

  • Unterstützt den PostgreSQL-citext-Typ sowie (weitere) andere spezielle Typen.

6.4.1

  • /files Der Endpunkt setzt nun standardmäßig den MIME-Typ unbekannter Dateien auf „application/octet-stream“, anstatt „null“ zurückzugeben.

6.4.0

  • Ermöglicht das Löschen von Dateien mit DELETE /files/filename.extension
  • Erhöht die maximale Upload-Dateigröße von 1 MB auf 10 MB

6.3.4

  • Stellt sicher, dass PostgreSQL-Verbindungen immer den externen Verbindungspooler verwenden.

6.3.3

  • Stellt sicher, dass der aktuelle Benutzer über volle Berechtigungen für eine neu erstellte Dashboard-Gruppe verfügt.

6.3.2

  • Beschleunigt den Start des Webservice, indem Migrationen während der Aktualisierung nur einmal ausgelöst werden.

6.3.0

  • Ermöglicht Operatoren wie AND(), OR() bei der Textsuche in Datenquellen
  • Sortiert Gründe auf natürliche Weise beim Abrufen der Herkunft (Drilldown)

6.2.5

  • Behebt Probleme bei der Erstellung von Dashboard-Gruppen

6.2.4

  • Normalisiert Dashboard-Berechtigungen
    • Macht die Stammgruppe „Dashboards“ für alle lesbar
    • Fügt „Deny Any“ zur Stammgruppe „Dashboards“ für referenzierte Objekte hinzu
    • Entfernt „Deny“-Regeln aus allen Dashboard-Objekten

6.2.3

  • Erzwingt die Init-Berechtigungen von Dashboards auf das übergeordnete Objekt

6.2.2

  • Behebt das Abrufen von Dashboards, wenn der Benutzer in andere Gruppen verschoben wird oder seine Rolle ändert.

6.2.1

  • Behebt die Migration von Kopfzeilenkacheln, wenn nur eine rechte Kopfzeilenkachel vorhanden ist.

6.2.0

  • Neue Endpunkte für Dashboard-Berechtigungen

6.1.4

  • Behebt Datenabfragen, die Aggregatfunktionen ohne Alias verwenden (z. B. count(*), sum(foo), ...)

6.1.3

  • Führt Dashboard-Migrationen einmal pro Mandant statt nur einmal global durch.

6.1.2

  • Datenabfragen
    • Behebt Datenabfragen, bei denen der Benutzer als Autor gelöscht wurde.
    • Behebt Datenabfragen mit Null-Abfragezeichenfolgen

6.1.1

  • Datenabfragen
    • Verwendet keine Common Table Expressions in MySQL, da ältere MySQL-Versionen diese nicht unterstützen. Wahrscheinlich wird es in einer späteren Webservice-Version eine Erkennung für diese Funktion geben. 6.1.0

6.1.0

  • Datenabfragen
    • Verwendet Common Table Expressions (WITH-Abfragen) für Unterabfragen anstelle von verschachtelten Unterabfragen. Es ist nicht mehr erforderlich, einer Unterabfrage einen Alias hinzuzufügen.
    • Entfernt Kommentare vor der Verarbeitung von Unterabfragen und Parametern.
    • Misst die Ausführungszeit der Abfrage und die Rückgabedauer
    • Ermöglicht Standardwerte für Parameter und vereinfacht die Parametersyntax (kein „params.“ mehr)
  • Datenabfragen / Datenquellen
    • Unteraggregate
  • Endpunkt zum Speichern benutzerdefinierter CSS-Stile
  • Gibt untergeordnete Elemente im Reason-Aufruf zurück

6.0.5

  • Behebt das Lesen der Konfiguration aus Umgebungsvariablen

6.0.4

  • Datenabfragen
    • Entfernt die Pinning-Logik
    • Löscht Gruppen immer rekursiv
    • Vereinfacht und behebt den Export/Import

6.0.3

  • Gibt bei ungültigem Dashboard den HTTP-Statuscode 404 statt 500 zurück

6.0.2

  • Ermöglicht das Speichern ungültiger Datenabfragen. Gibt stattdessen Fehler beim Abrufen der Datenabfrage zurück
  • Fügt beim Veröffentlichen von Datenabfragen keine Versionskennzeichnungen mehr hinzu
  • Behebt die Erkennung von zirkulären Referenzen bei Unterdatenabfragen

6.0.1

  • Einzelne Anfrage für Dashboards einschließlich ihrer untergeordneten Elemente (/dashboards/{id}/nested)

6.0.0

  • Konfiguration über ENV
  • Ermöglicht die Einstellung des Dunkelmodus für den Benutzer
  • Viele Änderungen beim Abrufen von Dashboards
  • Entfernt einige Funktionen, die bisher von SKOOR Auth übernommen wurden
  • Verwendet den Verbindungspool von PGPool-II, sofern verfügbar