- Add admin DAV tab (rename from CalDAV/CardDAV) and Pushover tab
- Add per-user Pushover tab (User Key only; App Token stays admin-managed)
- Remove system-wide CalDAV/CardDAV fallback — per-user config only
- Rewrite contacts_tool.py using httpx directly (caldav 2.x dropped AddressBook)
- Fix CardDAV REPORT/PROPFIND using SOGo URL pattern
- Fix CalDAV/CardDAV test endpoints (POST method, URL scheme normalization)
- Fix Show Password button — API now returns actual credential values
- Convert Credentials tab to generic key-value store; dedicated keys
(CalDAV, Pushover, trusted_proxy) excluded via _DEDICATED_CRED_KEYS
47 lines
796 B
Plaintext
47 lines
796 B
Plaintext
# Web framework
|
|
fastapi==0.115.*
|
|
uvicorn[standard]==0.32.*
|
|
jinja2==3.1.*
|
|
python-multipart==0.0.*
|
|
websockets==13.*
|
|
|
|
# AI providers
|
|
anthropic==0.40.*
|
|
openai==1.57.* # Used for OpenRouter (OpenAI-compatible API)
|
|
|
|
# Database (standard sqlite3 built-in + app-level encryption)
|
|
cryptography==43.*
|
|
|
|
# Config
|
|
python-dotenv==1.0.*
|
|
|
|
# CalDAV
|
|
caldav==1.3.*
|
|
vobject==0.9.*
|
|
|
|
# Email
|
|
imapclient==3.0.*
|
|
aioimaplib>=1.0
|
|
|
|
# Web
|
|
httpx==0.27.*
|
|
beautifulsoup4==4.12.*
|
|
feedparser==6.0.* # RSS/Atom feed parsing
|
|
playwright>=1.40 # Headless browser for JS-heavy pages
|
|
|
|
# Scheduler
|
|
apscheduler==3.10.*
|
|
|
|
# Auth
|
|
argon2-cffi==23.*
|
|
pyotp>=2.9
|
|
qrcode[pil]>=7.4
|
|
|
|
# Brain (2nd brain — PostgreSQL + vector search + MCP server)
|
|
asyncpg==0.31.*
|
|
mcp==1.26.*
|
|
|
|
# Utilities
|
|
python-dateutil==2.9.*
|
|
pytz==2024.*
|