OptixLog Docs
API ReferenceManagement

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

list_members.py
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:

iter_all_members.py
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.

On this page