UPack Documentation

Manifest Specification

  • Last Modified: 2019-09-17

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

Required or Implicit Properties

Property Format
group A string of zero 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.
nameR A string of one to fifty characters: numbers (0-9), upper- and lower-case letters (a-Z), dashes (-), periods (.), and underscores (_).
versionR A string representing a SemVer2 Semantic Version; this is a three-part, dot-separated specification.

Additional Descriptive Properties (Optional)

Property Format
title A string of no more than fifty characters.
projectUrl A string of an absolute url where more about the package can be found
icon A 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 image within the package instead
description A string containing any number of characters; these will be formatted as Markdown in the UI.
tags An array of strings, each being one to fifty 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.
dependencies An array of strings, each consisting of a package identification string; this string is formatted as follows:
  • «group»:«package-name»
  • «group»/«package-name»
  • «group»/«package-name»:«version»
  • «group»/«package-name»:«version»:«sha-hash»
When the version is not specified, the latest is used. If a hash is specified, the client may use it to verify a downloaded package; see package identification.

Additional Audit-based Properties (Optional)

Property Format
createdDate A string representing the UTC date when the package was first created, in ISO 8601 format (yyyy-MM-ddThh:mm:ssZ)
createdReason A string describing the reason or purpose of the creation

For example, BuildMaster uses {Application Name} v{Release Number} #{Package Number} (ID{Execution-Number})
createdUsing A 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 uses BuildMaster/5.6.11
createdBy A 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
repackageHistory An array containing package identification strings or an objects with the following properties:
  • idR - a package identifications 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
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.

Is this documentation incorrect or incomplete? Help us by contributing!

This documentation is licensed under CC-BY-SA-4.0 and stored in GitHub.

Generated from commit 7dbbedf1 on master