com.emdashcms.experimental.publisher.profile
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"contact": {
"description": "Identity-level publisher contact. At least one of url or email MUST be present; Lexicon cannot express required-one-of, so aggregators MUST validate this and reject records carrying a contact with neither field. Same shape as `com.emdashcms.experimental.package.profile#contact`.",
"properties": {
"email": {
"maxLength": 256,
"type": "string"
},
"kind": {
"description": "Channel role. 'general' for ordinary contact, 'security' for vulnerability reporting.",
"knownValues": [
"general",
"security"
],
"maxLength": 32,
"type": "string"
},
"url": {
"format": "uri",
"maxLength": 1024,
"type": "string"
}
},
"type": "object"
},
"main": {
"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"
}
},
"description": "Identity-level metadata for a plugin publisher. One record per publisher DID, located at rkey `self`. Optional: a DID may publish packages without ever publishing a publisher.profile, in which case clients fall back to the publisher's handle and per-package metadata for display. EXPERIMENTAL: this NSID is part of the experimental phase of the EmDash plugin registry. The stable namespace target is com.emdashcms.publisher.profile.",
"id": "com.emdashcms.experimental.publisher.profile",
"lexicon": 1
}
Metadata
- DID
-
did:plc:ilznslhspsvk6naatedr66pi - CID
-
bafyreif7cxdtuuurwybrrrslv4gpcbx3orudnik73espfxnlzpo3smbl4i - Indexed At
- 2026-10-08 09:24 UTC
- AT-URI
-
at://did:plc:ilznslhspsvk6naatedr66pi/com.atproto.lexicon.schema/com.emdashcms.experimental.publisher.profile
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Plugin package profile record. EXPERIMENTAL: this NSID is part of the experimental phase of the EmDash plugin registry. The stable namespace target is com.emdashcms.package.profile.
-
Verification claim by one DID about another's status as a trusted EmDash plugin publisher. Modeled on Bluesky's app.bsky.graph.verification shape but in EmDash's own namespace so the semantics are scoped to plugin publi…
-
pub.byline.profile record
An author's byline.pub profile, signed by and stored in the author's own repository. The repo's DID is the author identity; this record is the byline.pub-specific public profile that extends it, independent of any venue…
-
Plugin package release record. EXPERIMENTAL: this NSID is part of the experimental phase of the EmDash plugin registry. The stable namespace target is com.emdashcms.package.release.