Documentation
Welcome to the Eneo technical documentation! This section covers the core concepts, architecture, and API reference for the Eneo platform.
Getting Started
New to Eneo? Start here:
Getting Started
Set up a development instance and find your way around:
- DevContainer setup (recommended) and manual setup with uv and Bun
- Starting the backend, frontend, and worker
- Default login and where each service listens
- Common issues and where to get help
Technical Documentation
Architecture
Understand how Eneo is built:
- System architecture overview
- Technology stack (FastAPI, SvelteKit, PostgreSQL with pgvector, Redis)
- Database schema and migrations
- Authentication and authorization
- Real-time communication (SSE, WebSockets)
Authentication Architecture
Technical reference for the OIDC authentication system:
- OIDC protocol flow, step by step
- State tokens, Redis state cache, and redirect URI handling
- Token auth method selection and tenant state validation
Module Authentication
How optional module applications reuse the Eneo session:
- The module auth broker and its trust boundaries
- Login handoff through one-time tickets
- Credential lifetimes, refresh, and failure modes
- Registration and binding model
Knowledge Retrieval and MCP Interoperability
Understand how knowledge and tools reach a model:
- Injected retrieval and model-directed tool retrieval
- Built-in loopback knowledge and attachment MCP servers
- Internal and external MCP interoperability through one proxy
- Authentication, approval, session, citation, and failure boundaries
Object Content Architecture
Understand how Eneo stores and protects durable file bytes:
- PostgreSQL control plane with bounded inline or optional object-store bytes
- Integrity, lifecycle, retention, and reconciliation
- Database/bucket binding and failure behavior
- SeaweedFS image build, provenance, and SBOM attestations
Audit Logging
Audit trails for compliance and security:
- How audit logs are created and stored
- Retention policies and conversation retention hierarchy
- Viewing, exporting, and configuring audit logs
- Adding audit logging to new features
API Key Management
Programmatic access with scoped keys:
- User and service key ownership models
- Scope levels (tenant, space, assistant, app) and permission tiers
- Authentication flow, rate limiting, and guardrails
- Key lifecycle: creation and rotation
Token Counting
How Eneo tracks token usage for LLM requests:
- Accurate counts from major providers
- Estimation for self-hosted models
- How token data flows to Insights dashboards
Release SBOMs
Downloadable SBOMs and attestations for released artifacts:
- CycloneDX and SPDX files for security tooling
- Frontend source dependency inventory from the release lockfile
- Human-readable package lists for quick review
- Image digests, checksums, and provenance verification
API Reference
API documentation for developers:
- Interactive OpenAPI documentation
- Authentication with API keys and session JWTs
- Common endpoints (users, spaces, assistants, conversations, documents, web crawling)
- SDK examples, rate limits, and error handling
Core Concepts
- Assistants: AI agents with customizable system prompts and provider configurations
- Spaces: Collaborative workspaces within organizations
- Knowledge: Document collections for RAG (Retrieval-Augmented Generation)
- Organizations: Multi-tenant structure with role-based access control
Development
For development setup and contributing guidelines, visit:
- GitHub Repository
- Contributing overview and Security for Contributors
- Contributing Guide
- Installation Guide
Need Help?
- Guides: Check out our practical guides for specific use cases
- Forum: Join discussions at forum.eneo.ai
- Issues: Report bugs on GitHub
- Contact: digitalisering@sundsvall.se (for public sector organizations)