13789cc0b4
fix: remove duplicate /health route, escape extracted text, validate uploads, handle binary decode
...
- main.py: remove duplicate /health endpoint definition
- text_extract.py: HTML-escape extracted plain text before indexing so raw
markup in uploaded documents can't render as live HTML via search snippets
(stored XSS fix)
- document_service.py: base64-encode content when UTF-8 decoding fails
instead of raising UnicodeDecodeError (500) on binary files; add upload
validation for file extension (allowlist) and size (10MB max)
- routers/documents.py: map new validation errors to HTTP 400 with a clear
detail message instead of letting them 500
- add/extend tests covering escaping, binary get_document, and upload
validation rejection + acceptance paths
2026-08-01 08:59:34 +08:00
ad16c1732d
feat: wire FileExplorer, DocumentEditor, search and upload into App
2026-08-01 02:55:58 +08:00
90f3784ffa
feat: add UploadButton with click-to-select and drag-and-drop
2026-08-01 02:54:05 +08:00
10b2b575d9
feat: add debounced SearchBar and highlighted SearchResults
2026-08-01 02:51:55 +08:00
e341a56fb2
feat: add DocumentEditor with dirty tracking and save
2026-08-01 02:47:29 +08:00
020ddac994
feat: add FileExplorer with lazy-loaded folder tree
2026-08-01 02:45:35 +08:00
e4dbd34604
feat: add typed API client for documents, upload and search
2026-08-01 02:43:32 +08:00
f8e3605ba9
feat: scaffold frontend project with Vite, Vitest and Docker build
2026-08-01 02:40:18 +08:00
448a5cbe56
feat: wire documents and search routers into FastAPI app with e2e smoke test
2026-08-01 02:36:58 +08:00
d758500548
feat: add search route forwarding queries to SearchClient
2026-08-01 02:35:00 +08:00
6633cab98e
chore: wire documents router into main.py for testing
2026-08-01 02:32:51 +08:00
5b4bc4e719
feat: add documents router for list/get/save/delete/upload
2026-08-01 02:32:42 +08:00
6a286d422d
feat: add DocumentService coordinating MinIO writes and search indexing
2026-08-01 02:28:58 +08:00
c931b870ed
feat: add SearchClient wrapper for index/delete/search operations
2026-08-01 02:25:48 +08:00
f4126ff3ec
feat: add MinioClient wrapper for list/get/put/delete object operations
2026-08-01 02:24:15 +08:00
2a7a197b95
feat: add stdlib-only markdown and html text extraction for indexing
2026-08-01 02:21:38 +08:00
f9c612927a
feat: scaffold FastAPI backend with config and health endpoint
2026-08-01 02:15:01 +08:00
954f7ac367
Restructure backend plan to FastAPI's official routers/ + dependencies.py layout
2026-08-01 02:01:28 +08:00
ba7ee21c28
Add DocHub implementation plan
2026-08-01 01:54:16 +08:00
763fbb77a8
Add DocHub design spec
2026-08-01 00:22:16 +08:00