Publishing¶
Publishing context¶
When exporting data, external resources are identified by their canonical_uri.
The uri and canonical_uri for internal URIs is computed depending on the
“publishing context” for the jurisdiction, which determines the appropriate
hostname for URIs. The different publishing contexts are described below.
Default publishing context¶
The publishing context default corresponds to current hostname, which is determined
dynamically at request time. Usually http://localhost:8000 or http://127.0.0.1:8000.
Standards server¶
The publishing context rocserver corresponds to the hostname: https://rocdata.global.
Github pages¶
The publishing context githubpages with can be used when the official data
source for a given jurisdiction is published to a github pages website.
w3id.org¶
The publishing context w3id.org is used to assign URIs that start with hostname
https://w3id.org which in turn redirect to another server or github page.
For maximum flexibility, https://w3id.org URIs will be used as canonical URIs.
See https://github.com/perma-id/w3id.org for more info about the redirect service.
When creating the export (static site generator mode), the hostname for URIs is determined by HOST headers by the HTTP client and may need to be manually modified.
Publishing settings¶
The publishing context name is controlled by the settings.ROCDATA_PUBLISHING_CONTEXT,
which in turn is set from the ENV variable ROCDATA_PUBLISHING_CONTEXT, or set
to the default value default.
The dictionary settings.ROCDATA_PUBLISHING_CONTEXTS provides data for all each
publishing context.
Publishing context API¶
The helper method standards.publishing.get_publshing_context returns the dictionary
containing the info like this:
{
"scheme": "https",
"netloc": "https://w3id.org",
"path_prefix": "/rocdata",
}
The helper function standards.publishing.build_absolute_uri(path, publishing_context=None, request=None)
can be used to obtain the absolute URI of for any path path, in the publishing
context publishing_context (if not provided, the default publishing context is used).
The keyword argument request is required for the default context.