Skip to main content

Overview

useFetchWorkspaceAuthority returns a callable that resolves the signed-in user’s standing on a workspace: { reasons, capabilities, permissions, rank }. Use it to drive UI (show/hide buttons) — a permission check is a one-line .includes() on the result. Sublay never consumes your opaque permissions.
Not visibility-gated. GET /workspaces/:id/authority/me requires a signed-in user and nothing more. It returns 404 only when the workspace does not exist — a signed-in user with no relation to an existing workspace gets 200 with reasons: [] and empty capabilities / permissions, which is exactly the answer a UI gate wants. The trade-off is that the route confirms a workspace exists to any signed-in caller.Its sibling, useFetchWorkspaceMemberStanding, is visibility-gated and 404s on a workspace the caller cannot see, so it never leaks existence. Do not assume the two behave alike.

Usage Example

Parameters

string
required
The workspace UUID.

Returns

WorkspaceAuthority: WorkspaceAuthorityReasonDetail:
view is implied by every other capability. Any user with standing resolves with view in capabilities, including a member whose stored capabilities array is empty. A user with no relation at all resolves to reasons: [] and an empty capability set — so capabilities.includes("view") is a reliable “does this user have any standing here” check.
Unlike the member-standing read, this hook is inherently a self read, so capabilities / permissions / rank are never fenced here.