Skip to content

Global Admin Service

Manage developer accounts and API keys across the entire system. All operations require global admin privileges.

Global Admin Only

This service requires global admin privileges. Regular developers cannot access these endpoints.

Initialize the Service

from vclient import global_admin_service

admins = global_admin_service()

Available Methods

CRUD Operations

Method Returns Description
get(developer_id) Developer Retrieve a developer by ID
create(request=None, **kwargs) Developer Create a new developer account
update(developer_id, request=None, **kwargs) Developer Update developer properties
delete(developer_id) None Delete a developer account

Pagination Methods

Method Returns Description
get_page(limit=10, offset=0, is_global_admin=None) PaginatedResponse[Developer] Retrieve a paginated page
list_all(is_global_admin=None) list[Developer] Retrieve all developers
iter_all(limit=100, is_global_admin=None) AsyncIterator[Developer] Iterate through all developers

API Key Management

Method Returns Description
create_api_key(developer_id) DeveloperWithApiKey Generate a new API key for a developer

Examples

Create a Developer Account

Add a new developer to the system.

from vclient.models import DeveloperCreate

# Option 1: Use a model object (preferred)
request = DeveloperCreate(
    username="newdev",
    email="dev@example.com",
    is_global_admin=False
)
dev = await admins.create(request)

# Option 2: Pass fields as keyword arguments
dev = await admins.create(
    username="newdev",
    email="dev@example.com"
)

Update Developer Settings

Modify a developer account's properties.

from vclient.models import DeveloperUpdate

update = DeveloperUpdate(
    email="newemail@example.com",
    is_global_admin=True
)
updated = await admins.update(dev.id, update)

Generate API Key

Create a new API key for an existing developer.

dev_with_key = await admins.create_api_key(dev.id)
print(f"New API Key: {dev_with_key.api_key}")

Save API Keys Immediately

API keys are only displayed once during creation. Save the key from the response - it cannot be retrieved later.

List Developers

Retrieve all developer accounts with optional filtering.

# Get all developers
all_devs = await admins.list_all()

# Filter by global admin status
admin_devs = await admins.list_all(is_global_admin=True)

# Paginated access
page = await admins.get_page(limit=25, offset=0)
print(f"Total developers: {page.total}")

Iterate Through Developers

Use memory-efficient iteration for large developer lists.

async for developer in admins.iter_all():
    print(f"{developer.username} - {developer.email}")