Skip to content

Latest commit

 

History

History
1063 lines (982 loc) · 97.9 KB

CHANGELOG.md

File metadata and controls

1063 lines (982 loc) · 97.9 KB

Changelog

v1.23.2

2024-03-10

Upgrade requirements

  • #1021 After upgrade and start of Layman, it's needed to change GeoServer configuration by following steps:
    1. Log in to GeoServer Admin
    2. Click on Security > Authentication
    3. Find part "Authentication Filters" and click on "laymanHttpHeader"
    4. In part "Role source" choose "Role service" in left dropdown and "layman_role_service" in right dropdown.
    5. Click on Save button.

Changes

  • #1021 Fix WFS-T error by manually changing GeoServer configuration as described in upgrade requirements.
  • #1022 Fix login in demo configuration with authentication.

v1.23.1

2024-03-06

Changes

  • #1016 Flower and Celery worker containers used to wait for all dependencies and also check role service, from now on it waits only for Layman API to be ready.
  • #165 Roles in REST endpoint GET Roles result are in alphabetical order.

v1.23.0

2024-01-30

Upgrade requirements

  • Change environment variable LAYMAN_CLIENT_VERSION:
    LAYMAN_CLIENT_VERSION=v1.18.0
    
  • Stop using environment variable LAYMAN_GS_ROLE_SERVICE, it has no effect to Layman anymore. Layman now uses role service identified by new environment variable LAYMAN_ROLE_SERVICE_URI. The service is called layman_role_service on GeoServer.
  • Set new environment variable LAYMAN_ROLE_SERVICE_URI
  • Stop using environment variable OAUTH2_INTROSPECTION_SUB_KEY, it has no effect to Layman anymore.
  • If you are using Wagtail as OAuth2 provider
    • After running make upgrade-demo or make-upgrade-demo-full, run also script v1_23_change_oauth2_sub_username_to_user_id.py:
      docker compose -f docker-compose.deps.demo.yml -f docker-compose.demo.yml run --rm --no-deps -u root -e LAYMAN_WAGTAIL_DB_URI=<URI_of_Wagtail_db> layman bash -c "cd src && python3 -B v1_23_change_oauth2_sub_username_to_user_id.py"
      • URI_of_Wagtail_db is PostgreSQL connection URI to Wagtail database, e.g. postgresql://user:[email protected]:5432/wagtail_db_name
      • The script changes OAuth2 "sub" values in Layman prime DB schema from Wagtail usernames to Wagtail user IDs. See 940.

Migrations and checks

Schema migrations

  • #165 Add column role_name to table rights in prime DB schema. Add constraint that exactly one of columns role_name and id_user is not null.
  • #165 Create DB schema _role_service that can be used as role service.
  • #165 Column name in table workspace in prime DB schema length is changed to 59 characters.
  • Drop DB table right_types.

Data migrations

  • #165 Delete technical roles and user-role relations in GeoServer default role service, which is now replaced by JDBC role service.

Changes

  • #165 Prior to this version, Layman enabled to use usernames and pseudo-role EVERYONE in access rights. From now on, Layman accepts also role names.
  • #165 Roles (except of EVERYONE) are managed by role service.
  • #165 New REST endpoint GET Roles with list of all roles registered in role service, that can be used in access rights.
    • This new endpoint was added to Test Client into tab "Others".
  • #165 POST Workspace Layers/Maps and PATCH Workspace Layer/Map saves role names mentioned in access_rights.read and access_rights.write parameters into prime DB schema.
  • #165 Many requests respect roles in access rights:
  • #165 POST Workspace Layers/Maps respects roles in GRANT_CREATE_PUBLIC_WORKSPACE and GRANT_PUBLISH_IN_PUBLIC_WORKSPACE
  • #165 Many endpoints return previously associated role names in access_rights.read and access_rights.write keys:
  • #165 Name of users and public workspaces are from now on restricted to a maximum length of 59 characters.
  • 940 Use userId as OAuth2 "sub" instead of username. This is suitable for Wagtail.
  • 940 Stop supporting Liferay as OAuth2 provider.
  • 941 Wagtail database is now persistent when restarting Layman or Wagtail.
  • All changes from v1.22.1, v1.22.2 and v1.22.3.
  • #960 Handle WMS requests with HTTP error more efficiently in timgen.
  • #962 Make values of layman_metadata.publication_status and status key(s) more consistent in responses of PATCH Workspace Layer/Map and GET Workspace Layer/Map.
  • Timgen handles better some edge cases:
    • If map's internal layer points to non-existent workspace, Timgen is faster and does not fail.
    • If map's file was not obtained from Layman, Timgen fails quickly.
  • Upgrade Python dependencies
    • werkzeug 2.3.7 -> 3.0.7 (suggested by dependabot)
    • urllib3 1.26.16 -> 1.26.18 (suggested by dependabot)
    • pillow 10.0.0 -> 10.1.0 (suggested by dependabot)
    • cacheout 0.14.1 -> 0.15.0
    • flask 2.3.3 -> 3.0.0
    • jsonschema 4.19.0 -> 4.20.0
    • owslib 0.29.2 -> 0.29.3
    • importlib-metadata 6.8.0 -> 7.0.0
    • psycopg2-binary 2.9.7 -> 2.9.9
    • redis 5.0.0 -> 5.0.1
    • unidecode 1.3.6 -> 1.3.7
    • platformdirs 3.10.0 -> 4.1.0
    • pycodestyle 2.11.0 -> 2.11.1
    • pytest 7.4.2 -> 7.4.3
    • pytest-rerunfailures 12.0 -> 13.0
    • pytest-timeout 2.1.0 -> 2.2.0
  • Add development dependency plantuml/plantuml for rendering PlantUML diagrams.

