Release Notes 4.13
What’s New
Authentifizierung mit ArcGIS Enterprise Portal oder ArcGIS Online
Sie können eine map.apps Installation nun vollständig mit ArcGIS Enterprise Portal oder ArcGIS Online koppeln. Dadurch können sich Nutzerinnen und Nutzer mit ihrem Portal- oder ArcGIS Online-Account über das OAuth 2.0 Protokoll bei map.apps anmelden. Die zugeordneten Portal-Gruppen und Portal-Rollen werden in Rollen für map.apps übersetzt. Mit Hilfe dieser Rollen kann dann der Zugang zum map.apps Manager, zu einzelnen Apps oder bestimmten Werkzeugen gesteuert werden. Außerdem können nicht öffentliche Inhalte wie Webkarten oder Layer ohne erneute Anmeldung (Single Sign-On) genutzt werden.
Authentifizierung mit Keycloak (via OpenID Connect)
Alternativ zur Kopplung mit ArcGIS gibt es nun auch die Möglichkeit, Ihre map.apps Installation mit Keycloak zu verbinden. Mit Hilfe der in Keycloak vergebenen Rollen kann dann der Zugang zum map.apps Manager, zu einzelnen Apps oder bestimmten Werkzeugen gesteuert werden.
Reihenfolge von Suchergebnissen
In map.apps 4.12 wurde die Möglichkeit eingeführt, Ergebnisse aus mehreren Suchthemen gleichzeitig in einer Vorschlagliste anzuzeigen. In dieser Version wird nun eine Konfigurationsmöglichkeit eingeführt, um die Reihenfolge der Suchthemen zu definieren. Somit können Sie sicherstellen, dass Ergebnisse aus besonders wichtigen Themen zuerst erscheinen.
Leere Felder in Popups ausblenden
Sie können nun Felder die keine Werte enthalten in einem Popup ausblenden. Für jedes Objekt wird einzeln geprüft, welche Felder mit Werten belegt sind. Die Darstellung von Popups kann damit besonders bei Kartendiensten in denen häufig leere Werte auftreten deutlich kompakter und übersichtlicher gestaltet werden.
Einträge in Karteninhaltsteuerung (TOC) automatisch ausklappen
Mit Hilfe einer neuen Konfigurationsoption können Einträge in der Karteninhaltsteuerung nun automatisch beim Start ausgeklappt angezeigt werden. Dies erleichtert besonders für neue Nutzerinnen und Nutzer das Auffinden von Karteninhalten in tiefer verschachtelten Ebenen.
Verbesserungen zur Barrierearmut (Accessibility)
Um die Zugänglichkeit (Accessibility) von Apps zu steigern, wurden mehrere Verbesserungen vorgenommen. Das Drawer-Menü welches sich i.d.R. links neben der Suche befindet, kann nun besser per Tastatur bedient werden. Außerdem wurden an verschiedenen Stellen sogenannte Aria-Labels ergänzt oder optimiert, um die Nutzungsmöglichkeit von Screenreadern zu verbessern.
Neuerungen für Entwickler
Neue LayerStore Implementierung
In diesem Release wird eine neue Klasse LayerStore
eingeführt, die zukünftig die Klasse ct/mapping/store/MapServerLayerStore
im agssearch-Bundle ersetzt.
Die Klasse LayerStore
wird mit einer ArcGIS FeatureLayer Instanz hinterlegt und ist daher konsistent mit dem Inhalt der Karte (zum Beispiel bei der Anwendung von Definition Queries).
Das agssearch-Bundle erzeugt nun standardmäßig LayerStore
-Instanzen in der Klasse AGSStoreFactory
und den Konfigurationsoptionen AutoStoreRegistration
und AGSStore
.
Weitere neue Funktionen und Verbesserungen
-
Die von map.apps als technische Basis genutzte ArcGIS API for JavaScript wird mit diesem Release auf die Version 4.22 aktualisiert. Dies führt zu zahlreichen Verbesserungen und Fehlerbehebungen in der Basistechnologie.
-
Die Verwendung von Material-Design-Symbolen als Werkzeug-Symbol wurde vereinfacht.
-
Die Bibliothek Proj4js wurde auf Version 2.7.5 aktualisiert.
-
map.apps kann nun unter Java 17 verwendet werden.
-
Der Standardwert von
client.config.requestMaxUrlLength
wurde auf "2048" reduziert. -
Das Bundle
search-api
informiert nun über das Event-System über das ausgewählte Suchergebnis. -
Der map.apps Proxy unterstützt jetzt Bearer Token basierte Autorisierungen.
Eine komplette Auflistung aller Änderungen finden Sie im Changelog.
Update-Hinweise
Neue Datenbanktabellen
map.apps verwendet die neuen Datenbanktabellen IDENT_EXTSESSIONS
, IDENT_SESSIONS
und IDENT_TOKENS
.
Beginnend mit dieser Version legt map.apps die Tabellen beim Start des Tomcat automatisch an, wenn sie noch nicht existieren und die Einstellung db.hibernate.schemaUpdate=update
in der angewendeten Konfigurationsdatei gesetzt ist.
Sollten Sie diese Einstellung bislang nicht gesetzt oder verändert haben, müssen Sie keine Änderung vornehmen.
Wenn Sie die Datenbanktabellen stattdessen manuell anlegen möchten, verwenden Sie dafür das entsprechende SQL-Skript für Ihre Datenbank:
Nutzung von ArcGIS-Rollen in map.apps
Sollten Sie bislang Rollen, die aus ArcGIS Enterprise-Portal oder ArcGIS Online Gruppen abgeleitet werden, in map.apps genutzt haben, war dafür bislang die folgende Notation erforderlich: "user@@gruppe"
.
Die Syntax ändert sich mit diesem Release zu "gruppe::user"
.
Ausgelaufene Unterstützung
Die Unterstützung für die folgenden Funktionen ist mit diesem Release ausgelaufen:
-
Java 8 — Mit dieser Version ist der Betrieb mit einer Java JRE 8 nicht mehr unterstützt. Wir empfehlen die Nutzung von Java 17.
-
Tomcat 8.5 — Mit dieser Version ist der Betrieb der Web Applikationen in Tomcat 8.5 nicht mehr unterstützt. Wir empfehlen die Nutzung von Tomcat 9.0.
-
Seit diesem Release sind die Bundles der Linie 3 nicht mehr im Auslieferungsverzeichnis enthalten. Weitere Details zum Lebenszyklus von map.apps Linie 3 können Sie der Lifecycle Übersicht entnehmen.
-
Der Abschnitt "Erweiterte Konfiguration (Bundles)" wurde aus der Live-Konfiguration entfernt.
-
Der
eventservice
, der in Linie 3 für die Follow Me Funktion benötigt wurde, wurde entfernt. -
Die Schrift
directionsUiFont
wurde entfernt.
Abhängigkeiten
-
Esri ArcGIS API for JavaScript 4.22.2
-
ArcGIS Arcade 1.16
-
Moment.js 2.29.1
-
Vue.js 2.6.14
-
Vuetify.js 1.5.24
Changelog
4.13.1
map.apps was not affected by the vulnerability known as Spring4Shell. However, to be absolutely on the safe side, we have updated the Spring Framework version to 5.3.18 in this version.
|
Update Spring Framework to version 5.3.18 |
4.13.0
New Features
|
[Accessibility] Add aria labels to icon buttons |
|
[Accessibility] Add aria-disabled to disabled ui elements |
|
[agssearch] LayerStore: implement support for feature layers that are not in the map |
|
[apprt] Introduce logging API for better control of log output of bundles |
|
[Layout] Simplify usage of material design icons as tool-icon |
|
[Live Configuration] Remove "Advanced Configuration (Bundles)" section |
|
[map.apps Proxy] Support Bearer Token based Authorization |
|
[monaco-editor] Update to 0.30.1 |
|
[Popups] Hide empty values |
|
[Portal Integration] Allow custom role mapping via application.properties |
|
[Portal Integration] Consume custom services in protected app |
|
[Portal Integration] Consume portal items and federated protected services in protected app |
|
[Portal Integration] Do not force login when app item is shared with public |
|
[Portal Integration] Prepare Maven Plugins for new authentication |
|
[search-api] Provide information about selected result |
|
[Search] Define order of search stores |
|
[Security] Use Keycloak for user management |
|
[System] Support Java 17 |
|
[System] Update ArcGIS API for JavaScript to version 4.22 |
|
[System] Update jackson-databind to 2.13.2.1 (CVE-2020-36518) |
|
[templatelayout] Change default value of property 'WidgetDefinitions._keepWindowOpenState' to true |
|
[Templates] Remove toggleMode from dockingBarBottomLeft |
|
[TOC] Allow to expand group on start |
|
Allow definition of custom setters for injected '_properties'. |
|
Provide a store implementation that directly searches on a layer |
|
Reduce default value of client.config.requestMaxUrlLength to 2048 |
|
Remove event service from mapapps web app |
|
Update proj4.js to 2.7.X for nadgrid support |
Fixed Issues
|
[app-mgmt-service] app.json cannot be loaded with dynamic bundles |
|
[apprt-core/Promise] Unhandled promise rejections are not logged |
|
[apprt-core] Observers cannot handle recursive calls to clean() |
|
[Authentication] Wrong error handling during activation of AuthenticationWidgetController |
|
[AutoStoreRegistration] Changing definitionExpression property of a layer is not observed |
|
[AutoStoreRegistration] Stores are registered multiple times in some cases |
|
[Bundle documentation] Wrong locateme tool ID |
|
[Coordinate Viewer] Wrong scale is shown in web mercator projection |
|
[ct-proxy] proxy.allowedSSLDNs not working as expected |
|
[jsregistry] Version of bundles mangled and changed when uploaded |
|
[Legend] Classes are listed in wrong order |
|
[Live Configuration] Editor in custom info bundle is blocked by csp restrictions |
|
[LoginUI] Missing Aria-Labels for username and password field |
|
[Manager] Portal sharing icon gets lost |
|
[Map] Configured ground layer throws error in 2D views |
|
[map-init] initInvisibleLayerStrategy: on-visible does not work in firefox |
|
[MapNavigation] Initial extent not reset correctly |
|
[parametersearch] result items not transformed to map spatial reference system |
|
[Popups] Custom popup actions are not added again |
|
[Portal Registration] Old oauth client id is used if app is re-registered at portal |
|
[Resultcenter] Paging wrong for services with different speed |
|
[Search / map-actions] Popups do not resolve domain values / coded values |
|
[Selection] Error if multiple selections are started fast in a row |
|
[TemplateLayout] Standalone exported app does not start in firefox if no files in cache |
|
[Templates] Missing template scope for tocWidget definition in template-seasons |
|
[Templates] Unexpected closing of windows on browser resize |
|
[TOC] Prevent inlining HTML in description |
|
[TOC] StateInfoTooltip disappears in Firefox when placing toc on right side |
|
[Tools] Child HTML element of a tool uses the same "id" attribute |
|
[Toolset] Drawer toolset is not navigatable by keyboard |
|
[Toolsets] Collapsed Toolsets are not navigatable via keyboard focus |
|
[Toolsets] Toolsets are not drawn / positioned in uncompressed build |