- Graphwise Platform Documentation
- Graphwise Documentation
- How to Install & Manage Graphwise Components
- Installation & Migration
- Linked Data Frontend (LDF) Migration Guide
Linked Data Frontend (LDF) Migration Guide
16/07/2026
This guide outlines the manual migration process for the Graph Modeling (formerly PoolParty) Linked Data Frontend. With the release of Graph Modeling (PoolParty) 10, the platform has become fully dockerized and cloud-native. This migration guide is required to bridge the transition from the local file system to the new containerized volume structure.
The LDF architecture remains based on the Model-View-Controller (MVC) pattern using Velocity Templates, allowing for high levels of UI customization.
Before beginning the migration, ensure the following conditions are met:
Graph Modeling (PoolParty) 10 is installed and the underlying data migration has been completed. Refer to the Graph Modeling 10.2 Installation Guide for more information on how to install Graph Modeling from scratch. Alternatively, refer to our PoolParty 10 Migration Guide to migrate an existing Graph Modeling installation.Graph Modeling Migration Guide
A backup of existing LDF templates from PoolParty 9.7.1 exists and can be accessed.
Path:
/opt/poolparty/data/frontendRootA backup of the default Graph Modeling (PoolParty) 10 LDF templates from the new Docker container has been created for reference.
Path:
/var/lib/poolparty/data/frontendRootA new host directory (e.g.,
ldf_data) has been created to act as the bind mount volume for the Graph Modeling (PoolParty) 10 container.
Assess your current PoolParty 9.x LDF configuration to determine your migration path:
If you used the out-of-the-box LDF in version 9.x with no modifications, no manual migration is required. The default LDF shipped with version 10.x will be used automatically and is already adapted for CSP compliance.
If your custom modifications are correctly located in the /frontendRoot/custom folder, select one of the two approaches below based on your security compliance requirements:
As of version 10.1, Graph Modeling enforces strict CSP headers. This impacts all front-end assets (JavaScript, CSS, and Velocity Templates). Refer to our Content Security Policy Compliance guide for details on how to meet security compliance requirements within your custom LDF template.
If your custom LDF is highly complex, you can temporarily relax security restrictions to execute the migration immediately, then schedule refactoring later.
Important
This approach requires you to first migrate your PoolParty instance to Graph Modeling version 10.2 or higher. Refer to our PoolParty 10 Migration Guide for details.
This workaround consists of the following steps:
Inject Environment Variables: Add the following environment variables to the
poolpartyservice block in yourdocker-compose.yamlto relax the container's internal restrictions.services: poolparty: # ... other configurations ... environment: - _POOLPARTY_LDF_SCRIPT_SRC="* data: blob: 'unsafe-inline' 'unsafe-eval'" - _POOLPARTY_LDF_STYLE_SRC="* data: blob: 'unsafe-inline'" - _POOLPARTY_LDF_IMG_SRC="* data: blob:" - _POOLPARTY_LDF_CONNECT_SRC="* data: blob: ws: wss:"For details on how to specify Graph Modeling properties as environment variables, refer to the section on Environment Variables in the Graph Modeling Configuration Properties page.
Force CSP Rewrite at Proxy Level: Edit your Nginx proxy configuration file (typically located at
/compose-files/compose-files/files/nginx/includes/poolparty.conf) to include the following block to override headers for LDF paths:location ~ ^/[^/]+\.(html|rdf|owl|xml|n3|ttl|ttls|trig|trigs|trix|nq|brf|nt|rj|jsonld|visual|map|not_found|nicht_gefunden)$ { proxy_pass http://poolparty:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Override CSP for LDF pages only (INSECURE; allows inline scripts/styles) proxy_hide_header Content-Security-Policy; proxy_hide_header Content-Security-Policy-Report-Only; add_header Content-Security-Policy "default-src 'none'; style-src 'self' * data: blob: 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com; img-src 'self' * data: blob:; script-src 'self' * data: blob: 'unsafe-inline' 'unsafe-eval'; connect-src 'self' * data: blob: ws: wss:;" always; }Migrate Assets to the Docker Volume: Assuming a docker-compose setup where your legacy custom LDF is at
/opt/poolparty9/data/frontendRoot/customand the target named volume iscompose-files_poolparty_data, populate the volume using an ephemeral container:docker run --rm \ -v compose-files_poolparty_data:/dest \ -v /opt/poolparty9/data/frontendRoot/custom:/src:ro \ alpine sh -lc 'rm -rf /dest/data/frontendRoot/custom && mkdir -p /dest/data/frontendRoot/custom && cp -a /src/. /dest/data/frontendRoot/custom/'
Restart Services: Apply all changes by restarting your services.
docker compose -f docker-compose.yaml -f addons.yaml up -d poolparty
Test the frontend by navigating to
http(s)://<server_url>/<project_title>.html.Ensure no CSP violation errors are being thrown (in the browser's developer tools).
Because the default template was updated for the PoolParty 10 rebranding, templates migrated from 9.7.1 will retain the legacy visual identity. To adopt the new Graph Modeling styles, compare your migrated templates against the reference backup.
If the migrated LDF fails to render correctly or breaks critical workflows:
Stop the Graph Modeling (PoolParty) 10 Docker container.
Revert the
docker-compose.yamlchanges.Restart your previous LDF installation environment.