Conduit : Pipeline Resource Identifiers

Mark McGuire
Blue Sky Tech Blog
Published in
3 min readAug 10, 2018

Prev: Conduit : Introduction

Before we built the services, we needed to figure out what to call “things” and uniquely identify them. Assets, media, shows, shots, sequences, etc. There have been several industry attempts at this before, but we couldn’t find a specification out there that would meet our needs. So this is our take.

Inheriting the basic structure/concept from the Uniform Resource Identifier (URI), we customized it for production content. To disambiguate our take, we called this specification the Pipeline Resource Identifier (PRI).

PRIs are the common key used with Conduit’s services to query information. Each service will return information that it knows about that PRI.

PRI Syntax

Syntax

The PRI String serves as the unique ID of the PRI. It consists of two main elements: Product and Version.

<product>@<version>

The Product is further divided into Entity and Category:

<entity>-<category>@<version>

For example, a PRI for an animation product may look like this:

ring:010:020-anim:chr:a@1.0

In the above example, ring:010:020 is the entity and anim:chr:a is the category of the product, while 1.0 is the specific PRI version. PRI strings that include a version number are also referred to as a fully qualified PRI.

Entity

In a PRI string, an Entity can be thought of as a namespace that contains products but by itself, an Entity is not a product. Examples include assets, sequences, and shots. Each of the aforementioned are collections that communicate groupings that contain numerous categories of products. For example, an asset contains a model, a rig, materials, fur, etc.

The Entity segment of the PRI is a colon separated list of tags that start with the project or show name.

Category

The Category of a PRI can be thought of as the type of product. A specific type of product should have the same Category string across all entities under which that kind of product is available.

The Category segment of the PRI is colon separated list of tags that (where applicable) should start with the short name of the department from which the product originates. Any further tags should be in order from broad to specific.

Version

The Version in a PRI is, well, the version of the product. It is a dot separated list of numbers or tags. The last segment is the version index while all (if any) preceding segment are considered the branch. If the version index is a tag instead of a digit, the PRI is considered to be a Mutable PRI.

Absolute vs Mutable PRI

A PRI is considered an Absolute PRI if the last element in its Version is a number. Absolute PRIs are used to identify a specific version of a Product. Data referred to by an Absolute PRI should be immutable and typically the result of a publish process.

A Mutable PRI’s last version element is a tag and not a number — Conduit will resolve the tag to an absolute PRI. A simple example for a Mutable PRI is: latest or 2.1.latest.

Next: Conduit Services : Archetype

--

--