Skip to main content

Overview

useFetchWorkspaceMemberStanding returns a callable that reads a single user’s full standing on a workspace, addressed by user id (not a membership-row id, so it works even for users with no direct row). It returns the same unified shape as one roster row, computed on demand for any relation — direct member, this workspace’s owner, an ancestor-owner, or a reach-holder. Authorization: requires roster visibility on the workspace — any relation (owner, ancestor-owner, member, reach-holder), the same gate as useFetchWorkspaceMembers. The signed-in user is the actor; targetUserId names who is being read, not who is asking.
capabilities, permissions and rank are fenced. They are omitted from the response (absent — not null) unless the signed-in user holds one of the four people-operating capabilities on this workspace (invite, remove-member, edit-member-access, edit-member-profile), is the owner / an ancestor-owner, or is reading their own standing. The three fields are optional in the SDK type — read them defensively (standing.capabilities ?? []). Everything else (user, reasons, title, metadata) is visible to any relation.

Usage Example

Parameters

string
required
The workspace UUID.
string
required
The target user whose standing to read — a path param, not an acting user.

Returns

WorkspaceMemberStanding:
Only user.id is guaranteed. The server returns the full user record when the user row still exists, and falls back to { id } alone when it does not — a deleted user with a lingering membership row is a reachable case. The SDK type reflects this: id is required and every other field is optional, so read the rest defensively (standing.user.username ?? "Deleted user").

Error codes