mirror of https://github.com/buster-so/buster.git
225 lines
6.0 KiB
Markdown
225 lines
6.0 KiB
Markdown
# Buster API Library Reference Index
|
|
|
|
> **Last Updated**: April 7, 2025
|
|
> **Version**: 1.0.0
|
|
|
|
This document serves as a centralized index of all major functionality across the Buster API libraries. Use it to quickly locate specific features and understand where they're implemented.
|
|
|
|
## Table of Contents
|
|
- [Database Library](#database-library)
|
|
- [Agents Library](#agents-library)
|
|
- [Handlers Library](#handlers-library)
|
|
- [Middleware Library](#middleware-library)
|
|
- [Sharing Library](#sharing-library)
|
|
- [LiteLLM Library](#litellm-library)
|
|
- [Query Engine Library](#query-engine-library)
|
|
- [SQL Analyzer Library](#sql-analyzer-library)
|
|
- [Streaming Library](#streaming-library)
|
|
- [Braintrust Library](#braintrust-library)
|
|
|
|
## Database Library
|
|
|
|
**Location**: `/api/libs/database`
|
|
|
|
**Core Functionality**:
|
|
- Database connection pooling - `pool.rs`
|
|
- Database models and schema - `models.rs`, `schema.rs`
|
|
- Enum definitions - `enums.rs`
|
|
- Secure credential vault - `vault.rs`
|
|
|
|
**Key Types**:
|
|
- `DbPool` - Database connection pool
|
|
- Table structs: `User`, `Organization`, `MetricFile`, `DashboardFile`, etc.
|
|
- Version history types - `version_history.rs`
|
|
|
|
**Common Operations**:
|
|
- Get database connection - `get_pg_pool().get().await?`
|
|
- Dashboard file operations - `helpers/dashboard_files.rs`
|
|
- Metric file operations - `helpers/metric_files.rs`
|
|
- Collection operations - `helpers/collections.rs`
|
|
|
|
## Agents Library
|
|
|
|
**Location**: `/api/libs/agents`
|
|
|
|
**Core Functionality**:
|
|
- Agent trait definition - `agent.rs`
|
|
- Agent implementations - `agents/buster_super_agent.rs`
|
|
- Tool execution framework - `tools/executor.rs`
|
|
- Tool categories - `tools/categories/`
|
|
|
|
**Key Types**:
|
|
- `Agent` trait - Core agent interface
|
|
- `BusterSuperAgent` - Main agent implementation
|
|
- `ToolExecutor` trait - Tool execution interface
|
|
- `ToolCallInfo` - Tool call metadata
|
|
|
|
**Common Operations**:
|
|
- Create and execute agents - `agent.rs`
|
|
- Register and execute tools - `tools/executor.rs`
|
|
- Use agents as tools - `tools/categories/agents_as_tools/`
|
|
- Create planning tools - `tools/categories/planning_tools/`
|
|
|
|
## Handlers Library
|
|
|
|
**Location**: `/api/libs/handlers`
|
|
|
|
**Core Functionality**:
|
|
- REST and WebSocket request handlers
|
|
- Business logic implementation
|
|
- Response formatting
|
|
- Permission checks
|
|
|
|
**Key Resource Types**:
|
|
- Metrics handlers - `metrics/`
|
|
- Dashboard handlers - `dashboards/`
|
|
- Chat handlers - `chats/`
|
|
- Collection handlers - `collections/`
|
|
|
|
**Common Operations**:
|
|
- Get dashboard by ID - `dashboards/get_dashboard_handler.rs`
|
|
- Get metric by ID - `metrics/get_metric_handler.rs`
|
|
- Create chat thread - `chats/post_thread.rs`
|
|
- List collections - `collections/list_collections.rs`
|
|
|
|
## Middleware Library
|
|
|
|
**Location**: `/api/libs/middleware`
|
|
|
|
**Core Functionality**:
|
|
- Authentication and authorization - `auth.rs`
|
|
- CORS configuration - `cors.rs`
|
|
- Error handling - `error.rs`
|
|
- Request and response types - `types.rs`
|
|
|
|
**Key Types**:
|
|
- `AuthenticatedUser` - User context
|
|
- `AppError` - API error types
|
|
- CORS configuration - `cors.rs`
|
|
|
|
**Common Operations**:
|
|
- Apply authentication middleware - `auth.rs`
|
|
- Extract authenticated user - `auth.rs`
|
|
- Configure CORS - `cors.rs`
|
|
- Format error responses - `error.rs`
|
|
|
|
## Sharing Library
|
|
|
|
**Location**: `/api/libs/sharing`
|
|
|
|
**Core Functionality**:
|
|
- Asset permission management
|
|
- Permission creation, listing, and removal
|
|
- User lookup for sharing
|
|
|
|
**Key Types**:
|
|
- `AssetPermissionRole` - Permission levels
|
|
- `AssetType` - Types of sharable assets
|
|
- `UpdateField` - Field updating helpers
|
|
|
|
**Common Operations**:
|
|
- Check permission access - `check_permission_access()`
|
|
- Create asset permission - `create_asset_permission.rs`
|
|
- List permissions - `list_asset_permissions.rs`
|
|
- Remove permissions - `remove_asset_permissions.rs`
|
|
|
|
## LiteLLM Library
|
|
|
|
**Location**: `/api/libs/litellm`
|
|
|
|
**Core Functionality**:
|
|
- LLM provider integration
|
|
- Message formatting
|
|
- Streaming response handling
|
|
|
|
**Key Types**:
|
|
- `LiteLLMClient` - Main client interface
|
|
- `Message` - LLM message format
|
|
- `Role` - Message roles (system, user, assistant)
|
|
|
|
**Common Operations**:
|
|
- Create LLM client - `client.rs`
|
|
- Generate completions - `client.rs`
|
|
- Handle streaming responses - `client.rs`
|
|
|
|
## Query Engine Library
|
|
|
|
**Location**: `/api/libs/query_engine`
|
|
|
|
**Core Functionality**:
|
|
- Data source connections
|
|
- Query execution
|
|
- Credential management
|
|
- Data type conversion
|
|
|
|
**Key Types**:
|
|
- Data source configurations
|
|
- Query results
|
|
- Credentials - `credentials.rs`
|
|
- Data types - `data_types.rs`
|
|
|
|
**Common Operations**:
|
|
- Execute queries - `data_source_query_routes/query_engine.rs`
|
|
- Connect to data sources - `data_source_connections/`
|
|
- Convert data types - `data_types.rs`
|
|
|
|
## SQL Analyzer Library
|
|
|
|
**Location**: `/api/libs/sql_analyzer`
|
|
|
|
**Core Functionality**:
|
|
- SQL query parsing and analysis
|
|
- Table and column extraction
|
|
- Join and CTE detection
|
|
|
|
**Key Types**:
|
|
- `QuerySummary` - Analysis output
|
|
- `TableInfo` - Table metadata
|
|
- `JoinInfo` - Join condition data
|
|
- `CteSummary` - CTE metadata
|
|
|
|
**Common Operations**:
|
|
- Analyze SQL query - `analyze_query()`
|
|
- Extract tables and columns
|
|
- Detect joins and CTEs
|
|
- Identify vague references
|
|
|
|
## Streaming Library
|
|
|
|
**Location**: `/api/libs/streaming`
|
|
|
|
**Core Functionality**:
|
|
- Streaming JSON parser - `parser.rs`
|
|
- Tool call processing - `processor.rs`
|
|
- Specialized processors - `processors/`
|
|
|
|
**Key Types**:
|
|
- `StreamingParser` - Main parser
|
|
- `Processor` trait - Tool call processor
|
|
- `ProcessorRegistry` - Processor collection
|
|
- `ProcessedOutput` - Parser output
|
|
|
|
**Common Operations**:
|
|
- Process JSON chunks - `parser.rs`
|
|
- Register processors - `processor.rs`
|
|
- Handle tool calls - `processor.rs`
|
|
|
|
## Braintrust Library
|
|
|
|
**Location**: `/api/libs/braintrust`
|
|
|
|
**Core Functionality**:
|
|
- Performance tracking for LLM operations
|
|
- Span and trace creation
|
|
- Event and metrics logging
|
|
|
|
**Key Types**:
|
|
- `BraintrustClient` - API client
|
|
- `TraceBuilder` - Trace creator
|
|
- `Span` - Execution span
|
|
|
|
**Common Operations**:
|
|
- Create client - `client.rs`
|
|
- Create traces - `trace.rs`
|
|
- Log spans - `client.rs`
|
|
- Track metrics - `client.rs` |