Overview
Implements Outline (getoutline.com) connector as requested in issue #3256.
Features
- OutlineApiClient for RPC-style API communication with Bearer token authentication
- OutlineConnector implementing LoadConnector and PollConnector interfaces
- Support for Collections and Documents with proper metadata
- Incremental updates with time-based filtering
- Comprehensive error handling (401, 403, validation errors)
- Rate limiting protection and HTML content parsing
- Frontend integration with Wiki category display
Files Added
backend/onyx/connectors/outline/client.py
- API client for Outline
backend/onyx/connectors/outline/connector.py
- Main connector implementation
backend/tests/unit/onyx/connectors/outline/test_outline_connector.py
- Comprehensive unit tests
Files Modified
backend/onyx/configs/constants.py
- Added OUTLINE DocumentSource
backend/onyx/connectors/factory.py
- Registered OutlineConnector
web/src/lib/sources.ts
- Added Outline source metadata
Implementation Details
Architecture
- Follows the same pattern as existing BookStack connector
- Uses Outline’s RPC-style POST API endpoints
- Converts Collections and Documents to Onyx Document format
- Supports both full indexing and incremental updates
Error Handling
ConnectorMissingCredentialError
for missing credentials
CredentialExpiredError
for 401 authentication failures
InsufficientPermissionsError
for 403 permission issues
ConnectorValidationError
for other API errors
Testing
- Comprehensive unit tests covering all functionality
- Mock-based testing for API interactions
- Error scenario coverage
Configuration
Users will need to provide:
outline_base_url
- Base URL of their Outline instance
outline_api_token
- API token from Outline Settings > API & Apps
Value Proposition
- Expands Onyx’s ecosystem to include Outline’s 28k+ GitHub stars user base
- Enables unified search across popular knowledge platform
- Follows established patterns for easy maintenance
Closes #3256
/claim #3256
Summary by cubic
Added a new connector for Outline (getoutline.com) to support indexing collections and documents, with full and incremental sync, error handling, and frontend integration under the Wiki category.
- New Features
- OutlineApiClient for authenticated API access.
- OutlineConnector with support for collections, documents, and incremental updates.
- Error handling for authentication and permissions.
- Frontend metadata for Outline in the Wiki category.