SKOOR Webservice Changelog

9.2.0

  • Die Berechtigungsanforderungen für GET /users und GET /scripts/mimetypes werden gelockert, sodass alle authentifizierten Benutzer diese Endpunkte aufrufen können.

9.1.2

  • Behebt ein Problem, das dazu führt, dass die Anmeldung beim Dashboard-Viewer nicht ordnungsgemäß funktioniert.

9.1.1

  • Behebt ein Problem beim CSV-Import, bei dem Felder mit negativen Zahlen fälschlicherweise als TEXT statt als BIGINT oder DOUBLE erkannt wurden.
  • Behebt einen Fehler, bei dem Prognosen, die auf Datenabfragen aus bereichsbezogenen Datenquellen basierten, fälschlicherweise fehlende Diskriminatorspalten meldeten.

9.1.0

  • Die Authentifizierung wurde umgestellt, sodass nun kurzlebige Token anstelle von langlebigen Sitzungs-IDs verwendet werden. Eine Sitzungs-ID kann zwar weiterhin über den HTTP-Header „X-Session-Id“ oder den Abfrageparameter „sessionId“ bereitgestellt werden, dieser Ansatz ist jedoch mittlerweile veraltet. Authentifizierungstoken sollten stattdessen über den Authorization-Header gesendet werden (z. B. Authorization: Baerer fj6v45juO63gb...).
  • In containerisierten Umgebungen muss der Endpunkt des SKOOR Auth-Dienstes möglicherweise aktualisiert werden, damit er auf den tatsächlichen Endpunkt des SKOOR Auth-Dienstes verweist (mithilfe der Umgebungsvariablen „SKOOR_WEBSERVICE_auth_service_url“).
  • Migration von der veralteten Google Vertex API zur Google Generative Language API. Diese Aktualisierung wird intern implementiert und hat keine Auswirkungen auf KI-Funktionen in der Benutzeroberfläche. -Prognosen:
    • Es werden Prognosefunktionen eingeführt, die Datenvorhersagen mithilfe von ML-Modellen wie Prophet, Lineare Regression, XGBoost und SARIMAX ermöglichen.
    • Fügt Unterstützung für den Export und Import von Prognosekonfigurationen zusammen mit Dashboards hinzu.
    • Fügt der Anwendungskonfiguration die Eigenschaft „forecast.script.location“ hinzu, um das Verzeichnis für Prognoseskripte zu definieren.
  • Skripte
    • Erweitert Skript-Jobs um eine Fortschrittsverfolgung und spezielle Konfigurationen für die Ausführung in Datenbanken und Dateisystemen.
    • Fügt Skripten Unterstützung für Gruppen hinzu.
    • Fügt einen neuen Endpunkt „/scripts/{script}/jobs/status“ hinzu, der die neuesten Auftragsstatus pro „RunConfig“ zurückgibt; die Anzahl der pro „RunConfig“ zurückgegebenen Aufträge kann mit dem Parameter „maxCount“ konfiguriert werden.
    • Fügt Unterstützung für die Konfiguration und Speicherung einer vordefinierten Liste von MIME-Typen für „acceptedFiles“ in „ScriptConfig“ hinzu und fügt einen neuen Endpunkt „/scripts/mimetypes“ hinzu.
    • Schließt Umgebungsvariablen mit passwortbezogenen Schlüsseln (z. B. PASSWORD, PASS, PW) aus Skriptexporten aus, um die Offenlegung sensibler Informationen zu verhindern.
  • Die DataQuery-Abrufprozesse wurden überarbeitet, um die Handhabung von Benutzerkontext und Geltungsbereich zu verbessern.

9.0.2

  • Portiert die Korrektur für PDF-Berichte aus Version 9.1 zurück.

