Moves a customer onto a role set. Every live membership and PENDING
invite moves to the role of the same name and internal flag in the new
set, in one transaction; a held role the new set lacks refuses the move
and writes nothing. A no-op when the customer is already on the set.
Role writers lock the customer's workspace FOR SHARE, so none lands mid-switch.
With a caller's tx nothing is published: the caller publishes after its commit.
A blank set has no roles. copyFromRoleSetId duplicates every role of
that set (name, description, rank, flags and grants) and its default.
Hard-deletes the set, its roles and their grants: the catalog has no
deleted_at. Refused while any customer subscribes to it, or any
membership or invite, live or past, references one of its roles.
Customers with the role set each is on, by name: every customer, soft-deleted and set-less ones included, unless a filter narrows it.
OptionalcustomerIds?: string[]Optionalpage?: numberDefaults to 1
OptionalpageSize?: numberDefaults to 50
OptionalroleSetIds?: string[]defaultRoleId must name a non-internal role of this set.
Customer dashboard role sets, for CFX operators: authoring, and which set a customer subscribes to. Roles within a set are CustomerDashboardRoleAdminService's. Records no activity: the admin dashboard records it from what each write returns. Each write publishes with
publish, as config; with a caller'stxnothing is published.