v1.22.3

2023-12-06

Upgrade requirements

Changes

  • Improve logging in Layman Test Client related to Passport.js.
  • 968 Enable to use not-so-secure SSL communication (UnsafeLegacyRenegotiation) in Layman Test Client. It can be activated by environment variable NODE_OPTIONS:
    NODE_OPTIONS="--openssl-config=/code/unsafe_openssl.cnf"
    

v1.22.2

2023-11-10

Upgrade requirements

Changes

  • #958 Fix X-Forwarded-Proto on LTC proxy with https protocol in demo environment.
  • #956 Fix login to GeoServer with https protocol.
  • #952 Fix patch saving publication files before access right validation.

v1.22.1

2023-10-12

Changes

  • #949 Fix reading map-layer relations from map composition that includes also other than WMS and Vector layers.

v1.22.0

2023-10-05

Upgrade requirements

  • Change environment variable LAYMAN_CLIENT_VERSION:
    LAYMAN_CLIENT_VERSION=v1.17.0
    
  • Stop using environment variable LAYMAN_GS_PROXY_BASE_URL, it has no effect to Layman anymore.
  • Stop using environment variable LAYMAN_GS_PATH, it has no effect to Layman anymore.
    • GeoServer's URL path must be always /geoserver/ (that is true for GeoServer shipped with Layman).

Migrations and checks

Schema migrations

  • #868 Create new table map_layer in prime DB schema.

Data migrations

  • #887 Drop unique DB index on users table on sub column. Create unique DB index on users table on (sub, issuer_id) columns.
  • #765 Fix issuer_id values in users table that were broken since v1.21.0.
  • #765 Remove authn.txt files from workspace directories. The same information as in authn.txt files is saved in prime DB schema.
  • #868 Fill table map_layer with relations between maps and internal layers (layers published on this Layman instance). Relations to external layers (layers of other servers) are not imported into the table.

Changes

v1.21.1

2023-07-21

Migrations and checks

Data migrations

  • #887 Drop unique DB index on users table on (sub, issuer_id) columns. Create unique DB index on users table on sub column.

Changes

  • #887 Fix creating new user workspaces for existing users that happened in v1.21.0.

v1.21.0

2023-07-06

Upgrade requirements

  • Change environment variable LAYMAN_CLIENT_VERSION:
    LAYMAN_CLIENT_VERSION=v1.16.0
    
  • Rename environment variable OAUTH2_LIFERAY_SECRET to OAUTH2_CLIENT_SECRET.
  • Rename all environment variables OAUTH2_LIFERAY_SECRET<n> to OAUTH2_CLIENT<n>_SECRET. For example, variable OAUTH2_LIFERAY_SECRET4 becomes OAUTH2_CLIENT4_SECRET.
  • Rename all other OAUTH2_LIFERAY_<postfix> environment variables to OAUTH2_<postfix>. For example, variable OAUTH2_LIFERAY_AUTH_URL becomes OAUTH2_AUTH_URL.
  • If you are using environment variable OAUTH2_CALLBACK_URL, change only its URL path from /client/authn/oauth2-liferay/callback to /client/authn/oauth2-provider/callback. Keep protocol, domain, and port unchanged.
  • Stop using environment variable LAYMAN_AUTHN_OAUTH2_PROVIDERS, it has no effect to Layman anymore. There is exactly one OAuth2 provider Python module now, no need to set it.
  • Stop using environment variable FLASK_ENV, it has no effect to Layman anymore.
    • If you used environment variable FLASK_ENV with value development, add new environment variable FLASK_DEBUG:
      FLASK_DEBUG=1
      
  • Stop using environment variable CSW_RECORD_URL, it has no effect to Layman anymore. Value is derived from variable CSW_PROXY_URL.
  • Stop using HTTP header AuthorizationIssUrl when authenticating by OAuth. The header has no effect to Layman anymore. There is exactly one OAuth2 provider now, no need to distinguish it. Now, the only distinguished HTTP header when authenticating by OAuth2 is Authorization header.
  • If you are running Layman with development settings (e.g. starting it with make start-dev)
    • change values of environment variables:
      OAUTH2_CLIENT_ID=VECGuQb00tWt8HZNkA4cxu6dnoQD5pF6Up3daAoK
      OAUTH2_CLIENT_SECRET=aY14rwkEKasNqBEZX8OnhpRk8lpHAfT7oKTlf4LriEK8oMZxhnGKcnt4bZ72pceNEl83B6LtBvhKr3BqBLFA80Pd6Ugav2rkc8bk7TE4LkaoB2qcBQmjiOiEpizsgZGx
      OAUTH2_AUTH_URL=http://localhost:8083/o/authorize
      OAUTH2_TOKEN_URL=http://wagtail:8000/o/token/
      OAUTH2_INTROSPECTION_URL=http://wagtail:8000/o/introspect/
      OAUTH2_INTROSPECTION_SUB_KEY=username
      OAUTH2_USER_PROFILE_URL=http://wagtail:8000/profile
      
    • unset environment variable OAUTH2_SCOPE (previously OAUTH2_LIFERAY_SCOPE)
    • after usual dev upgrade commands run also
      make wagtail-build
      
  • If your upgrade command ends with message Error response from daemon: invalid IP address in add-host: "host-gateway", try to uninstall Docker Engine completely and install it again with Docker Compose plugin (see e.g. manual for Centos). Then run upgrade command again.

Migrations and checks