9.0.1

  • Erzwingt die Überprüfung der Benutzerrolle an allen Endpunkten. Wichtige Änderungen, die möglicherweise zu Kompatibilitätsproblemen führen:
    • Viele Endpunkte zur Datenbearbeitung 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 Datenbearbeitung 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 statt im globalen Übersetzungsspeicher gespeichert.
  • 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 Benutzer zu erraten.
    • Die meisten Benutzereinstellungen sind nun auf Administratoren beschränkt. Benutzer ohne Administratorrechte können lediglich ihre Einstellungen unter fullname, email, phone, startDashboardId, language und timeZone aktualisieren sowie ihr Passwort ändern und die MFA aktivieren oder deaktivieren (sofern diese 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 lediglich ihre Einstellungen unter startDashboardId, language und timeZone aktualisieren.
  • Die Einstellung „visuallyImpaired“ wird sowohl aus „User“ als auch aus „UserGroup“ entfernt, 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 Verarbeitung von Skript-Zeitplänen, 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 die neue Benutzerrolle „UserRole“ ein: Data_Editor
    • Daten aus DataSources können bearbeitet werden, solange der Benutzer über die entsprechenden Berechtigungen verfügt.
    • Kann auf DataQueries zugreifen, diese erstellen und bearbeiten
    • Kann Skripte anzeigen, bearbeiten (Ausführungskonfigurationen/Zeitplan-Konfigurationen) und ausführen
  • Löscht Passwörter in den „envVariables“ und „runConfigs“ von Skripten.
  • 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.33

  • Unterstützt das Abrufen der ausführbaren Google Chrome-Datei, wenn „DEBUG=puppeteer:*“ aktiviert ist.

8.1.32

  • Behebt ein Problem mit PDF-Berichten aus Version 9.1.

8.1.31

  • Behebt einen Fehler, der manchmal verhindert, dass die Datenabfrage-Engine materialisierte Tabellen findet.

8.1.30

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

8.1.29

  • Filter auf Spalten mit „Distinct Count“ werden nun korrekt verarbeitet.

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.26

  • Ermöglicht die Angabe von Kopf- und Fußzeilen, die in PDF-Berichte eingebunden werden sollen.

8.1.25

  • SKOOR_USER_USERGROUP_IDS und SKOOR_USER_USERGROUP_NAMES werden zu den Umgebungsvariablen in Skripten hinzugefügt.
  • Behebt eine Race-Condition, die dazu führt, dass Datenabfragen im Aktualisierungszustand hängen bleiben.
  • Behebt einen Fehler, der Datenabfragen beeinträchtigt, 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 ein Problem mit der Swagger-UI zu beheben.

8.1.22

  • Behebt einen Fehler, der manchmal verschachtelte Datenabfragen mit scoped-Tabellen unterbricht.

8.1.21

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

8.1.20

  • Andere Ausnahmen beim Parsen von Datenabfragen werden gemildert.

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 verhindert, wenn Dashboards mit URL-Namen vorhanden sind.

8.1.16

  • Gibt den korrekten Statuscode 401 zurück, wenn die Basic-Authentifizierung fehlschlägt.
  • Behandelt Magellan-Organisationen korrekt bei der Materialisierung von Datenabfragen, 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 angepasst, dass nur Abfragen, die auf StableNet-Fremdtabellen zurückgreifen, dynamisch aktualisiert werden.
  • Behebt einen Fehler, der manchmal dazu führte, dass Verweise auf Datenabfragen fehlten, die für Bereiche oder untergeordnete Datenabfragen verwendet wurden.
  • Aktualisiert anfällige Abhängigkeiten.

8.1.15

  • Führt einige erforderliche Änderungen durch, um neue Funktionen von StableNet FDW zu unterstützen.
  • Datenabfragen
    • Stellt eine vorhandene Datenabfrage als Kontext bereit, wenn im Datenabfrage-Editor „Text2SQL“ 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 zum Abrufen der Objektbaumstruktur hinzu
    • /root/tree
    • /{parentType}/{parentId}/tree
  • Löscht beim Neustart des Webdienstes die zwischengespeicherten Dateien und Stile auf der Festplatte.

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 von 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 Einfrieren der Datenbankverbindung führt.

8.1.12

  • Korrektur der „searchPath“-Endpunkte durch Entfernen der Leerzeichen in den Pfadsegmenten.
  • Anpassung der CashPilot-Datenquelle für die Daten-Synchronisation bei Mehrbenutzerbetrieb.
  • Optimiert die Materialisierung von Datenabfragen
  • Filtert einige Scanner-Störsignale aus dem Protokoll heraus.
  • Ermöglicht die Erklärung von Datenabfragen ohne Analyse.
  • Behebt die Erkennung von Tabellenverweisen bei Datenabfragen, wenn auf den Tabellennamen direkt ein „)“ folgt. Dies verhinderte manchmal die korrekte Anwendung von Scopes.

