A specific versioned release of a plugin package. The record key encodes both the parent package's slug and the version, separated by ':'. A release's AT URI looks like at://did:plc:abc123/com.emdashcms.experimental.package.release/gallery-plugin:1.2.0. A release at a given version cannot be modified or replaced once published.
any
Any valid record key
Properties
artifacts
ref
#artifacts
Required
Map of artifact type to artifact object. MUST have at least one entry. The 'package' entry (installable bundle) is required.
auth
union
Optional
Authentication requirements for gated artifacts. No authentication variants are currently defined.
extensions
unknown
Optional
Open-union container for extension data, keyed by NSID. Each value is an embedded record carrying its own $type discriminator. Releases of type emdash-plugin MUST include a com.emdashcms.experimental.package.releaseExtension entry here.
package
string
Required
Slug of the parent package profile in the same repository. MUST match the rkey of an existing package profile record. Combined with the publisher DID, the parent profile's AT URI is at://<publisher-did>/com.emdashcms.experimental.package.profile/<package>. Aggregators MUST reject release records whose package field does not resolve to a profile in the same repository.
maxLength: 64 bytesminLength: 1 bytesprovides
unknown
Optional
Capabilities the package provides. Map of capability type to string or list of strings.
repo
string
uri
Optional
AT URI or HTTPS URL of the source repository for this release.
maxLength: 1024 bytesrequires
unknown
Optional
Dependencies. Map of 'env:*' keys (extension-defined environment requirements) or package DIDs to version constraint strings. EmDash uses 'env:emdash' and 'env:astro'.
sbom
ref
#sbom
Optional
Software bill of materials reference.
suggests
unknown
Optional
Optional packages that may be installed alongside. Same shape as requires.
version
string
Required
Version, conforming to a subset of semver 2.0 (build metadata '+...' is disallowed because atproto record keys cannot represent it). MUST equal the post-':' portion of the rkey byte-for-byte. Composed only of characters allowed in atproto record keys: ASCII letters, digits, '.', and '-'. Note that while atproto rkeys also permit '_' and '~', semver disallows them in version strings, so they MUST NOT appear here.
maxLength: 64 bytesminLength: 1 bytesView raw schema
{
"description": "A specific versioned release of a plugin package. The record key encodes both the parent package's slug and the version, separated by ':'. A release's AT URI looks like at://did:plc:abc123/com.emdashcms.experimental.package.release/gallery-plugin:1.2.0. A release at a given version cannot be modified or replaced once published.",
"key": "any",
"record": {
"properties": {
"artifacts": {
"description": "Map of artifact type to artifact object. MUST have at least one entry. The 'package' entry (installable bundle) is required.",
"ref": "#artifacts",
"type": "ref"
},
"auth": {
"closed": false,
"description": "Authentication requirements for gated artifacts. No authentication variants are currently defined.",
"refs": [],
"type": "union"
},
"extensions": {
"description": "Open-union container for extension data, keyed by NSID. Each value is an embedded record carrying its own $type discriminator. Releases of type emdash-plugin MUST include a com.emdashcms.experimental.package.releaseExtension entry here.",
"type": "unknown"
},
"package": {
"description": "Slug of the parent package profile in the same repository. MUST match the rkey of an existing package profile record. Combined with the publisher DID, the parent profile's AT URI is at://<publisher-did>/com.emdashcms.experimental.package.profile/<package>. Aggregators MUST reject release records whose package field does not resolve to a profile in the same repository.",
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"provides": {
"description": "Capabilities the package provides. Map of capability type to string or list of strings.",
"type": "unknown"
},
"repo": {
"description": "AT URI or HTTPS URL of the source repository for this release.",
"format": "uri",
"maxLength": 1024,
"type": "string"
},
"requires": {
"description": "Dependencies. Map of 'env:*' keys (extension-defined environment requirements) or package DIDs to version constraint strings. EmDash uses 'env:emdash' and 'env:astro'.",
"type": "unknown"
},
"sbom": {
"description": "Software bill of materials reference.",
"ref": "#sbom",
"type": "ref"
},
"suggests": {
"description": "Optional packages that may be installed alongside. Same shape as requires.",
"type": "unknown"
},
"version": {
"description": "Version, conforming to a subset of semver 2.0 (build metadata '+...' is disallowed because atproto record keys cannot represent it). MUST equal the post-':' portion of the rkey byte-for-byte. Composed only of characters allowed in atproto record keys: ASCII letters, digits, '.', and '-'. Note that while atproto rkeys also permit '_' and '~', semver disallows them in version strings, so they MUST NOT appear here.",
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"package",
"version",
"artifacts"
],
"type": "object"
},
"type": "record"
}