At this level
social.colibri.beta · 17- social.colibri.beta.category record A named group of channels within a community.
- social.colibri.beta.channel record A channel's configuration. Lives at key 'self' in the channel's own space. The space type says whether it is a text or voice channel, and the space key is the channel's identity.
- social.colibri.beta.community record A community's public identity. Lives in the community's profile space, which is readable without membership unless the community is private.
- social.colibri.beta.defs defs A reference to a record in the same space. Record keys are unique per repo rather than per space, so a bare key cannot address a record in a space that aggregates many authors.
- social.colibri.beta.label record A label applied to a record in the same space. Permissioned content cannot be taken down by anyone but its author, so moderation of content is advisory: a reader honours the labels published by the labelers its community names.
- social.colibri.beta.member record A community member. The record key is the member's DID, so membership is a direct lookup and a member cannot hold two of these.
- social.colibri.beta.message record A message in a channel. Lives in the author's own permissioned repo for the channel's space.
- social.colibri.beta.moderation record An audit log entry for a moderation action taken by the community. Enforcement is the space authority declining to issue credentials, and this records that it happened.
- social.colibri.beta.permissionAccount permission-set
- social.colibri.beta.permissionBridge permission-set
- social.colibri.beta.permissionCommunity permission-set
- social.colibri.beta.permissionMessaging permission-set
- social.colibri.beta.permissionNotification permission-set
- social.colibri.beta.permissionPush permission-set
- social.colibri.beta.reaction record A reaction to a message in the same channel space.
- social.colibri.beta.role record A named bundle of permissions assignable to community members.
- social.colibri.beta.thread record A thread's configuration, including the link to the channel it belongs to. Lives at key 'self' in the thread's own space and is written only by the community.
- social.colibri.beta.actor.block record A blocked user. One record per block, so unblocking is a delete. The block is private: it stops notifications from the blocked user and collapses their messages for the blocker only, and the blocked user is never told.
- social.colibri.beta.actor.clientPreferences record Client settings that follow the user across devices. Every field is optional and a client applies its own default for an absent one.
- social.colibri.beta.actor.composerState record Emoji usage, skin tone and recent GIFs, kept apart from social.colibri.beta.actor.clientPreferences because it changes with every message.
- social.colibri.beta.actor.defs defs Something the user is doing right now, read from another service they publish to. A client renders it beside their presence.
- social.colibri.beta.actor.deleteAccount procedure Erases the requesting user's Colibri data held by this AppView. This does not touch the user's repos, which only they control.
- social.colibri.beta.actor.getDeletionStatus query Gets what would happen if the requesting user deleted their account.
- social.colibri.beta.actor.getPreferences query Gets the requesting user's own settings, as the AppView currently holds them.
- social.colibri.beta.actor.getProfile query Gets a user's profile.
- social.colibri.beta.actor.grantSpaceAccess procedure Hands the AppView access to one of the requesting user's personal spaces. The client mints a delegation token on its own PDS for the space and passes it here, because a delegation token is single-use and short-lived and the AppView has no OAuth session of its own. The AppView exchanges the token for a space credential and syncs the space.
- social.colibri.beta.actor.listCommunities query Gets the requesting user's communities, in their preferred order.
- social.colibri.beta.actor.mute record A muted subject. One record per mute, so unmuting is a delete rather than a rewrite of a list.
- social.colibri.beta.actor.preferences space A user's own Colibri settings, mutes, blocks and read state.
- social.colibri.beta.actor.profile record A Colibri profile. A public record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record.
- social.colibri.beta.actor.putBlocks procedure Pushes the requesting user's block list to the AppView, so it takes effect immediately instead of waiting for a sync notification. The client writes the underlying block records to its own personal space first, then calls this. The list replaces the AppView's whole copy.
- social.colibri.beta.actor.putMutes procedure Pushes the requesting user's mute list and list of left threads to the AppView, so they take effect immediately instead of waiting for a sync notification. The client writes the underlying mute records to its own personal space first, then calls this. Each list the request carries replaces the AppView's whole copy of that list.
- social.colibri.beta.actor.putSettings procedure Pushes the requesting user's social.colibri.beta.actor.settings record to the AppView, so it takes effect immediately instead of waiting for a sync notification. The client writes the record to its own personal space first, then calls this. An absent field leaves the current value unchanged.
- social.colibri.beta.actor.putSpaceModeration procedure Pushes one of the requesting user's social.colibri.beta.actor.spaceModeration records to the AppView, so it takes effect immediately instead of waiting for a sync notification. The client writes or deletes the record in its own personal space first, then calls this.
- social.colibri.beta.actor.putSpaceNotification procedure Pushes one of the requesting user's social.colibri.beta.actor.spaceNotification records to the AppView, so it takes effect immediately instead of waiting for a sync notification. The client writes or deletes the record in its own personal space first, then calls this.
- social.colibri.beta.actor.setStatus procedure Sets the requesting user's off-protocol presence. An absent field leaves the current value unchanged.
- social.colibri.beta.actor.settings record A user's Colibri settings.
- social.colibri.beta.actor.spaceModeration record Moderation view options for one community, overriding the ones in social.colibri.beta.actor.clientPreferences. The record key is the community's DID. Deleting the record returns the community to the global options.
- social.colibri.beta.actor.spaceNotification record A notification level for one community, overriding the level in social.colibri.beta.actor.settings. The record key is the community's DID. Deleting the record returns the community to the global level.
- social.colibri.beta.bridge.addReaction procedure Adds a reaction from someone on another service to a message in a linked channel. The community writes the reaction, attributed to that person.
- social.colibri.beta.bridge.createPairing procedure Starts pairing a bridge with a community. Called by the bridge, which shows the returned code to an admin on the other service. A Colibri admin then redeems the code, which proves both sides agreed.
- social.colibri.beta.bridge.createThread procedure Opens a thread beside a linked channel for someone on another service. The community writes the thread, attributed to that person.
- social.colibri.beta.bridge.defs defs Who wrote a record on another service. The community writes every bridged record, and the AppView honours this attribution only on records the community itself wrote.
- social.colibri.beta.bridge.deleteMessage procedure Deletes a message the calling bridge posted.
- social.colibri.beta.bridge.deleteThread procedure Deletes a thread the calling bridge opened, along with its space.
- social.colibri.beta.bridge.editMessage procedure Replaces the text of a message the calling bridge posted.
- social.colibri.beta.bridge.getConfiguration query Lists every registration held by the calling bridge, with its linked channels. A bridge calls this at startup and whenever a registration change reaches it.
- social.colibri.beta.bridge.getPairing query Describes a pending pairing code so an admin can see which bridge they are about to connect.
- social.colibri.beta.bridge.hideMessage procedure Hides a Colibri member's message after a moderator removed its copy on the other service. The community applies a hidden label to the message. Works only when an admin has turned on moderation mirroring for the registration.
- social.colibri.beta.bridge.importMessages procedure Imports earlier messages from someone on another service into a linked channel or a thread beside it, after an admin asked for a history import. The community writes each message at its original time, and clients see them only when they load history.
- social.colibri.beta.bridge.leave procedure Disconnects the calling bridge from a community and deletes its registration, for when the remote space removed the bridge. Messages it already relayed stay.
- social.colibri.beta.bridge.listRegistrations query Lists the bridges connected to a community.
- social.colibri.beta.bridge.listRemoteRooms query Lists the rooms a bridge reported on the other service, for linking them to channels.
- social.colibri.beta.bridge.postMessage procedure Posts a message from someone on another service into a linked channel. The community writes the message, attributed to that person.
- social.colibri.beta.bridge.putRemoteRooms procedure Replaces the list of rooms the calling bridge can see on the other service, offered to admins when linking channels.
- social.colibri.beta.bridge.redeemPairing procedure Connects a bridge to a community by redeeming its pairing code. Writes a registration with no linked channels.
- social.colibri.beta.bridge.registration record A bridge the community has paired with. Lives in the community's configuration space, so every member can see which bridges are connected and which channels they relay. Written only by the community.
- social.colibri.beta.bridge.removeReaction procedure Removes a reaction the calling bridge added.
- social.colibri.beta.bridge.replaceAvatar procedure Swaps the avatar on every message and thread attributed to one remote author of this registration, so the previous avatar blob is no longer referenced.
- social.colibri.beta.bridge.reportBackfill procedure Reports how far a history import has got, so admins can follow it.
- social.colibri.beta.bridge.revoke procedure Disconnects a bridge from a community and deletes its registration. Messages it already relayed stay.
- social.colibri.beta.bridge.update procedure Changes which channels a bridge relays, or pauses and resumes it. Omitted fields stay as they are.
- social.colibri.beta.bridge.updateThread procedure Renames a thread the calling bridge opened.
- social.colibri.beta.bridge.uploadBlob procedure Uploads a file to the community's repo for use in a bridged message or as a bridged author's avatar.
- social.colibri.beta.category.create procedure Creates a category in a community.
- social.colibri.beta.category.delete procedure Deletes a category. Its channels are not deleted: they become uncategorised until moved to another category.
- social.colibri.beta.category.update procedure Updates a category's name and the permissions its channels inherit.
- social.colibri.beta.channel.create procedure Creates a channel. This creates a space for the channel, then writes the channel's configuration record at key 'self' inside that space.
- social.colibri.beta.channel.defs defs A file attached to a message.
- social.colibri.beta.channel.delete procedure Deletes a channel's space. Messages members wrote in it stay in their own repos and become unreadable to everyone but their authors.
- social.colibri.beta.channel.getChannel query Gets one channel.
- social.colibri.beta.channel.listMessages query Lists messages in a channel or in a thread, newest first by default. Messages from the repo-backed channel this one was migrated from are included and marked legacy. Messages moved in from another space are included in their move order, and messages moved out are absent.
- social.colibri.beta.channel.listReactions query Lists everyone who reacted to one message, for the hover card.
- social.colibri.beta.channel.listSummaries query Gets the latest message of every text channel in a community that the requesting user may read, for channel list previews. Channels with no message the user may see are absent.
- social.colibri.beta.channel.listUnreadStatus query Lists per-channel unread state for the requesting user.
- social.colibri.beta.channel.putReadCursors procedure Pushes the requesting user's read cursors for one community to the AppView, so unread counts update immediately instead of waiting for a sync notification. The client writes its social.colibri.beta.channel.read record for the community to its own personal space first, then calls this. Clients should debounce this rather than calling it on every message. The user's other sessions receive the cursors that moved as a social.colibri.beta.sync.defs#readCursorEvent.
- social.colibri.beta.channel.read record Read state for one community's channels. The record key is the community DID, which bounds each record to a community's channel count and makes leaving a community a single delete.
- social.colibri.beta.channel.reorder procedure Sets the channel order within one category.
- social.colibri.beta.channel.text space A text channel. The space key is the channel's identity, and the channel's own configuration is the social.colibri.beta.channel record at key 'self' inside it.
- social.colibri.beta.channel.thread space A thread beside a text channel. The space key is the thread's identity, and the thread's own configuration is the social.colibri.beta.thread record at key 'self' inside it. That record carries the link to the parent channel and only the community may write it, so a thread cannot claim a channel its community did not put it in.
- social.colibri.beta.channel.update procedure Updates a channel's configuration. An absent field leaves the current value unchanged.
- social.colibri.beta.channel.voice space A voice channel. Holds only its own configuration record, because call state is off-protocol.
- social.colibri.beta.community.adopt procedure Adopts an existing account as a community: this AppView takes custody of its credentials, creates the four community spaces on whichever PDS already hosts it, and seeds the same starter layout social.colibri.beta.community.create does. The account keeps its own DID, handle and PDS, and the caller becomes its owner. Use this instead of community.create to bring your own DID.
- social.colibri.beta.community.applyLabel procedure Applies a label to a record in one of the community's spaces. This is how content is hidden, marked as a spoiler, or has its link previews suppressed. The record itself is untouched, since it lives in its author's own repo, but a `hidden` label stops this AppView serving the record: it is withheld from reads and from the events socket, and replies to it see a deletedMessageView in its place. Moderators holding `label.apply` and the record's own author still see it.
- social.colibri.beta.community.approveApplication procedure Approves a pending application, admitting the subject as a member.
- social.colibri.beta.community.authorizeHost procedure Starts a sign-in as a community host account. The requesting user opens the returned URL, signs in as that account on its own server and allows the AppView to act for it. The AppView then adopts the account as a new community, or reconnects an existing community after its sign-in lapsed or its account moved. Poll getHostAuthorization with the returned request to learn the outcome.
- social.colibri.beta.community.ban procedure Bans a member from a community. This removes their member record and stops the community issuing them space credentials. Their existing content is not deleted: it stays in their own repo, where it can still be labelled or filtered.
- social.colibri.beta.community.configuration space A community's operational settings and its category layout.
- social.colibri.beta.community.create procedure Provisions a new community: an account on the AppView's PDS, its four spaces, an owner role, and a starter layout of two categories holding one text channel and one voice channel between them. This call runs long enough that progress is also emitted over social.colibri.beta.sync.subscribeEvents.
- social.colibri.beta.community.createInvitation procedure Creates an invitation code for a community.
- social.colibri.beta.community.defs defs A pending request to join a community that requires approval.
- social.colibri.beta.community.delete procedure Deletes the community's spaces and its account. Members' own records stay in their own repos and simply become unreadable.
- social.colibri.beta.community.deleteImage procedure Clears a community's picture or banner. Idempotent: clearing an image that was never set succeeds. The blob itself is left in the community's repo rather than deleted, so an older record revision still resolves.
- social.colibri.beta.community.deleteInvitation procedure Deletes an invitation code.
- social.colibri.beta.community.dismissApplication procedure Hides a pending application from the active queue without refusing it. This is an AppView-local change and is never written to the community's repo.
- social.colibri.beta.community.getCommunity query Gets a community by DID or handle.
- social.colibri.beta.community.getHostAuthorization query Reports the outcome of a sign-in started with authorizeHost. Only the user who started it can read it.
- social.colibri.beta.community.getHosting query Describes where a community's account lives and whether the AppView can still act for it. Only administrators of the community can read it.
- social.colibri.beta.community.getInvitation query Resolves an invitation code, so a client can show what it leads to before the user accepts. This is readable without membership.
- social.colibri.beta.community.handOverHost procedure Gives an administrator access to a community account that lives on this AppView's server, so they can move it to another server. The AppView sets the given email on the account, so codes the server sends reach the administrator, and returns a new password once. The password works for 60 minutes. If the account has not moved by then, the AppView replaces it and signs out every session.
- social.colibri.beta.community.join procedure Admits the requesting user to a community. Joining is an AppView procedure rather than a record the user writes, because admission is what makes the community's spaces readable to them.
- social.colibri.beta.community.kick procedure Removes a member from a community. The member may rejoin unless the community requires approval to join.
- social.colibri.beta.community.leave procedure Removes the requesting user's membership in a community.
- social.colibri.beta.community.listApplications query Lists pending requests to join a community that requires approval.
- social.colibri.beta.community.listBans query Lists the members currently banned from a community. Being banned means the community declines to issue them space credentials, so they cannot read it. Their existing messages stay in their own repos.
- social.colibri.beta.community.listCategories query Gets the community's category layout, each category with its channels already nested. This is what a client needs to draw the sidebar in one call.
- social.colibri.beta.community.listChannels query Lists a community's channels as a flat list, for clients that do not need the category grouping.
- social.colibri.beta.community.listInvitations query Lists a community's invitation codes.
- social.colibri.beta.community.listMembers query Lists a community's admitted members.
- social.colibri.beta.community.listMigratable query Lists the repo-backed communities the requesting user belongs to that have not finished moving onto spaces. The AppView reads this live from the user's own public repo and each candidate's public repo. A community that cannot move, such as one inside its owner's repo or one whose repo did not respond, is listed in state blocked with a reason.
- social.colibri.beta.community.listModerationLog query Lists a community's moderation audit log.
- social.colibri.beta.community.listRoles query Lists a community's roles.
- social.colibri.beta.community.members space A community's membership and the roles that can be assigned within it.
- social.colibri.beta.community.migrate procedure Starts moving a repo-backed community onto spaces and returns once the move is queued. Structure, roles, members and bans are recreated in spaces stamped with migratedFrom. Message history of current members is copied from their public repos and served alongside as read-only legacy messages. The move runs in the background and reports progress through social.colibri.beta.sync.defs#communityProgressEvent. Calling it again while it runs returns the current state, and calling it after a failed atte
- social.colibri.beta.community.moderation space A community's moderation audit log. Kept in its own space so it can be read by moderators without being readable by the whole membership.
- social.colibri.beta.community.negateLabel procedure Retracts a label by writing a negating one. The original label record is left in place.
- social.colibri.beta.community.profile space A community's public identity: the one part of a community that can be read before joining it.
- social.colibri.beta.community.putImage procedure Sets a community's picture or banner. The bytes are uploaded to the community's own repo, which is why this goes through the AppView: a community's blobs can only be written with the community credentials the AppView holds, and a space record must reference a blob living in the repo that holds the record. Replaces whatever was there before.
- social.colibri.beta.community.registerCredentials procedure Hands the AppView credentials for a community hosted elsewhere, so it can administer a community it did not create. The password is stored encrypted at rest.
- social.colibri.beta.community.reorderCategories procedure Sets the complete display order of a community's categories.
- social.colibri.beta.community.setMemberRoles procedure Sets the complete set of roles a member holds.
- social.colibri.beta.community.settings record A community's operational settings. Separate from the profile record so the two have different read audiences.
- social.colibri.beta.community.transferOwnership procedure Hands the community's protected owner role from the caller to another member. The subject gains every protected role the caller holds, then the caller loses them. The caller keeps their other roles.
- social.colibri.beta.community.unban procedure Lifts a ban, letting the community issue the subject space credentials again.
- social.colibri.beta.community.undismissApplication procedure Restores a dismissed application to the active queue. This is an AppView-local change and is never written to the community's repo.
- social.colibri.beta.community.update procedure Updates a community's settings. A field left absent stays unchanged.
- social.colibri.beta.embed.defs defs The author of a link preview.
- social.colibri.beta.embed.getMetadata query Fetches and parses a link preview. The AppView fetches the URL on the client's behalf, so the client's address is never exposed to the target site.
- social.colibri.beta.embed.gifCategories query Lists the categories shown in the GIF picker.
- social.colibri.beta.embed.searchGifs query Searches the GIF picker's provider.
- social.colibri.beta.embed.trendingGifs query Gets trending GIFs from the GIF picker's provider.
- social.colibri.beta.emoji.createPack procedure not from the namespace authority Creates a pack of a community's custom emoji.
- social.colibri.beta.emoji.defs defs Every custom emoji and pack in one repo.
- social.colibri.beta.emoji.delete procedure not from the namespace authority Deletes a community's custom emoji and removes it from every pack of the community. Copies other people made stay in their repos.
- social.colibri.beta.emoji.deletePack procedure not from the namespace authority Deletes a community's pack. The emoji in it stay.
- social.colibri.beta.emoji.follow record Marks its author as following a custom emoji pack or a single custom emoji. Presence means following and deleting it means unfollowing. The user writes it into their own social.colibri.beta.actor.preferences space, so only they and the AppView can read it. The subject is referenced by URI without a CID, so renames, new images and pack membership changes reach the follower.
- social.colibri.beta.emoji.getCatalog query not from the namespace authority Lists the custom emoji and packs in one repo, from every supported emoji provider. Works for communities and users alike, since the records are public.
- social.colibri.beta.emoji.getEmojis query Gets custom emoji by record URI, across any number of repos and every supported emoji provider. URIs that name no emoji are left out.
- social.colibri.beta.emoji.getLibrary query Gets the requesting user's emoji library: the emoji and packs they uploaded, plus everything they follow, hydrated with images.
- social.colibri.beta.emoji.putFollow procedure Pushes one social.colibri.beta.emoji.follow record to the AppView, so it takes effect immediately instead of waiting for a sync notification. The client writes or deletes the record in its own preferences space first, then calls this. The AppView starts tracking the subject's owner and answers with the followed item as the picker shows it.
- social.colibri.beta.emoji.rename procedure not from the namespace authority Renames a community's custom emoji. Providers that key records by name move the record to a new key and repoint pack memberships, so the emoji's URI changes.
- social.colibri.beta.emoji.updatePack procedure not from the namespace authority Renames a community's pack or replaces its emoji. Omitted fields stay as they are.
- social.colibri.beta.emoji.upload procedure not from the namespace authority Adds a custom emoji to a community. The bytes are uploaded to the community's own repo and the AppView writes the provider's record there with the community's credentials.
- social.colibri.beta.notification.clear procedure Clears the requesting user's inbox up to a point in time. Every notification raised at or before it is marked seen and left out of listNotifications, getUnreadCount and getUnseen from then on.
- social.colibri.beta.notification.defs defs A notification for the requesting user.
- social.colibri.beta.notification.getUnreadCount query Gets how many of the requesting user's notifications are unread.
- social.colibri.beta.notification.getUnseen query Gets the requesting user's unseen notifications for one channel, used to render that channel's unread badge detail.
- social.colibri.beta.notification.listNotifications query Gets the requesting user's notifications, newest first.
- social.colibri.beta.notification.markReadFromNotification procedure Marks a channel or thread read through the message a push notification announced, from the notification's Mark as read action. Takes no auth: the signed token from the push payload's readToken names the user, the channel and the message, and expires after seven days. Moves the user's read cursor forward, marks that channel's notifications through the message seen, and tells the user's sessions and push devices.
- social.colibri.beta.notification.registerPush procedure Registers a push endpoint for the requesting user's device. Web Push requires endpoint, p256dh, and auth. FCM requires token. APNs requires token and environment.
- social.colibri.beta.notification.unregisterPush procedure Removes a previously registered push endpoint.
- social.colibri.beta.notification.updateSeen procedure Marks every notification raised at or before a point in time seen.
- social.colibri.beta.notification.updateSeenForMessage procedure Marks the notifications raised by one message seen.
- social.colibri.beta.role.create procedure Creates a role in a community.
- social.colibri.beta.role.delete procedure Deletes a role.
- social.colibri.beta.role.putBadgeImage procedure Sets a role's badge to an uploaded image. The bytes are uploaded to the community's own repo, which is why this goes through the AppView: a space record must reference a blob living in the repo that holds the record. Replaces whatever badge was there before. Use social.colibri.beta.role.update with removeBadge to clear it.
- social.colibri.beta.role.update procedure Updates a role's settings.
- social.colibri.beta.server.describeServer query Gets information about this AppView.
- social.colibri.beta.server.listNodes query Lists the nodes of this AppView network that currently accept clients. Clients measure the round trip to each probe URL and connect their event socket, voice signaling and media requests to the fastest node.
- social.colibri.beta.thread.create procedure not from the namespace authority Opens a thread beside a text channel. This creates a space for the thread, then writes the thread's configuration record at key 'self' inside it. The anchor message is referenced rather than copied, so it stays in its author's repo in the channel where it was written.
- social.colibri.beta.thread.defs defs A thread as the AppView serves it. The thread's identity is its space.
- social.colibri.beta.thread.delete procedure Deletes a thread's space. Messages members wrote in it stay in their own repos and become unreadable to everyone but their authors, the same way deleting a channel works. Messages that were moved into the thread go with it.
- social.colibri.beta.thread.follow record not from the namespace authority Marks its author as following the thread it lives in. Presence means following and deleting it means leaving. The follower writes it into the thread's own space, so following is visible to everyone who can read the thread.
- social.colibri.beta.thread.getThread query not from the namespace authority Gets one thread, with its anchor message resolved so a client can open it without having read the channel it belongs to.
- social.colibri.beta.thread.listMembers query Lists who belongs to a thread: the author of the message it was opened from, everyone who has posted in it, everyone mentioned in it directly or through a role, and everyone who follows it. Only current members who may read the thread are listed.
- social.colibri.beta.thread.listThreads query not from the namespace authority Lists a community's threads, most recently active first. Threads the requesting user may not read are absent rather than refused.
- social.colibri.beta.thread.moveMessages procedure Moves messages into another thread or channel. A message lives in its author's own repo and cannot be rewritten by a moderator, so the move is a `moved` label written into the source space for each message. The destination serves each moved message at its own record key, so a selection keeps the order it was written in and reads among the destination's own messages by send time. The AppView withholds a moved message from the space it came from.
- social.colibri.beta.thread.repoint procedure Moves a thread to another channel by rewriting the channel its record links to, and optionally repoints it at another message. Who may read the thread follows the new channel. Left without an anchor the thread keeps the one it has, so its marker sits wherever that message now lives.
- social.colibri.beta.thread.update procedure Renames, closes, reopens or locks a thread, or changes who may read it. An absent field leaves the current value unchanged.