8.1.12

  • Behebt Probleme mit searchPath-Endpunkten, indem Leerzeichen in Pfadsegmenten entfernt werden.
  • Passt die CashPilot-Datenquelle für die Daten-Synchronisation bei mehreren Benutzern an.

8.1.11

  • Der Dienst wird bei einer Paketaktualisierung auf Standby-Systemen weder aktiviert noch gestartet.
  • Behebt einen Fehler, der den Übersetzungs-Endpunkt beeinträchtigt, wenn ein leeres Text-Array in der Nutzlast bereitgestellt wird.
  • Fügt den searchPath-Endpunkten Unterstützung für die Groß-/Kleinschreibung hinzu.

8.1.10

  • Verbessert den Skript-Export/-Import
    • Fügt dem Export die Option „script_metadata.json“ hinzu.
    • Ermöglicht das Überschreiben eines vorhandenen Skripts 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 zur Suche nach SKOOR-Objekten anhand ihres Pfads ausgehend von einem bestimmten übergeordneten Objekt.
  • Reduziert die Anzahl der gleichzeitig aktualisierten Abfragen für materialisierte Daten auf 8. Dies trägt dazu bei, E/A-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 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 wurde zur besseren Wartbarkeit umgestaltet
  • DataSource
    • Reduziert die TTL für nicht zwischengespeicherte Daten auf 1 Sekunde
  • Datenabfragen
    • Behebt einen Fehler, der die Parameter von Datenabfragen bei MySQL-Datenbanken beeinträchtigt.

8.1.7

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

8.1.6

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

8.1.5

  • Dashboard/DQs – Import und Export
    • Behebt das Problem beim Importieren von Dashboards ohne Dashboard-Zuordnungen.
    • Behebt die Überprüfung von Benutzern und Benutzergruppen, auch wenn „Scopes“ und „Permissions“ auf „false“ gesetzt sind.
    • Fügt den Importhinweisen eine Warnung hinzu, wenn das Exportsystem neuer ist als das Zielsystem.
  • Skript-Updates:
    • Vereinheitlichung von „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-Deaktivierung 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 („forceDelete“); 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.
  • Der Name des Dashboards ist nun ein Pflichtfeld.

8.1.3

  • Ermöglicht die Definition von zusammengesetzten Indizes für materialisierte Datenabfragen.
  • Behebt das Zuordnungsproblem bei Dashboards für den Export/Import
  • CashPilot-Datenquelle
    • Fügt Paginierungsparameter zur Service-URL hinzu
    • Verwendung von 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 anhand der Spaltenreihenfolge.
  • Behebt einige Fehler, die dazu führten, dass die Skriptplanung und das erneute Einreihen in die Warteschlange nicht ordnungsgemäß funktionierten.

8.1.1

  • Unterstützt das 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 unter /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: Umfassen Name, Beschreibung, Timeout, 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.
    • Es wurde 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 die Datei „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 verhindert.

