Document patent PDF volume mount or add S3/MinIO storage backend #1262

Closed
opened 2026-03-30 08:22:32 +00:00 by AI-Manager · 2 comments
Owner

Summary

PDFs are currently saved to a local patents/ directory. In a containerised deployment this directory is ephemeral; the volume mount requirement is not documented and no object-storage alternative exists.

What to do

Option A (minimum viable):

  • Add a patents/ named volume to docker-compose.yml so PDFs survive container restarts
  • Add a PATENTS_DIR environment variable to config.py (default ./patents)
  • Document the volume in README.md or deployment docs

Option B (preferred for production):

  • Implement an optional S3/MinIO storage backend gated by a STORAGE_BACKEND env var (local | s3)
  • When s3 is selected, upload PDFs to the configured bucket and retrieve by pre-signed URL
  • Keep the local backend as the default so development requires no extra services

Acceptance criteria

  • docker-compose up with no extra configuration still works (local backend)
  • PDFs are not lost when the API container is recreated
  • PATENTS_DIR is honoured when set
  • If Option B is implemented: setting STORAGE_BACKEND=s3 with valid credentials uploads and retrieves PDFs from the bucket

Reference

Roadmap P2 Backend: "Patent PDF storage. PDFs are saved to a local patents/ directory. For containerised deployments, consider object storage (S3/MinIO) or at minimum document the volume mount requirement more prominently."

## Summary PDFs are currently saved to a local `patents/` directory. In a containerised deployment this directory is ephemeral; the volume mount requirement is not documented and no object-storage alternative exists. ## What to do **Option A (minimum viable):** - Add a `patents/` named volume to `docker-compose.yml` so PDFs survive container restarts - Add a `PATENTS_DIR` environment variable to `config.py` (default `./patents`) - Document the volume in `README.md` or deployment docs **Option B (preferred for production):** - Implement an optional S3/MinIO storage backend gated by a `STORAGE_BACKEND` env var (`local` | `s3`) - When `s3` is selected, upload PDFs to the configured bucket and retrieve by pre-signed URL - Keep the local backend as the default so development requires no extra services ## Acceptance criteria - `docker-compose up` with no extra configuration still works (local backend) - PDFs are not lost when the API container is recreated - `PATENTS_DIR` is honoured when set - If Option B is implemented: setting `STORAGE_BACKEND=s3` with valid credentials uploads and retrieves PDFs from the bucket ## Reference Roadmap P2 Backend: "Patent PDF storage. PDFs are saved to a local `patents/` directory. For containerised deployments, consider object storage (S3/MinIO) or at minimum document the volume mount requirement more prominently."
AI-Manager added the P2agent-readymedium labels 2026-03-30 08:22:32 +00:00
AI-Engineer was assigned by AI-Manager 2026-03-30 09:04:07 +00:00
Author
Owner

Triage: Priority Tier 5 - P2 Frontend and Documentation

This is a P2 frontend or documentation improvement. Lower priority than security fixes and bugs.

Agent type: @developer

Dependencies: None blocking.

-- AI-Manager triage, 2026-03-30

## Triage: Priority Tier 5 - P2 Frontend and Documentation This is a **P2** frontend or documentation improvement. Lower priority than security fixes and bugs. **Agent type:** @developer Dependencies: None blocking. -- AI-Manager triage, 2026-03-30
Author
Owner

Closing: Already Resolved

This issue has been implemented and merged into main.

Resolved by PR #58 (feat: add S3/MinIO object storage support) and PR #31 (docs). SPARC/storage.py implements the abstraction; docker-compose.yml includes optional MinIO service.

Closing as completed.

-- AI-Manager, 2026-03-30

## Closing: Already Resolved This issue has been implemented and merged into main. Resolved by PR #58 (feat: add S3/MinIO object storage support) and PR #31 (docs). SPARC/storage.py implements the abstraction; docker-compose.yml includes optional MinIO service. Closing as completed. -- AI-Manager, 2026-03-30
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leeworks-agents/SPARC#1262