com.pipobscure.bundle.suite
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A set of listed bundles the repository's owner makes available to install together, under a name: the record key. Installing the suite installs each member as it would be installed by itself, and an update follows the suite as members are added and taken out. The suite vouches for none of them: each member is reviewed and verified on its own. What it can do is set a minimum — a signer and attesters a member must carry — below which that member is refused.",
"key": "any",
"record": {
"properties": {
"createdAt": {
"description": "When the suite was first published, by the publisher's clock.",
"format": "datetime",
"type": "string"
},
"description": {
"description": "What the suite is for, in a sentence or two.",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"members": {
"description": "The listings installed together.",
"items": {
"ref": "#member",
"type": "ref"
},
"maxLength": 64,
"minLength": 1,
"type": "array"
},
"subject": {
"description": "'sha256:44d3324ff44da0b4d3efde1810c8cb88bdad5e673d99b011d9072714d884670d', the sha256 of this lexicon's NSID, the same in every suite, so that a backlink index can enumerate every suite on the network.",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"title": {
"description": "A display name; the record key stands in when it is absent.",
"maxGraphemes": 64,
"maxLength": 640,
"type": "string"
}
},
"required": [
"subject",
"members",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"member": {
"description": "One listed bundle in a suite, where it goes, and what it must carry.",
"properties": {
"for": {
"description": "Install it as a plugin, rather than onto the PATH: for the app installed from the listing at this at:// address, or into this scope — a package name, such as a suite's shared scope. Without it, an app's listing installs onto the PATH, and a plugin's for the app its listing names.",
"maxLength": 2048,
"type": "string"
},
"listing": {
"description": "The at:// address of a com.pipobscure.bundle.listing record, with the publisher's DID. It may be anyone's.",
"format": "at-uri",
"maxLength": 2048,
"type": "string"
},
"require": {
"ref": "#require",
"type": "ref"
}
},
"required": [
"listing"
],
"type": "object"
},
"require": {
"description": "What a member must carry to be installed at all: the suite's minimum, checked at install and at every update. Meeting it vouches for nothing; whoever installs still decides whom to accept.",
"properties": {
"attesters": {
"description": "Who must have attested it, each as '[kind@]<did>'.",
"items": {
"maxLength": 2048,
"type": "string"
},
"maxLength": 32,
"type": "array"
},
"identity": {
"description": "The sigstore identity that must have signed it.",
"maxLength": 2048,
"type": "string"
},
"issuer": {
"description": "The OIDC issuer that must have vouched for that identity: an https URL.",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"quorum": {
"description": "How many of the attesters must have attested it (default: all of them).",
"minimum": 1,
"type": "integer"
}
},
"type": "object"
}
},
"id": "com.pipobscure.bundle.suite",
"lexicon": 1
}
Metadata
- DID
-
did:plc:rwypz6edxmzyhob2k3rsl2fw - CID
-
bafyreia3ox6zyhr4ipvmnjkjhccjlmkhxbtxwhx7jehbjsphv7ii65ihti - Indexed At
- 2026-10-19 11:42 UTC
- AT-URI
-
at://did:plc:rwypz6edxmzyhob2k3rsl2fw/com.atproto.lexicon.schema/com.pipobscure.bundle.suite
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
A bundle the repository's owner makes available under a name: the record key, which is also what it installs as. It is an app, or a plugin for one, as its subject says. The record says only where the bundle is fetched f…
-
A statement by the repository's owner about a bundle — that they vouch for it, or that it is bad — identified by its whole-file hash — the hash a bundle signature covers — or about a suite, identified by the has…