# Change Log

All notable changes to gss will be documented in this file.
Please note that we have changed the date format from year-month-day
to year.dayofyear to be in sync with `gss -V`.

## 2025.134

### Important

-   The specific database backend code is now loaded
    via plugin API. This has the advantage that fewer dependencies
    need to be installed on the system. The following plugins are
    available: sqlmyql, sqlpostgresql, sqlsqlite3. The plugin must
    be loaded in the plugin section, e.g.,

    ```bash
plugins=${plugins},sqlmysql
    ```

## 2025.093

### Changed

-   Sort browse directory listings by name

### Removed

## 2025.092

### Removed

-   RHEL 7 install scripts

## 2025.007

### Fixed

-   Record JSON response

## 2024.340

### Added

-   We have added an automatic archive clean up function. The
    clean up routine is simulation request based. When a simulation
    request is removed all corresponding simulation references are
    removed as well. If a simulation is not associated to any
    simulation request the simulation is removed and all related
    data products are deleted from disk. The number of days to
    keep simulation requests can be configured. By default it is
    set to -1 which means all simulation requests are kept forever.

## 2024.339

### Fixed

-   Segmentation fault

## 2024.338

### Changed

-   Source region profiles have been replaced by simulation profiles.
    Simulation profiles are more generic than source region profiles and
    allow to define backend specific simulation parameters
    for certain regions. These parameters do not overwrite any parameters
    already set in simulation requests. They just extend them.
    Here an example:

    ```
GSS.profiles = ew
GSS.profiles.ew.backend = EasyWave2
GSS.profiles.ew.aoi = @DATADIR@/gss/sourceregions/IndianOcean.bna
GSS.profiles.ew.parameters = grid:e2_Sumatra, maxTime:240
    ```

## 2024.324

### Fixed

-   PostgreSQL prepared statement issue

## 2024.298

### Changed

-   Forward expected fault plane to simulation plugins

## 2024.292

### Added

-   Ubuntu 24.04 dependencies

### Remove

-   Simulation profile information from backend response

## 2024.270

### Changed

-   Optimize grid data access. Data will be directly streamed
    from grid file if supported by simulation backend.

## 2024.255

### Fixed

-   Concurrent data access

## 2024.248

### Changed

-   Make number of threads configurable for GSS and HTTP sessions

## 2024.200

### Fixed

-   Removal of shared simulations (MySQL)

## 2024.190

### Changed

-   Send watch updates only if required

## 2024.186

### Fixed

-   Simulation reference creation

## 2024.177

### Added

-   More log messages when simulations are deleted

## 2024.164

### Added

-   Ping command to GSS session

## 2024.155

### Added

-   Session info to more log messages. This helps to analyze issues
    when several clients are connected.

## 2024.144

### Fixed

-   Memory leak

## 2024.142

### Fixed

-   Incorrect checking of the simulation archive. This resulted in
    simulations being triggered even though they are already in
    the archive.

## 2024.129

### Added

-   More logs when simulation requests are processed
-   Option to set native session timeout to prevent
    hanging TCP sessions

## 2024.116

### Added

-   New SSL configuration options that allow to implement
    custom security policies, e.g., set a minium required
    SSL protocol version.

## 2024.108

### Added

-   Config option `GSS.http.additionalHeaders` that allows to
    add additonal HTTP headers to HTTP responses, e.g.,

    ```
    GSS.http.additionalHeaders=X-Frame-Options: DENY
    ```

    This feature can be used to implement custom HTTP security
    policies.

## 2024.100

### Fixed

-   Insufficient input validation for file requests. During testing
    it was possible to read arbitrary files on the remote host outside
    the web server's document directory using a specially crafted URL.

## 2024.099

### Fixed

-   HTTP chunked transfer mode

### Added

## 2024.081

### Added

-   Sim guidance support

## 2024.066

### Added

-   New API function that allows to find a request by
    input data.

### Fixed

-   Request ID generation

## 2024.038

### Fixed

-   Watch response for already computed simulations

## 2024.023

### Fixed

-   Deadlock in request handling

## 2024.018

-   Add magnitude range computation support. The
    computation is simulation backend specific and simulation
    plugins can decide to support the feature or not.

## 2024.008

### Added

-   Added MySQL database backend support
-   Extended REST API
    -   Requests and simulations can be queried
    -   Added filter options
-   WebSocket protocol support

### Changed

-   Reworked request ID generation

## 2023.262

### Added

-   Handle database disconnects(PostgreSQL only)

### Changed

-   Scenario information is stored as text in the database to avoid
    character set issues with the database backend

## 2023.250

### Fixed

-   Status response with multi line content
-   Crash in case of isochrones access

## 2023.208

### Changed

-   Request and simulation meta data is no longer stored in a file based
    archive. By default those information is now stored in a SQLite3
    database. The following database backends are supported:

    -   MySQL/Mariadb
    -   PostgreSQL
    -   SQLite3

    The database backend can be set with the option `GSS.database`
    in the configuration.