@getplate/plate-resource-notation
v1.4.0
Published
PRNs are Plate's replacement for IDs. They contain context about the resource the PRN describes.
Downloads
107
Readme
plate-resource-notation
This package defines a PRN object, which allows for creation from strings conform PRN formatting or separate components.
Definition
We define the Plate Resource Name (PRN, derived from URN) format as follows:
prn:<partition>:<organization-id>:<service>:<resource-type>:<resource-id>
- Partition: The instance of Plate Delta in which the resource resides. E.g.
plate
,plate-dev
,<client-name>
- Organization ID: The ID of the organization that owns the resource.
- Service: The abbreviation of the name of the service that owns resource. E.g.
am
(Asset Manager),cxc
(Content Experience Center), etc. - Resource type: The type of the resource. E.g. asset, directory, content-type
- Resource id: Id of the resource. E.g. 1234, abcd. This can be any string.
Each name is formatted as slug: asset-library
Some examples are:
prn:plate:am:1234:asset:124124
prn:jumbo:cxc:abc:content-value:xyz
Requests and responses
A PRN should be formatted as a string in requests and responses. It will be parsed to a PRN object inside the
microservice.
Inside of services we use PRN objects. In the database we use the id part of the PRN.
Features
PRN
class to represent a PRN object. The constructor takes in the components of a PRN object.- Static method
fromString
to convert a string into aPRN
instance. toString
on the PRN class to convert a PRN object into a string.InvalidPrnError
class to represent an error while parsing PRNs.TransformPrn
decorator to transform a PRN object into a string usingclass-transformer
ServiceAbbreviation
enum to represent the service abbreviations.PRN_REGEX
constant to represent the regex used to validate PRN strings.