Hajk 3.14 Release Candidate 1
Pre-release311 commits and changes across 930 files since the most recent stable release, 3.12.1 – here's Hajk 3.14! This release was brought to you by @Hallbergs and @jacobwod . Please see the list of commits for all contributors.
This release represents a significant milestone for Hajk, as it marks the removal of the legacy V1 API (/api/v1/*
endpoints in the backends). Both backends shipped with this release are now API V2-compatible. This introduces some adjustments that you, as an administrator, need to take into consideration when migrating – see Breaking changes below.
This release is also packed with new features, bug fixes, and security improvements. 🔒
Scroll down to find a comprehensive list of changes! 🚀
Reporting period
We're looking forward for your the results of your tests with this release candidate. Please use the dedicated discussions thread and report your findings. We're accepting test reports until August 27th, 2024.
Breaking changes
- This release marks the removal of the legacy V1 API (
/api/v1
) in both the NodeJS backend and the old .NET 4.5 backend. Client UI is now V2-compatible only, requiring the consolidated loading method. Please review and update your configuration, both for Client and Admin. For details, refer todocs/migrate-to-v2-api.md
. - This release marks the deprecation of certain plugins that have either been replaced by new solutions or transformed into community plugins. For more information, refer to
docs/deprecated-plugins.md
. - Although not a breaking change per se, it fits well here: the repository has been restructured. All applications (Client, Admin, and Backend) can now be found in the
apps/
directory. Thenew-
prefix has been removed from app names. Some shell scripts now live inscripts/
, and the majority of Docker-related files, except for the official Dockerfile, have been moved into theDocker/
directory. PR: #1488. - Upcoming breaking change: this is the last release with official support for multiple backends (NodeJS and .NET). Hajk's upcoming 4.x-series will focus on the NodeJS backend, dropping official support for the .NET backend.
Changelog
In this release, we have aggregated the changes that occurred between the v3.13.3
and v3.13.25
tags, as well as the changes introduced in this v3.14.0
tag. If you want to know exactly when each change was introduced, you can refer to the Changelog.
For a comprehensive list of commits, please visit this link.
Added
- Admin: It is now possible to easily duplicate map configurations using the UI. #1502.
- Admin: Support for the EPSG:5847 in Admin UI. Keep in mind that you still need to add appropriate projection definitions to each map config.
- Backend (.NET): The new .NET 6 backend. Issue: #1210. PR: #1395.
- Backend (NodeJS): Added
/fir
endpoints. This functionality requires the myCarta FR Direkt service. #1416 - Backend (NodeJS): Added possibility to use Authorization token in FME Server proxy. #1530.
- Backend (NodeJS): Another method of gaining AD groups has been added. It's possible to circumvent the current solution (where Backend talks to the LDAP server) if one's setup allows for getting the AD groups elsewhere (i.e. from a proxy if setup on IIS). #1439
- Backend (NodeJS): More logging options in
.env
. Also, we now save 14 old log files by default (was 1 before). #1421 - Backend (NodeJS): Respect nested
visibleForGroups
within tool options. #1438 - Backend (NodeJS): Show 403 Forbidden rather than 500 if access was not allowed. 90b1725
- Client Core, Admin: Added support for stand-alone GeoWebCache WMS Server. Issue: #1469, PR: #1493.
- Client Core: A new error page is displayed if Hajk fails on the initial load. The new page also shows a Reset button, which may fix common loading errors by cleaning up the client's state. Commit
- Client Core: Added a confirmation dialog that shows on window close. It informs the user about unsaved changes (in e.g. Measurer or Sketch) that will be lost. #1403
- Client Core: Allow to specify map config by using
m
query parameter, even when no backend is active. commit - Client Core: CSS classes added for certain elements, allows for more granular custom styling. See also this discussion. PR: #1497.
- Client, Admin: it's now possible to configure the Search tool so that it starts with the search field in focus. #1424
- Client: It is now possible for admins to make the side drawer permanent (i.e. not hidable by user). #1316, #1367.
- Client: LayerSwitcher now indicates which groups have enabled layers by styling those groups with a bold font. #1257
- CookieNotice: It's now possible to revisit the cookie notice and change your preference #1125
- CookieNotice: The cookie notice dialog now appears at the top of other dialogs and pop up windows. PR: #1521.
- Coordinates: in addition to changing the icon's name (URL), it is now also possible to set icon's scale and anchor values. PR: #1499.
- Coordinates: It's now possible to copy and paste coordinates from/to both coordinate inputs (N & E, longitude & latitude). PR: #1506.
- Deployment: Added Dockerfile making it possible to deploy "Hajk-simple" on OpenShift using S2I. PR: #1487.
- DocumentHandler - possible to save documents inside subfolders. #1402
- Edit: Allow setting a
geometryField
for edit layers with no features. #1447 - Edit: the Simple Edit Workflow, as described in #1377
- FIR: Allow comma-separated search and multiline search. #1461
- Infoclick: Highlight in collection view. #1472
- Infoclick: New filters. #1443
- Infoclick:Added the possibility to change icon background in feature list, #1385
- Infoclick:The HTML
target
attribute is now accepted and rendered correctly if specified, #1389 - LayerSwitcher: It is now possible to auto-rotate the Map to a admin-specified value. Useful for layers with photos taken in different directions. #1451
- LayerSwitcher: It is now possible to disable unused tabs in LayerSwitcher, e.g. only show the Background layers tab. #1431
- LayerSwitcher: Some text field inputs for layer groups now allows HTML code. #1518.
- LayerSwitcher(Client)/Groups(Admin): It's now possible to add and show information about a layer group. #400.
- LayerSwitcher/Admin: Administrators can configure a link for each layer. The link will be visible in LayerSwitcher's metadata part. #1387
- Measurer: It is now possible to perform perpendicular measurements by using a modifier key (Ctrl or Cmd, depending on the OS) #1361
- Print/Anchor: It's now possible to generate QR codes in Share and Print. #1482
- Project: Added CHANGELOG.md to the project
- PropertyChecker: Expanded the plugin to also utilize Digital Plans by adding a second tab with an own list as well as another report.
- PropertyChecker: New plugin - this release marks the first Public Beta of PropertyChecker. See #1360. There's also a README included in the plugin's directory, make sure to read it in order to successfully setup this plugin.
- Sketch: Allow changing point size. #1373
- Sketch: It is now possible to buffer from the Sketch plugin. #1310
- Sketch: It's now possible to disable stroke for polygons and circles #1177
- Sketch: Rotate drawn objects. #1455
- Sketch: The user now has the option to reset to default styling and choose from a wider range of colors in the color picker; additionally, black and white options have been added. #1372
- TimeSlider: It's now possible to print images of the content generated in the TimeSlider plugin. PR: #1492.
Fixed
- Admin: Admin UI is now compatible with the correct HTTP verbs (
DELETE
andPUT
). #1501 - Admin: Correct attribute is used when configuring Edit, #1317
- Admin: The tools list in Admin is now refreshed. Only current tools are available, sorting is alphabetical.
- Backend (NodeJS): Restore cross-platform build for NodeJS backend. #1484
- Backend (NodeJS): The
/ad/findCommonADGroupsForUsers
endpoint works again. #1415 - Backend (NodeJS): Solved an issue that could stop certain maps from loading if a tool's option's property value was
null
. Introduced in #1438, fixed in 77503ee. - Bookmark: Fixed removal issue. 0f1172f
- Client Core: Add conditional rendering for Control button. Commit.
- Client Core: avoid long floating values for the
z
parameter in URL hash. #1422 - Client Core: Drawer Toggle Button could sometimes disappear in certain map configurations. Fixed in #1414. #1414
- Client Core: Fix layout issue with hidden DrawerToggleButtons #1436
- Client Core: Fixes to erroneous warning messages about missing plugins in current configuration. See #1390 and #1391.
- Client Core: Restored the missing
.material-icons
class in our CSS. This disappeared in a recent MUI bump and has now to be added manually for font icons. - Client Core: Upgraded deps, among those
react-markdown
, which required some work. See #1425. - Client/Backend: Support for relative URLs #1399
- CookieNotice: Cookie Notice updated after browser refresh. Fix to PR: #1509
- DocumentHandler: Fixed Blockquote and Accordion issues in dark mode. #1457
- DocumentHandler: Minor bug in DocumentHandler #1404
- Edit: Bug fix for the Simple Edit Workflow added in 3.13.8
- FIR: Pagination now remembers page after delete. #1514
- Infoclick: Bug fix associated to #1468. #1485
- Infoclick: Fix collapsed InfoClick in Iframe #1508
- Infoclick: It's now possible to have other target than
_blank
for links in infoclick. #1388 - Infoclick: Removed the 360px width limit in MapClickViewer lists. #1411
- Infoclick: Resize breaks scroll. #1428
- KIR: Now checks if export is allowed. #1441
- LayerSwitcher: Fix for incorrect font size in LayerSwitcher's metadata link. Commit
- Location: Prevent multiple animations in Location plugin #1525
- Print: Print tool does not print WMS layers that requires credentials#1442
- PropertyChecker: Better sorting and layer loading failed indicator in layers list. 8df1b92
- PropertyChecker: Don't allow clicking on points that'd result in response from multiple properties. User is informed when such a click occurs and told to click further away from the property border.
- Sketch: Solved save error with arrow object. #1450
Security
- Backend: Tightened security: if AD_LOOKUP_ACTIVE is 'false' but RESTRICT_ADMIN_ACCESS_TO_AD_GROUPS has a value, access to admin-only endpoints will be restricted (to everyone).
- Backend: Upgraded dependencies.
- Client Core: A number of Client's dependencies have been upgraded.
- Deployment: The official Dockerfile build on an image based on current Node LTS (v20).
Changed
- Backend (NodeJS): show 403 Forbidden rather than 500 if access was not allowed. 98b9280
- Backend (NodeJS): Swagger UI API Explorer now defaults to the V2 path
- Client Core: Added missing dependencies in Client's package.json
- Client Core: Layout fixes to the Error page added in 3.13.6
- Client Core: Made some
appConfig.json
keys optional by not expecting any values for them inindex.js
- Client Core: The consolidated loading approach, first added in #682 is now the only way of loading Client UI. This fact allows for a lot of cleanups in the start-up code.
- Client/Backend: Imports are now made using relative paths. Commit
- Infoclick: Enhance
roundToDecimals
filter. #1445 - LayerSwitcher: Fix to list sorting when toggling layers in a group layer (#1362)
Removed
- The legacy .NET 4.5 backend. For reference, check out the legacy-dotnet-4.5-backend branch.
- V1 API from NodeJS Backend.
- BREAKING: Client UI does not support V1 API anymore. The only supported way of loading the application is the new approach, introduced in #682.
- Since the change above, there is no more use for
experimentalNewApi
inappConfig.json
. It has now been removed. - Removed all references to the unused
shortcodes
feature inFeatureInfo
. Also, removed unused dependencies from Client's package.json. Commit - Legacy plugins removed in this release are:
Draw
(useSketch
instead)Measure
(useMeasurer
instead)
- Also
VTSearch
was removed as it is to be transformed into a community plugin (i.e. not included in the main build)
Downloads
There are multiple ways to get the latest Hajk up and running, including Docker container.
Pre-compiled releases
As usual, we have prepared three different versions of the pre-compiled solution (scroll down for download links):
Docker container
The container is available on Docker Hub: https://hub.docker.com/r/hallbergs/hajk
Installation
Refer to our installation guide.
Full Changelog: v3.12.1...v3.14.0