News
InGrid: Indexieren, Recherchieren, Visualisieren, Teilen
InGrid: Indexieren, Recherchieren, Visualisieren, Teilen
Diese Release Notes betreffen ausschließlich die Versionen 8.0.0. Release Notes älterer Versionen können hier eingesehen werden: 7.5.x, 7.4.x, 7.3.x, 7.2.x, 7.1.x, 7.0.x, 6.3.x, 6.2.x, 6.1.x, 6.0.x, 5.14.x, 5.13.x, 5.12.x, 5.11.x, 5.10.x, 5.9.x, 5.8.x, 5.7.x, 5.6.x, 5.5.x, 5.4.x, 5.3.x, 5.2.x, 5.1.x, 5.0.x
Release 15.09.2025
InGrid
Release 26.08.2025
InGrid
Profil LfU Bayern
Release 19.08.2025
UVP
Release 18.08.2025
UVP
Release 30.07.2025
InGrid
Release 29.07.2025
InGrid
Profil LfU Bayern
Profil UVP
Release 04.07.2025
Mit dem neuen Portal (siehe REDMINE-5686 ) ändert sich auch die Konfiguration im Container Kontext. Die Abhängigkeiten zu einer Datenbank entfällt da es sich um ein Flat-File-CMS handelt und daher alle Website Inhalte in Form statischer Dateien auf dem Server gespeichert werden. Das erfordert Anpassungen für das Routing und benötigt Erweiterungen die FastCGI ermöglichen. Wenn in der Konfiguration kein Administrator festgelegt wurde, muss beim erstmaligen aufrufen des Portals ein Admin erstellt werden. Um das zu vermeiden empfiehlt es sich vor dem erstmaligen starten unter dem gemappten user Pfad die Admin Konfiguration zu hinterlegen (siehe Beispiel weiter unten).
In einer Docker Compose Umgebung muss die User Umgebung und sollten die Logs gemappt sein. Außerdem werden die InGrid Komponenten mittels der InGrid-API angesteuert die wiederum eine Verbindung zum Elastic Search herstellt.
Beispiel Konfiguration in einer gedockerten Umgebung (Beispiele für das Routing Nginx/Httpd siehe unten):
ingrid-api:
image: docker-registry.wemove.com/ingrid-api:8.0.0
restart: unless-stopped
environment:
- TZ=Europe/Berlin
- ES_HOST=elastic
- ES_USERNAME=elastic
- ES_PASSWORD=admin
- JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=*:8476,server=y,suspend=n
networks:
- informationgrid-network
portal:
image: docker-registry.wemove.com/ingrid-portal:8.0.0
restart: unless-stopped
volumes:
- ./grav:/var/www/portal
- ./portal/logs:/var/www/portal/logs
- ./portal/user/:/var/www/portal/user/
environment:
- GRAV_FOLDER=portal
- INGRID_API=http://ingrid-api:8080/
- CODELIST_API=http://codelist-repo:8080/rest/getCodelists
- CODELIST_USER=admin
- CODELIST_PASS=admin
- MARKDOWN_AUTO_LINE_BREAKS=true
#- THEME_COPY_PAGES_INIT=true
- ENABLE_SCHEDULER_RSS=false
- ENABLE_MVIS=false
- ENABLE_FOOTER_BANNER=true
networks:
- informationgrid-network
Außerdem muss der GravCMS Ordner für den Webserver zur Verfügung stehen:
Beispielkonfiguration für Nginx:
nginx:
image: nginx:1.28
restart: unless-stopped
environment:
- TZ=Europe/Berlin
# nginx conf
- NGINX_HOST=${HOST}
volumes:
- ./nginx/www:/var/www
- ./nginx/auth:/etc/nginx/auth
- ./nginx/conf.d:/etc/nginx/templates
- ./ige-ng/upload:/tmp/ingrid/upload-ige-ng
- ./grav:/var/www/portal
ports:
- 80:80
networks:
- informationgrid-network
Beispielkonfiguration für Httpd:
apache:
image: httpd:2.4
restart: unless-stopped
environment:
- TZ=Europe/Berlin
volumes:
- ./apache/httpd.conf:/usr/local/apache2/conf/httpd.conf
- ./apache/vhost.conf:/usr/local/apache2/conf/extra/vhost.conf
- ./apache/passwdfile.ingrid:/etc/apache2/passwdfile.ingrid
- ./apache/passwdfile.phpmyadmin:/etc/apache2/passwdfile.phpmyadmin
- ./ige-ng/upload:/tmp/ingrid/upload-ige-ng
- ./grav:/var/www/portal
- ./portal/user:/var/www/portal/user
Anpassungen des Virtualhost des Nginx
# Routing zum Portal
location / {
#limit_req zone=one burst=5 delay=3;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/auth/passwdfile.ingrid;
root /var/www/portal;
index index.php index.html index.htm;
if (!-e $request_filename) { rewrite ^ /index.php last; }
try_files $uri $uri/ /index.php?$query_string;
## Begin - Security
# deny all direct access for these folders
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
# deny running scripts inside core system folders
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny running scripts inside user folder
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny access to specific files in the root folder
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
## End - Security
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 405;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|webp|woff2)$ {
expires 2d;
add_header Cache-Control "public, no-transform, max-age=31536000";
}
location ~ \.php$ {
# Choose either a socket or TCP/IP address
# fastcgi_pass unix:/run/php/php8.2-fpm.sock;
# fastcgi_pass unix:/var/run/php5-fpm.sock; #legacy
fastcgi_pass portal:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
Beispiel für eine httpd Konfiguration:
DocumentRoot /var/www/portal-ng
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://portal-ng:9000/var/www/portal-ng/$1
DirectoryIndex /index.php index.php
<Directory /var/www>
AllowOverride All
Options FollowSymlinks
Satisfy Any
Require all granted
</Directory>
ProxyRequests Off
Das fastCGI Modul muss geladen werden.
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
In user/config/accounts/admin.yaml
kann ein Admin festgelegt werden. Im Feld hashed_password
ist ein bcrypt gehashtes Passwort zu hinterlegen:
state: enabled
email: webmaster@ingrid-portal.de
fullname: Administrator
title: Administrator
hashed_password: $2y$10$99bX3uInb3PEg3.L/KiItOVQ3u3JS.iPzPj9DhvMK3aHyM.FMpizi
language: en
content_editor: default
twofa_enabled: false
twofa_secret: JXR6OAS6RR4XVCCVTVV4YLEHBHSNZNLH
avatar: { }
access:
site:
login: true
admin:
login: true
super: true
Neues Portal im alten Gewand! Das Backend des Portals wurde mit dem modernen Backend GRAV CMS ersetzt, das eine Vielzahl neuer Features bietet.
Neben umfangreicher Detailinformationen bzgl. des laufenden Systems können nun Bereiche über den Browser eingestellt und editiert werden, die zuvor entweder ausschließlich über das Command-Line-Interface (CLI) oder durch eine Anpassung des Profils durchgeführt werden konnten.
Herauszustellen ist dabei vor allem der Abschnitt “Pages”. Hier können die User Inhalte ihres Portals eigenständig verändern, deren Anpassung bis Version 7.5 ausschließlich mittels Anpassungen des Profils möglich war. Die Arbeitsweise mit dem Portal, also mit der Suche, den Detailinformationen oder Katalogen bzw. mit der Themenübersicht , ist unverändert, so dass hier ein reibungsloser Übergang im Umgang mit dem Portal gewährt wird.
Im Editor wurde das Formularfeld Datengrundlage/Herkunft erweitert, siehe Feature #2601, so dass konkrete Geodatensätze referenziert werden können, deren Daten die Grundlage des Datensatzes bilden. So z.B. bei der Angabe der Quelldatensätze der im INSPIRE-Datenschema vorliegenden Metadaten.
Diese Felder werden nun auch im Portal auf der Detailseite ab Version 8 abgebildet.
Um den CSV-Export nutzerfreundlicher zu gestalten, werden künftig die Klartextwerte der Codelisteneinträge direkt im Datenmodell gespeichert – das verbessert die Lesbarkeit und ermöglicht auch gezielte SQL-Suchen nach Klartextwerten. Diese Erweiterung betrifft die Select- und Autocomplete-Abschnitte.
Um Datensätze zu aktualisieren musste bisher das Dokument zuerst exportiert und anschließend modifiziert wieder importiert werden. Mit Version 8.0.0 können nun gezielt die Änderungen eingepflegt werden. Das Einpflegen der Änderungen folgt den Regeln für JSON-Patch und JSON-Merge ( RFC 6902 und RFC 7386).
Der Messwerte Client wurde auf Elasticsearch 8 aktualisiert und liegt damit wieder innerhalb der Support Matrix.
Die folgenden Komponenten werden nicht mehr weiterentwickelt:
Das Portal-Classic wird noch in der Version 7.5.x weiterhin unterstützt, um kritische Fehler zu beheben.
InGrid
Profil BASt
Profil BKG
Profil KRZN
Profil LfU Bayern
Profil MetaVer
MVIS
Profil Saarland
Profil UVP