SKOOR Webservice Changelog
9.3.1
- Scripts
- Fixes a bug that could leave a script job's source file behind after the job finished.
9.3.0
- Updates the Gemini model to 3.5 Flash Lite.
- Scripts:
- Allows script jobs with the same script but different Run Configs to run in parallel instead of queuing behind each other.
- Allows exporting multiple scripts at once as a single ZIP of ZIPs via
POST /scripts/export. - Allows uploading a ZIP containing multiple scripts via
POST /scripts/groups/{groupId}/upload-zip, with an optionaltoImportlist to select which scripts to import. - Adds
POST /scripts/groups/{groupId}/analyze-zipto check a ZIP file for existing script name conflicts and dependents before importing. - Adds
POST /scripts/upload-zip, which behaves likePOST /scripts/groups/{groupId}/upload-zipbut resolves each script's group automatically from the exported ZIP's manifest (matching by group name, creating the group if needed) instead of requiring agroupId. Scripts whose group can't be resolved this way are imported into a fallback "Default" group.
- Fixes a bug that could sometimes cause forecast date columns to be parsed incorrectly.
9.2.5
- Exposes
/styles/custom.cssas a public resource. This is needed by SKOOR Auth to customize styles.
9.2.4
- Fixes an issue in forecasts that had saved the dates in a wrong format.
9.2.3
- Fixes an issue that could prevent images from loading in PDF reports when running in containerized environments.
- Adds proper support for column definitions that contain parentheses (for example,
AVG(Throughput (Mb/s))). - Adds proper support for nested filter operators such as
id=or(5,BETWEEN(10,20)). - Adds support for forecast columns with names that are not snake_case.
- Adds support for MEDIAN, STDDEV_SAMP and VAR_SAMP when selecting data from data sources.
9.2.2
- Fixes a bug that could cause Data Query and Script AI-based code generation to fail.
- Fixes a bug that causes scheduled scripts to fail when no run configs are defined.
9.2.1
- Removes the manual ANALYZE VACUUM maintenance call after materialized data query refresh, as it is no longer needed in PostgreSQL 17.
9.2.0
- Loosens the permission requirements for
GET /usersandGET /scripts/mimetypesso that all authenticated users can call these endpoints.
9.1.2
- Fixes an issue that causes dahboard viewer logins not to work properly.
9.1.1
- Fixes a CSV import issue where fields containing negative numbers were incorrectly detected as TEXT instead of BIGINT or DOUBLE.
- Fixes a bug where forecasts run on data queries from scoped data sources could report incorrect missing discriminator columns.
9.1.0
- Switches authentication to use short-lived tokens instead of long-lived session IDs. While a session ID can still be provided via the X-Session-Id HTTP header or the sessionId query parameter, this approach is now deprecated. Authentication tokens should instead be sent using the Authorization header (e.g., Authorization: Baerer fj6v45juO63gb...).
- In containerized environments, the SKOOR Auth service endpoint may need to be updated to point to the actual
SKOOR Auth service endpoint (using the
SKOOR_WEBSERVICE_auth_service_urlenvironment variable). - Migrates from the deprecated Google Vertex API to the Google Generative Language API. This update is implemented internally
and does not impact any AI features in the user interface.
-Forecasts:
- Introduces Forecasting capabilities allowing data prediction using ML models like Prophet, Linear Regression, XGBoost, and SARIMAX.
- Adds support for exporting and importing Forecast configurations alongside dashboards.
- Adds
forecast.script.locationproperty to the application configuration to define the directory for forecast scripts.
- Scripts
- Enhances Script Jobs with progress tracking and specialized configurations for Database and Filesystem executions.
- Adds Groups support to Scripts.
- Adds a new endpoint
/scripts/{script}/jobs/statusthat returns the latest job statuses per RunConfig; the number of jobs returned per RunConfig can be configured with themaxCountparameter. - Adds support for configuring and storing a predefined
acceptedFilesMIME type list in ScriptConfig, and adds a new/scripts/mimetypesendpoint. - Excludes environment variables with password-related keys (e.g.
PASSWORD,PASS,PW) from script exports to prevent exposing sensitive information.
- Refactors DataQuery fetch processes for improved user context and scope handling.
9.0.2
- Backports PDF report fix from 9.1.
9.0.1
- Enforces user role checks on all endpoints.
Notable changes that may be breaking:
- Many data-modifying endpoints are now restricted to administrators:
POST /files/{filename}POST /styles/{filename}POST /translations/{language}POST /scriptsPOST /dataSources- Many more, see API docs
- Many data-modifying endpoints are now restricted to editors:
POST /dashboardsPUT /dashboards/{id}POST /devicesPOST /devices/{id}- Many more, see API docs
- Only a small set of endpoints is accessible without authentication.
- Since the
POST /translations/{language}endpoint is now limited to administrators while editors still need to translate dashboards, dashboard translations are now stored within dashboard objects rather than in the global translations store.
- Many data-modifying endpoints are now restricted to administrators:
- Uses strict rules on what a user is allowed to change about themselves and other users.
- Only administrators are now permitted to change usernames. This resolves a username enumeration vulnerability that previously allowed users to guess other users’ usernames.
- Most user settings are now restricted to administrators. Non-administrator users can only update their
fullname,email,phone,startDashboardId,languageandtimeZonesettings, as well as change their password and enable or disable MFA (unless it is enforced by an administrator). - Only administrators can modify settings for shared users.
- User type can't be changed anymore from or to LDAP_MANAGED.
- LDAP_MANAGED users can only update their
startDashboardId,language,timeZonesettings.
- Removes the
visuallyImpairedsetting from bothUserandUserGroup, as it is no longer required by the dashboard. - Limits
POST /files/{filename}to the following mime types: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 - Limits
PUT /styles/{filename}to the following mime types:text/css,text/plain - Limits
POST /scripts/{script}/runto the following mime types: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 - Scripts:
- Fixes script schedule handling that caused scheduled runs to trigger when run history is empty.
9.0.0
- Adds number of source rows in
.../columns/{column}/valuesand.../{id}/distinctValuesendpoints. This can be used to build historgrams. - Adds new EndPoints for batch updating:
- Users in a UserGroup:
/userGroups/{id}/users - UserGroups of a User:
/userGroups/users/{userId}
- Users in a UserGroup:
- Introduces WebserviceUser/UserGroup to wrap ErangerUsers/UserGroup
- Adds support to Password Policy
- Adds support to MFA (Multi-Factor Authentication)
- Introduces new UserRole
Data_Editor- Can edit data from DataSources as long as user is scoped.
- Can Access/Create/Edit DataQueries
- Can View/Edit(RunConfigs/ScheduleConfigs)/Run Scripts
- Clears passwords in script's envVariables and runConfigs.
- Enables setting 0 Timeout for Scripts (No Timeout) and customize it in Run Configurations.
- Import/Export
- Improves import/export of dashboards with scripts by trying to match scripts in target systems by names.
8.1.33
- Supports getting Google Chrome executable if
DEBUG=puppeteer:*is on.
8.1.32
- Backports PDF report fix from 9.1.
8.1.31
- Fixes bug that sometimes prevents the data query engine to find materialized tables.
8.1.30
- Fixes bug that sometimes causes materialized data queries not to materialize properly.
8.1.29
- Correctly handle filters on distinct count columns.
8.1.28
- Enables automatic dashboard translations for all customers by providing a common DeepL API key.
8.1.27
- Fixes bug that sometimes causes dashboards with URL name not to be saved properly.
8.1.26
- Allows to provide header and footer to be rendered into PDF reports.
8.1.25
- Adding
SKOOR_USER_USERGROUP_IDSandSKOOR_USER_USERGROUP_NAMESto the environment variables in scripts. - Fixes race condition that causes data queries to be stuck in refreshing state.
- Fixes bug that breaks data queries mixing templating and params.
8.1.24
- Disables caching in CashPilot data source.
8.1.23
- Updates dependency to fix Swagger UI.
8.1.22
- Fixes bug that sometimes breaks nested data queries that use scoped tables.
8.1.21
- Further enhances data query parsing to get references.
8.1.20
- Mitigates other Exceptions when parsing data queries.
8.1.19
- Mitigates some IndexOutOfBoundsExceptions when parsing data queries.
8.1.18
- Does not print error if data query is empty.
8.1.17
- Fixes bug that breaks dashboard import when there are dashboards with URL names.
8.1.16
- Returns proper status code 401 if basic auth fails.
- Properly handles Magellan organisations when materializing data queries accessing a StableNet Data Source.
- In earlier versions, Data Queries based on a StableNet Data Source were always refreshed dynamically. This behavior has now been modified so that only queries relying on StableNet foreign tables are dynamically refreshed.
- Fixes bug that sometimes causes missing data query references used for scopes or sub data queries.
- Updates vulnerable dependencies.
8.1.15
- Implements some required changes to support new features of StableNet FDW.
- Data Queries
- Provides existing data query as context when doing Text2SQL in data query editor.
- Allows to generate example data queries for a given data source using Google vertex AI.
- Scripts
- Implements code generator endpoint
- Adds new EndPoints to retrieve objects' tree
/root/tree/{parentType}/{parentId}/tree
- Clears the cached files and styles on the hard-drive upon restarting the webservice.
8.1.14
- Allowed CORS origins can now be configured using the
cors.allowed.originsproperty(comma-separated list). When web applications from other origins (e.g. StableNet Portal) need to send asynchronous requests to the SKOOR Webservice, their origin URLs must be added; otherwise, those applications will no longer function.
8.1.13
- Fixes bug that causes database connection to hang.
8.1.12
- Fixes searchPath Endpoints by trimming out the spaces in path segments.
- Adjusts CashPilot data source for Multi User data sync.
- Optimizes data query materialization
- Filters out some scanner noise from log.
- Allows to explain data queries without analyze.
- Fixes data query table reference detection if table name is directly followed by a
). This sometimes prevented scopes to be applied properly.
8.1.12
- Fixes searchPath Endpoints by trimming out the spaces in path segments.
- Adjusts CashPilot data source for Multi User data sync.
8.1.11
- Does not enable nor start service upon package update on standby systems.
- Fixes a bug that breaks translation endpoint when providing an empty text array in payload.
- Adds case insensitivity support to the searchPath Endpoints
8.1.10
- Improves Script Export/Import
- Adds
script_metadata.jsonto the export. - Allows overwriting existing script with overwrite flag.
- Allows importing metadata from
script_metadata.jsonif it exists.
- Adds
- Dashboards
- Prevents duplicate URL-Names.
- Google Vertex AI (used for Script Copilot and Data Query Text to SQL functionality)
- Changing default location to
europe-north1and default model togemini-2.5-flash-litebecausegemini-1.5is going to be discontinued on September 24, 2025 (see https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions).
- Changing default location to
- Makes python scripts run unbuffered (Outputs are shown directly in ConsoleOutput).
8.1.9
- Changes owner of some config files to
eranger. - Implements Basic auth for API calls.
- Introduces two new endpoint in the ObjectSearchController
/root/searchPathto search for SKOOR-Objects using their path starting from root./{parentType}/{parentId}/searchPathto search for SKOOR-Objects using their path from a specific parent.
- Reduces the number of concurrently refreshing materialized data queries to 8. This helps to reduce IO contention.
- Fixes a bug in query cache that causes the same query being executed multiple times in parallel instead of taking the result from the query cache.
- Limit Script log lines to 1000 and one log line to 10000 characters.
8.1.8
- Scripts
- Fixes a bug that prevents loading .env files in the script run, if they are not in root.
- Fixes a bug that prevents saving changes to a script when being used in a Dashboard.
- Refactors ScriptsConfig for better maintainability
- DataSource
- Reduces the uncached-TTL to 1 Secound
- Data Queries
- Fixes bug that breaks data query params on MySQL databases.
8.1.7
- Data Queries
- Adds support to force delete Data Query/ Data Query Group
- Adds support to force publish Data Query
- Removes dependantsCount from SimpleScriptConfig.
- Removes LocalAI provider and make Google Vertex AI the new default.
8.1.6
- Fixes empty
SKOOR_SESSION_IDin Scripts.
8.1.5
- Dashboard/DQs Import Export
- Fixes importing Dashboards without Dashboard mappings.
- Fixes checking the users and userGroups even if the Scopes and Permissions is false.
- Adds a warning to the import notices, if the export system is newer than the target system.
- Scripts Updates:
- Unifies ScriptConifg without ScriptConfigType
- Scripts use Runners. The Runner is chosen automatically according to the files present in the script's directory
- PythonRunner: selected when
main.pyexists. - ShellRunner: selected when
run.shexists. - TalendRunner: selected when Talend assets are detected.
- PythonRunner: selected when
- Adds Poetry opt-out by renaming or deleting
pyproject.toml. - Extends ExtendedScriptConfig with dependentWidgets and Widgets details.
- Extend SimpleScriptConfig with dependantsCount.
- Adds requestParam for deleteScript to forceDelete scripts with dependents, otherwise throws an exception.
8.1.4
- Fixes uploading Talend Scripts.
- Removes version numbers from ZIP-Name i.e: newScript_1.3.zip will be imported as a script named newScript
- Fixes correct assets mapping while importing Dashboards.
- Makes Dashboard's name mandatory.
8.1.3
- Allows to define composite indexes on materialized Data Queries.
- Fixes mapping of Dashboard for Export/Import
- CashPilot Data Source
- Add pagination params to service URL
- Use expression template and format for filters.
- Allows to run python scripts on offline systems.
8.1.2
- Data Sources / Data Queries
- Allows to sort distinct values based on order by columns.
- Fixes some bugs that prevented script scheduling and requeing to work properly.
8.1.1
- Supports new puppeteer
8.1.0
- Uses pagination when getting data from CashPilot
- Provides endpoint to automatically translate using DeepL. To activate this feature a DeepL API key has to
be provided in
/etc/opt/eranger/eranger-webservice.cfgusing thei18n.deeplApiKeyproperty. - Introduces a new endpoint,
/script/, along with a ScriptController, enabling custom script development.- Scripts provide a powerful tool for developing, running, customizing, and scheduling various types of scripts.
- Scripts consist of three main sections:
- Settings: Includes Name, Description, Timeout, Run Configurations, and Schedule Configurations.
- Files: A file system-like structure supporting standard CRUD (Create, Read, Update, Delete) operations.
- Run: Allows triggering and tracking script executions. Run history is capped at 1,000 jobs.
- Supports uploading zip-based scripts in Python, Talend, and Shell.
- Added support for webhook tokens, allowing scripts to be triggered via webhooks.
- Allows to use FreeMarker Templates in DataQueries.
- Check connectivity to external services like SKOOR AI and DeepL asynchronously to be able to deliver settings.json immediately.
- Extends
/alarmsendpoint to also get permissions and properties of assigned objects. - Adds POST method to
/alarms/{id}/commentand/alarms/{id}/assign.
8.0.22
- Fixes bug that breaks sub queries in MySQL and some other caes.
8.0.21
- Optimizes the way how sub queries are handeled (uses not materialized CTEs). This increases query performance by an order of magnitude in many use cases.
8.0.20
- Do not cache value history for SLCs anymore because SLC values can be recalculated retrospectively.
- Cleanup materialized data query caches in case of error other than timeout
- Fixes a bug that prevented materialized data queries to be refreshed if we have a combination of materialized and not materialized queries.
8.0.19
- StableNet Data Source
- Fixes bug that causes queries to block when checking foreign tables.
- Data Queries
- Optimizes refreshing
- Supports sub queries when using PostgreSQL CROSSTAB function
- Allows to explain a data query plan using th
/dataQueries/explainendpoint.
8.0.18
- Removes dynamic data query caching entirely.
8.0.17
- Fixes bug that prevented PostgreSQL connections to use parallel workers.
8.0.16
- Fixes bug that breaks data query caching if foreign tables are involved.
8.0.15
- Data Queries
- Fixes bug that sometimes causes the same materialized data query to be updated concurrently.
- Disables dynamic caching because this breaks the query planner in many situations.
8.0.14
- Data Queries
- Fixes bug that sometimes causes materialized data query tables to be empty after PostgreSQL server crash.
8.0.13
- Data Queries
- Allows to use
WITH RECURSIVE. - Fixes bug that prevents data queries to be materialized in case of VARCHAR columns.
- Allows to use
8.0.12
- Fixes bug that causes nested data query to fail if sub queries are nestes in a specific way.
- Deactivates row count estimates if foreign tables are involved.
8.0.11
- Fixes Bug that causes some database connections stay in
idle in transactionstate for quite some time.- Increases number of concurrent database connections to 60.
- CashPilot Data Source
- Supports
page_sizeanderror_message_pathof REST FDW. This allows to get paged results and to handle error messages. - Supports
certificate,basic_auth_usernameandbasic_auth_passwordof REST FDW.
- Supports
8.0.10
- Fixes bug that causes
/alarmrecipientsto fail.
8.0.9
- Data Queries
- Fixes bug that causes not updating data query columns immediately after publishing it.
- Fixes bug that sometimes causes data queries to fail if a data source or data query is referenced multiple times.
- Data Source
- Allows to filter data using a single wildcard
% - Fixes bug that causes scopes not to work properly.
- Allows to filter data using a single wildcard
8.0.8
- Data Queries
- Fixes bug that prevents deleting multiple data query groups in a row.
- Allows to export data queries that reference data source scopes with deleted users.
- Fixes bug that breaks selection of data source when creating data query.
8.0.7
- Data Sources
- Removes password when exporting list of data sources.
8.0.6
- Data Sources
- Better error handling when importing from XLSX files
- Fixes bug that causes legacy config migration to fail if updated from 7.2.x instead of 7.3.x version.
8.0.5
- Supports arabic text in PDF report footer.
- Adds CashPilot data source.
- Allows common table expressions (WITH queries) in data queries.
8.0.4
- Fixes bug that causes legacy configurations not to be converted properly in case of multiple tenants.
8.0.3
- Fixes broken config DB connections in case of multiple tenants.
8.0.2
- Data Sources
- Provides better error messages when importing data from XLS/XLSX files.
8.0.1
- Data Sources
- Uses RFC4180 compliant CSV parser when parsing import data.
- Fixes bug that causes multi tenency configurations not to work properly in case of no default tenant.
8.0.0
- Adds
dataSources/{id}/tables/{table}/distinctValuesanddataSources/{id}/tables/{table}/distinctValueswhich allow getting distinct values for column combinations. - Fixes bug that breaks sorting in data source preview if we sort by a columns containing duplicated values.
- Moves the configuration from File System to Database. which includes (Files, Styles, Translations, DataSources, DataQueries)
- Data Queries
- Imporves renaming of Data Queries. Renaming a data query will change its name also in the dependent queries.
- Improves Export/Import of DataQueries.
- Optimizes caching of DataQueries.
- Updates to Spring Boot 3.3.0.
- Updates to Java 21.0.3.
- Adds new aggregate function 'distinct_count'
- GIS Controller: Geographic Information System
- Adds
/dataQuery/{id}/clusterwhich adds support to Geo Maps using data queries. - Adds
gis/clusterwhich adds support for Geo Links in Geo Maps. - Filters empty addresses before geo coding.
- Adds
7.3.21
- Fixes bug that causes a "No mime type found for *.csv" error message on some systems when exporting a data source table.
7.3.20
- Fixes import of data source table data.
7.3.19
- Fixes bug that sometimes causes selects to fail if query contains an empty argument.
7.3.18
- Does not throw away dynamic data query caches upon Web Service restart anymore.
7.3.17
- Fixes bug that breaks table annotations.
- Does more caching to speed up data queries even more.
7.3.16
- Fixes bug that causes error when sub data query is referenced multiple times on different levels.
7.3.15
- Even more fixes to improve data query performance.
7.3.14
- Various fixes to improve data query performance.
7.3.13
- Optimizes caching of static SKOOR Dashboard assets.
- Fixes bug that prevents API calls to be cached.
7.3.12
- Increases performance of distinct values endpoints.
- Avoids materialized data queries with very large result sets blocking the whole webservice.
7.3.11
- Uses the new
stablenet_permission_hashtable from StableNet FDW. This allows to highly optimize materialized data queries and caching in general.
7.3.10
- Reuses Java HTTP client instances.
- Does not invalidate StableNet Auth tokens anymore after selects, as this is now done automatically by SKOOR Auth. This saves one roundtrip to the SKOOR Auth Service.
- Do not try to use unlogged tables for materialized data queries on MySQL backends.
7.3.9
- Caches some database table metadata to reduce database access.
7.3.8
- Reduce number of concurrently refreshed materialized data queries to 10.
7.3.7
- The Data Query cache refresher no longer discards cached data if there's a temporary failure in refreshing StableNet authentication tokens.
7.3.6
- Decreases data query dynamic cache limit from 100'000 to 10'000 rows. This should reduce writes to the disk for unmaterialized data queries.
7.3.5
- Replaces deprecated
server.tomcat.max-threadswithserver.tomcat.threads.max.
7.3.4
- Increases number of concurrent connections to SKOOR Engine server.
7.3.3
- Fixes a bug that prevents data query run to make use of materialized data.
- Adjusts materialized data query refresh timeouts based on refresh interval.
- none: 600s
- daily: 600s
- hourly: 60s
- minutely: 10s
- Limits materialized data query maximum row count based on refresh interval.
- none: 10'000'000
- daily: 10'000'000
- hourly: 1'000'000
- minutely: 100'000
7.3.2
- Fixes bug that prevents data source tables from being exported.
7.3.1
- Increases the Spring Boot max threads to 400.
- Optimizes concurrency when refreshing materialized data queries.
7.3.0
- Adds StableNet Data source type which uses the StableNet Foreign Data Wrapper.
- Fixes bug that causes mismatch between Engine values and value definitions.
- Fixes a bug that causes very bad database performance on big datasets when filtering for integer values.
- Various other performance optimizations for big datasets.
- New export / import endpoints for dashboards and data queries.
7.2.15
- Fixes Data Source data import of XLS(X) files with missing trailing cells on some rows.
7.2.14
- Fixes bug that causes the
PUT /{parentType}/{parentId}/childrento fail if parent is a SLC.
7.2.13
- Increases inprocess database connection pool from 8 to 30 to allow more parallel requests.
7.2.12
- Improves timeout behaviour on MySQL Data Sources.
7.2.11
- More accurate result row estimate function for data sources and data queries.
- Supports date trunc functions like
month()andday()on MySQL as well.
7.2.10
- Fixes time zone and daylight saving time issues on MySQL connections.
- Provides ISO-8601 formatted times in the timezone of the web service instead of UTC (e.g. 2023-01-02T08:00:00+01:00 instead of 2023-01-02T07:00:00Z). This is much easier to read when working with the webservice and should not affect existing clients as those should always factor in the offset.
7.2.9
- Also estimates row count on MySQL to improve query performance.
7.2.8
- Correctly handles JSON operators ?, ?| and ?& in data queries.
7.2.7
- Fixes handling of zoned date time params.
7.2.6
- Fixes a bug that breaks PDF reports containing special characters in the footer fields.
7.2.5
- Fixes broken position marker if data query contains errors.
7.2.4
- Fixes deadlock when a slow data query is accessed multiple times in parallel.
7.2.3
- Limit columns in data source
/columnsto current schema. - Fixes loading of data source scopes.
7.2.2
- Fixes a bug that breaks requests to data sources and data queries that contain quotes in search query values.
- Fixes data queries on databases that do not allow creating the cache schema.
7.2.1
- Listens on all IPv4 and IPv6 addresses instead of only IPv4.
7.2.0
- Allows to modify table schemas of data sources
- Allows to change data of data sources
- Implements annotations
- Changes representation of revaluation active time that
beginonly contains the local time component instead of a full ISO-8601 string. - Refresh interval for materialized data queries.
7.1.3
- Fixes a bug that causes
/{type}/{id}/childrenrequests to fail in case an object containsAlarmrecepients.
7.1.2
- Data Sources
- Fixes row number estimate in case of query contains IN() conditions.
7.1.1
- Script data source
- Fixes bug that causes error if offset is greater than number of returned rows.
7.1.0
- Rejects values provided to
/webcollectorthat are too far in the future - Estimates number of rows fetched from PostgreSQL databases instead of calculating it if the number of fetched rows is greater than 1'000'000. This massively increases query performance on big datasets.
- Fixes bug that causes fetching job messages to fail if an object is not scheduled on a collector.
7.0.7
- Data Queries
- Fixes deadlock when refreshing nested data queries.
- Fixes a bug that causes dependency resolution to find the same dependent multiple times.
7.0.6
- Provides
defaultParamsin/dashboards/groups/nestedrequest
7.0.5
- Fixes bug that causes a
selectrequest on a script data source to crash if nooffsetandlimitparams are provided. - Fixes parsing of data queries containing
with
7.0.4
- Inventory Controller
- Fixes handling of
treerequest with empty objects.
- Fixes handling of
7.0.3
- PDF Reports
- Also fixes page wrap for tables
7.0.2
- PDF Reports
- Fixes page wrap
- Fixes doubled table headers
7.0.1
- Allows to export single data query
- Fixes a bug that sometimes prevented detecting already materialized data queries upon service restart.
7.0.0
- Improves data queries
- Allows to materialize data queries similar to materialized views.
- Remove Semver versions in favour of just dates.
- Improves reference detection.
- Enforces permissions from data source in dmvn testata query as well.
- Caches data query results for better performance.
- Pools PDF report rasterizers to improve performance.
- Updates MySQL JDBC connector. Requires MySQL >= 8.
- Adds InventoryController which provides optimized endpoints for the SKOOR Dashboard Inventory widget
6.4.3
- Mainteneance release to incorperate changes from 6.3.4.
6.4.2
- Supports PostgreSQL
citexttype and (more) other special types as well.
6.4.1
/filesendpoint now defaults mime type of unknown files toapplication/octet-streaminstead of returningnull.
6.4.0
- Allows to delete files using
DELETE /files/filename.extension - Increases maximum upload file size from 1 MB to 10 MB
6.3.4
- Ensures that PostgreSQL connections always use the external connection pooler.
6.3.3
- Ensures that the current user has full permissions on a newly created dashboard group.
6.3.2
- Speeds up Webservice startup by triggering migrations only once during update.
6.3.0
- Allows operators like AND(), OR() when doing text search on data sources
- Sorts reasons naturally when getting origin (drilldown)
6.2.5
- Fixes creation of dashboard groups
6.2.4
- Normalizes Dashboard permissions
- Makes root "Dashboards" readable by any
- Adds "Deny Any" to root "Dashboards" group for referenced objects
- Removes "deny" rules fom all dashboard objects
6.2.3
- Forces init permissions of dashboards to parent object
6.2.2
- Fixes Dashboard fetching when user is moved into other groups or changes role.
6.2.1
- Fixes Header Tile migration in case og only right header tile.
6.2.0
- New Dashboard permission endpoints
6.1.4
- Fixes Data Queries using aggregate functions without alias (e.g. count(*), sum(foo), ...)
6.1.3
- Does dashboard migrations once per tenant instead of only once globally.
6.1.2
- Data Queries
- Fixes data queries that have deleted user as author.
- Fixes Data Queries with null query strings
6.1.1
- Data Queries
- Does not use Commont Table Expressions on MySQL because old version of MySQL do not support those. Probably there will be a detection for this feature in a later Webservice version.
6.1.0
- Data Queries
- Usees Common Table Expressions (WITH queries) for sub queries instead of nested sub queries. No need to add an alias to a sub query anymore.
- Strips comments before processing sub queries and params.
- Measures query execution time and return duration
- Allows default values for parameters and simplify parameter syntax (no more "params.")
- Data Queries / Data Sources
- Sub aggregates
- Styles endpoint for storing custom CSS styles
- Returns children in reason call
6.0.5
- Fixes reading config from environment variables
6.0.4
- Data Queries
- Removes pinning logic
- Always deletes groups recursively
- Simplifies and fixes export/import
6.0.3
- Returns a 404 instead of 500 HTTP status code in case of invalid dashboard
6.0.2
- Allows to save invalid data queries. Return errors when getting data query instead
- Does not add version markers anymore when publishing data queries
- Fixes circular reference detection for sub data queries
6.0.1
- Single request for dashboards including its children (/dashboards/{id}/nested)
6.0.0
- Config from ENV
- Allows to set darkmode on user
- Many changes when getting dashboards
- Removes some stuff now done by SKOOR Auth
- Uses connection pool from PGPool-II if available