Skip to content

Core Concepts

Understanding how BoxedAI organizes data is key to managing your instance effectively.

Deployment Models

BoxedAI offers two primary deployment models to suit different privacy and infrastructure needs:

  • BoxedAI Self Hosted: You run the entire platform on your own infrastructure (on-premise servers or private cloud). You have complete control over the database, storage, and network access.
  • BoxedAI Cloud: A managed service hosted by BoxedAI. While secure, this relies on our infrastructure. Note: Most of this documentation focuses on the Self Hosted version.

Inference Modes

The "Brain" of BoxedAI can run in two different modes. This distinction is critical for understanding data privacy.

  • OpenRouter / Cloud Inferencing: The system connects to external API providers like OpenAI, Anthropic, or Google via OpenRouter.
    • Pros: Access to the smartest models (GPT-4, Claude 3.5 Sonnet) without needing expensive hardware.
    • Cons: Data (prompt content) is sent over the internet to the provider for processing.
  • Local Inferencing: The AI model runs directly on your server's hardware (GPU/CPU).
    • Pros: 100% Private. No data ever leaves your network.
    • Cons: Requires powerful hardware (high-end consumer GPU or enterprise accelerator).
    • Availability: Exclusive to BoxedAI Self Hosted.

Organizations

The Organization is the top-level container for all data.

  • In a standard deployment, there is usually one Organization (Single-Tenant Mode).
  • All users, chats, files, and configurations belong to an Organization.
  • Encryption is enabled or disabled at the Organization level (zero-knowledge, client-side).

Users & Groups

  • Users: Individuals with access to the platform. Users log in with an email and password.
  • Superuser: A special user with full administrative privileges across the entire system.
  • Groups: Collections of users. Currently used for logical grouping, but will support fine-grained permission policies in future updates.

Capabilities

Capabilities are toggleable AI tools — like browser extensions for the LLM. Each capability gives the AI access to a specific function (e.g., Calculator, File Search, Spreadsheet Generation) that it can invoke during a conversation via function calling.

  • System-Defined: Capabilities are defined in Go code and registered at startup.
  • Per-Org Toggle: Admins enable or disable capabilities for their organization. When disabled, the tool is simply not sent to the LLM.
  • Extensible: New capabilities can be added by implementing the Capability interface and registering them.

Chats

A Chat is a conversation thread between a user and the AI.

  • Ownership: Chats are private to the user who created them (unless shared).
  • History: The system retains message history to provide context for follow-up questions.
  • Context Window: The backend automatically manages the "context window" (how much memory the AI has) to ensure conversations stay within the model's limits.
  • Tool Calls: When the AI uses a capability, the tool call and its result are stored with the message and displayed as collapsible cards in the UI.

Objects (Files)

Objects are files uploaded to the system (PDFs, Text files, Spreadsheets).

  • Storage: Files are stored as binary data directly in PostgreSQL (no filesystem dependencies). This simplifies backup and deployment.
  • Async Processing: When you upload a file, it enters an asynchronous pipeline — the server stores the binary, then a background goroutine handles encryption, text analysis, and indexing.
  • Scoping: Objects can be permanent (visible across the organization) or temporary (scoped to a specific chat). Temporary files are attached via drag-and-drop in a chat and only visible within that conversation.
  • Search: Full-text search is powered by Bleve, serialized into the database. When encryption is enabled, the search index is also encrypted.

Analyzers

Analyzers extract text content from uploaded files, enabling full-text search and RAG.

  • System-Defined: Like capabilities, analyzers are defined in Go code and registered at startup.
  • Per-Org Toggle: Admins enable or disable analyzers for their organization.
  • Built-in Analyzers:
    • text_plain — Extracts text from plain text files (.txt, .md, .csv, .json, etc.)
    • pdf_extract — Extracts text content from PDF documents
    • docx_extract — Extracts text from Microsoft Word (.docx) files by parsing the document XML

Real-Time Events

BoxedAI uses WebSocket connections for real-time event delivery.

  • Auto-Reconnect: The frontend maintains a persistent WebSocket connection with automatic reconnection and exponential backoff.
  • Event Types: Events like file_analysis_complete notify the UI when background processing finishes, so file status updates appear without manual refresh.

Sessions

BoxedAI uses secure, server-side sessions.

  • Token: When you log in, you receive a session token.
  • Expiration: Sessions typically expire after 7 days of inactivity.
  • Security: You can view and revoke active sessions from your profile settings.