Skip to main content
Associate resources with user identifiers for multi-tenant apps, per-user isolation, and simplified cleanup.

Supported Resources

ResourceCreateListCascade Delete
Sessionsuser="alice@example.com"user="alice@example.com"
Disksuser="alice@example.com"user="alice@example.com"
Skillsuser="alice@example.com"user="alice@example.com"
Learning Spacesuser="alice@example.com"user="alice@example.com"

Create Resources with User

import os
from acontext import AcontextClient, FileUpload

client = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))

# Session
session = client.sessions.create(user="alice@example.com")

# Disk
disk = client.disks.create(user="alice@example.com")

# Skill
with open("skill.zip", "rb") as f:
    skill = client.skills.create(
        file=FileUpload(filename="skill.zip", content=f.read()),
        user="alice@example.com"
    )

# Learning Space
space = client.learning_spaces.create(user="alice@example.com")
Users are created automatically when first referenced. No explicit user creation needed.

Filter by User

# Sessions
sessions = client.sessions.list(user="alice@example.com")

# Disks
disks = client.disks.list(user="alice@example.com")

# Skills
skills = client.skills.list_catalog(user="alice@example.com")

# Learning Spaces
spaces = client.learning_spaces.list(user="alice@example.com")

Get User Resources

Check how many resources a user has before cleanup or for analytics:
resources = client.users.get_resources("alice@example.com")
print(f"Sessions: {resources.counts.sessions_count}")
print(f"Disks: {resources.counts.disks_count}")
print(f"Skills: {resources.counts.skills_count}")

Delete User (Cascade)

Deleting a user removes all associated Sessions, Disks, and Skills:
client.users.delete("alice@example.com")
This permanently deletes all resources associated with the user.

Complete Example

import os
from acontext import AcontextClient

client = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))
user_id = "demo@example.com"

# Create resources
session = client.sessions.create(user=user_id)
disk = client.disks.create(user=user_id)

# List resources
sessions = client.sessions.list(user=user_id)
disks = client.disks.list(user=user_id)
print(f"User has {len(sessions.items)} sessions, {len(disks.items)} disks")

# Get resource counts
resources = client.users.get_resources(user_id)
print(f"Total: {resources.counts.sessions_count} sessions, {resources.counts.disks_count} disks, {resources.counts.skills_count} skills")

# Delete user and all resources
client.users.delete(user_id)

Next Steps