feat: Add API key authentication for backup tool
- 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
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# 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 stack
|
||||
- `manage/Directory Structure.md` — Annotated codebase layout
|
||||
|
||||
### Backend
|
||||
- `manage/Backend/API Endpoints.md` — Complete REST endpoint map
|
||||
- `manage/Backend/Configuration.md` — Settings, env vars, OIDC
|
||||
- `manage/Backend/Services.md` — Core services: settings store, media index, poller, mail
|
||||
- `manage/Backend/Clients.md` — External integrations: Jellyfin, Jellyseerr, SSH
|
||||
|
||||
### Frontend
|
||||
- `manage/Frontend/Pages & Routing.md` — Routes, page components
|
||||
- `manage/Frontend/Components.md` — Reusable components
|
||||
- `manage/Frontend/State & Data.md` — Hooks, QueryClient, data fetching
|
||||
- `manage/Frontend/Auth & Theme.md` — OIDC auth, MUI theme
|
||||
|
||||
### Deployment
|
||||
- `manage/Deployment/Production.md` — Docker Compose, Traefik, TLS
|
||||
- `manage/Deployment/Development.md` — Dev workflow, hot reload
|
||||
|
||||
### Operations
|
||||
- `manage/Operations/Machine Management.md` — SSH keys, collectors
|
||||
- `manage/Operations/Monitoring.md` — Poller, metrics
|
||||
- `manage/Operations/Tasks & Jobs.md` — Saved tasks, job templates
|
||||
|
||||
### Development
|
||||
- `manage/Development/Setup.md` — Getting started for backend + frontend
|
||||
- `manage/Development/Testing.md` — Test structure and commands
|
||||
- `manage/Development/Contributing.md` — Conventions, PR workflow
|
||||
|
||||
## Cross-Linking Conventions
|
||||
- Every note uses YAML frontmatter with `tags` and `aliases`
|
||||
- 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
|
||||
Reference in New Issue
Block a user