Acontext
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

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")
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

On this page