com.pipobscure.bundle.suite

pipobscure.com

Documentation

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.

main record

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.

Record Key any Any valid record key

Properties

createdAt string datetime Required

When the suite was first published, by the publisher's clock.

description string Optional

What the suite is for, in a sentence or two.

maxLength: 3000 bytesmaxGraphemes: 300 graphemes
members array of ref #member Required

The listings installed together.

maxLength: 64 itemsminLength: 1 items
subject string uri Required

'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.

maxLength: 2048 bytes
title string Optional

A display name; the record key stands in when it is absent.

maxLength: 640 bytesmaxGraphemes: 64 graphemes
View raw schema
{
  "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 object

One listed bundle in a suite, where it goes, and what it must carry.

Properties

for string Optional

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 bytes
listing string at-uri Required

The at:// address of a com.pipobscure.bundle.listing record, with the publisher's DID. It may be anyone's.

maxLength: 2048 bytes
require ref #require Optional

No description available.

View raw schema
{
  "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 object

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 array of string Optional

Who must have attested it, each as '[kind@]<did>'.

maxLength: 32 items
identity string Optional

The sigstore identity that must have signed it.

maxLength: 2048 bytes
issuer string uri Optional

The OIDC issuer that must have vouched for that identity: an https URL.

maxLength: 2048 bytes
quorum integer Optional

How many of the attesters must have attested it (default: all of them).

minimum: 1
View raw schema
{
  "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"
}

Lexicon Garden

@