Manifest Specification
  • 14 Mar 2023
  • 3 Minutes to read
  • Dark
    Light
  • PDF

Manifest Specification

  • Dark
    Light
  • PDF

Article Summary

The upack.json file is a JSON object with the following properties:

Required or Implicit Properties

PropertyFormat
groupA string of 0 to 250 characters: numbers (0-9), upper- and lower-case letters (a-Z), dashes (-), periods (.), forward-slashes (/), and underscores (_); may not start or end with a forward-slash; if not specified, the group name will be considered an empty string.
nameRA string of 1 to 50 characters: numbers (0-9), upper- and lower-case letters (a-Z), dashes (-), periods (.), and underscores (_).
versionRA string representing a SemVer2 Semantic Version; is a three-part, dot-separated specification.

Additional Descriptive Properties (Optional)

PropertyFormat
titleA string of no more than 50 characters.
projectUrlA string of an absolute URL where more about the package can be found
iconA string of an absolute URL pointing to an image to be displayed in a UI (at both 64px and 128px); if package:// is used as the protocol, it references a package in the image within the package instead
descriptionA string containing any number of characters; will be formatted as Markdown in the UI.
shortDescriptionA string containing up to 1000 characters; is a short summary that will be displayed instead of the description in lists and is not Markdown-formatted.
tagsAn array of strings, each being 1 to 50 characters: numbers (0-9), upper- and lower-case letters (a-Z), dashes (-), periods (.), and underscores (_). Tags may not start with a number and must be unique within the array.
dependenciesAn array of dependency specifier strings, each of which may be formatted as follows:
  • «package-name»  
  • «group»/«package-name»
  • «group»:«package-name»
  • «group»/«package-name»:«version-range»
  • «group»:«package-name»:«version-range»
  • «group»:«package-name»:«version-range»:«sha-hash»

«version-range» can be one of these:
  • Not specified (or *) to indicate the latest version
  • SemVer2 Version Number
  • Range of version numbers specified with interval notation, such as 
    • [1.0.0,2.0.0) to mean every version between 1.0.0 and 2.0.0 (but not 2)
    • [3.0.0,] to mean every version after 3.0.0
If «sha-hash» is specified, the client may use it to verify a downloaded package; see package identification.

Additional Audit-based Properties (Optional)

PropertyFormat
createdDateA string representing the UTC date when the package was first created, in ISO 8601 format (yyyy-MM-ddThh:mm:ssZ)
createdReasonA string describing the reason or purpose of the creation

For example, BuildMaster uses{Application Name}v{Release Number}#{Package Number}(ID{Execution-Number})
createdUsingA string describing the mechanism the package was created with; there are no format restrictions, but we recommend treating it like a User Agent string and including the tool name and version

For example, BuildMaster usesBuildMaster/5.6.11
createdByA string describing the person or service that performed the installation

For example, BuildMaster uses the user who triggered the deployment or SYSTEM if it was a triggered/scheduled deployment
repackageHistoryAn array containing package identification strings or objects with the following properties:
  • idR - a package identification string
  • date - A string representing the UTC date when the package was repackaged, in ISO 8601 format (yyyy-MM-ddThh:mm:ssZ)
  • reason - A string describing the reason or purpose of the repackaging
  • using - A string describing the mechanism the package was repackaged with; there are no format restrictions, but we recommend treating it like a User Agent string and including the tool name and version
  • by - A string describing the person or service that performed the repackage
  • url - A string where more information about the repackaging can be found, typically to logs within the tool that performed it
A package identification string is a 3- or 4-part string, formatted as follows:
  • «group»/«package-name»:«version»
  • «group»/«package-name»:«version»:«sha-hash»
If a hash is specified, the client may use it to verify the repackaging; see package identification.

You may include other properties in the object, but it is recommended to prefix the names with an underscore (_).

An R denotes a required property.

Additional Metadata

This object may contain additional properties as needed. However, if you need to add additional metadata, it's strongly recommended that you prefix these properties with an underscore (_)... just on the off-chance that a property you add will exist in a future version of the specification, or is returned in other metadata queries.


Was this article helpful?