A publisher's identity-level profile. Distinct from `com.emdashcms.experimental.package.profile`, which carries per-package metadata. The publisher profile is the canonical landing page for the entity behind a DID: 'who is publishing these packages?'. The record key is the literal string `self`. Per-package fields like `authors[]` and `security[]` on package profile records remain authoritative for their respective packages and MAY differ from the values here; clients render package-level fields when present, falling back to publisher profile values otherwise. The publisher profile's `displayName` is the value that `com.emdashcms.experimental.publisher.verification` records bind against — see that lexicon's docs for the validity rules.
literal:self
Fixed literal value
Properties
contact
array
of
ref
#contact
Optional
Identity-level contact channels for the publisher (general / security). Per-package security contacts on package profile records remain authoritative for their respective packages; this list is for the publisher entity itself.
maxLength: 8 itemsdescription
string
Optional
Short description / bio of the publisher. SHOULD NOT exceed 280 characters per UI convention. Plain text; no Markdown.
maxLength: 2048 bytesmaxGraphemes: 280 graphemesdisplayName
string
Required
Human-readable name for the publisher (e.g. 'Acme Plugin Co.'). Displayed alongside packages and verification badges. Verification records bind against this value: a change to displayName invalidates any unexpired verification claims targeting this DID until the issuer re-attests.
maxLength: 1024 bytesmaxGraphemes: 100 graphemesupdatedAt
string
datetime
Optional
When this profile was last updated.
url
string
uri
Optional
Publisher's primary homepage. Distinct from per-package repo or homepage URLs.
maxLength: 2048 bytesView raw schema
{
"description": "A publisher's identity-level profile. Distinct from `com.emdashcms.experimental.package.profile`, which carries per-package metadata. The publisher profile is the canonical landing page for the entity behind a DID: 'who is publishing these packages?'. The record key is the literal string `self`. Per-package fields like `authors[]` and `security[]` on package profile records remain authoritative for their respective packages and MAY differ from the values here; clients render package-level fields when present, falling back to publisher profile values otherwise. The publisher profile's `displayName` is the value that `com.emdashcms.experimental.publisher.verification` records bind against — see that lexicon's docs for the validity rules.",
"key": "literal:self",
"record": {
"properties": {
"contact": {
"description": "Identity-level contact channels for the publisher (general / security). Per-package security contacts on package profile records remain authoritative for their respective packages; this list is for the publisher entity itself.",
"items": {
"ref": "#contact",
"type": "ref"
},
"maxLength": 8,
"type": "array"
},
"description": {
"description": "Short description / bio of the publisher. SHOULD NOT exceed 280 characters per UI convention. Plain text; no Markdown.",
"maxGraphemes": 280,
"maxLength": 2048,
"type": "string"
},
"displayName": {
"description": "Human-readable name for the publisher (e.g. 'Acme Plugin Co.'). Displayed alongside packages and verification badges. Verification records bind against this value: a change to displayName invalidates any unexpired verification claims targeting this DID until the issuer re-attests.",
"maxGraphemes": 100,
"maxLength": 1024,
"type": "string"
},
"updatedAt": {
"description": "When this profile was last updated.",
"format": "datetime",
"type": "string"
},
"url": {
"description": "Publisher's primary homepage. Distinct from per-package repo or homepage URLs.",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"displayName"
],
"type": "object"
},
"type": "record"
}