Members API
ManagementProject.get_all_members — paginated list of all members across all teams in a project, with optional team membership sideloading.
ManagementProject.get_all_members() returns a paginated Page[ProjectMember] covering every user who belongs to any team in the project. Unlike TeamMembershipCollection, this method spans all teams at once.
The ProjectMember object
ProjectMember is a frozen dataclass:
Prop
Type
ManagementProject.get_all_members(...)
Return one page of project members, optionally including their team memberships.
Signature
def get_all_members(
self,
*,
include_memberships: bool = False,
limit: int = 100,
cursor: str | None = None,
order_by: MemberOrderBy = "name",
order: Literal["asc", "desc"] = "asc",
) -> Page[ProjectMember]: ...Parameters
Prop
Type
Returns — Page[ProjectMember]: a page of project members. Fields:
Prop
Type
Side effects — Makes one HTTP read request to the v0.projects.members endpoint.
Raises — AuthenticationError when the API key is invalid or missing.
Example
from optixlog import SDKClient
from optixlog.management import Management
client = SDKClient(base_url="https://optixlog.leidos.com", api_key="sk-opt-...")
proj = Management(client).project("proj_grating_7f3a")
# First page, sorted by email
page = proj.get_all_members(order_by="email", include_memberships=True)
for member in page.items:
team_names = [m.team_ref.name for m in (member.memberships or [])]
print(member.user_ref.id, team_names)
# Paginate
while page.next_cursor:
page = proj.get_all_members(
order_by="email",
include_memberships=True,
cursor=page.next_cursor,
)
for member in page.items:
print(member.user_ref.id)Iterating all members
get_all_members() returns a single page. To iterate all members without manual pagination, loop on next_cursor:
def iter_all_members(proj, **kwargs):
cursor = None
while True:
page = proj.get_all_members(cursor=cursor, **kwargs)
yield from page.items
if page.next_cursor is None:
break
cursor = page.next_cursor
for member in iter_all_members(proj, include_memberships=True, order_by="name"):
print(member.user_ref.name, member.user_ref.id)Snapshot alternative
If you need members together with teams, config, or audit events in one call, use ManagementProject.snapshot(include=["members", ...]) instead.
Memberships API
TeamMembershipCollection reference — get, get_or_none, list, iter, count, one, and first for memberships on a team, plus the TeamMembership and User objects.
Workflow Nodes API
WorkflowNodeCollection and WorkflowNodeLabelCollection reference — get, list, iter, count, one, first for workflow nodes and their labels.