Raxol.Core.Session.SessionManager (Raxol v2.0.1)

View Source

Unified session management system for Raxol applications.

This module consolidates all session management capabilities across different domains:

  • Security sessions (secure tokens, CSRF, authentication)
  • Web sessions (HTTP session management, storage, recovery)
  • Terminal sessions (terminal emulator sessions)
  • Multiplexer sessions (tmux-like session management)

Features

Security Sessions

  • Cryptographically secure session tokens
  • Session expiration and renewal
  • Concurrent session limiting
  • Session fixation protection
  • CSRF token generation and validation

Web Sessions

  • Session storage and retrieval
  • Session recovery and cleanup
  • Session limits and monitoring
  • Session metadata management

Terminal Sessions

  • Terminal emulator session management
  • Session authentication and state tracking
  • Session cleanup and lifecycle management

Multiplexer Sessions

  • tmux-like session management
  • Window and pane management
  • Session persistence and recovery
  • Remote session attachment/detachment

Usage

# Security session
{:ok, session} = UnifiedSessionManager.create_security_session("user123", 
  ip_address: "192.168.1.1",
  user_agent: "Browser/1.0"
)

# Web session  
{:ok, session} = UnifiedSessionManager.create_web_session("user123", %{
  preferences: %{theme: "dark"}
})

# Terminal session
{:ok, session} = UnifiedSessionManager.create_terminal_session("user123")

# Multiplexer session
{:ok, session} = UnifiedSessionManager.create_multiplexer_session("dev-work",
  windows: 3,
  layout: :main_vertical
)

Summary

Functions

Authenticates a terminal session.

Returns a specification to start this module under a supervisor.

Performs cleanup across all session types.

Cleans up a terminal session.

Creates a new multiplexer session with tmux-like capabilities.

Creates a window in a multiplexer session.

Creates a new secure session with cryptographic tokens.

Creates a new terminal session.

Creates a new web session with storage capabilities.

Detaches from a multiplexer session.

Ends a web session.

Generates a CSRF token for a security session.

Gets statistics for all session types.

Gets a terminal session by ID.

Gets active sessions for a user across all types.

Gets a web session by ID.

Invalidates a security session.

Invalidates all security sessions for a user.

Lists all multiplexer sessions.

Updates web session metadata.

Validates a CSRF token.

Validates a security session token.

Functions

attach_multiplexer_session(session_id, client_config \\ %{})

Attaches to a multiplexer session.

authenticate_terminal_session(session_id, token)

Authenticates a terminal session.

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

cleanup_all_sessions()

Performs cleanup across all session types.

cleanup_terminal_session(session_id)

Cleans up a terminal session.

create_multiplexer_session(name, config \\ %{})

Creates a new multiplexer session with tmux-like capabilities.

create_multiplexer_window(session_id, window_name, config \\ %{})

Creates a window in a multiplexer session.

create_security_session(user_id, opts \\ [])

Creates a new secure session with cryptographic tokens.

create_terminal_session(user_id)

Creates a new terminal session.

create_web_session(user_id, metadata \\ %{})

Creates a new web session with storage capabilities.

detach_multiplexer_session(client_id)

Detaches from a multiplexer session.

end_web_session(session_id)

Ends a web session.

generate_csrf_token(session_id)

Generates a CSRF token for a security session.

get_session_statistics()

Gets statistics for all session types.

get_terminal_session(session_id)

Gets a terminal session by ID.

get_user_sessions(user_id)

Gets active sessions for a user across all types.

get_web_session(session_id)

Gets a web session by ID.

handle_manager_cast(msg, state)

Callback implementation for Raxol.Core.Behaviours.BaseManager.handle_manager_cast/2.

invalidate_security_session(session_id)

Invalidates a security session.

invalidate_user_security_sessions(user_id)

Invalidates all security sessions for a user.

list_multiplexer_sessions()

Lists all multiplexer sessions.

split_multiplexer_pane(session_id, window_id, pane_id, direction, config \\ %{})

Splits a pane in a multiplexer session.

start_link(init_opts \\ [])

update_web_session(session_id, metadata)

Updates web session metadata.

validate_csrf_token(session_id, token)

Validates a CSRF token.

validate_security_session(session_id, token)

Validates a security session token.