You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement delegated provider infrastructure and Confluence, OneDrive/SharePoint, and Google Workspace delegated content providers, building on the infrastructure established in #232.
Build the per-user OAuth token infrastructure needed by delegated providers:
user_content_tokens table — Per-user OAuth tokens with AES-256-GCM encryption (TMI_CONTENT_TOKEN_ENCRYPTION_KEY)
Account linking endpoints — GET /me/content_tokens, POST /me/content_tokens/{provider_id}/authorize, DELETE /me/content_tokens/{provider_id}, GET /oauth2/content_callback
Token lifecycle — Storage, refresh, revocation
Startup validation — Refuse to start if delegated provider enabled without encryption key
Content Providers
Confluence provider — Delegated OAuth, Confluence REST API page extraction
OneDrive/SharePoint provider — Service account auth, Microsoft Graph API document extraction (DOCX, PPTX, Excel)
DOCX and PPTX content extractors added to extractor registry
Unit tests for each provider with mocked HTTP responses
Integration tests for OAuth token flows
OpenAPI spec updated for account linking endpoints and any provider-specific endpoints
Design Note
Each provider will need its own design spec before implementation. The infrastructure from #232 defines the interfaces and patterns; this issue covers the delegated infrastructure and provider-specific work.
Summary
Implement delegated provider infrastructure and Confluence, OneDrive/SharePoint, and Google Workspace delegated content providers, building on the infrastructure established in #232.
Depends on: #232 (content provider infrastructure + Google Drive)
Design spec: Infrastructure defined in 2026-04-08-content-providers-design.md
Scope
Delegated Provider Infrastructure (from #232 design spec Phase 4)
Build the per-user OAuth token infrastructure needed by delegated providers:
user_content_tokenstable — Per-user OAuth tokens with AES-256-GCM encryption (TMI_CONTENT_TOKEN_ENCRYPTION_KEY)GET /me/content_tokens,POST /me/content_tokens/{provider_id}/authorize,DELETE /me/content_tokens/{provider_id},GET /oauth2/content_callbackContent Providers
ContentExtractorimplementations for Office document formatsProvider Details
Confluence (Delegated Provider)
ContentSource+AccessValidatorinterfaces*.atlassian.net/wiki/*read:confluence-content.allOneDrive/SharePoint (Service Provider)
ContentSource+AccessValidator+AccessRequesterinterfaces*.sharepoint.com/*,onedrive.live.com/*Google Workspace Delegated Access
Acceptance Criteria
ContentSourceinterface from feat(timmy): content provider infrastructure and Google Drive source #232URIValidatorDesign Note
Each provider will need its own design spec before implementation. The infrastructure from #232 defines the interfaces and patterns; this issue covers the delegated infrastructure and provider-specific work.