Add connector sync hub for 3rd party services - #2
Conversation
Implements server-side fan-out sync to external reading services. Includes encrypted credential vault (AES-256-GCM), automatic book matching with title/author normalization, coalescing retry queue with exponential backoff, and management API for linking/unlinking services. Progress updates and highlights automatically sync to connected services. Requires TOKEN_ENC_KEY environment variable to enable.
Implements stateless HMAC-signed session cookies for browser-based authentication alongside existing device header auth. The /api/v1 endpoints now accept either session cookies (for web UI) or x-auth headers (for firmware). Adds session creation/verification utilities and new auth/web routes. Includes static assets (favicon, logo) for the web interface.
Introduces a separate accounts table for website authentication, distinct from kosync device credentials. Kosync users can be linked to a master account via account_id foreign key, allowing orphaned kosync accounts to be claimed later. One kosync user per master account enforced by unique index.
Allows connectors to be registered but hidden from the UI connector list, preventing users from linking them through the interface while keeping them available programmatically.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (40)
📝 WalkthroughWalkthroughThis change adds master accounts, signed sessions, encrypted connector credentials, four connector adapters, queued synchronization, connector APIs, a server-rendered web interface, database migrations, documentation, and integration tests. ChangesSync Hub
Estimated code review effort: 5 (Critical) | ~120 minutes Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 Trivy (0.72.0)Trivy execution failed: 2026-08-07T07:37:28Z FATAL Fatal error run error: fs scan error: scan error: scan failed: failed analysis: post analysis error: post analysis error: ansible scan error: fs filter error: fs filter error: walk error range error: stat .coderabbit-opengrep-fallback.3ebad8de-054a-483b-8785-797554100a15.yml: no such file or directory: range error: stat .coderabbit-opengrep-fallback.3ebad8de-054a-483b-8785-797554100a15.yml: no such file or directory Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Implements server-side fan-out sync to external reading services. Includes encrypted credential vault (AES-256-GCM), automatic book matching with title/author normalization, coalescing retry queue with exponential backoff, and management API for linking/unlinking services. Progress updates and highlights automatically sync to connected services. Requires TOKEN_ENC_KEY environment variable to enable.