Migration Steps for UnifiedViews
01/06/2026
The migration of UnifiedViews from a native installation to a Dockerized environment is a manual process. It involves migrating configuration files, RDF4J data, and working directories to the new containerized architecture. UnifiedViews is released with Docker files and Helm charts designed for Kubernetes deployment, starting with UnifiedViews version 10.2.0.
Environment Preparation
Ensure the deployment of Graph Modeling (formerly PoolParty) 10.2 and add-on services, specifically
proxy,rdf4j, andunified-views. All add-on services are defined in theaddons.yamlfile.Refer to the Graph Modeling 10.2 Installation Guide and the PoolParty 10 Add-On Services Installation Guide for setup details.
Caution
Disable SSO (OIDC) before migrating.
UnifiedViews utilizes Simple Auth to connect to the API during migration, whereas OIDC mode strictly requires OAuth. Set
oidc.enabled=falsein your configuration and restart UnifiedViews before proceeding.Refer to UnifiedViews Single Sign-On (SSO) for more information.
Note
If UnifiedViews is deployed on the target server as a standalone installation, Graph Modeling and all add-ons are not required. In this case, only the following services are needed for Unified Views:
proxy,rdf4j, andunified-views.License Management
UnifiedViews requires a valid license file, which can be retrieved from your previous installation.
Locate the license file by checking for a
UV_LicenseFoldervalue in the UV configuration file. The configuration file can be found under/opt/poolparty/unifiedviews/config/unifiedviews.confand the default location of the license folder is/opt/poolparty/unifiedviews/config/licenses/pp-uv-license.key.Assign the license path to the
UNIFIEDVIEWS_LICENSEvariable in your main Graph Modeling.envfile:# UnifiedViews UNIFIEDVIEWS_LICENSE=./pp-uv-license.key
The new UnifiedViews instance must be started once before migration to load the default Data Processing Units (DPUs).
Important
DPUs from the previous UnifiedViews are not automatically migrated.
Start both the
rdf4jandunified-viewsservices:docker compose -f docker-compose.yaml -f addons.yaml up -d rdf4j unified-views
Verify access by logging in at
http(s)://<server-name>/UnifiedViewsand ensure the DPU tab is populated.
Backups and Sources
Before starting the migration steps, collect the following:
Backup the
uv.propertiesfile from the new running container:/unified-views/configs/uv.properties.Stop the backend and frontend of the old UnifiedViews service.
Backend:
/opt/poolparty/unifiedviews/bin/unifiedviews stop
Frontend:
/opt/poolparty/unifiedviews/bin/unifiedviews-frontend stop
Backup the old RDF4J data file located via UV_ConfigData in
unifiedviews.conf(default path:/opt/unifiedviews/unifiedviews/configdata/server).Backup the UnifiedViews properties file located via
UV_PropertyFileinunifiedviews.conf(default path:/opt/unifiedviews/unifiedviews/configdata/server/unifiedviews.properties).Backup the existing old UnifiedViews working folder content located via general.workingdir in
unifiedviews.conf(default path:/opt/unifiedviews/unifiedviews/backend/working).Backup the UnifiedViews license file as described in step 2.
Note
The shellDPU is excluded from the standard distribution for security reasons. It is only provided to clients who have signed a liability waiver. Contact your Graphwise representative to obtain this implementation.
Ensure the old UnifiedViews is fully stopped.
Inspect the
pp10-rdf4j-1container to determine the configured user (e.g.,tomcat).docker inspect pp10-rdf4j-1 --format 'User={{.Config.User}}'Stop the new UnifiedViews (both
rdf4jandunified-viewsservices).docker compose -f docker-compose.yaml -f addons.yaml down rdf4j unified-views
You cannot use the old
unifiedviews.propertiesfile directly. Update your old file with the following container-specific paths:module.path = /unified-views/dependencies general.workingdir = /unified-views/data/backend/working frontend.log.directory = /unified-views/logs/frontend backend.log.directory = /unified-views/logs/backend
You may also check the default
uv.propertiesfile (see Prerequisites, step 4) for reference.In
addons.yaml, map your adapted properties file to the container:volumes: -./unifiedviews.properties:/unified-views/configs/uv.propertiesDelete the default content in the
rdf4j_datavolume to prepare for legacy data:docker run --rm \ -v pp10_rdf4j_data:/data \ alpine sh -lc 'rm -rf /data/* /data/.[!.]* /data/..?* || true; ls -la /data'Inspect the RDF4J workbench image and get the value of user identity:
docker run --rm --entrypoint sh eclipse/rdf4j-workbench:4.3.15 -lc 'id; echo "---"; id tomcat || true'
Example output:
uid=101(tomcat) gid=65534(nogroup) groups=65534(nogroup)Copy the legacy
serverfolder itself and its content to the volume and apply permissions (Example using101:65534).docker run --rm \ -v pp10_rdf4j_data:/data \ -v "$PWD/uv_rdf4j":/src:ro \ alpine sh -lc \ 'cp -a /src/. /data/ && \ chown -R 101:65534 /data/server && \ chmod -R 750 /data/server'Before starting the service at step (10), check the content of the /data/server folder inside the volume, it should contain old RDF4J content.
Expected:
docker inspect rdf4j_data ~ "Mountpoint": "/rdf4j_data/_data" ~ cd /rdf4j_data/_data/server ls -l total 0 drwxr-x--- 2 sshd nogroup 87 Aug 23 2023 conf drwxr-x--- 2 sshd nogroup 76 May 6 14:42 logs drwxr-x--- 3 sshd nogroup 16 Aug 23 2023 repositories
Start the services:
docker compose -f docker-compose.yaml -f addons.yaml up -d rdf4j unified-views
Log in to the new UnifiedViews instance to verify that the legacy data has been successfully migrated.
URL:
http(s)://<server-name>/UnifiedViewsCredentials: Use the admin credentials from your previous installation.
Confirm the following tabs and menus are present and functional in the UI:
Pipelines tab: All legacy pipelines should be visible, editable, and executable. Ownership and visibility settings must persist.
DPUs tab: Verify the presence of default DPUs, custom clones, and their respective visibility settings.
Monitor tab: Ensure the execution history (old logs and runs) is listed.
Scheduler tab: Confirm that all previous scheduling rules have been migrated.
Settings menu:
Account & Notifications: Verify settings are unchanged.
Runtime Properties: Ensure values match the legacy configuration.
Debug/Working Data: Verify paths and settings are correct.
Users: All legacy user accounts should be active and able to log in.
DPUs customized in the old environment are not migrated automatically. You must manually import them via the UI. Ensure these DPUs are compatible with the new UnifiedViews version.
The new installation will continue to use the working folder from the old instance. To maintain consistency, you may map the container location (
/unified-views/data/backend/working) to your external backup volume.After verifying the migration, you may re-enable OIDC to allow external user authentication.
Pipelines and DPUs can be managed via API calls, which support both Basic Auth and OAuth (when OIDC is enabled). More details on API usage can be found on the Swagger OpenAPI documentation page.
Used DPUs in pipelines can be exported together within the pipeline(s) export (see below).
Swagger API Documentation is disabled by default. To enable it, set
master.api.doc.enabled = truein the properties file and restart the service.Swagger URL:
http(s)://<server-name>/master/swagger-ui/If you need to retrieve the default DPUs initialized during the first start, they are located inside the container at:
/unified-views/dependencies/defaultdpus.
Export of all pipelines (pipelines + all DPUs used in pipelines):
curl --location 'https://<server-name>/master/api/1/pipelines/export?asUser=admin' \
--header 'Content-Type: application/json' \
--header 'Accept: application/zip' \
--header 'Authorization: Basic YWRtaW46dW5pZmllZHZpZXdz' \
--data '{
"exportDPUUserData": true,
"exportJars": true,
"chbExportSchedule": true
}' \
-o pipelines.zip
Export of a single pipeline (pipeline + all DPUs used in the pipeline):
BASE_URL="https://<server-name>/master/api/1"
PIPELINE_ID="ef385338-f370-402b-9b40-4c6b9a68645b"
AUTH_B64="YWRtaW46dW5pZmllZHZpZXdz"
curl --location "$BASE_URL/pipelines/$PIPELINE_ID/export" \
--header 'Content-Type: application/json' \
--header 'Accept: application/zip' \
--header "Authorization: Basic $AUTH_B64" \
--data '{
"exportDPUUserData": true,
"exportJars": true,
"chbExportSchedule": true
}' \
-o "pipeline-$PIPELINE_ID.zip" \
-w "\nPIPELINE_ID: $PIPELINE_ID\nHTTP status: %{http_code}\n"
Export of a single pipeline import:
curl --location 'https://<server-name>/master/api/1/pipelines/import' \
--header 'Authorization: Basic YWRtaW46dW5pZmllZHZpZXdz' \
--form 'file=@pipeline.zip' \
--form 'asUser=admin' \
--form 'importUserData=true' \
--form 'importSchedule=true' \
-w '\nHTTP status: %{http_code}\n'
Stop the Docker container and start your previous UnifiedViews installation.