Migration Steps for UnifiedViews
24/04/2026
The UnifiedViews migration process requires manual action — specifically, copying the necessary files and folders from a native installation of UnifiedViews to a dockerized version. Starting with version 10.2.0, UnifiedViews is released with Docker files and Helm charts for deployment against Kubernetes.
Graph Modeling (formerly PoolParty) 10.2 and add-ons deployment (at least proxy, rdf4j and unified-views services).
The UnifiedViews services (as rdf4j and unified-views) are defined in the
addons.yamlfile alongside other add-ons.Graph Modeling 10.2 Installation Guide Graph Modeling 10.2 Installation Guide
PoolParty 10 add-on services Installation guide
Caution
Before executing the migration, SSO (OIDC) must be disabled.
Reason: UnifiedViews tries to connect to the API with simple Auth, but in OIDC mode only OAuth is supported.
How: the property setting
oidc.enabledmust be set tofalse. If it is set totruethen change it and restart UnifiedViews.More details: UnifiedViews Single Sign-On (SSO)
License File In order to use UnifiedViews, you need the license file. You can get it from the previous UnitedViews installation.
In order to locate the license file, inspect the UV configuration file at:
/opt/poolparty/unifiedviews/config/unifiedviews.conf
Look for the
UV_LicenseFoldervalue. The default location is usually at:/opt/poolparty/unifiedviews/config/licenses/pp-uv-license.key
Set the path of the UnifiedViews license file in the main PoolParty
.envfile to variableUNIFIEDVIEWS_LICENSE. Example:# UnifiedViews UNIFIEDVIEWS_LICENSE=./pp-uv-license.keyBefore the migration, it is necessary that UnifiedViews is started once, in order to load all default DPUs.
DPUs from the old UnifiedViews are not part of the migration.
Start both the rdf4j and unified-views services.
Example:
docker compose -f docker-compose.yaml -f addons.yaml up -d rdf4j unified-views
Verify that the new UnifiedViews is accessible and that DPUs are loaded by checking DPU tab. URL:
http(s)://<server-name>/UnifiedViews
Default credentials:
admin/unifiedviewsHint: loaded DPUs can also be checked inside the UnifiedViews container.
Source:
/unified-views/dependencies/dpu
Backup of the new UnifiedViews properties file from the UnifiedViews running container. Source:
/unified-views/configs/uv.properties
Stop both the backend and frontend of the old UnifiedViews service. Example backend stop script:
/opt/poolparty/unifiedviews/bin/unifiedviews stop
Frontend stop script:
/opt/poolparty/unifiedviews/bin/unifiedviews-frontend stop
Backup of the existing old UnifiedViews license file. See above in step (1) of the requirements.
Backup of the existing old UnifiedViews properties file. You can find the path to the properties file In the old UnifiedViews config file as the
UV_PropertyFilevalue. Source:/opt/poolparty/unifiedviews/config/unifiedviews.conf
Standard location of the properties file:
/opt/unifiedviews/unifiedviews/configdata/server/unifiedviews.properties
Backup content of the existing old UnifiedViews RDF4J data folder. You can find the path to the RDF4J data folder in the old UnifiedViews config file as the
UV_ConfigDatavalue. Source:/opt/poolparty/unifiedviews/config/unifiedviews.conf
Standard location of the data folder:
/opt/unifiedviews/unifiedviews/configdata/server
Backup of the existing old UnifiedViews working folder content. You can find the path to the working folder in the old UnifiedViews properties file as the
general.workingdirvalue. Source:/opt/unifiedviews/unifiedviews/configdata/server/unifiedviews.properties
Standard location of the working folder:
/opt/unifiedviews/unifiedviews/backend/working
UnifiedViews is shipped with several DPUs but not the so-called shellDPU. This has been extracted for security reasons and is only shipped to clients under the condition that they sign a waiver and an acknowledgment/acceptance of liability for any potential security consequences arising from installing the software.
Contact your Graphwise representative to learn more about obtaining the waiver and the shellDPU implementation.
Stop the old UnifiedViews service. See step (3) above of the requirements.
Stop the new UnifiedViews (both rdf4j and unified-views services). Example:
docker compose -f docker-compose.yaml -f addons.yaml down rdf4j unified-views
The old UnifiedViews properties file cannot be directly used with the new UnifiedViews. It must be adapted with several new variables.
As a reference we have a previous backup of the new UnifiedViews properties file at step (2) of the requirements (see above).
Adapt your old
unifiedviews.propertiesfile with variables values as follows: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
Map the
unifiedviews.propertiesfile to be used by UnifiedViews docker service. This should be done inside theaddons.yamlfile in the volume section of unified-views service. Example:volumes: -./unifiedviews.properties:/unified-views/configs/uv.propertiesDuring the first RDF4J-Workbench service startup, two volumes were created, defined in
addons.yamlfile for the rdf4j service:volumes: - rdf4j_data:/var/rdf4j - rdf4j_logs:/usr/local/${APP_SERVER:-tomcat}/logsWe will use
rdf4j_dataas a target volume for old UnifiedViews RDF4J data folder content.Delete the existing default content of the
rdf4j_datavolume. Example:docker run --rm \ -v pp10_rdf4j_data:/data \ alpine sh -lc 'rm -rf /data/* /data/.[!.]* /data/..?* || true; ls -la /data'Inspect the volume
rdf4j_dataand get the value of its configured user. Example output (User=tomcat)>docker inspect pp10-rdf4j-1 --format 'User={{.Config.User}}'Inspect the RDF4J-Workbench image and get the value of user identity: Example output (uid=101(tomcat) gid=65534(nogroup) groups=65534(nogroup))
docker run --rm --entrypoint sh eclipse/rdf4j-workbench:4.3.15 -lc 'id; echo "---"; id tomcat || true'
Copy the old RDF4J folder content from previous backup done at step (6) of the requirements (see above) to the rdf4j_data volume and set the ownership and permissions retrieved from steps (7) and (8). Example (tomcat. Nogroup, 750)
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'Start both the rdf4j and unified-views services. Example:
docker compose -f docker-compose.yaml -f addons.yaml up -d rdf4j unified-views
Log in to UnifiedViews with the following URL to verify that old data is present. URL:
http(s)://<server-name>/UnifiedViews
Credentials: credentials for the admin user from the old UnifiedViews installation. All old data should be present in the UI:
Pipelines tab
They should be editable and executable, with the same old user ownership and visibility settings.
DPUs tab
Default DPUs, old clones of default DPUs, and visibility settings.
Monitor tab
Old executions should be listed.
Scheduler tab
Old scheduling rules should be listed.
Settings menu
Account and notifications settings are the same as before.
Run-time properties are the same as before.
Debug and working data settings are the same as before.
Users (all old users are present, login should be possible).
Other DPUs, particularly those customized in the legacy UnifiedViews environment, must be manually imported via the user interface. It is also a prerequisite that these DPUs are compatible with the new UnifiedViews installation version.
Your new UnifiedViews installation will still use the working folder that the old one did, and you may want to map it to the external one.. If needed you can use it for old working folder content from the previous backup done in step (7) of the requirements (see above). UnifiedViews container location:
/unified-views/data/backend/working
After this, it is again possible to enable OIDC if needed and use external non-local UnifiedViews users to login.
Pipelines can be exported and imported via API, and DPUs can be imported via API. These API calls support both Basic authentication and OAuth when OIDC is enabled.
More details of API usage can be found on the Swagger openAPI documentation page. This page is not enabled by default, so you need to add the flag
master.api.doc.enabled = truein the UnifiedViews properties file and restart the service. URL:http(s)://<server-name>/master/swagger-ui/
If a client will need to retrieve default DPUs (loaded during the first start of the new UnifiedViews), they can find them inside the UnifiedViews container. Source:
/unified-views/dependencies/defaultdpus
Used DPUs in pipelines can be exported together with the pipeline(s) export (see below).
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.