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.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | cosmosis.app |
| Indexed |
Record
record · key tidProperties
description
stringmaxLength: 300
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.
maxLength: 100
#clusterRef
objectA 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
The space record URI of the referenced `app.cosmosis.cluster` record.
#setOperation
objectCombines 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
knownValues: union | intersection | difference
minLength: 2
A child node: a nested set operation, or a leaf reference to a Cluster or Supercluster.
#superclusterRef
objectA 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
The space record URI of the referenced `app.cosmosis.supercluster` record.
Similar lexicons
semantic matchLexicons 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.
-
app.cosmosis.cluster
recordA 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*.
-
app.cosmosis.clusterMember
recordA 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.