Features
Store with User
Associate Sessions, Disks, and Skills with user identifiers
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")import { AcontextClient, FileUpload } from '@acontext/acontext';
import * as fs from 'fs';
const client = new AcontextClient({
apiKey: process.env.ACONTEXT_API_KEY,
});
// Session
const session = await client.sessions.create({ user: "alice@example.com" });
// Disk
const disk = await client.disks.create({ user: "alice@example.com" });
// Skill
const fileContent = fs.readFileSync("skill.zip");
const skill = await client.skills.create({
file: new FileUpload({ filename: "skill.zip", content: fileContent }),
user: "alice@example.com",
});
// Learning Space
const space = await client.learningSpaces.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")// Sessions
const sessions = await client.sessions.list({ user: "alice@example.com" });
// Disks
const disks = await client.disks.list({ user: "alice@example.com" });
// Skills
const skills = await client.skills.listCatalog({ user: "alice@example.com" });
// Learning Spaces
const spaces = await client.learningSpaces.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}")const resources = await client.users.getResources("alice@example.com");
console.log(`Sessions: ${resources.counts.sessions_count}`);
console.log(`Disks: ${resources.counts.disks_count}`);
console.log(`Skills: ${resources.counts.skills_count}`);Delete User (Cascade)
Deleting a user removes all associated Sessions, Disks, and Skills:
client.users.delete("alice@example.com")await client.users.delete("alice@example.com");This permanently deletes all resources associated with the user.
Complete Example
Next Steps
Last updated on