GUPRI
GUPRI (Global Unique Persistent Resource Identifier) is Roche’s internal identifier backbone. Every artifact produced by the roche-data pipeline — entities, contracts, APIs, policies — receives a globally unique, resolvable URI through GUPRI. This enables unambiguous cross-system references: when Collibra, Snowflake, and an API all reference the same entity, they share the same GUPRI identifier.
Connection Details
Section titled “Connection Details”| Property | Value |
|---|---|
| URL | TBD (awaiting A02 resolution) |
| Auth method | TBD (to be clarified with GUPRI team) |
| Network | Roche corporate network (VPN required) |
| Access task | A02 |
| GitHub issue | #16 |
| URI prefix | urn:gupri:roche |
Environment Variables
Section titled “Environment Variables”| Variable | Source | Description |
|---|---|---|
GUPRI_BASE_URL | Vault common/gupri | Base URL for GUPRI REST API |
GUPRI_URI_PREFIX | Vault common/gupri | URI namespace prefix (urn:gupri:roche) |
CLI Modules
Section titled “CLI Modules”| Module | Usage |
|---|---|
rdt-model-gupri | Registers new artifacts, resolves existing identifiers |
rdt-model-contract | Embeds GUPRI URIs in data contract metadata |
rdt-model-api | References GUPRI URIs in OpenAPI spec info.x-gupri-id |
rdt-model-register | Uses GUPRI URIs for Collibra lineage relationships |
rdt-model-sdk | Embeds GUPRI URIs in SDK metadata |
rdt-model-event | Includes GUPRI URIs in lifecycle event payloads |
URI Format
Section titled “URI Format”urn:gupri:roche:{entity}:{artifact-type}:v{version}Examples:
urn:gupri:roche:waste-tracking:entity:v1urn:gupri:roche:waste-tracking:contract:v1urn:gupri:roche:waste-tracking:api:v1urn:gupri:roche:waste-tracking:policy:v1Access Verification
Section titled “Access Verification”Script: scripts/access/check-gupri.sh
Required tools: curl
Checks performed:
- HTTP connectivity to GUPRI endpoint (if
GUPRI_BASE_URLis set) - HTTP status code validation (200/204 = pass, 401/403 = auth needed)
Expected state: skip — A02 not yet resolved.
Current Status
Section titled “Current Status”- Access: Blocked — awaiting service account provisioning from GUPRI team
- Workaround:
StubGupriClientgenerates deterministic URIs using the patternurn:gupri:roche:{entity}:{artifact}:v1 - Impact: Does not block development — all modules work with stub-generated URIs in
--dry-runmode
Output
Section titled “Output”The rdt-model-gupri module produces models/{entity}/gupri.yaml:
entity_id: waste-trackingentity_uri: urn:gupri:roche:waste-tracking:entity:v1contract_uri: urn:gupri:roche:waste-tracking:contract:v1api_uri: urn:gupri:roche:waste-tracking:api:v1created_at: "2026-05-01T10:00:00Z"