1.4.1 • Published 8 months ago

@getplate/plate-resource-notation v1.4.1

Weekly downloads
-
License
UNLICENSED
Repository
bitbucket
Last release
8 months ago

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 a PRN 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 using class-transformer
  • ServiceAbbreviation enum to represent the service abbreviations.
  • PRN_REGEX constant to represent the regex used to validate PRN strings.