docs: attachments & storage backend design (#38, #31) #69

Merged
poslop merged 1 commits from issue-38-31-storage-design into main 2026-09-09 14:27:50 +00:00
Owner

Design doc for #38 (attachments storage) and #31 (storage backend choice). No implementation.

  • Attachments (#38): filesystem-on-PVC recommended behind a small blob interface (Put/Open/Delete) so MinIO stays a drop-in later. Size limit via admin setting (default 10 MiB, enforced pre-read + during stream). Server-side MIME sniffing with allowlist, nosniff, CSP sandbox, Content-Disposition rules; SVG never served inline.
  • Storage (#31): stay SQLite-only (WAL + modernc driver). No Postgres/Redis, no backend abstraction now; internal/store package boundary is the abstraction. Trigger conditions for revisiting documented in the doc.

Consumer: paste cans (#4).

Design doc for #38 (attachments storage) and #31 (storage backend choice). No implementation. - **Attachments (#38):** filesystem-on-PVC recommended behind a small blob interface (Put/Open/Delete) so MinIO stays a drop-in later. Size limit via admin setting (default 10 MiB, enforced pre-read + during stream). Server-side MIME sniffing with allowlist, nosniff, CSP sandbox, Content-Disposition rules; SVG never served inline. - **Storage (#31):** stay SQLite-only (WAL + modernc driver). No Postgres/Redis, no backend abstraction now; internal/store package boundary is the abstraction. Trigger conditions for revisiting documented in the doc. Consumer: paste cans (#4).
poslop added 1 commit 2026-09-09 14:10:15 +00:00
docs: attachments & storage backend design (#38, #31)
CI / docker (pull_request) Skipped
CI / test (pull_request) Successful in 17s
594b5f01aa
- attachments: filesystem-on-PVC recommended, blob interface keeps MinIO
  as a later drop-in; size limits via admin setting; sniffed-mime +
  nosniff/sandbox serving rules
- storage backend: stay SQLite-only (WAL, modernc); no Postgres/Redis and
  no backend abstraction until documented trigger conditions fire
poslop merged commit 7ca1b58362 into main 2026-09-09 14:27:50 +00:00
Sign in to join this conversation.