The landing page offers links to older versions of a dataset record; however these link simply link to the latest version of the page. These links were intentional placeholders until full support for accessing these old records. This PR brings this support to the Landing Page Service.
Across all of the PDR components, this capability relies heavily on a new resolver service (provided via the new oar-pdr-py repo). The purpose of this service is to resolve identifiers into different views of datasets in a variety of formats, be it NERDm, HTML, schema.org, etc.; this is accomplished via content-negotiation. Thus, with this PR, the LPS uses the new resolver service to pull its metadata. The API is slightly different from the RMM, so this PR adjusts for this as well.
In addition, this PR effects the following changes:
The config data model was altered to (hopefully) make clearer the difference between API endpoints that should be used from typescript code (APIs) vs what appears in HTML links (locations), which should be used on the server (serverSide) vs. the browser. See config.ts.
From the LPS angular app's perspective, all requests to the landing page are routed via the leading path, /lps/.
The URL for accessing a previous version has a form like this: /od/id/ark:/88434/mds2-8888/pdr:v/1.0.0. Thus, the LPS has been updated to allow identifiers to include slashes.
The NERDm metadata for describing the version history has changed. The presentation of the version history has been updated accordingly.
This PR is best tested via oar-docker using the test/version-access branch; this starts the resolver service and provides an updated coniguration. To test,
The landing page offers links to older versions of a dataset record; however these link simply link to the latest version of the page. These links were intentional placeholders until full support for accessing these old records. This PR brings this support to the Landing Page Service.
Across all of the PDR components, this capability relies heavily on a new resolver service (provided via the new oar-pdr-py repo). The purpose of this service is to resolve identifiers into different views of datasets in a variety of formats, be it NERDm, HTML, schema.org, etc.; this is accomplished via content-negotiation. Thus, with this PR, the LPS uses the new resolver service to pull its metadata. The API is slightly different from the RMM, so this PR adjusts for this as well.
In addition, this PR effects the following changes:
APIs
) vs what appears in HTML links (locations
), which should be used on the server (serverSide
) vs. the browser. See config.ts./lps/
./od/id/ark:/88434/mds2-8888/pdr:v/1.0.0
. Thus, the LPS has been updated to allow identifiers to include slashes.This PR is best tested via oar-docker using the test/version-access branch; this starts the resolver service and provides an updated coniguration. To test,
apps
applicatoin from the oar-docker test/version-access branch.data/pdr/nerdm
directory contains a list of records that have been loaded into the RMMThe LPS should also be tested under
publish
application.