What problem does this solve?
There is no way to see which specific documents have been synced without reading through the raw log. Users have no audit trail and cannot quickly verify whether a specific invoice made it to Paperless-ngx or check its status after a failed sync attempt.
Proposed solution
Add a /documents page with a paginated table of all processed documents. Each row links directly to the document in Paperless-ngx.
- Columns: Invoice No., Document Date, Gross Amount, Status, Synced At, Paperless Link
- Paperless link constructed from
paperless_base_url + resolved document ID
- Search/filter by invoice number
- Status column reflects
UPLOADED / FAILED / PENDING with visual indicators (depends on feat/retry-mechanism)
- 50 rows per page, HTMX-powered search (depends on
feat/htmx-ui)
- Added to the main navigation
Acceptance criteria:
Alternatives considered
Embedding the document list directly on the dashboard was considered, but a dedicated page scales better as the number of synced documents grows and avoids cluttering the dashboard.
Architecture fit
What problem does this solve?
There is no way to see which specific documents have been synced without reading through the raw log. Users have no audit trail and cannot quickly verify whether a specific invoice made it to Paperless-ngx or check its status after a failed sync attempt.
Proposed solution
Add a
/documentspage with a paginated table of all processed documents. Each row links directly to the document in Paperless-ngx.paperless_base_url+ resolved document IDUPLOADED/FAILED/PENDINGwith visual indicators (depends onfeat/retry-mechanism)feat/htmx-ui)Acceptance criteria:
/documentsroute renders a paginated tableAlternatives considered
Embedding the document list directly on the dashboard was considered, but a dedicated page scales better as the number of synced documents grows and avoids cluttering the dashboard.
Architecture fit