Schema migrations

  • #528 Add new data type enum_wfs_wms_status and create new string column wfs_wms_status in publications table in prime DB schema.

Data migrations

  • #528 Fill column wfs_wms_status in publications table in prime DB schema. Set value AVAILABLE for each vector layer that is fully available in WFS and WMS and for each raster layer that is fully available in WMS. Set NOT_AVAILABLE for all other layers and null for all existing maps.
  • #520 Set MetadataURL for each layer in WFS and WMS workspace in GeoServer.

Changes

  • #769 New request GET Publications was added. It enables querying both layers and maps by single request.
  • #769 New key publication_type was added to responses of requests GET Publications, GET Layers, GET Workspace Layers, GET Maps, and GET Workspace Maps. Possible values of the key are layer and map.
  • #528 New key wfs_wms_status was added to layer items in responses of requests GET Layers, GET Workspace Layers, and GET Publications.
  • #520 New element MetadataURL was added for each layer to GetCapabilities response of WFS 2.0.0 and WMS 1.3.0. The element contains URL of CSW metadata record of the layer.
  • #800 Requests POST Workspace Layers and PATCH Workspace Layer support new parameter time_regex_format. Its value is later accessible in the new subkey wms.time.regex_format in responses of GET Workspace Layer and PATCH Workspace Layer requests.
  • #764, #860 Layman accepts new types of QML styles:
    • labels without symbology
    • point clustering
  • #857 Requests POST Workspace Layers and PATCH Workspace Layer accept host.docker.internal in external_table_uri parameter to reach localhost of host server.
  • #847 Fix publishing external table layers with @ character or other dangerous characters in the username or in the password.
  • #833 Make Timgen WMS requests more robust (handle WMS errors, delayed retry, add timestamp to each request).
  • #877 Use Docker Compose v2 (docker compose) in Makefile. As of now, all containers are named in the same way as previously. Old Makefile using Docker Compose v1 (docker-compose) is archived as Makefile_docker-compose_v1. It will be removed in the next minor release.
  • #815 Propagate LAYMAN_PROXY_SERVER_NAME value to GeoServer environment variable GEOSERVER_CSRF_WHITELIST.
  • #765 Remove Liferay from dev stack, use Wagtail CRX + Django OAuth Toolkit as new OAuth2 provider (authorization server).
  • Upgrade Python dependencies
    • flask 2.2.2 -> 2.3.2
    • redis 4.5.1 -> 4.5.4
    • owslib 0.27.2 -> 0.28.1
    • requests 2.28.1 -> 2.31.0
  • Upgrade Node.js Timgen dependencies
    • vite 3.2.5 -> 3.2.7
  • Document that temporal part of timeseries datetime dimension extracted by time_regex parameter is cut off, so the smallest possible unit of datetime dimension is one day.

v1.20.1

2023-04-11

Changes

  • #818 Fix publishing QML layer from external DB with geo-column name other than wkb_geometry.
  • #812 Fix processing of WFS-T queries with implicit namespace.
  • Fix time_regex sample values in documentation and tests.

v1.20.0

2023-03-01

Upgrade requirements

Migrations and checks

Schema migrations

  • #703 Create new json column external_table_uri in publications table in prime DB schema.
  • #703 Rename column file_type to geodata_type in publications table in prime DB schema.

Data migrations

  • #703 Fill column external_table_uri in publications table in prime DB schema. Value is set to null for all existing publications.

Changes

v1.19.0

2023-01-11

Upgrade requirements

  • Change environment variable LAYMAN_CLIENT_VERSION:
    LAYMAN_CLIENT_VERSION=v1.14.0
    
  • If you are running Layman with development settings, run
make build-dev
make timgen-build
make client-build

Migrations and checks

Schema migrations

Data migrations

Changes

  • #348 Upgrade GeoServer to 2.21.2.
    • #613 Workspace-specific WMS GetCapabilities documents includes LegendURL element for every style of every layer. Previously vector layers with QML style did not have it. GetLegendGraphic queries can be parametrized depending on layer style.
    • In workspace-specific WMS GetCapabilities documents, style name consists only of style name without <workspace>: prefix. For example, formerly it was testuser_wms:blue_style, now it is only blues_style.
    • #681 Enable to publish layer with specific SLD style.
    • #681 Endpoints POST Workspace Layers and PATCH Workspace Layer normalize grayscale float raster files with alpha channel to grayscale without it with internal mask 0/1.
    • Layman now uses official GeoServer docker image for demo and development purpose.
  • #720 Upgrade Python dependencies
    • celery 5.0.5 -> 5.2.7
    • flask 2.0.2 -> 2.2.2
    • unidecode 1.3.2 -> 1.3.6
    • psycopg2-binary 2.9.3 -> 2.9.5
    • owslib 0.22.0 -> 0.27.2
    • requests 2.27.0 -> 2.28.1
    • jsonschema 4.3.3 -> 4.17.3
    • flower 1.0.0 -> 1.2.0
    • selenium 4.1.0 -> 4.7.2
    • cacheout 0.13.1 -> 0.14.1
    • kombu 5.2.3 -> 5.2.4
  • #720 Remove Python dependency "pyproj".
  • #720 Upgrade Python dev dependencies
    • pytest 6.2.5 -> 7.2.0
    • watchdog 2.1.6 -> 2.2.0
    • flake8 4.0.1 -> 6.0.0
    • pycodestyle 2.8.0 -> 2.10.0
    • pylint 2.7.4 -> 2.15.9
    • autopep8 1.6.0 -> 2.0.1
    • pytest-rerunfailures 10.2 -> 10.3
    • pytest-timeout 2.0.2 -> 2.1.0
  • #726 Upgrade Node.js of Laymen Test Client from v12 to v18 and dependencies:
    • connect-redis 3 -> 6
    • dotenv 8 -> 16
    • http-proxy-middleware 0.21 -> 2
    • isomorphic-unfetch 2 -> 3
    • next 9 -> 13
    • react 16 -> 18
    • react-dom 16 -> 18
    • redis 3 -> 4
    • semantic-ui-react 0.88 -> 2
    • xml-formatter 2 -> 3
  • #732 Upgrade Node.js of Timgen from v10 to v18 and dependencies:
    • ol 5 -> 7
    • http-server 0.11 -> 14
  • #732 Use "vite" instead of "parcel" and "babel" for dev & build of Timgen.

