Associate resources with user identifiers for multi-tenant apps, per-user isolation, and simplified cleanup.
Supported Resources
| Resource | Create | List | Cascade Delete |
|---|
| Sessions | user="alice@example.com" | user="alice@example.com" | ✓ |
| Disks | user="alice@example.com" | user="alice@example.com" | ✓ |
| Skills | user="alice@example.com" | user="alice@example.com" | ✓ |
| Learning Spaces | user="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