8.0.21

  • Optimiert die Verarbeitung von Unterabfragen (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 die 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 bei der Überprüfung von Fremdtabellen blockieren.
  • Datenabfragen
    • Optimiert die Aktualisierung
    • Unterstützt Unterabfragen bei Verwendung der PostgreSQL-Funktion CROSSTAB
    • Ermöglicht die Darstellung eines Datenabfrageplans über den Endpunkt „/dataQueries/explain“.

8.0.18

  • Das dynamische Caching von Datenabfragen wird vollständig entfernt.

8.0.17

  • Behebt einen Fehler, der die Nutzung paralleler Worker bei PostgreSQL-Verbindungen verhinderte.

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 die Materialisierung von Datenabfragen bei VARCHAR-Spalten verhindert.

8.0.12

  • Behebt einen Fehler, der dazu führte, dass verschachtelte Datenabfragen fehlschlugen, wenn Unterabfragen auf eine bestimmte Weise verschachtelt waren.
  • Deaktiviert Schätzungen der Zeilenanzahl, 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 sowie die Verarbeitung von Fehlermeldungen.
    • Unterstützt „certificate“, „basic_auth_username“ und „basic_auth_password“ des 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ührte, dass Spalten einer Datenabfrage nicht sofort nach der Veröffentlichung aktualisiert wurden.
    • Behebt einen Fehler, der manchmal dazu führte, dass Datenabfragen fehlschlugen, wenn eine Datenquelle oder Datenabfrage mehrfach referenziert wurde.
  • 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 verhindert.

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 älterer Konfigurationen fehlschlägt, wenn ein 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 Datenquelle „CashPilot“ 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 verbesserte Fehlermeldungen beim Import 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ührte, dass Multi-Tenancy-Konfigurationen nicht ordnungsgemäß funktionierten, wenn kein Standard-Tenant vorhanden war.

8.0.0

  • Fügt die Funktionen „dataSources/{id}/tables/{table}/distinctValues “ und „dataSources/{id}/tables/{table}/distinctValues “ hinzu, mit denen sich eindeutige Werte für Spaltenkombinationen abrufen lassen.
  • Behebt einen Fehler, der die Sortierung in der Datenquellen-Vorschau unterbricht, wenn nach Spalten sortiert wird, die doppelte Werte enthalten.
  • Die Konfiguration wird vom Dateisystem in die Datenbank verlagert. Dazu gehören (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, wodurch Geo-Karten mithilfe von Datenabfragen unterstützt werden.
    • Fügt „gis/cluster“ hinzu, wodurch Geo-Links in Geo-Karten unterstützt werden.
    • Filtert leere Adressen vor der Geokodierung heraus.

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 ein Problem beim Import von Daten aus Datenquellentabellen.

7.3.19

  • Behebt einen Fehler, der manchmal dazu führte, dass SELECT-Anweisungen fehlschlugen, wenn die Abfrage ein leeres Argument enthielt.

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 unwirksam machte.
  • Erweitert das Caching, um Datenabfragen noch weiter zu beschleunigen.

7.3.16

  • Behebt einen Fehler, der zu einer Fehlermeldung führte, wenn auf eine untergeordnete Datenabfrage mehrfach auf verschiedenen Ebenen verwiesen wurde.

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 der Endpunkte 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 Cachings im Allgemeinen.

7.3.10

  • Verwendet Java-HTTP-Client-Instanzen wieder.
  • StableNet-Auth-Token werden nach SELECT-Abfragen 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, nicht protokollierte Tabellen für Abfragen auf materialisierten Daten auf MySQL-Backends zu verwenden.

7.3.9

  • Cacht einige Metadaten von Datenbanktabellen, um den Datenbankzugriff zu reduzieren.

7.3.8

  • Reduziert die Anzahl der gleichzeitig aktualisierten Abfragen auf materialisierte Daten auf 10.

7.3.7

  • Der Datenabfrage-Cache-Aktualisierer verwirft zwischengespeicherte Daten nicht mehr, wenn es zu einem vorübergehenden Fehler bei der Aktualisierung der StableNet-Authentifizierungstoken kommt.

7.3.6

  • Das dynamische Cache-Limit für Datenabfragen wird von 100'000 auf 10'000 Zeilen verringert. Dies sollte die Schreibvorgänge auf die Festplatte bei nicht materialisierten 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 können.
  • Passt die Timeouts 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 den Werten der Engine und den Wertdefinitionen führt.
  • Behebt einen Fehler, der bei großen Datensätzen zu einer sehr schlechten 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 ein Problem beim Import von XLS(X)-Dateien in die Datenquelle, bei dem in einigen Zeilen die letzten Zellen fehlten.

7.2.14

  • Behebt einen Fehler, der dazu führte, dass die „PUT /{parentType}/{parentId}/children“ fehlschlug, wenn das übergeordnete Element ein SLC war.

7.2.13

  • Erhöht den Datenbank-Verbindungspool für laufende Prozesse von 8 auf 30, um mehr parallele Anfragen zu ermöglichen.

7.2.12

  • Das Timeout-Verhalten bei MySQL-Datenquellen wurde verbessert.

7.2.11

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

7.2.10

  • Behebt Probleme mit Zeitzonen und der 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 statt 2023-01-02T07:00:00Z). Dies ist bei der Arbeit mit dem Webdienst wesentlich übersichtlicher und sollte keine Auswirkungen auf bestehende Clients haben, da diese den Zeitversatz stets berücksichtigen sollten.

7.2.9

  • Außerdem wird die Zeilenanzahl in MySQL geschätzt, 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 beeinträchtigt.

7.2.5

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

7.2.4

  • Behebt ein 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 ein Problem beim Laden von Datenquellen-Scopes.

7.2.2

  • Behebt einen Fehler, der Anfragen an Datenquellen und Datenabfragen unterbricht, die Anführungszeichen in den 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 noch die lokale Zeitkomponente anstelle einer vollständigen ISO-8601-Zeichenkette enthält.
  • Aktualisierungsintervall für Abfragen materialisierter Daten.

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 steigert 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 eingeplant ist.

7.0.7

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

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 ein Problem beim 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 das Seitenumbruchproblem
    • 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 reiner Datumsangaben.
    • Verbessert die Referenzerkennung.
    • Erzwingt die Berechtigungen aus der Datenquelle auch in dmvn-Testata-Abfragen.
    • Speichert die 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 den „InventoryController“ hinzu, der optimierte Endpunkte für das SKOOR Dashboard-Inventar-Widget bereitstellt

6.4.3

  • Release zur Übernahme 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 den MIME-Typ unbekannter Dateien nun standardmäßig auf „application/octet-stream“, anstatt „null“ zurückzugeben.

6.4.0

  • Ermöglicht das Löschen von Dateien mithilfe von DELETE /files/filename.extension
  • Die maximale Dateigröße für Uploads wurde von 1 MB auf 10 MB erhöht

6.3.4

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

6.3.3

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

6.3.2

  • Beschleunigt den Start des Webservice, indem Migrationen während des Updates 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 ein Problem bei der Erstellung von Dashboard-Gruppen

6.2.4

  • Normalisiert die Dashboard-Berechtigungen
    • Macht die Stammgruppe „Dashboards“ für alle lesbar
    • Fügt der Stammgruppe „Dashboards“ für referenzierte Objekte die Regel „Alle verweigern“ hinzu
    • Entfernt „Verweigern“-Regeln aus allen Dashboard-Objekten

6.2.3

  • Erzwingt die Übernahme der ursprünglichen Berechtigungen der Dashboards auf das übergeordnete Objekt

6.2.2

  • Behebt ein Problem beim Abrufen von Dashboards, wenn ein Benutzer in andere Gruppen verschoben wird oder seine Rolle wechselt.

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 mit Aggregatfunktionen ohne Alias (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 Probleme bei Datenabfragen mit Null-Abfragezeichenfolgen

6.1.1

  • Datenabfragen
    • Verwendet keine Common Table Expressions (CTE) bei 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.
    • Kommentare werden vor der Verarbeitung von Unterabfragen und Parametern entfernt.
    • Misst die Ausführungszeit der Abfrage und die Dauer der Rückgabe
    • 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 Einlesen der Konfiguration aus Umgebungsvariablen

6.0.4

  • Datenabfragen
    • Entfernt die Pinning-Logik
    • Gruppen werden nun immer rekursiv gelöscht
    • Vereinfachung und Fehlerbehebung beim Export/Import

6.0.3

  • Gibt bei ungültigem Dashboard den HTTP-Statuscode 404 anstelle von 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 untergeordneten Datenabfragen

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 Aktivierung des Dunkelmodus für den Benutzer
  • Zahlreiche Änderungen beim Abrufen von Dashboards
  • Entfernt einige Funktionen, die bisher von SKOOR Auth übernommen wurden
  • Verwendet den Verbindungspool von PGPool-II, sofern verfügbar