team/remove:w and the same reach as update: the row is
soft-deleted. removed is false when it was already removed (a concurrent
removal, or a retry); published either way.
With a caller's tx nothing is published: the caller publishes after its commit.
Hidden, absent, deleted and forbidden all read as null.
One page of the members the caller may see, with the roles they may assign. Members of an internal role are invisible unless the caller is internal, whatever the filters say.
OptionalcreatedAt?: DbTimestampCriteriaOptionalincludeDeleted?: booleanOptionalorderBy?: OrderBy[]Defaults to name ASC, email ASC.
Optionalpage?: numberOptionalpageSize?: numberOptionalquery?: stringCase-insensitive substring over email, first and last name.
OptionalroleIds?: string[]Optionalstatuses?: ("ACTIVE" | "DELETED" | "DISABLED")[]OptionalupdatedAt?: DbTimestampCriteriaOptionaluserIds?: string[]The caller's own live memberships across every customer, by customer
name, with each one's grants and their user row. Needs no permission.
q matches the customer's shared search document.
OptionalcustomerIds?: string[]Optionalenterable?: booleanOnly memberships a session can enter: ACTIVE, of a live ACTIVE customer with its main organization.
Optionalpage?: numberOptionalpageSize?: numberOptionalq?: stringOptionalstatuses?: ("ACTIVE" | "DELETED" | "DISABLED")[]OptionalworkspaceIds?: string[]Every role in the caller's role set that they can see, highest rank first, with its grants: what the team page shows an owner choosing one.
The names of the non-internal roles in the caller's role set that grant
any of permissionKeys, highest rank first. Any ACTIVE member may read it,
unlike searchRoles's team:r, so a login that can't act learns who can.
roleId and status need team/role:w, a member within the caller's
reach who isn't the caller, and a target role within reach.
firstName / lastName rename the caller's OWN user only. A status that
changes is recorded as user.workspaceStatusChanged in the same transaction.
With a caller's tx nothing is published: the caller publishes after its commit.
OptionalrequestMetadata?: {The request's IP, location and agent, stored on the activity a status change records.
OptionalgeoLocation?: {Geolocation information from the request
Optionalcity?: stringThe city that the request originated from.
Optionalcountry?: stringThe country that the request originated from (ISO 3166-1 alpha-2).
OptionalcountryRegion?: stringThe ISO 3166-2 region code of the client (CloudFront-Viewer-Country-Region).
Optionalflag?: stringThe flag emoji for the country — derived from country at render time.
Optionallatitude?: stringThe latitude of the client.
Optionallongitude?: stringThe longitude of the client.
OptionalpostalCode?: stringThe postal code of the client
Optionalregion?: stringLegacy Vercel edge region; unpopulated under CloudFront.
OptionalipAddress?: stringIP address of the request
OptionaluserAgent?: {User agent information from the request
Optionaltx?: PgAsyncTransaction<NodePgQueryResultHKT, EmptyRelations>
A customer dashboard's roster, authorized by joining the caller's ACTIVE membership to their role's grants. A member is addressed by customer and user. Role, status and name live only in the rows.