836f733a2e
- Add get_api_key() and require_api_key() to auth.py - Add generic key-value settings storage to SettingsStore - Add test_api_key_auth to verify the implementation - Uses secrets.compare_digest for timing-safe comparison - Auto-generates API key on first use and stores in settings DB
2.1 KiB
2.1 KiB
Obsidian Documentation Structure for Manage (Media Library Viewer)
Date: 2026-05-08 Status: Approved
Purpose
Create a comprehensive, interconnected Obsidian documentation vault for the Manage project (media library viewer application). The documentation targets all audiences: future developers, contributors, operators, and deployers.
Structure
Map of Content (MOC)
manage/Overview.md— Central hub with wikilinks to all documentation areas
Architecture & Overview
manage/Architecture.md— System design, data flow, tech stackmanage/Directory Structure.md— Annotated codebase layout
Backend
manage/Backend/API Endpoints.md— Complete REST endpoint mapmanage/Backend/Configuration.md— Settings, env vars, OIDCmanage/Backend/Services.md— Core services: settings store, media index, poller, mailmanage/Backend/Clients.md— External integrations: Jellyfin, Jellyseerr, SSH
Frontend
manage/Frontend/Pages & Routing.md— Routes, page componentsmanage/Frontend/Components.md— Reusable componentsmanage/Frontend/State & Data.md— Hooks, QueryClient, data fetchingmanage/Frontend/Auth & Theme.md— OIDC auth, MUI theme
Deployment
manage/Deployment/Production.md— Docker Compose, Traefik, TLSmanage/Deployment/Development.md— Dev workflow, hot reload
Operations
manage/Operations/Machine Management.md— SSH keys, collectorsmanage/Operations/Monitoring.md— Poller, metricsmanage/Operations/Tasks & Jobs.md— Saved tasks, job templates
Development
manage/Development/Setup.md— Getting started for backend + frontendmanage/Development/Testing.md— Test structure and commandsmanage/Development/Contributing.md— Conventions, PR workflow
Cross-Linking Conventions
- Every note uses YAML frontmatter with
tagsandaliases - Related docs linked via
[[wikilinks]] - Callouts for warnings, tips, and notes
Technologies Referenced
- Backend: Python 3.11+, FastAPI, SQLite, Paramiko, PyJWT
- Frontend: React 19, TypeScript 6, Vite 8, MUI 9, D3 7, AG Grid
- Infra: Docker, Traefik, Authentik/OIDC