app.cosmosis.supercluster

A derived grouping of accounts defined as a set expression (union / intersection / difference) over Clusters and/or other Superclusters. No members are stored directly; membership is evaluated at query time by resolving the expression tree. Superclusters are always permissioned: each lives inside its own dedicated Space of type `app.cosmosis.superclusterSpace`, with the Space `skey` and record `rkey` sharing the same tid. (Every leaf of an expression is ultimately a Cluster, and Clusters are always permissioned, so a public Supercluster could not be resolved by third parties.) To resolve a Supercluster, the reader must have access to the Space of every Cluster and Supercluster it references, directly or transitively.

Repository @cosmosis.app did:plc:ahyfb4aosesmcpkc34kmc6mo namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authoritycosmosis.app
Indexed

Record

record · key tid

Properties

createdAt

requiredstring · datetime
  • maxLength: 300

expression

requiredunion

Root node of the expression tree: a set operation over child nodes, or a single leaf reference to a Cluster or Supercluster. The union is open so new node kinds can be added later without a breaking change.

name

requiredstring
  • maxLength: 100

#clusterRef

object

A leaf node referencing a Cluster record. Resolves to the set of `subject`s of that Cluster's clusterMember records. The resolver must have access to the referenced Cluster's Space.

Properties

uri

requiredstring · uri

The space record URI of the referenced `app.cosmosis.cluster` record.

#setOperation

object

Combines two or more expression nodes using a set operation. 'difference' expects exactly 2 operands (A minus B); deeper subtractions should be expressed with nested setOperations.

Properties

op

requiredstring
  • knownValues: union | intersection | difference

operands

requiredarray
  • minLength: 2
itemsunion

A child node: a nested set operation, or a leaf reference to a Cluster or Supercluster.

#superclusterRef

object

A leaf node referencing another Supercluster record, enabling composition. Cycle detection must be enforced at write time, and resolvers must also guard against cycles (a referenced Supercluster can be edited after this one is written).

Properties

uri

requiredstring · uri

The space record URI of the referenced `app.cosmosis.supercluster` record.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Space type for a single Cosmosis Supercluster. Each Supercluster gets its own Space of this type, holding exactly one app.cosmosis.supercluster record. The Space skey and the record's rkey share the same tid. Resolving the Supercluster also requires access to the Spaces of every Cluster and Supercluster it references.

  • A personally curated group of accounts. Clusters have no fixed size cap: membership is stored as separate `app.cosmosis.clusterMember` records rather than inline, so a Cluster can hold thousands of members. Clusters are always permissioned: each Cluster lives inside its own dedicated Space of type `app.cosmosis.clusterSpace`. Note that the Space's own member list governs *access* to the Cluster and is distinct from the clusterMember records, which are the Cluster's *contents*.

  • A single account's membership in a Cluster. Lives inside the same Space as its parent `app.cosmosis.cluster` record. Delete this record to remove the account from the Cluster. The record key SHOULD be the subject's DID when that DID is a valid record key (true for all did:plc and most did:web identifiers), which makes writes idempotent and lets clients remove a member without a lookup; otherwise use a tid.

  • Space type for a single Cosmosis Cluster. Each Cluster gets its own Space of this type, holding exactly one app.cosmosis.cluster record plus that Cluster's app.cosmosis.clusterMember records. The Space skey and the Cluster record's rkey share the same tid. Granting an app access to one Space of this type exposes only that one Cluster.