Member operations

6 operations named member.*. Every one runs in a batch through apply_ops, dry_run_ops, the CLI or the admin.

Updated
OperationWhat it doesPermissionConfirmation
member.listList the members of the site, newest first, with their status and role keys, optionally only those with a status or matching a query on the email or name, a page at a time.members.managenone
member.inviteInvite a person by email: a pending member with the given roles, and an email with a one-use link to the site's reset page where they set a password.members.managenone
member.setStatusEnable or disable a member.members.managenone
member.setRolesReplace the roles a member holds with the given role keys, each a role of the site's catalogue.members.managenone
member.deleteDelete a member with their sessions and roles.members.managedestructive
member.signOutAllSign out every member of the site at once: the site's member cookies get a new key, so every cookie issued before stops working, and every session of the site is deleted.site.admindestructive

member.list

List the members of the site, newest first, with their status and role keys, optionally only those with a status or matching a query on the email or name, a page at a time. Members are not versioned: a change takes effect at once.

permission: members.managereads onlyclass: read

Example input

{
  "status": "active",
  "limit": 20
}

Input

FieldTypeRequiredNotes
statusstringnoOne of "pending", "active", "disabled".
querystringnoAt least 1 character. At most 120 characters.
offsetintegernoAt least 0. Default 0.
limitintegernoAt least 1. At most 200. Default 50.

Output

FieldTypeRequiredNotes
membersarray of objectyes
members[].idstring (uuid)yes
members[].emailstring (email)yes
members[].namestringyes
members[].statusstringyesOne of "pending", "active", "disabled".
members[].rolesarray of stringyes
members[].emailVerifiedAtstring (date-time) | nullyes
members[].lastLoginAtstring (date-time) | nullyes
members[].createdAtstring (date-time)yes
totalintegeryesAt least 0.

Try it

yarn splash member.list '{"status":"active","limit":20}' --dry-run

member.invite

Invite a person by email: a pending member with the given roles, and an email with a one-use link to the site's reset page where they set a password. Inviting a pending member again sends a fresh link; an active or disabled member is refused. Members are not versioned: a change takes effect at once.

permission: members.managewrites: membersclass: transactionundo: explicit recovery

Example input

{
  "email": "giulia@example.com",
  "name": "Giulia Bianchi",
  "roles": [
    "press"
  ],
  "locale": "it"
}

Input

FieldTypeRequiredNotes
emailstringyes
namestringyesAt least 1 character. At most 120 characters.
rolesarray of stringnoAt most 50 items. Default [].
localestringnoOne of "it", "en".

Output

FieldTypeRequiredNotes
memberobjectyes
member.idstring (uuid)yes
member.emailstring (email)yes
member.namestringyes
member.statusstringyesOne of "pending", "active", "disabled".
member.rolesarray of stringyes
member.emailVerifiedAtstring (date-time) | nullyes
member.lastLoginAtstring (date-time) | nullyes
member.createdAtstring (date-time)yes

Try it

yarn splash member.invite '{"email":"giulia@example.com","name":"Giulia Bianchi","roles":["press"],"locale":"it"}' --dry-run

member.setStatus

Enable or disable a member. Disabling signs the member out everywhere at once. Members are not versioned: a change takes effect at once.

permission: members.managewrites: membersclass: transactionundo: explicit recovery

Example input

{
  "memberId": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
  "status": "disabled"
}

Input

FieldTypeRequiredNotes
memberIdstring (uuid)yes
statusstringyesOne of "active", "disabled".

Output

FieldTypeRequiredNotes
memberobjectyes
member.idstring (uuid)yes
member.emailstring (email)yes
member.namestringyes
member.statusstringyesOne of "pending", "active", "disabled".
member.rolesarray of stringyes
member.emailVerifiedAtstring (date-time) | nullyes
member.lastLoginAtstring (date-time) | nullyes
member.createdAtstring (date-time)yes

Try it

yarn splash member.setStatus '{"memberId":"0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d","status":"disabled"}' --dry-run

member.setRoles

Replace the roles a member holds with the given role keys, each a role of the site's catalogue. Members are not versioned: a change takes effect at once.

permission: members.managewrites: membersclass: transactionundo: explicit recovery

Example input

{
  "memberId": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
  "roles": [
    "press",
    "board"
  ]
}

Input

FieldTypeRequiredNotes
memberIdstring (uuid)yes
rolesarray of stringyesAt most 50 items.

Output

FieldTypeRequiredNotes
memberobjectyes
member.idstring (uuid)yes
member.emailstring (email)yes
member.namestringyes
member.statusstringyesOne of "pending", "active", "disabled".
member.rolesarray of stringyes
member.emailVerifiedAtstring (date-time) | nullyes
member.lastLoginAtstring (date-time) | nullyes
member.createdAtstring (date-time)yes

Try it

yarn splash member.setRoles '{"memberId":"0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d","roles":["press","board"]}' --dry-run

member.delete

Delete a member with their sessions and roles. Run it with confirmed: ["destructive"]. Members are not versioned: a change takes effect at once.

permission: members.managewrites: membersclass: transactionconfirm: destructiveundo: explicit recovery

Example input

{
  "memberId": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"
}

Input

FieldTypeRequiredNotes
memberIdstring (uuid)yes

Output

FieldTypeRequiredNotes
successtrueyes

Needs confirmed: ["destructive"] on the batch, which the single-operation CLI form does not set: put it in a batch file and run yarn splash apply <file> --dry-run.

member.signOutAll

Sign out every member of the site at once: the site's member cookies get a new key, so every cookie issued before stops working, and every session of the site is deleted. Members keep their accounts and sign in again. Other sites are not affected. Run it with confirmed: ["destructive"]. Members are not versioned: a change takes effect at once.

permission: site.adminwrites: membersclass: transactionconfirm: destructiveundo: explicit recovery

Example input

{}

Input

The input is a record; see the schema below.

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output

FieldTypeRequiredNotes
sessionsintegeryesAt least 0.

Needs confirmed: ["destructive"] on the batch, which the single-operation CLI form does not set: put it in a batch file and run yarn splash apply <file> --dry-run.

Generated from the operation registry and the MCP tool catalogue (source 0c3a596608b37277).

Something wrong on this page? Write to docs@librettocms.com.

Libretto docs

Colophon. These docs are a Libretto site: 68 pages in two languages, 20 guide pages imported from Markdown and 41 reference pages generated from the operation registry. Set in Softcore, with code in IBM Plex Mono. Its outline:

/ Libretto docs /start Get started /start/request-access Request access /start/workspace Your workspace /start/first-site Your first site /start/invite-a-client Invite a client /start/connect-claude Connect Claude to Libretto /build Build /build/first-page Build a page /build/layers-and-canvas Layers and canvas /build/site-components Site components /design-system Design system /design-system/tokens Colours, space and themes /design-system/components Components and variants /design-system/fonts Typography and fonts /motion Motion /motion/scenes Scenes and recipes /motion/image-sequences Image sequences /motion/reduced-motion Reduced motion /publish Publish /publish/languages Site languages /publish/versions Publish and versions /publish/members-and-forms Members and forms /publish/domains Domains /handover Hand a site to a client /glossary Glossary /agents Agents and API /agents/mcp MCP server /agents/cli CLI /agents/batches Batches /agents/errors Errors and findings /agents/operations Operations /search Search