MenuSpaces

Spaces

Two well-known spaces about the group, plus one space for each app or modality the group uses.

A group’s data is divided into spaces, and the standard fixes only two of them. Both hold records about the group, never app data.

The meta space

group.opensocial.meta is the group’s public face: its profile, description, avatar and rules, and how to get in. It concerns the group’s overall presence and discoverability.

Many groups make meta public even when everything else is private. It’s still a space, just one whose access record allows public reads. Today that means any signed-in account: nobody can read a space while signed out. See Presence & discovery.

Record Purpose
profile Name, description, avatar, banner, join policy. Record key self.
rule One rule each, with a stable URI a moderation action can cite.
access Who may read this space.

The members space

group.opensocial.members holds members-only information: the member list and each member’s acceptance, the roles and what they allow, and an index of the group’s other spaces. It concerns roles and access, and is usually readable by members only.

Record Purpose
role Declares a role. The record key is the role id.
permissions Binds roles to actions. Record key self.
membership The group’s side of membership. The record key is the member’s DID.
acceptance The member’s side, written by the member.
space One entry per space under the group: the index of what exists.
access Who may read this space.

Modality spaces

Everything members do together lives in a separate space per app or modality. A group that wants an events calendar gets a calendar space holding community.lexicon.calendar.event records, and a forum gets a forum space holding threads. The standard doesn’t specify these space types. They belong to their apps. The ones apps share today, such as the calendar, are listed under Shared modalities.

A space is created with createSpace, which requires the space.create action. It gets its own access record and is added to the index in members. Apps discover what a group has by reading that index.

Every space has an access record

Whether it’s meta, members or a modality space, each space holds an access record (key self) saying which roles may read it. The host enforces reads.

The same record also lists, per role, which OAuth scopes a member may request when writing as the group in that space.

Anything beyond reading (who may post, who may pin a thread, who may create an event) is a modality-specific feature and belongs to that modality’s own lexicon. See Roles & access.

Space types at a glance

Space type Key Hosted by Purpose
group.opensocial.meta self the group Profile, rules, how to get in.
group.opensocial.members self the group Roles, who holds them, authz config, space index.
group.opensocial.invites self each user Where invites arrive. See Joining & invites.
modality spaces any the group Defined by apps, e.g. a calendar or forum.