Releases: LayerManager/layman
Releases · LayerManager/layman
v1.14.1
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
v1.14.0
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
- LAYMAN_GS_NORMALIZED_RASTER_DIRECTORY=normalized_raster_data
- If you are running Layman with development settings, set value to
normalized_raster_data_dev
instead
- If you are running Layman with development settings, set value to
- DEFAULT_CONNECTION_TIMEOUT=10
- LAYMAN_GS_NORMALIZED_RASTER_DIRECTORY=normalized_raster_data
-
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:
- 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
anddb_table
for raster layers. - Calling WFS-T endpoint starts asynchronous tasks only for vector layers.
- #167 Add
file_type
item tofile
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 newspatial_resolution
metadata property. The new metadata propertyspatial_resolution
has one of two subproperties:scale_denominator
used for vector dataground_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
andworkspace
. 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.' and29
: 'Map is already in process.' are merged into49
: '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 ofsld
. - #347 Upgrade PostgreSQL 10 to 13.3 and PostGIS 2.4 to 3.1. Use docker image from layermanager/[email protected], source is located at layermanager/[email protected].
- #367 Upgrade gdal from 2.4 to 3.3. Use docker image from osgeo/[email protected], source is located at osgeo/[email protected].
- #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
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
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
andworkspace
(#382). Thestyle
property can be specified using a string in SLD format, URL to SLD file or JSON object (#385).
v1.13.0
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 running Layman with development settings, run also
- 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
toworkspaces
Changes
- Layman GitHub repository was moved from
https://github.com/jirik/layman
to https://github.com/LayerManager/layman. Thanks to GitHub redirect functionality, all former urls are deprecated and still work. The same change is done for Layman Test Client (https://github.com/LayerManager/layman-test-client) - #159 WFS-T or PATCH Workspace Layer request causes
- update of bounding box and thumbnail of each edited layer
- bounding box is updated in DB, QGIS file, WMS/WFS capabilities, and CSW metadata record
- thumbnail is updated in filesystem and it is accessible using GET Workspace Layer Thumbnail
- update of thumbnail of each map that points to at least one edited layer (thumbnail is updated in filesystem and accessible using GET Workspace Map Thumbnail)
These updates run in asynchronous chain. Documentation describes concurrency of WFS-T request and its asynchronous chains with another WFS-T request, POST Workspace Layers, PATCH Workspace Layer, DELETE Workspace Layer, DELETE Workspace Layers, PATCH Workspace Map, DELETE Workspace Map, and DELETE Workspace Maps.
- update of bounding box and thumbnail of each edited layer
- #159 Object
layman_metadata
was added to GET Workspace Layer, GET Workspace Map, PATCH Workspace Layer, and PATCH Workspace Map responses. Attributelayman_metadata.publication_status
can be used for watching global state of publication (updating, complete, incomplete). - #331 Query parameter full_text_filter is also used for substring search in endpoints GET Layers, GET Worksapce Layers, GET Maps and GET Workspace Maps.
- Filesystem directory containing workspaces was renamed from
users
toworkspaces
- #159 Bounding box is sent explicitly to GeoServer for every layer.
- #72 Pipenv upgraded to v2020.11.15
v1.12.0
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
ormake 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.7.0
- If you are running Layman with development settings, run also
make client-build
.
- If you are running Layman with development settings, run also
- Run standalone upgrade before starting Layman.
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 columnmigration_type
to tabledata_version
, insert second record to the table. - #257 Adjust prime DB schema for full-text filtering (install unaccent, create immutable
my_unaccent
function, index unaccentedtitle
column inpublications
table). - #257 Create new column
updated_at
inpublications
table. - #257 Create new column
bbox
inpublications
table.
Data migrations
- #257 Fill column
updated_at
inpublications
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
inpublications
table.
Changes
- #257 Endpoints GET Layers, GET Worksapce Layers, GET Maps and GET Workspace Maps can filter, order, and paginate results according to new query parameters. All request parameters, response structure and response headers are described in GET Layers documentation.
- #257 Responses of GET Layers, GET Workspace Layers, GET Workspace Layer, PATCH Workspace Layer, GET Maps, GET Workspace Maps, GET Workspace Map, and PATCH Workspace Map contains new attributes
updated_at
with date and time of last PATCH/POST request to given publicationbounding_box
with bounding box coordinates in EPSG:3857
- #302 Metadata properties wms_url and wfs_url contain new URL parameter
LAYERS
whose value is name of the layer. It's non-standard way how to store name of the layer at given WMS/WFS instance within metadata record. - Migration version was split in GET Version to last-schema-migration and last-data-migration. Original last-migration stays as deprecated alias to last-schema-migration.
v1.11.0
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
ormake 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
.
- If you are running Layman with development settings, run also
Changes
- #273 New endpoints GET Layers and GET Layers to query publications in all workspaces.
- #273 All Layer(s) and Map(s) endpoints with
<workspace_name>
in their URL were renamed to 'Workspace Layer...' and 'Workspace Map' in the documentation. - #273 Item workspace was added to response of GET Workspace Layers and GET Workspace Maps
v1.10.1
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
ormake 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
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
ormake 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 inmigrate_metadata_records
migration, more specifically inlayman.layer.micka.csw::get_template_path_and_values
method. See #285 .- Fixed in v1.10.1.
Upgrade requirements
- Set environment variables
- LAYMAN_QGIS_HOST=nginx
- LAYMAN_QGIS_PORT=80
- LAYMAN_QGIS_PATH=/qgis/
- LAYMAN_QGIS_DATA_DIR=/qgis/data/demo
- If you are running Layman with development settings, set environment variables
- LAYMAN_QGIS_HOST=nginx-qgis
- LAYMAN_QGIS_PORT=80
- LAYMAN_QGIS_PATH=/qgis/
- LAYMAN_QGIS_DATA_DIR=/qgis/data/dev
- Change LAYMAN_CLIENT_VERSION to
v1.5.1
- If you are running Layman with development settings, run also
make client-build
.
- If you are running Layman with development settings, run also
- Run standalone upgrade before starting Layman.
Migrations and checks
- #154 New column
style_type
inpublications
table is created. - #154 All workspaces are checked, that their name did not end with
_wms
and is not equal toworkspaces
. 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:
- layers:
wms_url
,graphic_url
,identifier
,layer_endpoint
- maps:
graphic_url
,identifier
,map_endpoint
,map_file_endpoint
- layers:
- #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 alsotype
, 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 (withDeprecation
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
andid
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
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 indeps/geoserver/data/user_projections/epsg.properties
file withand restart GeoServer.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"]]