Backend
Backoffice
Barbatus - Session Management

Barbatus - Session Management Agent

Barbatus is the agent responsible for managing user sessions and API key authentication in the TKM AI Agency Platform. It serves as the gateway for user interactions and maintains session state across the system.

Overview

The Barbatus agent handles:

  • User session creation and management
  • API key generation and validation
  • Session-conversation mapping
  • Integration with Atta for conversation management

Directory Structure

Barbatus/
├── barbatus.py         # Main agent implementation
├── api_barbatus.py     # FastAPI router and endpoints
├── tools.py            # Core functionality and utilities
├── tools_schema.py     # Data models and schemas
├── tools_definitions.py # Session configurations
└── data/              # Storage directory for sessions

Core Components

Session Management

Session Metadata

class SessionMetadata(BaseModel):
    created_at: datetime
    last_activity: datetime
    status: str = "active"  # active, paused, ended
    source: str = "web"     # web, mobile, api
    organization_id: str

Session Response

class SessionResponse(BaseModel):
    success: bool
    user_id: str
    session_id: str
    metadata: Optional[SessionMetadata]
    error: Optional[str]

API Key Management

API Key Metadata

class APIKeyMetadata(BaseModel):
    created_at: datetime
    last_used: datetime
    status: str = "active"  # active, revoked
    permissions: list[str] = ["basic"]

API Endpoints

Session Management

Initialize Session

POST /api/barbatus/initialize_session
{
    "user_id": str,
    "organization_id": str  # Optional, defaults to "tkm_123456"
}

Verify Session

POST /api/barbatus/verify_session
{
    "user_id": str,
    "conversation_id": str
}

Create New Conversation

POST /api/barbatus/new_conversation
{
    "user_id": str,
    "session_id": Optional[str],
    "organization_id": Optional[str]
}

API Key Management

Generate API Key

POST /api/barbatus/generate_api_key
{
    "user_id": str,
    "permissions": Optional[List[str]]  # Defaults to ["basic"]
}

List API Keys

GET /api/barbatus/list_api_keys/{user_id}

Revoke API Key

POST /api/barbatus/revoke_api_key
{
    "user_id": str,
    "api_key": str
}

Verify API Key

POST /api/barbatus/verify_api_key
{
    "api_key": str
}

Main Features

Session Management

  • Creation of new user sessions
  • Session state tracking
  • Session verification and validation
  • Integration with conversation management

API Key Handling

  • Generation of secure API keys
  • Permission-based access control
  • Key revocation and validation
  • Key metadata tracking

Integration Features

  • Automatic conversation creation with Atta
  • Session-conversation mapping
  • Organization context management
  • Event handling for session updates

Error Handling

The agent implements comprehensive error handling for:

  • Invalid session states
  • API key validation failures
  • Integration errors with other agents
  • Session state conflicts

Security Features

Session Security

  • Unique session IDs
  • Activity tracking
  • Organization-based isolation
  • Status management

API Key Security

  • Secure key generation
  • Permission-based access
  • Key revocation system
  • Usage tracking

Performance Features

Caching

  • Active session caching
  • API key validation caching
  • Session metadata caching

State Management

  • In-memory session tracking
  • Persistent storage backup
  • Event-based updates
  • Automatic cleanup of inactive sessions