At this level
fyi.opensocial · 162- fyi.opensocial.acceptance record The member's side of membership, written by the member into the members space. Gates appearing in the roster, not access.
- fyi.opensocial.access record Who can access this space, in every space under the group. Grants apply only to this space. Members whose roles grant read may obtain space credentials and write their own records here. The group authority issues space credentials according to this record and nothing else.
- fyi.opensocial.activateGroup procedure Switch a deactivated group back on. Allowed to anyone who held group.configure when it was switched off.
- fyi.opensocial.addRecoveryKey procedure Add a steward's recovery key to the group's did:plc, ahead of this host's own key. Only the public did:key is sent; the private half stays with the steward. Requires group.configure.
- fyi.opensocial.admitMember procedure Approve a join request, giving the requester their roles. Requires admit. denyJoinRequest declines one.
- fyi.opensocial.applyLabel procedure Write a label record into the subject's space. Requires label, or takedown for !hide and !takedown.
- fyi.opensocial.approveAssistantRequest procedure Connect an assistant to the group as the caller: it may read what the caller can, and leave pages for the caller to look at: their own, and, with group.configure, the site's tabs'. Requires membership.
- fyi.opensocial.approveAuthorization procedure Approve an app's pending request to sign in as a group. The app gets what the caller's roles in the group allow and nothing more, and every token it obtains is recorded as the caller's. Returns the URL to send the browser back to the app with.
- fyi.opensocial.assignRoles procedure Set a member's full role set. Requires role.assign; every role added or removed must be in the caller's assignable set.
- fyi.opensocial.basePermissions permission-set
- fyi.opensocial.cancelAccountMove procedure Stop moving the account the caller signed in to move: its tokens are given back to its server and forgotten here, and a copy of it not yet finished is discarded.
- fyi.opensocial.cancelJoinRequest procedure Withdraw a pending join request.
- fyi.opensocial.channel space A channel of a group's site kept for chosen people: only they can see it, read what's in it, or change it, whoever runs the group included. The group keeps it, its host on their behalf; it holds the channel itself, its name, tabs and pages of their own, as the group's one record.
- fyi.opensocial.checkAddress query Whether an address under this host's domain is free for a new group: no account's handle here, nor kept by a group as its address after it took a handle of its own. Anyone may ask, as anyone may resolve a handle.
- fyi.opensocial.checkGroupHandle query Whether a domain is ready to be the group's handle: what its _atproto DNS record, or its /.well-known/atproto-did, names now. Changes nothing. Requires group.configure.
- fyi.opensocial.checkImport query What moving an account here would make of it, before anything moves (importAccount moves it so): its handle here, whether that's the one it has, and its address, this host's own name for it. A handle on a domain of the account's own that still names it comes along; one its old server gives out becomes the address. `refused` says why it can't have that address, as importAccount would. While the caller's own move of it is pending, `recommendedCreds` says again what the operation should name, as im
- fyi.opensocial.completeImport procedure Finish moving an account here: send the PLC operation its old server signed, which must give it to this host as importAccount said, switch it on and tell the network, and make the group's spaces with the caller as its admin. Only for whoever started the move.
- fyi.opensocial.configure permission-set For group-DID sessions.
- fyi.opensocial.conversation space A conversation between people, hosted by whoever started it, not by a group. Its member list is everyone in it; each person's messages are in their own repo in the space. The starter's about record says who's in it.
- fyi.opensocial.createAppPassword procedure Make an app password for the group: what an app that signs in with a handle and a password, such as the Bluesky app, signs in to the group with (com.atproto.server.createSession). It stays the caller's: it stops working once they could no longer make it, and its sessions are listed as theirs among the group's connected apps. Its sessions may use the group's public repo, its blobs and other services, never its spaces, nor get service tokens for the account's own methods or this host's. Requires a
- fyi.opensocial.createGroup procedure Host-level: create a new group on this host. Authenticated as the founder (service auth from their PDS). The founder and any listed stewards become its first admins. Mints the group DID, creates the meta and members spaces, writes the bootstrap records and, for a discoverable group, a declaration. Modality spaces are left to the apps that use them (createSpace).
- fyi.opensocial.createInvite procedure Write an invite into someone's own invites space. Requires invite.
- fyi.opensocial.createPeopleSpace procedure Make a new place of the group's for a channel kept for chosen people — a chat, say, for a tab about it — readable and written in by that channel's people alone, and kept so as they change. Anyone in the channel may.
- fyi.opensocial.createReport procedure Report an account or record in a group, opening or reopening it in the moderation queue. Uses service auth from the caller, who must be able to read the subject's space.
- fyi.opensocial.createSpace procedure Create a space under the group with its access record and, unless index is false, an index entry. Requires space.create.
- fyi.opensocial.deactivateGroup procedure Switch the group off: its account is deactivated on this host, so nothing can read its spaces or write as it. Reversible with activateGroup. Requires group.configure. The host remembers who held group.configure at this moment, because while the group is off its membership cannot be read.
- fyi.opensocial.decideTabOffer procedure Decide on a tab offered to the site, for whoever may change it: accept puts it in one of the site's channels as it is, with everything kept in it, now read by whoever that channel is for; decline leaves it where it was.
- fyi.opensocial.declaration record Marks a DID as a group. Lives in the public repo. Points at the meta space. Discovery only.
- fyi.opensocial.declineAssistantRequest procedure Turn down an assistant's request to connect to the group.
- fyi.opensocial.declineAuthorization procedure Decline an app's pending request to sign in as a group. Returns the URL to send the browser back to the app with, carrying access_denied.
- fyi.opensocial.declineInvite procedure Turn down the group's invite to the caller: it goes from the group's list and the caller's inbox. The group may invite them again.
- fyi.opensocial.defs defs Contents of an access record.
- fyi.opensocial.deleteDraft procedure Let a draft your assistant left go: added, or not wanted.
- fyi.opensocial.deleteGroup procedure Delete the group: its account, its repo and its spaces on this host, and the host's own state about it. Irreversible. Requires group.configure, or, for a deactivated group, having held it when the group was switched off. Records members wrote into its spaces live on their own PDSes and are not touched. If no steward holds a recovery key, the group's did:plc is tombstoned too, since nobody could ever use it again; with one, the DID is left for its holders.
- fyi.opensocial.deletePageDraft procedure Drop the page the caller's assistant left for a tab: once it is published or saved, or not wanted.
- fyi.opensocial.deletePeopleChannel procedure Delete a channel kept for chosen people, for everyone in it: anyone in it may. What its tabs kept goes with it.
- fyi.opensocial.deleteRole procedure Remove a role. Requires group.configure. Fails if any membership still holds it.
- fyi.opensocial.deleteRule procedure Remove a rule. Requires group.configure.
- fyi.opensocial.deleteSpace procedure Delete a group space and its index entry. Requires space.delete.
- fyi.opensocial.denyJoinRequest procedure Deny a pending join request. Requires admit. The requester sees it as no request at all, and may ask again.
- fyi.opensocial.describePush query How this host sends alerts to people's devices (Web Push): the key a browser subscribes with, and, to someone signed in, how many of their devices it alerts.
- fyi.opensocial.discardSiteDraft procedure Let the caller's draft go: the live site is as it was.
- fyi.opensocial.draftFrontPage procedure Start making a new group's front page and the layout around its public pages, in its look, into the caller's draft: getSiteDraft says it's being made, then has the draft. Nothing if the caller has a draft already or the site has a front page or layout of its own.
- fyi.opensocial.ejectMember procedure Remove a member and their access. Requires eject; every role the member holds must be in the caller's assignable set.
- fyi.opensocial.finishAccountMove procedure Finish moving the account the caller signed in to move: with the code its server emailed, the host has its server sign the operation that gives its identity to this host, then finishes as completeImport does, and gives its tokens back.
- fyi.opensocial.getAccountMove query The account the caller signed in to move here from the console (/console/move/login), if any: the host keeps its tokens at its server for them until the move is finished or cancelled, for a day at most. Empty when there is none.
- fyi.opensocial.getActor query Get a person as a view names them. Requires auth. Answers for the caller themselves, or for anyone the host shows — a member of a group it runs, or someone asking to join one.
- fyi.opensocial.getActorGroups query Get the groups on this host the actor is in. For the caller, all of theirs; for anyone else, only those the caller is in too, since a group's members are only its members' to know.
- fyi.opensocial.getActorInvites query The caller's own invites still waiting, from the groups on this host, newest first: for an app, which can't read the caller's inbox. With group, that group's only.
- fyi.opensocial.getAssistantRequest query An assistant's pending request to connect to a group, as the member deciding sees it on the group's site: which assistant, and whether the caller may say yes: any member may.
- fyi.opensocial.getAuthorization query An app's pending request to sign in as a group, as the caller would approve it: the app, the groups the caller may act for, and for each one what the caller's roles let the app do. Called by the console's approval page, with service auth from the caller's own PDS.
- fyi.opensocial.getBlobFields query The fields of these kinds of record that hold a file, and what each takes, by their lexicons: the host's own, and the group's. What a page may upload, besides a picture, for a record it writes.
- fyi.opensocial.getDraftFile query One of the files a draft your assistant left for you brings, by its number (from 1), for you to add it with: a picture for a page, say, which you upload as yours.
- fyi.opensocial.getGroup query Get a detailed view of a group: its profile and rules, and — for a viewer who may read the members space — how many are in it (listMembers names them), its roles, spaces and their read gates, plus the join queue for a viewer holding `admit`. Without auth, only the group's did and handle; with it, the viewer's standing and what their roles let them read. Every gate is the decision a space credential is minted on.
- fyi.opensocial.getGroupAuth procedure Obtain a DPoP-bound OAuth access token to act as the group DID. The host is the group's PDS and authorization server: the caller authenticates with their personal account (service auth) and presents a DPoP proof; the host issues a short-lived token for the group DID whose space: scopes are exactly what the caller's roles are granted by the space's access record. No group password is involved. The same token may write those kinds of record in the group's public repo too (repoCollections): publish
- fyi.opensocial.getJoinRequest query The caller's own pending request to join, if they have one. Requires no action: listJoinRequests is the moderator's queue and needs `admit`, which leaves a requester unable to see the request they themselves made. Returns nothing once a request has been decided, so a denial is not disclosed.
- fyi.opensocial.getNotificationPreferences query How much of a group reaches the caller's Activity: theirs alone.
- fyi.opensocial.getPageDraft query The page the caller's assistant left for one of the site's tabs (which needs group.configure), if any, and the caller's assistants connected to the group. Only the caller's own: nobody sees another member's drafts.
- fyi.opensocial.getSite query The group's site record. A member gets the whole of it as they may see it: without the channels their roles keep them from, unless they may change the site, when it's every channel, to change and put back with putSite; and the channels for chosen people they're in. Anyone else gets its public part, only when the group's meta space is public. A group that has not published one gets the starter, with no uri.
- fyi.opensocial.getSiteDraft query The caller's draft of the group's site, if they have one, and whether the site's last publish can be undone. Only for whoever may change the site.
- fyi.opensocial.getSiteRecord query One public record a group's site reads, by URI, from the host's index: of a collection the site reads from everyone (answered to anyone), or the group's own or a member's of a collection it reads (a member's to members only). Anything else isn't the site's to read, except to whoever may change the site, for whom the host reads it from the account's own server: what a tab is about, when it's made.
- fyi.opensocial.getSpaceBlob query A picture or file in one of the group's spaces, for a caller the space lets read it: the host reads it from whoever wrote it, as the space's authority, so a page never reaches anyone's own server.
- fyi.opensocial.getSubjectHistory query Get a subject's moderation history, oldest first. Requires mod.read.
- fyi.opensocial.getSuggestedSite query What a new group's site might start with, from its name and what it's for: its channels, their tabs, and looks of its own to choose from. Host-level, for whoever is starting a group. Empty when the host can't say.
- fyi.opensocial.getTabBundle query A tab you can see, as a template shared from it has it, for sharing it with everyone as yourself: its page, its methods and the kinds of record it makes up, the tab's namespace in them made the placeholder, and what a tab of it does. Its records are written in your own repo by you: a fyi.opensocial.templateVersion, each file a blob, and the fyi.opensocial.template listing it, at the record key given. Refused as shareTab refuses, and a new version whose kinds of record change in a way records alr
- fyi.opensocial.getTabWriters query Who wrote in a tab, by name and picture: what goes with it if it's removed. For whoever may change where it is.
- fyi.opensocial.getTemplate query One of the templates shared within the group, for its members alone: its page and how a tab uses it, at the version given, or else its latest.
- fyi.opensocial.getTemplateListing query A template shared with everyone, for its own page: what it's called, who made it, what a tab of it does at its latest version, and every version. For anyone; never one shared within a group.
- fyi.opensocial.getTemplateUse query How groups on this host use a template shared with everyone, for whoever made it: counts, never which groups, and never what anyone wrote in a tab of it, which stays in each group. Groups on other hosts can't be seen. For a person's template, them; for a group's, whoever may publish for it.
- fyi.opensocial.getUnread query What's new for the caller in each tab that says what's new in it (its news), in every group on this host they're in: when someone else last added something there, and how much there is for them that they haven't seen. Whether the newest is new to them is theirs to say, from how far they've read, which only they keep.
- fyi.opensocial.getViewer query Who is asking: by the console's session cookie, or their service auth. Nothing, for no one. As knotless's getViewer, for the console to show who is signed in.
- fyi.opensocial.importAccount procedure Start moving an account that already exists on the network, on any server, here to become a group: check the account's proof that it hands its DID to this host, make it here switched off with new keys, and copy its whole repo and its files from its server. Answers with the credentials the account's PLC operation should name; once its server has signed one, completeImport finishes the move. The caller becomes the group's admin. Only a did:plc account, and never the caller's own. Starting again fo
- fyi.opensocial.importAccountSpace procedure While an account's move here is pending (importAccount), bring one of its spaces, as its own server serves it: `meta`, a space it governs (com.atproto.space.exportSpaceMeta's archive), before any repo in it; `repo`, its own repo in a space it wrote in (com.atproto.space.getRepo's archive); or `blob`, one of its files in a space, before the repos that hold it. Only for whoever started the move, and only the account's own. A personalspace or memberspace policy is kept as this host's grants; one th
- fyi.opensocial.inbox space Each person's own inbox, hosted by them rather than by a group: where groups' invites arrive, where whoever puts them in a conversation leaves a pointer to it, and where they keep how far they've read their conversations and their groups' chats, boards and calendars, which only they read.
- fyi.opensocial.invite record An invitation, written by the group in its own repo in the invitee's inbox (fyi.opensocial.invites), through com.atproto.space.*. Deleting it revokes it.
- fyi.opensocial.invites space Each person's own inbox, hosted by them rather than by a group: where groups' invites arrive.
- fyi.opensocial.label record A moderation label, written by the group authority into the space its subject lives in — or, for an account, into the members space.
- fyi.opensocial.labeler record The group as a moderation service: the label values it applies and what it accepts reports about. Written by the group into the meta space.
- fyi.opensocial.leaveGroup procedure Leave the group.
- fyi.opensocial.listAppPasswords query The group's app passwords, never the passwords themselves: every one for whoever has group.configure, and their own for whoever may make them.
- fyi.opensocial.listConnectedApps query The AI apps, MCP clients, you've connected to the group to act as you there, the most lately used first: each by the name it gave, to disconnect with revokeConnectedApp.
- fyi.opensocial.listDrafts query The drafts your assistant left for you in the group's tabs, waiting for you to add or let go: each with the space it goes in, added as you, or for its tab's page to make into what it keeps (page).
- fyi.opensocial.listGroupTokens query The OAuth sessions issued by this host for the group DID (apps acting as the group), plus recent activity. Requires group.configure.
- fyi.opensocial.listGroups query Host-level: the groups hosted here, with their profiles. v1 discovery; a real index would come from declarations on the public network.
- fyi.opensocial.listInvites query Outstanding invites. Requires invite.
- fyi.opensocial.listJoinRequests query The pending-requests queue. Requires admit.
- fyi.opensocial.listListedTemplates query Templates shared with everyone that this host lists, for anyone looking for something to add to their group: each one whoever made it asked to be listed, kept by enough groups on this host for long enough, its latest version scanned with nothing found, and nothing labelling it hidden. Counts are from this host alone.
- fyi.opensocial.listMembers query A group's members, each with their roles, a page at a time in the order of their DIDs, for a caller who may read its members space. With `q`, only those whose handle or DID holds it.
- fyi.opensocial.listNotifications query The caller's Activity, newest first, from every group on this host they're in: what answers something of theirs, what names them, and, where they asked for everything new, each new event or thread. Only what they may still read, as it is now.
- fyi.opensocial.listPeopleChannels query The group's channels kept for chosen people that you're one of: each with who it's for, its tabs and their files. Nobody else learns they exist.
- fyi.opensocial.listRecoveryKeys query The rotation keys on the group's did:plc that matter: stewards' recovery keys and this host's own, highest priority first. A recovery key outranks the host's, so its holder can undo what the host does to the identity and move the group without it. Requires group.configure.
- fyi.opensocial.listRemovedTabs query Tabs removed from where you may change, kept a while with everything written in them to bring back: from the site, for whoever may change it; from a channel for chosen people, for them.
- fyi.opensocial.listSiteRecords query Records of one collection from the host's index, newest first. Without `repo`, a collection the group's site declares it reads, from the group (answered to anyone) or its members (members only). With `repo`, that one account's records — the group's or a member's — of any collection, kept on demand once asked for; members only. `field` and `equals` keep only records whose field (a name, or a path like subject.uri) equals that value. With `from: "network"`, everyone's records of the collection, fr
- fyi.opensocial.listSpaceRecords query Records in one of a group's content spaces, from the host's index of it: one collection or every collection, newest first, a page at a time. Only for those the space's own access record lets read, checked on every call — anyone, signed in or not, for one open to anyone.
- fyi.opensocial.listSubjects query List subjects in the moderation queue. Requires mod.read.
- fyi.opensocial.listTabOffers query Tabs offered to the group's site and waiting: every one, for whoever may change the site, each with its own page to look at; those from channels you're in, for anyone else.
- fyi.opensocial.listTabShares query Where a tab you can see is shared as a template: within the group, with everyone from the group, and with everyone from you; each with its versions, and whether you may take one back.
- fyi.opensocial.listTemplateLikes query Who likes a template shared with everyone, newest first, each about a version of it and with their line about it: as this host has seen them, leaving out any labelled hidden. For anyone.
- fyi.opensocial.listTemplates query The templates shared within the group, each at its latest version: for its members alone.
- fyi.opensocial.manageMembers permission-set For group-DID sessions.
- fyi.opensocial.manageSpaces permission-set For group-DID sessions.
- fyi.opensocial.members space Roles, who holds them, the authz config, and the space index. Usually gated to members.
- fyi.opensocial.membership record Grants a member their roles, in the members space. Written by the group authority; the record key is the member's DID. Writes are bounded by the writer's assignable roles. Creating one admits one waiting to join and decides their request; deleting one ejects the member.
- fyi.opensocial.meta space The group's public face. Profile, rules, how to get in. Often readable by anyone, though may be private to members.
- fyi.opensocial.migrateActivate procedure Destination host: activate the migrated account once the PLC operation is live.
- fyi.opensocial.migrateComplete procedure Source host: sign and submit the PLC operation repointing the group's DID document at the destination, and relinquish the group. Requires group.configure.
- fyi.opensocial.migrateExport query On the source host, for the destination of a move migratePrepare started: a part of the group nothing public serves whole. `meta` is what this host keeps of a space as its authority (whether anyone may read it, who writes there, and who may beyond its access record), as JSON, `repo` the group's own repo in a space (as com.atproto.space.getRepo does), `blobs` the list of its files and `blob` one of them. Authorized by migratePrepare's token, for an hour.
- fyi.opensocial.migratePrepare procedure On the source host: start moving the group to another host. Answers with a service token signed by the group, for the destination's migrateReceive; the group's handle, address and spaces; and a token, good for an hour, with which the destination pulls the group from here (migrateExport). Requires group.configure.
- fyi.opensocial.migrateReceive procedure On the destination host: take the group in. Pulls it from the host it's leaving with migratePrepare's token (its public repo, what the host it leaves keeps of each space as its authority and the group's repo there, its files), checked against the group's current key, and keeps it switched off. The caller must hold group.configure by the group's own records as they arrive. Answers with what the PLC operation should name.
- fyi.opensocial.moderate permission-set For group-DID sessions.
- fyi.opensocial.negateLabel procedure Negate a previously applied label. Requires label, or takedown for !hide and !takedown.
- fyi.opensocial.offerTab procedure Offer a tab of a channel kept for chosen people you're in to the group's site, to one of its channels or wherever those who may change the site think best. While it waits they may read that tab, and nothing else in the channel, to decide.
- fyi.opensocial.participate permission-set For personal sessions.
- fyi.opensocial.permissions record Group-wide grants for each role, in the members space: the OAuth scopes the role holds and the roles its holders may assign. Roles compose by union; there are no deny rules. A writer changes the grants only of roles they may assign, adds no scope their own roles do not hold, and lets no role assign one they may not.
- fyi.opensocial.previewMethod query One of the group's own methods as the page the caller's assistant left for a tab would bring it, before it's published: its body and lexicon from that draft, called as the caller. `output` is what the method returns, as it will once published. Only for whoever may change the group's site, and only their own draft.
- fyi.opensocial.previewPublicPage query A tab's public page as the code the caller's assistant left for it would build it, before it's published: the whole page, under the site's header, at a path under the page's address. Only for whoever may change the group's site, and only their own draft.
- fyi.opensocial.previewSiteDraft query Every public page of the group's site as the caller's draft would publish it.
- fyi.opensocial.profile record The group's profile. Written by the group authority into the meta space.
- fyi.opensocial.provisionGroup procedure Host-level: an app creates a group for a person and gets its own OAuth session on it. Authenticated twice: the person asking, by service auth from their PDS (they become the founder), and the app, by OAuth client authentication in the body (a client assertion for a confidential client) with a DPoP proof in the `DPoP` header, exactly as at the token endpoint. The app must be one this host provisions for. Returns the group and a token response bound to the proof's key, issued to the app's client i
- fyi.opensocial.publishSiteDraft procedure Publish the caller's draft: what it changed goes onto the live site as it is now, and anything else changed meanwhile stays. The last publish can be undone.
- fyi.opensocial.putNotificationPreferences procedure Set how much of a group reaches the caller's Activity.
- fyi.opensocial.putPeopleChannel procedure Make a channel for chosen people, or change one you're in: its name, who it's for, its tabs and their files. Anyone in it may; the people must be the group's members, and leaving yourself out is leaving it. Each tab keeps what it makes in a space of its own, for the same people.
- fyi.opensocial.putRole procedure Create or update a role and its grant. Requires group.configure.
- fyi.opensocial.putRule procedure Create or update a rule. Requires group.configure. Fields are inlined rather than referencing fyi.opensocial.rule, because a record def cannot be used as an input object — same fix as updateProfile.
- fyi.opensocial.putSite procedure Replace the group's site. Requires group.configure. Its files are uploaded first, with uploadSiteFile. Fields are inlined rather than referencing fyi.opensocial.site, because a record def cannot be used as an input object.
- fyi.opensocial.readState record How far you've read in one of a group's places, a chat or a board, say: kept in your own inbox, where only you read it.
- fyi.opensocial.refreshRecords procedure Read records of the caller's own again from their own server, proved (com.atproto.sync.getRecord), and keep them as they are now wherever the host keeps their collection: what a site just wrote or deleted for them shows at once, rather than when the network brings it. A record the host doesn't keep is left alone.
- fyi.opensocial.registerPush procedure Alert one of the caller's devices when something in their Activity is for them and they're not on any of their groups' sites: a browser's Web Push subscription, made with the key describePush gives.
- fyi.opensocial.removeRecoveryKey procedure Take a recovery key off the group's did:plc. This host's own key cannot be removed this way. Requires group.configure.
- fyi.opensocial.requestJoin procedure Ask to join a group, optionally redeeming an invitation. An invite the group has sent the caller, neither taken back nor past its expiresAt, admits them at once, whatever the group's join policy, with the group's default roles; one named that is not such an invite is refused. Unnamed, a waiting invite is redeemed all the same. No role required; authenticated as the requester.
- fyi.opensocial.resolveSubject procedure Resolve or escalate a subject, optionally with a note. Repeating the current status adds the note. Requires mod.resolve.
- fyi.opensocial.restoreTab procedure Bring a removed tab back where it was, with everything written in it; its channel made again if that went too.
- fyi.opensocial.revokeAppPassword procedure Revoke one of the group's app passwords, and sign out every app signed in with it. Its maker may revoke their own; anyone else needs group.configure.
- fyi.opensocial.revokeAssistant procedure Disconnect one of the caller's assistants from the group.
- fyi.opensocial.revokeConnectedApp procedure Disconnect an AI app you connected to the group (listConnectedApps): its tokens end, and it acts as you there no more.
- fyi.opensocial.revokeGroupToken procedure Revoke one act-as session for the group DID. Requires group.configure.
- fyi.opensocial.revokeInvite procedure Retract an outstanding invite. Requires invite.
- fyi.opensocial.role record Declares that a role exists, in the members space. The record key is the role id, of 64 characters at most. A role is deleted only once no member holds it and the permissions record grants it nothing.
- fyi.opensocial.rule record One group rule, with a stable URI a moderation action can cite.
- fyi.opensocial.shareTab procedure Share a tab you can see as a template, for whoever it's shared with to add: its page, its methods and the kinds of record it makes up, never anything written in it. Shared with the group, it's kept in the group's members space, for members to add to their channels. Shared with everyone as the group, it's published in the group's own repo, by whoever may publish for the group, for anyone with its link to add to their own group. Sharing the same tab again to the same place puts out a new version o
- fyi.opensocial.site record A group's site, in its members space: channels of tabs, shown one at a time, each a whole HTML document drawn in a sandboxed frame. Authored by the group DID; written through putSite by whoever holds group.configure. Anyone else is handed only its public part, by the host. A group without one is shown the starter.
- fyi.opensocial.siteDraft record A member's draft of the group's site, keyed by the member's DID: what an AI app connected as them changed, kept apart from the live site (fyi.opensocial.site) until they publish it. Shaped as the site is.
- fyi.opensocial.space record Lists one space in the group's index, in its members space. A discovery aid, not an exhaustive list.
- fyi.opensocial.startAccountMove procedure Start moving the account the caller signed in to move (getAccountMove) here, to become a group they run: the host asks its server for its token for this host, copies it as importAccount does, brings its spaces as importAccountSpace takes them, and asks its server to email the code that lets its identity move (finishAccountMove). Started again, it starts over.
- fyi.opensocial.subscribeSpaces subscription Changes to a group's spaces, as they happen, for one of its members: a #change for each change to a space the caller may read now, saying which space and its new revision, and nothing of what changed. A member who hears one reads again with listSpaceRecords. Members only, with service auth for this method, sent as a Bearer token or, as a browser's WebSocket can't send one, as `token`. The site's own pages hear the same changes at /space-events (server-sent events, with who's online).
- fyi.opensocial.tab space A tab's own space, keyed by the tab's namespace: where it keeps what it makes when it has no place of its own — docs, drafts. The group keeps it, and its readers are exactly whoever can see the tab. Each writer's records are in their own repo in the space.
- fyi.opensocial.takeBackVersion procedure Take back a version of a template the group shared: within the group, whoever shared it or whoever may change the site; with everyone, from the group's own repo, whoever may publish for the group. No tab is brought onto it, and every tab on it goes back to the last version before it that wasn't taken back. Its listing's latest becomes the newest version left.
- fyi.opensocial.template record A template for a tab for a group's site, published by whoever made it, as it's listed: its name, what it's for, its icon, and its latest version, a fyi.opensocial.templateVersion. A site names it by URI; an agent installs it as a skill. Keyed by the template's name.
- fyi.opensocial.templateLike record Liking a template shared with everyone, in whoever likes it's own repo: about one version of it, with a line about it if they like. Shown on the template's page, with their name.
- fyi.opensocial.templateVersion record One version of a published template, as it was put out: never changed, so a tab that names it gets what was chosen. Its files are the template itself, as a folder of it has them: `template.html` (the page, drawn in a sandboxed frame with the site kit in front of it), `SKILL.md` (how to use it, for an agent), `outside.js` and `outside.html` (its public page, if its tabs can have one), `methods/<name>.js` with `lexicons/<name>.json` (the methods it brings, each a query every tab made from it answe
- fyi.opensocial.undoSitePublish procedure Take back what the site's last publish changed: whatever is still as it left it goes back; anything changed since stays.
- fyi.opensocial.undoTabUpdate procedure Put a tab back on the version of its template it was on before the host brought a new one in by itself; that one isn't brought in by itself again. Whoever may change the site, for one of its tabs; anyone in a channel for chosen people, for one of its.
- fyi.opensocial.unregisterPush procedure Stop alerting one of the caller's devices.
- fyi.opensocial.updateGroupHandle procedure Give the group a handle on a domain it owns, once that domain names the group by its _atproto DNS record or its /.well-known/atproto-did; or give it back its own address as its handle. Updates the group's did:plc and tells the network. Its address stays reserved for it. Requires group.configure.
- fyi.opensocial.updateNotificationsSeen procedure Mark some of the caller's Activity read: by id, everything in one place (they've opened it), or all of it.
- fyi.opensocial.updateProfile procedure Replace the profile: name, description, join policy, where it meets, its topics and languages. Requires group.configure. Fields are inlined rather than referencing fyi.opensocial.profile, because a record def cannot be used as an input object — mirrors createGroup.
- fyi.opensocial.updateSpace procedure Change a space: its name in the group's index, and its access record, replaced whole. Requires space.configure.
- fyi.opensocial.updateTemplateListing procedure Ask for a template the group shared with everyone to be listed where people look for things to add, or not: its listing in the group's own repo says so. For whoever may publish for the group. Listing one asks that every version is scanned with nothing found and that enough groups keep it; a host lists it only while they hold.
- fyi.opensocial.uploadImage procedure Upload an image for the profile avatar or banner. Requires group.configure. Binary input like com.atproto.repo.uploadBlob; the group is a parameter because the blob has to land in that group's repo for a profile record to reference it.
- fyi.opensocial.uploadSiteFile procedure Upload one of the files a group's site is made of: a page, a stylesheet, a script, an image or a font. For the site, by whoever holds group.configure; for a channel for chosen people, by any member, to name in a channel they save with putPeopleChannel. Binary input like com.atproto.repo.uploadBlob; the group is a parameter because the blob has to land in that group's repo for its records to reference it.
- fyi.opensocial.watchConversation procedure Ask to be told, on the live stream (/space-events), whenever something is written in a conversation: a space one of its people owns, which the host has been registered to hear (com.atproto.space.registerNotify). Each ping is `event: conversation` with `{ space, repo }` and nothing of what was said. Lasts a day; ask again to keep it.
- fyi.opensocial.withdrawTabOffer procedure Take back an offer of a tab of a channel you're in: those deciding may no longer read it.
- fyi.opensocial.actor.link record not from the namespace authority A link shown on a member's profile in one group, beside their fyi.opensocial.actor.profile in the group's members space. The profile's links field sets which are shown, and in what order. Its fields are app.bsky.actor.link's.
- fyi.opensocial.actor.profile record not from the namespace authority How a member shows in one group: written by the member, in their own repo in the group's members space, so only the group's members read it. Shown in that group instead of their profile elsewhere. Its fields are app.bsky.actor.profile's.
- fyi.opensocial.conversation.about record not from the namespace authority Who's in a conversation, as its starter keeps it, for the others to see: the member list itself is the starter's server's to read.
- fyi.opensocial.conversation.message record not from the namespace authority Something said in a conversation, in its author's own repo in the conversation's space.
- fyi.opensocial.conversation.pointer record not from the namespace authority Left in someone's inbox by whoever put them in a conversation, keyed by the conversation's key: how they find it.
- fyi.opensocial.conversation.state record not from the namespace authority Where you are in a conversation, kept in your own inbox where only you read it, keyed by the conversation's key: how far you've read, and whether it's muted or left. Never shown to the others.