v1.18.0

2022-11-22

Upgrade requirements

Migrations and checks

Schema migrations

  • #635 Create new boolean column image_mosaic in publication table.

Data migrations

  • #635 Fill column image_mosaic in publications table in prime DB schema for all publications. Value of each publication is set to false.

Changes

  • #635 Endpoints POST Workspace Layers and PATCH Workspace Layer support publishing timeseries raster layers. Temporal information is read from file names using new body parameter time_regex. Timeseries data files keep their original slugified names in both Layman and GeoServer data directories (instead of renaming to <layer_name>.<extension>). Each timeseries is published to GeoServer as one ImageMosaic coverage store.
  • #446 If endpoint POST Workspace Layers receives grayscale input raster file (with or without alpha band) and if no input style was sent with the raster file, then Layman will automatically create and use customized SLD style to stabilize contrast of the layer in WMS.
  • #446 Transparency of paletted GeoTIFF with transparent data values is respected in WMS. No custom style is needed. It was probably fixed in v1.16.0 by upgrade of GeoServer.
  • #635 Endpoints GET Workspace Layer and PATCH Workspace Layer returns new subkeys:
    • file.paths with list of paths to all main data files
    • image_mosaic for raster layers stating that layer was published to GeoServer using ImageMosaic coverage store (true value for timeseries and false otherwise)
    • wms.time for timeseries with list of available time instants and regular expression used to extract them from file names
  • #635 Subkey file.path is marked deprecated for endpoints GET Workspace Layer and PATCH Workspace Layer. Use file.paths instead.
  • #635 Metadata sources returns new key 'temporal_extent'.
  • #635 Endpoints POST Workspace Layers and PATCH Workspace Layer do not support combination of zip file and uncompressed main file.
  • #697 Normalized GeoTIFF files are created as BigTIFF to enable publishing raster files greater than 4 GB.
  • #660 Vector data files with invalid byte sequence (e.g. ShapeFile with invalid byte sequence in UTF-8 encoding) are first converted to GeoJSON, then cleaned with iconv, and finally imported to database.
  • #667 Fix broken statistics during normalization of float rasters with big nodata value.
  • #668 Fix broken size of raster in EPSG:3034 during normalization.
  • #669 Fix slow publication of vector layers metadata to Micka. The reason was slow guessing of spatial_resolution.scale_denominator metadata property.
  • #701 After publishing to GeoServer, Layman checks that Layer is available in WMS & WFS GetCapabilities to prevent situation when GeoServer hides publishing error. It may happen when data file with wrong CRS is published.

v1.17.0

2022-07-21

Upgrade requirements

  • Only versions 1.14.0 and newer can be upgraded to this version. For older versions, please upgrade to last 1.16.x first.
  • Change environment variable LAYMAN_CLIENT_VERSION:
    LAYMAN_CLIENT_VERSION=v1.12.0
    

Migrations and checks

Schema migrations

  • #576 Create new column file_type in publications table.
  • #541 Rename vector data DB tables to layer_<uuid> format.

Data migrations

  • #576 Fill column file_type in publications table in prime DB schema for all publications. Value of each map will be NULL. Value of each layer will be same as value of file.file_type in GET Workspace Layer response (i.e. vector, raster, or unknown).

Changes

  • #551 Endpoints POST Workspace Layers and PATCH Workspace Layer support new body parameter overview_resampling.
  • #576 Endpoints GET Layers and GET Workspace Layers returns new file.file_type key with the same value as file.file_type in GET Workspace Layer response (i.e. vector, raster, or unknown).
  • #541 Layer name and map name can start with numbers.
  • Maximum length of layer and map name is 210 characters.
  • #606 Fix filtering and ordering publications by bounding box in case of publication with whole world bounding box in database.
  • New environment variable OAUTH2_LIFERAY_SCOPE. Introduced in v1.16.2.
  • New environment variable OAUTH2_LIFERAY_INTROSPECTION_SUB_KEY. Introduced in v1.16.1.
  • #599 Layman supports uploading data files with upper or mixed case extensions. Introduced in v1.16.1.
  • #541 Vector layers are stored in DB table with name in form layer_<UUID>, e.g. layer_96b918c6_d88c_42d8_b999_f3992b826958, previously the name of the table was the same as name of the layer.

v1.16.3

2022-06-20

Changes

  • Stop Firefox instances if map thumbnail generation times out. Previously Firefox processes keeps running and were never stopped.
  • Add logging for Micka response in case of exception.

v1.16.2

2022-03-07

Upgrade requirements

  • Change environment variable LAYMAN_CLIENT_VERSION:
    LAYMAN_CLIENT_VERSION=v1.11.0
    
  • If you are using Liferay as OAuth2 provider, set new environment variable OAUTH2_LIFERAY_SCOPE:
    OAUTH2_LIFERAY_SCOPE=liferay-json-web-services.everything.read.userprofile
    
    If you are using Wagtail, do not set this variable at all (not even to empty string).
  • If you are running Layman with development settings, run
    make client-build
    

