Skip to content

ash211/resource-identifier

 
 

Repository files navigation

Resource Identifier

Build Status Coverage Status JCenter Release

Resource Identifiers offer a common encoding for wrapping existing unique identifiers with some additional context that can be useful when storing those identifiers in other applications. Additionally, the context can be used to disambiguate application-unique, but not globally-unique, identifiers when used in a common space.

We use a format inspired by existing standards, such as AWS ARNs, URNs, and URIs:

ri.<service>.<instance>.<type>.<locator>

This project provides a basic utility class (ResourceIdentifier) to create and verify new identifier strings that follow the specified format, and, parse existing identifier strings into component parts.

Maven Coordinates com.palantir.ri:resource-identifier:<version>

Format

Resource Identifiers contain 4 components, prefixed by a format identifier ri and separated with periods:

  1. Service: a string that represents the service (or application) that namespaces the rest of the identifier. Must conform with regex pattern [a-z][a-z0-9\-]*.
  2. Instance: an optionally empty string that represents a specific service cluster, to allow disambiguation of artifacts from different service clusters. Must conform to regex pattern ([a-z0-9][a-z0-9\-]*)?.
  3. Type: a service-specific resource type to namespace a group of locators. Must conform to regex pattern [a-z][a-z0-9\-]*.
  4. Locator: a string used to uniquely locate the specific resource. Must conform to regex pattern [a-zA-Z0-9\-\._]+.

License

This project is made available under the Apache 2.0 License.

About

Common resource identifier specification for inter-application object sharing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%