linkThe release object
Below you will find the various attributes for the release resource, as well as the release resource's relationships. Release versioning must follow the semver spec.
linkAttributes
linkdata.attributes.name
stringThe human-readable name of the release. This can be used as an optional label.
linkdata.attributes.description
stringThe description of the release. Useful for releases notes and the like.
linkdata.attributes.filename
stringThe unique filename of the release. This value must be unique to the release's product relationship. We recommend including a version number in the filename when possible, to reduce conflicts. You may include prefixes e.g.
prod-1/linux-1-0-0.tar.gz
to differentiate product releases that share the same filename. This is just like using a file-system -- organized in subfolders to avoid name clashes, e.g.cli/foo-linux-amd64.deb
orlatest/bar-darwin-amd64.deb
.linkdata.attributes.filetype
stringThe filetype of the release. This must match the filename's extension. When the filename does not contain an extension, filetype can be an arbitrary string, e.g.
bin
. When the release has multiple valid extensions, e.g.tar.gz
, we recommend including the complete extension in the filetype to avoid conflicts (e.g.zip.gz
andtar.gz
would conflict if onlygz
was used). Filetype may be set tonull
, but doing so will exclude the release from upgrade functionality.linkdata.attributes.platform
stringThe platform of the release. This may include an arch to differentiate multiple operating system architectures, e.g.
darwin/amd64
anddarwin/arm64
. Platform may be set tonull
, but doing so will exclude the release from upgrade functionality.linkdata.attributes.channel
stringThe channel for the release. One of: stable, rc, beta, alpha, or dev.
linkdata.attributes.status
stringread onlyThe release's status, for filtering purposes and to ascertain overall status at-a-glance. A draft releases is one that does not yet have an uploaded artifact. A release is considered published when it has an uploaded artifact. One of:
PUBLISHED
,NOT_PUBLISHED
, orYANKED
.linkdata.attributes.signature
stringThe signature of the release. This can be an arbitrary string, utilized outside of Keygen for verification purposes. For example, Keygen's CLI uses Ed25519ph signatures.
linkdata.attributes.checksum
stringThe checksum of the release. This can be an arbitrary string, utilized outside of Keygen for verification purposes. For example, Keygen's CLI uses SHA-512 checksums.
linkdata.attributes.downloads
integerprotectedProtected attributes are only available for bearers with an admin or product role.read onlyThe number of times the release has been downloaded, not including upgrades.
linkdata.attributes.upgrades
integerprotectedProtected attributes are only available for bearers with an admin or product role.read onlyThe number of times a licensee has upgraded to this release.
linkdata.attributes.version
semverThe version of the release. This must be a valid semantic version (semver) string. This value must be unique to the release's product, platform, channel and filetype relationship combination (given both a platform and filetype are present). The version may include prerelease and build tags.
linkdata.attributes.semver
object<string, scalar>read onlyObject containing deconstructed key-value semver components.
linkdata.attributes.metadata
object<string, scalar>Object containing release metadata. This can be used to store things such as hash checksums, e.g. sha-256 and sha-512, for integrity verification after download, or for release notes.
linkRelationships
linkdata.relationships.entitlements
collectionThe entitlements constrained to the release (through constraints).
linkdata.relationships.constraints
collectionThe constraints for the release. Constraints can be used to require certain license entitlements in order to access a release, e.g.
ACCESS_V1
andACCESS_V2
. If the licensee lacks an entitlement constraint, access will be denied.
Example object
{ "data": { "id": "30c64dcd-a74d-4f0d-8479-8745172a4817", "type": "releases", "attributes": { "name": "Product v2", "description": null, "signature": "qqcVWX402un4PEoa+E1VMBfPaBJ1RSxwiGVwrFpGfbI7dulfIqUlovvm1X96m3G2Sjl8gXUDEr8gLEAbJuQQCQ", "checksum": "lQ8T/qtGvsbqsDaXBqBMh6h2AGL8mTGI4XgLvLDYZA3EumRH8gIMjJ2l5lsO5L0LIvYVqWNXPVzTEp03H4yfZA", "filename": "Product-2.0.0.dmg", "filetype": "dmg", "filesize": 209715200, "platform": "darwin", "channel": "stable", "status": "PUBLISHED", "downloads": 1337, "upgrades": 42, "version": "2.0.0", "semver": { "major": 2, "minor": 0, "patch": 0, "prerelease": null, "build": null }, "metadata": { "sha512": "36022a3f0b4bb6f3cdf57276867a210dc81f5c5b2215abf8a93c81ad18fa6bf0b1e36ee24ab7517c9474a1ad445a403d4612899687cabf591f938004df105011" }, "created": "2021-05-14T19:54:16.289Z", "updated": "2021-05-19T13:30:56.698Z", "yanked": null }, "relationships": { "account": { "links": { "related": "/v1/accounts/{ACCOUNT}" }, "data": { "type": "accounts", "id": "{ACCOUNT}" } }, "product": { "links": { "related": "/v1/accounts/{ACCOUNT}/releases/30c64dcd-a74d-4f0d-8479-8745172a4817/product" }, "data": { "type": "products", "id": "652da162-cd35-4814-bd28-910a0df0dfad" } }, "entitlements": { "links": { "related": "/v1/accounts/{ACCOUNT}/releases/30c64dcd-a74d-4f0d-8479-8745172a4817/entitlements" } }, "constraints": { "links": { "related": "/v1/accounts/{ACCOUNT}/releases/30c64dcd-a74d-4f0d-8479-8745172a4817/constraints" } }, "artifact": { "links": { "related": "/v1/accounts/{ACCOUNT}/releases/30c64dcd-a74d-4f0d-8479-8745172a4817/artifact" } } }, "links": { "self": "/v1/accounts/{ACCOUNT}/releases/30c64dcd-a74d-4f0d-8479-8745172a4817" } }}