Changes

v1.16.1

2022-02-25

Changes

  • Fix infinity loop when generating map thumbnail. One of consequences was that such infinity loops consumed all celery workers and it was not possible to complete POST/PATCH map or layer.
  • Fix empty map thumbnail. In some cases, map thumbnail was generated as if anonymous user asks for the map. Now the thumbnail is generated as if user with writing rights asks for the map.
  • New environment variable OAUTH2_LIFERAY_INTROSPECTION_SUB_KEY.
  • #599 Layman supports uploading data files with upper or mixed case extensions.

v1.16.0

2022-02-18

Upgrade requirements

  • Only versions 1.12.0 and newer can be upgraded to this version. For older versions, please upgrade to last 1.15.x first.
  • Due to GeoServer upgrade, it's possible that make upgrade-demo fails with following error:
Waiting for GeoServer REST API, user=layman, url=http://geoserver:8080/geoserver/rest/workspaces/
Traceback (most recent call last):
  File "src/wait_for_deps.py", line 158, in <module>
    main()
  File "src/wait_for_deps.py", line 88, in main
    response.raise_for_status()
  File "/usr/local/lib/python3.8/dist-packages/requests/models.py", line 960, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error:  for url: http://geoserver:8080/geoserver/rest/workspaces/

If you encounter such error, you can use script upgrade_v1_16_fix_gs.sh for fixing this issue. Be aware, that you will lose some security GeoServer settings, like Layman user and admin password, so you need to set them again after. The script needs to be run from Layman`s root directory:

make stop-demo
sh src/layman/upgrade/upgrade_v1_16_fix_gs.sh

After the script finishes, either set GEOSERVER_ADMIN_PASSWORD or create LAYMAN_GS_USER in GeoServer GUI.

make geoserver-build
make timgen-build
make client-build

Migrations and checks

Schema migrations

  • #64 Create new column srid in publications table.

Data migrations

  • #64 Native CRS of previously uploaded layers is set to EPSG:3857.
  • #64 Native CRS of previously uploaded maps is set according their composition file (either EPSG:3857 or EPSG:4326) and their composition file is upgraded to version 2.0.0.

Changes

  • #64 Upgrade GeoServer to 2.15.2, because 2.13.0 had serious problem with transformations of EPSG:5514.
  • #64 Responses of GET Layers, GET Workspace Layers, GET Workspace Layer, PATCH Workspace Layer, GET Maps, GET Workspace Maps, GET Workspace Map, PATCH Workspace Map contains new attributes
    • native_crs with native CRS in form "EPSG:<code>", e.g. "EPSG:4326"
    • native_bounding_box with coordinates in native CRS [minx, miny, maxx, maxy]
  • #64 New environment variable LAYMAN_INPUT_SRS_LIST
  • #64 Layman supports import of layers in EPSG:3034, EPSG:3035, EPSG:5514, EPSG:32633, EPSG:32634 and EPSG:3059.
  • #64 New raster layers are normalized in native CRS. New vector layers are imported into DB also in native CRS. Existing layers (normalized raster files, vector tables in DB) are kept in EPSG:3857 until they are patched with another file, or deleted.
  • #519 Endpoints GET Layers, GET Workspace Layers, GET Maps, GET Workspace Maps support new query parameters bbox_filter_crs and ordering_bbox_crs.
  • #64 Layer thumbnails are generated in native CRS of the layer.
  • #64 WMS proxy was added to WMS endpoint. In case of some special WMS GetMap requests, it changes requested CRS to fix some GeoServer issues.
  • #64 For layers in EPSG:5514 and WFS requests in CRS:84, the features may have wrong coordinates by hundreds of meters. For requests in EPSG:4326, coordinates are correct.
  • #572 Endpoints POST Workspace Layers and PATCH Workspace Layer accept also raster files with .jpeg extension .
  • #64 Map compositions are validated against map-composition-schema defined in describedBy key of map composition data JSON. Layman now supports only map compositions in version 2.
  • #489 Error responses from Micka and GeoServer are logged into log and also propagated as part of raised exception, so they can be seen from flower.
  • #548 Suppress GeoServer HTTP error 409 when setting layer access rights if they already have the same value.
  • #548 If Micka returns HTTP error 500 on CSW/SOAP Insert/Update/Delete, retry the request.
  • #548 If GeoServer returns HTTP error 500 on GetCapabilities, retry the request.
  • Remove LAYMAN_SETTINGS_MODULE, import src/layman_settings.py directly.
  • #555 Upgrade Selenium from 3 to 4
  • #555 Use Firefox instead of Chrome in Selenium for map thumbnail generation and Layman Test Client tests.

v1.15.1

2021-12-06

Changes

  • #525 Keep NoData value in normalized raster files. Also NoData values are normalized as transparent always, even if Alpha channel is available.

v1.15.0

2021-11-18

Changes

  • #169 POST Workspace Layers accepts also compressed data files in ZIP format (*.zip) in file parameter. PATCH Workspace Layer accepts also data file in ZIP format (*.zip) in file parameter. ZIP archives can be also uploaded by chunks.
  • #503 Raster data (e.g. GeoTIFF, JPEG2000, PNG, JPEG) sent on POST Workspace Layers and PATCH Workspace Layer are compressed during normalization to decrease occupied disk space.
  • #232 Prefixes '>=' or '==' can be used in MICKA_ACCEPTED_VERSION environment variable.
  • Documentation describes how to use external images in QML styles in POST Workspace Layers and PATCH Workspace Layer requests; see style parameter.
  • #169 GET Workspace Layer returns path to main file inside archive if zipped file was sent (key file.path).
  • #465 Fix situation, when Layman does not start if *.qgis file of the first layer with QML style does not exist. It was already fixed in v1.14.1.
  • #464 Fix publishing layers with unusual attribute names (e.g. x, or Číslo) and QML styles. It was already fixed in v1.14.1.
  • #459 Fix situation, when sometimes publication stayed in PENDING status after failure. It was already fixed in v1.14.1.
  • #502 Fix error message, when invalid raster file is sent.
  • Fix: Layers, which were created in Layman, but not published in GeoServer due to any validation/error can now be patched. Previously internal error was raised for every PATCH Workspace Layer call.
  • Rename item username to workspace in error 41.
  • Detailed test-related documentation for developers.
  • #487 Upgrade
    • flask from 2.0 to 2.0.2+
    • celery from 4.4.7 to 5.0.5
    • kombu from 4.6.10 to 5.1.0
    • flower from 0.9.7 to 1.0.0
    • jsonschema from 3.2.0 to 4.0.1
    • psycopg2-binary from 2.8.6 to 2.9.1
    • requests from 2.25.1 to 2.26.0
    • unidecode from 1.2.0 to 1.3.2

v1.14.1

2021-09-14

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

2021-09-08

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/[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

2021-06-25

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

2021-06-07

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

2021-05-26

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

2021-04-21

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

2021-03-16

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

2021-03-10

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

2021-03-04

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)
  • #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. It is also available in Layman Test Client.
  • Endpoint GET Workspace 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 Workspace Layer and Get Workspace 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

2021-01-18

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.

v1.9.0

2021-01-14

Upgrade requirements

  • Set environment variable LAYMAN_OUTPUT_SRS_LIST that contains list of EPSG codes that will appear as output spatial reference systems in both WMS and WFS. Choose any EPSG codes you need and add two mandatory systems 4326 and 3857.

    • Sample SRS list for World: 4326,3857
    • Sample SRS list for Czech Republic: 4326,3857,5514,102067,32633,32634
    • Sample SRS list for Latvia: 4326,3857,3059

    During startup, Layman passes definitions of each EPSG to GeoServer, either from its internal sources, or from epsg.io. If download from epsg.io fails, warning Not able to download EPSG definition from epsg.io appears in log. In such case, you can set EPSG definition manually and restart GeoServer.

    If you want to be sure that GeoServer understands each of your SRS that you passed into LAYMAN_OUTPUT_SRS_LIST, visit GeoServer's admin GUI, page Services > WMS or WFS, and click on Submit. If you see no error message, everything is OK.

    It can be also useful to generate output bounding box for every supported SRS in WMS Capabilities documents. You can control this in GeoServer's admin GUI, page Services > WMS, checkbox "Output bounding box for every supported CRS".

Migrations

Data manipulations that automatically run at first start of Layman:

  • Data version table is created.
  • GeoServer's security rules of each publication are recalculated according to publication's access rights. It fixes #200 also for existing layers.
  • Mistakenly created users and roles in GeoServer, created for public workspaces, are deleted.

Changes

  • One of OAuth2 HTTP headers, AuthorizationIssUrl, is optional if and only if there is only one OAuth2 authorization server registered at Layman. The header was mandatory in 1.8.0 and sooner.
  • Information about data version including migration ID is stored in PostgreSQL.
  • When public workspace is created, only workspace is created on GeoServer. Previously also user and roles were mistakenly created.

v1.8.1

2021-01-06

Upgrade notes

  • The fix of #200 affects only newly posted or patched layers. To fix access rights on existing layers, you can either wait for 1.9 release (2021-01-15), or manually add ROLE_AUTHENTICATED for every layer security rule which already contains ROLE_ANONYMOUS.

Changes

  • #200 Access rights EVERYONE is correctly propagated to GeoServer also for authenticated users. Only newly posted or patched layers are affected by the fix.
  • One of OAuth2 HTTP headers, AuthorizationIssUrl, is optional if and only if there is only one OAuth2 authorization server registered at Layman. The header was mandatory before 1.8.1 in any case.

v1.8.0

2020-12-14

Upgrade requirements

  • Set environment variable LAYMAN_AUTHN_HTTP_HEADER_NAME that serves as a secret. Only combination of lowercase characters and numbers must be used for the value.
  • Set environment variable LAYMAN_PRIME_SCHEMA. It is the name of the DB schema, so it is subject to the restrictions given by PostgreSQL. We recommend value _prime_schema if possible.
  • Replace LAYMAN_AUTHZ_MODULE environment variable with GRANT_CREATE_PUBLIC_WORKSPACE and GRANT_PUBLISH_IN_PUBLIC_WORKSPACE. The following settings correspond best with behaviour of previously used LAYMAN_AUTHZ_MODULE:
    • LAYMAN_AUTHZ_MODULE=layman.authz.read_everyone_write_owner (variable to remove)
      • GRANT_CREATE_PUBLIC_WORKSPACE= (new variable)
      • GRANT_PUBLISH_IN_PUBLIC_WORKSPACE= (new variable)
    • LAYMAN_AUTHZ_MODULE=layman.authz.read_everyone_write_everyone (variable to remove)
      • GRANT_CREATE_PUBLIC_WORKSPACE=EVERYONE (new variable)
      • GRANT_PUBLISH_IN_PUBLIC_WORKSPACE=EVERYONE (new variable)
  • Change LAYMAN_CLIENT_VERSION to v1.4.1
    • If you are running Layman with development settings, run also make client-build.
  • Starting version 1.8, each user can have zero or one personal workspaces, not more (in other words, one Liferay account can be linked with zero or one personal workspaces). Layman automatically checks this at first start. If two workspace linked to single user are fond, they are reported and Layman initialization is stopped. In such case, choose which one of reported workspaces should be the only personal workspace of the user, delete authn.txt file from the other workspace, and restart layman. The other workspace becomes public.
  • If you are running Layman with development settings, run also make timgen-build.

Changes

v1.7.4

2020-12-14

Changes

v1.7.3

2020-11-30

⚠️ Attention ⚠️

There is a critical bug in this release, posting new layer breaks Layman: #175 It's solved in v1.7.4.

Changes

v1.7.2

2020-11-09

Changes

  • #133 Attribute url of GET Workspace Maps response was repaired. Previously, it incorrectly used map name instead of username in the URL path.

v1.7.1

2020-09-30

Upgrade requirements

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

Changes

  • Test Client contains also GET Workspace Layer Style endpoint.
  • Return real SLD style in GET Workspace Layer Style instead of just metadata
  • #109 Handle records without title in GET Workspace Layers / GET Workspace Maps

v1.7.0

2020-09-30

Upgrade requirements

Changes

  • #65 WFS endpoint accepts same authentication credentials (e.g. OAuth2 headers) as Layman REST API endpoints. It's implemented using Layman's WFS proxy. This proxy authenticates the user and send user identification to GeoServer. In combination with changes in v1.6.0, Layman's read-everyone-write-owner authorization (when active) is propagated to GeoServer and user can change only hers layers.
  • #88 Attribute title was added to REST endpoints GET Workspace Layers and GET Workspace Maps.
  • #95 When calling WFS Transaction, Layman will automatically create missing attributes in DB before redirecting request to GeoServer. Each missing attribute is created as VARCHAR(1024). Works for WFS-T 1.0, 1.1 and 2.0, actions Insert, Update and Replace. If creating attribute fails for any reason, warning is logged and request is redirected nevertheless.
  • #96 New REST API endpoint GET Workspace Layer Style is created, which returns Layer default SLD. New attribute sld.url is added to GET Workspace Layer endpoint, where URL of Layer default SLD can be obtained. It points to above mentioned GET Workspace Layer Style.
  • #101 Test Client has new page for WFS proxy and is capable to send authenticated queries.
  • #65 Layman automatically setup HTTP authentication attribute and chain filter at startup. Secret value of this attribute can be changed in LAYMAN_GS_AUTHN_HTTP_HEADER_ATTRIBUTE and is used by Layman's WFS proxy.

v1.6.1

2020-08-19

  • #97 Before v1.6, reserved username could be the same as LAYMAN_GS_USER. Starting at 1.6, this leads to conflict of two GeoServer users with the same name. This patch release comes with detection of this conflict (Layman error code 41).
    • If you encounter error 41, you can resolve the conflict by following steps:
      • In GeoServer GUI, create new GeoServer user with another name to become new LAYMAN_GS_USER and give him LAYMAN_GS_ROLE and ADMIN roles
      • In GeoServer GUI, remove the old LAYMAN_GS_USER user
      • Change environment settings LAYMAN_GS_USER and LAYMAN_GS_PASSWORD for the new GeoServer user
      • Restart Layman

v1.6.0

2020-08-19

Upgrade requirements

  • #69 If you are running Layman with development or test settings, set LAYMAN_SETTINGS_MODULE in your .env file to layman_settings. No action is required if you are running Layman based on demo settings (probably all production instances).

Changes

  • #74 Layman user and role at GeoServer defined by LAYMAN_GS_USER and LAYMAN_GS_ROLE are now created automatically on Layman's startup if an only if new environment variable GEOSERVER_ADMIN_PASSWORD is provided. There is no need to set GEOSERVER_ADMIN_PASSWORD for other reason than automatically creating Layman user and Layman role.
    • No change is required. If you are migrating existing instance, Layman user and role are already created, so you don't need to set GEOSERVER_ADMIN_PASSWORD. If this is your first Layman release, GEOSERVER_ADMIN_PASSWORD is set in .env files starting with this version, so Layman user and role at GeoServer will be automatically created on startup.
    • No need to run command make geoserver-reset-default-datadir from now on. This command was removed from make options.
  • #62 GeoServer Proxy Base URL is now automatically set on Layman's startup according to LAYMAN_GS_PROXY_BASE_URL. If you do not set the variable, value is calculated as LAYMAN_CLIENT_PUBLIC_URL+LAYMAN_GS_PATH. If you set it to empty string, no change of Proxy Base URL will be done on GeoServer side.
  • #83 All layers are created as GEOMETRY type, so any other type can be added (for example polygons can be added to points).
  • #73 Layman users are automatically created on GeoServer (either at start up of Layman or when reserved) with separate role and workspace. Username is the same as in Layman, name of role is "USER_"+username, name of workspace is the same as username. Read and write permissions for workspace are set according to Layman's authorization (as of now read-everyone-write-everyone or read-everyone-write-owner).
  • New environment variables LAYMAN_GS_USER_GROUP_SERVICE and LAYMAN_GS_ROLE_SERVICE enable to control which user/group and role services are used at GeoServer. Not setting these variables means to use default services.
  • #69 Three separate identical settings files (layman_settings_demo.py, layman_settings_dev.py, layman_settings_test.py) were merged into one file layman_settings.py.
  • If username used in REST API request path is not yet reserved, HTTP requests other than POST returns (e.g. GET) HTTP error 404 (Layman code 40). Previously in case of GET request, empty list was returned.
  • List of GeoServer reserved workspace names was moved from layman_settings.py into source code (src\layman\common\geoserver\__init__.py)
  • Undocumented authentication module layman.authn.url_path.py that was unused for a long time, was removed.
  • Python setting PG_NON_USER_SCHEMAS is now more explicit about forbidden schema names.

v1.5.0

2020-06-18

  • Metadata records are published in SOAP envelope of CSW and they are published on Micka as "Public".
  • Upgrade Micka to version v2020.014. All versions between v2020.010 and v2020.014 should work well with Layman. If you are running other version than v2020.014, you can now set environment variable MICKA_ACCEPTED_VERSION to your version so that Layman accepts your version on startup.
  • New environment variable MICKA_ACCEPTED_VERSION

v1.4.0

2020-04-23

  • Update Python dependencies
  • Add md_language metadata property
  • Guess metadata properties
  • Change multiplicity of language metadata property from 1 to 1..n according to XML Schema
  • Remove language metadata property from Map according to XML Schema
  • Build Layman as a part of make start-demo* commands.
  • Run demo without Micka, fix #55
  • Respect public URL scheme in REST API responses, fix #58
  • Show public WMS and WFS URLs in metadata comparison, fix #54
  • Change WFS endpoint from /ows to /wfs, because /ows capabilities pointed to /wfs

v1.3.3

2020-04-15

Upgrade requirements

Changes

  • Upgrade Layman test client to version 1.1.2, fixing reaching static.css without authentication
  • Extend map JSON schema with ArcGIS REST API layers and static image layers

v1.3.2

2020-04-09

  • Request Geoserver through http instead of public scheme, fix #57

v1.3.1

2020-03-30

  • Post metadata record if no one found during patch, fix #52
  • Use EPSG:3857 bbox when generating thumbnail, fix #53

v1.3.0

2020-03-29

Upgrade requirements

  • Change LAYMAN_CLIENT_VERSION from v1.0.0 to v1.1.1
  • Remove CSW_ORGANISATION_NAME_REQUIRED from environment settings
  • If you are using Layman's make commands with -d suffix, use these commands without the -d suffix from now on (e.g. make start-demo-full-d becomes make start-demo-full).

Changes

v1.2.1

2020-03-20

Upgrade requirements

  • Change CSW_URL from http://micka:80/csw to http://micka:80/micka/csw

Changes

  • Fix URL prefix of Micka GUI in Layman v1.2.0, #49

v1.2.0

2020-03-18

Upgrade requirements

Changes

  • Publish metadata record of map to Micka on POST Workspace Maps.

  • Add metadata info to GET Workspace Map response.

  • Extend metadata info with identitier attribute in case of both layer and map.

  • Add documentation of map metadata properties

  • Use metadataStandardName and metadataStandardVersion in metadata templates

  • Adjust metadata XML instead of using string formatting

  • Rename metadata properties. All metadata-record-related properties have md_ prefix. Dataset-related properties do not have any special prefix.

    Old name New name
    data_identifier identifier
    data_organisation_name organisation_name
    dataset_language language
    date publication_date
    date_stamp md_date_stamp
    file_identifier md_file_identifier
    organisation_name md_organisation_name
  • Add LaymanError 38 (Micka HTTP or connection error)

  • Treat attribute names in SLD (aka 'launder'), #45

  • Fix Micka's About URL in wait_for_deps

  • Assert version of Micka on startup.

  • Load data into redis on startup even in Flower.

  • Better handle Micka's HTTP errors, #43

  • Rename hslayers container to timgen (Thumbnail Image Generator)

v1.1.8

2020-03-16

  • Treat attribute names in SLD (aka 'launder'), #45
  • Fix Micka's About URL in wait_for_deps

v1.1.7

2020-03-09

  • Assert version of Micka on startup.

v1.1.6

2020-03-02

  • Mute 500 error on CSW delete.

v1.1.5

2020-02-28

Prior to 1.1.5, existing usernames, layers and maps were not imported sometimes on Layman's startup, that made it appear as they are missing. It should be fixed now by loading data into redis on startup even in Flower container.

v1.1.4

2020-02-19

  • Better handle Micka's HTTP errors, #43

v1.1.3

2020-01-31

  • Improve documentation of enviroment variables
  • Show real info instead of just SUCCESS status in successfully finished tasks within GET Workspace Layer, GET Workspace Map, etc.
  • Check freshness of links and image URLs in documentation within CI
  • Add few words about Layman in EN ans CS

v1.1.2

2019-12-26

  • Allow requesting layman from other docker containers (fix #38)

v1.1.1

2019-12-23

  • Fix PENDING in state after celery task is removed from redis

v1.1.0

2019-12-23

  • Publish metadata record of layer to Micka on POST Workspace Layers. Connection to Micka is configurable using CSW_* environment variables.
  • Delete metadata record of layer from Micka on DELETE Workspace Layer.
  • Add metadata info to GET Workspace Layer response, including CSW URL and metadata record URL.
  • Documentation of metadata
  • LAYMAN_PROXY_SERVER_NAME environment variable
  • Do not depend on specific version of chromium-browser and chromedriver
  • Save write-lock to redis on POST, PATCH and DELETE of Layer and Map
  • Enable to run Layman using multiple WSGI Flask processes by moving information about tasks from memory to redis
  • Use Flask decorators
  • Unify async task names, call task methods in the same way (src/layman/common/tasks.py#get_task_methods, src/layman/common/tasks.py#get_task_methods#tasks_util.get_chain_of_methods, src/layman/celery.py#set_publication_task_info)