Skip to content

Releases: LayerManager/layman

v1.14.1

14 Sep 11:24
Compare
Choose a tag to compare

Known issues

  • Normalized raster file created by Layman can be 100x bigger then uploaded raster, because compression is not used.
    • Fixed in v1.15.0.
  • NoData values are changed to 0 during normalization. #525
    • Fixed in v1.15.1.

Changes

  • #465 Fix situation, when Layman does not start if *.qgis file of the first layer with QML style does not exist.
  • #464 Fix publishing layers with unusual attribute names (e.g. x, or Číslo) and QML styles.
  • #459 Fix situation, when sometimes publication stayed in PENDING status after failure

v1.14.0

08 Sep 15:34
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.
  • Normalized raster file created by Layman can be 100x bigger then uploaded raster, because compression is not used.
    • Fixed in v1.15.0.
  • NoData values are changed to 0 during normalization. #525
    • Fixed in v1.15.1.

Upgrade requirements

  • It's strongly recommended to backup data directories, especially deps/postgresql/data, because of database upgrade.

  • After stopping layman and backing up data directories, you need to migrate PostgreSQL data directory from v10 to v13. We created script that automatically migrates two databases:

    • gis (Layman's database)
    • hsrs_micka6 (Micka's database, only if exists)
      If you use other databases in the postgres instance, their migration is up to you (you can inspire inside our script).

    Migration script:

    # Enter your layman's root directory.
    cd /path/to/your/layman/instance
    
    # Run script for DB migration.
    # It's necessary to run this script from layman's root directory
    ./src/layman/upgrade/upgrade_v1_14_postgres.sh
    

    It may take some time to run this script and it will produce large temporary files (database dumps).

  • Change LAYMAN_CLIENT_VERSION to v1.9.0

  • Set new environment variables

  • If you are running Layman with development settings, run

make build-dev
make client-build
make timgen-build

Migrations and checks

Data migrations

  • All bounding boxes are cropped not to exceed extent of EPSG:3857 projection ([-20026376.39, -20048966.10, 20026376.39, 20048966.10]) in all sources except filesystem and DB table. Only bounding boxes are affected, not data itself.

Changes

  • #167 Allow publishing also raster geospatial data using POST Workspace Layers and PATCH Workspace Layer.
    • Following formats are supported:
    • Following input combinations of bands and color interpretations are supported:
      • 1 band: Gray
      • 1 band: Palette
        • Transparency will be ignored. See #466 for details.
      • 2 bands: Gray, Alpha
        • Float data type with min/max values other than 0/255 may result in unexpected WMS output. See #466 for details.
      • 3 bands: Red, Green, Blue
      • 4 bands: Red, Green, Blue, Alpha
    • Following input CRS are supported:
      • EPSG:3857
      • EPSG:4326
    • Published raster files are normalized before registering to GeoServer. Normalization includes conversion to GeoTIFF in EPSG:3857 with overviews (pyramids). NoData values are normalized as transparent only if Alpha band is not available and NoData is set for each band. Normalized rasters are stored in normalized_raster_data directory inside LAYMAN_DATA_DIR. Normalized GeoTiff is then published as new layer (coverage) on GeoServer.
    • Raster layers are not stored in DB table. WFS is not available for raster layers. GET Workspace Layer and PATCH Workspace Layer do not return items wfs and db_table for raster layers.
    • Calling WFS-T endpoint starts asynchronous tasks only for vector layers.
  • #167 Add file_type item to file item in GET Workspace Layer response to distinguish raster and vector layers.
  • #167 Metadata property scale_denominator was removed. Its value is now accessible as subproperty of new spatial_resolution metadata property. The new metadata property spatial_resolution has one of two subproperties:
    • scale_denominator used for vector data
    • ground_sample_distance used for raster data
  • #367 When publishing or patching layer or map, it's bounding box is limited to extent of EPSG:3857 projection in all sources except filesystem and DB table. Only bounding box is affected, not data itself.
  • #347 When ordering publications by title, only letters, numbers, and spaces are considered.
  • #382 Map composition schema allows new properties hs.format.externalWFS and workspace. It was already introduced in v1.13.1.
  • #385 The style property can be specified using a string in SLD format, URL to SLD file or JSON object. It was already introduced in v1.13.1.
  • Errors 19: 'Layer is already in process.' and 29: 'Map is already in process.' are merged into 49: 'Publication is already in process.'.
  • Fix: In case of synchronous error during PATCH Workspace Layer layer data on the server remains always untouched. Previously, layer data on the server could be lost.
  • Fix: Raise error when more than one main layer file is sent in POST Workspace Layers or PATCH Workspace Layer.
  • Fix #408: Skip non-WMS layers in thumbnail generation. Previously thumbnail generation failed.
  • #418 Combination of none geometry type in layer file and any geometry type in QML file is allowed from now.
  • #380 Enable to upload geojson with "id" attribute with non-unique values.
  • #383 Add new Makefile target upgrade-after-timeout to finish upgrade in case of GeoServer call timeout.
  • Fix GET Workspace Layer documentation; style item was incorrectly used instead of sld.
  • #347 Upgrade PostgreSQL 10 to 13.3 and PostGIS 2.4 to 3.1. Use docker image from layermanager/postgis@hub.docker.com, source is located at layermanager/docker-postgis@github.com.
  • #367 Upgrade gdal from 2.4 to 3.3. Use docker image from osgeo/gdal@hub.docker.com, source is located at osgeo/gdal@github.com.
  • #367 Upgrade also
    • python from 3.6 to 3.8
    • flask from 1.1 to 2.0
    • werkzeug from 1 to 2
    • chromium from 77+ to 90+
    • chromedriver from 77+ to 90+
    • attrs from 20 to 21
    • click from 7 to 8
    • itsdangerous from 1 to 2
    • jinja2 from 2 to 3
    • markupsafe from 1 to 2
    • pytest-rerunfailures from 9 to 10
    • gunicorn from 19 to 20

v1.13.2

25 Jun 12:00
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.

Changes

  • Fix #405. In some specific situations, GET Workspace Layer and GET Workspace Map returned PENDING state although asynchronous tasks were already finished. Also PATCH request to these publications was not possible. It's fixed now.

v1.13.1

07 Jun 09:22
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.

Changes

  • Map composition schema allows new properties hs.format.externalWFS and workspace (#382). The style property can be specified using a string in SLD format, URL to SLD file or JSON object (#385).

v1.13.0

26 May 11:53
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.

Upgrade requirements

  • Change LAYMAN_CLIENT_VERSION to v1.8.0
    • If you are running Layman with development settings, run also make client-build.
  • If you are getting Layman using Git, run
git remote set-url origin https://github.com/layermanager/layman.git
  • If you are running Layman with development settings, run
make build-dev
make timgen-build

Migrations and checks

Data migrations

  • Rename filesystem directory containing workspaces from users to workspaces

Changes

v1.12.0

21 Apr 11:16
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.
  • During the installation of QGis server (first make start-demo or make upgrade-demo), there may appear error /usr/lib/cgi-bin/qgis_mapserv.fcgi: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory. See #335 . Solution is to upgrade linux kernel, see requirements in README.
    • Fixed in v1.13.0.

Upgrade requirements

Migrations and checks

  • Schema migrations (e.g. ALTER TABLE ... statements) and data migrations are split into separate lists. All schema migrations run before data migrations.

Schema migrations

  • Adjust prime DB schema for two migration types, schema and data. Add new data type enum_migration_type, add new column migration_type to table data_version , insert second record to the table.
  • #257 Adjust prime DB schema for full-text filtering (install unaccent, create immutable my_unaccent function, index unaccented title column in publications table).
  • #257 Create new column updated_at in publications table.
  • #257 Create new column bbox in publications table.

Data migrations

  • #257 Fill column updated_at in publications table.
  • #302 Add URL parameter LAYERS to metadata properties wms_url and wfs_url in existing metadata record of each layer. This non-standard parameter holds name of the layer at given WMS/WFS.
  • #257 Fill column bbox in publications table.

Changes

v1.11.0

16 Mar 09:56
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.
  • During the installation of QGis server (first make start-demo or make upgrade-demo), there may appear error /usr/lib/cgi-bin/qgis_mapserv.fcgi: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory. See #335 . Solution is to upgrade linux kernel, see requirements in README.
    • Fixed in v1.13.0.

Upgrade requirements

  • Change LAYMAN_CLIENT_VERSION to v1.6.1
    • If you are running Layman with development settings, run also make client-build.

Changes

v1.10.1

10 Mar 12:32
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.
  • During the installation of QGis server (first make start-demo or make upgrade-demo), there may appear error /usr/lib/cgi-bin/qgis_mapserv.fcgi: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory. See #335 . Solution is to upgrade linux kernel, see requirements in README.
    • Fixed in v1.13.0.

Changes

  • #285 Fix upgrade 1.10.0 error (CSW get_template_path_and_values now works even if the layer is not in GeoServer and/or in DB).

v1.10.0

04 Mar 12:36
Compare
Choose a tag to compare

Known issues

  • In some cases, Layman does not start with error OSError: Error reading file '/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis': failed to load external entity "/qgis/data/demo/workspaces/<workspace>/layers/<layer>/<layer>.qgis". See #465.
    • Fixed in v1.14.1.
  • During the installation of QGis server (first make start-demo or make upgrade-demo), there may appear error /usr/lib/cgi-bin/qgis_mapserv.fcgi: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory. See #335 . Solution is to upgrade linux kernel, see requirements in README.
    • Fixed in v1.13.0.
  • During make upgrade-demo, there may appear error in migrate_metadata_records migration, more specifically in layman.layer.micka.csw::get_template_path_and_values method. See #285 .
    • Fixed in v1.10.1.

Upgrade requirements

Migrations and checks

  • #154 New column style_type in publications table is created.
  • #154 All workspaces are checked, that their name did not end with _wms and is not equal to workspaces. If there is any conflict found, startup process is stopped with error code 45. In that case, please downgrade to the previous minor release version and contact Layman contributors.
  • #154 All layers are copied into dedicated WMS GeoServer workspace. Styles are also moved into that workspace.
  • #154 Maps with URLs pointing to any layer stored in GeoServer are rewritten to dedicated WMS workspace.
  • #154 Following metadata properties are updated:
  • #154 Rename internal directories from /users/{workspace}/layers/{layer}/input_sld to /users/{workspace}/layers/{layer}/input_style
  • #154 Fill column style_type with "sld" for all layers.

Changes

  • #154 Enable to publish QGIS layer styles (QML)
    • For endpoints POST Layers and PATCH Layer, parameter sld is replaced with the new parameter style and marked as deprecated. In response to endpoints GET Layer and PATCH Layer, sld is replaced by the new style item and marked as deprecated. Layman Test Client now uses style parameter.
    • Parameter style accepts also QGIS layer style (QML). Layman Test Client enables to select also *.qml files.
    • Endpoint GET Layer returns in style attribute also type, either "sld" or "qml".
    • Endpoint GET Layer Style returns SLD style or QML style.
    • Treat attribute names in QML (also known as 'launder').
    • New docker container with QGIS server called qgis in demo configuration.
    • New directory LAYMAN_QGIS_DATA_DIR is used to store layer QGS files.
    • WMS is moved to dedicated GeoServer workspace whose name is composed from Layman's workspace name and suffix _wms. WFS remains in GeoServer workspace whose name is equal to Layman's workspace name.
    • Layers with QGIS style are published on GeoServer dedicated WMS workspace through WMS cascade from QGIS server, where they are stored as QGS file. All layers are published directly from PostgreSQL database to GeoServer for WFS workspace.
    • SLD style published in dedicated WMS GeoServer workspace.
    • New environment variables LAYMAN_QGIS_HOST, LAYMAN_QGIS_PORT, LAYMAN_QGIS_PATH, and LAYMAN_QGIS_DATA_DIR.
    • Workspace name can not end with '_wms'. In such case, error with code 45 is raised.
    • During startup, LAYMAN_OUTPUT_SRS_LIST is ensure for all QGIS layers.
  • #67 Workspace-related REST API endpoints (maps, layers) were moved from /rest/* to /rest/workspaces/*. Whole path is for example: /rest/workspaces/<workspace_name>/layers. Old endpoints are marked as deprecated (with Deprecation header in response) and will be removed with next major release.
  • #99 New endpoint GET Version. Also available in Layman Test Client.
  • Endpoint GET Layer returns JSON object for db_table item. Previously incorrectly returns DB table name directly in db_table instead of name subitem.
  • Undocumented attributes type and id were removed from GET Layer and Get Map responses.
  • To indicated if Layman is running, you can call GET Version.
  • Optional standalone upgrade command was implemented to avoid Gunicorn timeout.

v1.9.1

18 Jan 10:45
Compare
Choose a tag to compare

Upgrade requirements

  • If you are migrating from v1.9.0 with 5514 included in LAYMAN_OUTPUT_SRS_LIST, you need to manually replace definition of 5514 in deps/geoserver/data/user_projections/epsg.properties file with
    5514=PROJCS["S-JTSK / Krovak East North",GEOGCS["S-JTSK",DATUM["System Jednotne Trigonometricke Site Katastralni",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[572.213,85.334,461.94,4.9732,-1.529,-5.2484,3.5378],AUTHORITY["EPSG","6156"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic longitude",EAST],AXIS["Geodetic latitude", NORTH],AUTHORITY["EPSG","4156"]],PROJECTION["Krovak",AUTHORITY["EPSG","9819"]],PARAMETER["latitude_of_center",49.5],PARAMETER["longitude_of_center",24.833333333333332],PARAMETER["azimuth", 30.288139722222223],PARAMETER["pseudo_standard_parallel_1",78.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],UNIT["m", 1.0],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","5514"]]
    
    and restart GeoServer.

Changes

  • #228 Fixed shift in EPSG:5514.
  • #227 Flower is accessible in demo configuration again.