Admin Configuration Dashboard
Relevant source files
The following files were used as context for generating this wiki page:
The Admin Configuration Dashboard serves as the central management hub for the Onyx platform. It provides administrators with tools to configure system-wide settings, manage data connectors, tailor AI agent behavior, and oversee infrastructure integrations such as the Knowledge Graph and document processing pipelines.
The dashboard is built using a standardized layout system that emphasizes consistency across various configuration modules. It integrates tightly with the backend through specialized hooks and fetchers to manage state for complex entities like connectors, bots, and agents.
Core Layout and UI Standards
The dashboard utilizes the "Opal" design system and a specific SettingsLayouts structure to provide a unified user experience. Every admin page follows a hierarchical structure consisting of a Root container, a sticky Header with scroll-aware shadows, and a padded Body for content.
The design system strictly forbids raw HTML inputs, favoring Opal components like Button, InputTypeIn, and Switch to maintain design consistency and automatic dark mode support via CSS variables.
Sources: web/CLAUDE.md:1-120, web/src/app/admin/bots/page.tsx:80-87
Connector Management
Connector configuration is driven by a metadata-rich system that defines the required fields, validation schemas, and initial values for over 30 external data sources. Administrators use this interface to establish credentials and define the "indexing scope" for company data.
Configuration Architecture
Connectors are defined by the ConnectionConfiguration interface, which categorizes inputs into standard and advanced_values.
| Feature | Description | Source |
|---|---|---|
| Indexing Scope | Defines which specific sub-resources (folders, sites, repos) to index. | web/src/lib/connectors/connectors.tsx:150-200 |
| Refresh Frequency | How often the connector polls the source for updates. | web/src/lib/connectors/connectors.tsx:840-845 |
| Prune Frequency | How often deleted documents are removed from the index. | web/src/lib/connectors/connectors.tsx:840-845 |
| Access Control | Options to set connectors as Public or restricted to specific Groups. | web/src/lib/connectors/connectors.tsx:770-780 |
OAuth Finalization
For connectors requiring OAuth (e.g., Confluence, Google Drive), the dashboard includes a specialized finalization flow to handle cloud-specific resource selection after initial authorization.
Sources: web/src/app/admin/connectors/[connector]/oauth/finalize/page.tsx:1-50, web/src/lib/connectors/connectors.tsx:10-100
Agent and Assistant Customization
The Agent Editor is one of the most complex modules in the dashboard, allowing for granular control over the "Personas" that users interact with.
Technical Components
The editor uses Formik for state management and Yup for validation. It coordinates several specialized panes:
- Knowledge Pane: Manages the link between agents and document sets or individual user files.
- Actions Pane: Toggles built-in tools like Web Search, Image Generation, and Code Interpreter, as well as external MCP (Model Context Protocol) servers.
- Prompting Pane: Configures system instructions, reminders, and conversation starters.
Specialized System Configurations
Knowledge Graph (KG)
Administrators can enable a private beta Knowledge Graph feature. Configuration involves defining vendor domains to distinguish employees and setting a "coverage start" date for data ingestion.
Sources: web/src/app/admin/kg/page.tsx:60-120
Document Processing
Onyx supports complex document extraction (PDF, PNG, PPTX) via the Unstructured API. The dashboard provides a secure interface to manage the Unstructured API key, storing it in the backend via a PUT request to /api/search-settings/upsert-unstructured-api-key.
Sources: web/src/app/admin/configuration/document-processing/page.tsx:20-60
Slack Bot Integration
The dashboard allows the creation and management of Slack bots. Admins can configure specific bots to use different document sets depending on the Slack channel they are deployed in.
Sources: web/src/app/admin/bots/page.tsx:30-60
Configuration Data Structures
The system uses standardized TypeScript interfaces to ensure type safety across the configuration dashboard.
export interface ConnectorBase<T> {
name: string;
source: ValidSources;
input_type: ValidInputTypes;
connector_specific_config: T;
refresh_freq: number | null;
prune_freq: number | null;
access_type: string;
}
Sources: web/src/lib/connectors/connectors.tsx:850-865
Conclusion
The Admin Configuration Dashboard is a robust framework designed to scale with the platform's growing number of integrations. By centralizing logic for connector metadata, agent personas, and third-party API configurations into a standardized UI, Onyx ensures that system administrators can maintain a complex Gen-AI infrastructure with consistency and technical accuracy.