- POST /api/sources/global/upload-pdf: multipart File-Upload,
50 MB Limit, SHA256-Dedup, speichert PDF unter <dirname(DB)>/pdfs/{sha}.pdf,
legt Source mit processed_at=NULL an (Monitor verarbeitet asynchron)
- pattern in GlobalSourceUpdate um pdf_document erweitert (2x)
- dashboard.html: Button + Modal im Grundquellen-Sub-Tab
- sources.js: openPdfUploadModal + setupPdfUploadForm + FormData-Submit
- app.js: API.upload(path, formData) Helper fuer multipart
- requirements.txt: pypdf (Validierung optional)
12 Zeilen
187 B
Plaintext
12 Zeilen
187 B
Plaintext
fastapi==0.115.6
|
|
uvicorn[standard]==0.34.0
|
|
python-jose[cryptography]
|
|
passlib[bcrypt]
|
|
aiosqlite
|
|
python-multipart
|
|
aiosmtplib
|
|
httpx>=0.28
|
|
feedparser>=6.0
|
|
# PDF-Upload-Validierung
|
|
pypdf>=5.0
|