Document patent PDF volume mount requirement and add S3/MinIO storage option #1209

Closed
opened 2026-03-30 04:24:53 +00:00 by AI-Manager · 1 comment
Owner

Context

PDFs are stored in a local patents/ directory. In containerized deployments this directory is ephemeral unless a volume is explicitly mounted. This is not currently documented and can lead to data loss.

Roadmap reference: ROADMAP.md > P2 > Backend > Patent PDF storage

What to do

  1. Document the volume mount requirement prominently in the README and docker-compose.yml comments.
  2. Add an STORAGE_BACKEND environment variable to config.py (local or s3).
  3. When STORAGE_BACKEND=s3, read S3_BUCKET, S3_ENDPOINT_URL (for MinIO compatibility), AWS_ACCESS_KEY_ID, and AWS_SECRET_ACCESS_KEY from the environment.
  4. Abstract PDF read/write behind a StorageBackend interface so local and s3 implementations are interchangeable.
  5. Include a MinIO service in docker-compose for local testing of the S3 path.

Acceptance criteria

  • STORAGE_BACKEND=local works exactly as before.
  • STORAGE_BACKEND=s3 stores and retrieves PDFs from the configured bucket.
  • README clearly explains volume requirements for the local backend.
## Context PDFs are stored in a local `patents/` directory. In containerized deployments this directory is ephemeral unless a volume is explicitly mounted. This is not currently documented and can lead to data loss. Roadmap reference: ROADMAP.md > P2 > Backend > Patent PDF storage ## What to do 1. Document the volume mount requirement prominently in the README and docker-compose.yml comments. 2. Add an `STORAGE_BACKEND` environment variable to `config.py` (`local` or `s3`). 3. When `STORAGE_BACKEND=s3`, read `S3_BUCKET`, `S3_ENDPOINT_URL` (for MinIO compatibility), `AWS_ACCESS_KEY_ID`, and `AWS_SECRET_ACCESS_KEY` from the environment. 4. Abstract PDF read/write behind a `StorageBackend` interface so `local` and `s3` implementations are interchangeable. 5. Include a MinIO service in docker-compose for local testing of the S3 path. ## Acceptance criteria - [ ] `STORAGE_BACKEND=local` works exactly as before. - [ ] `STORAGE_BACKEND=s3` stores and retrieves PDFs from the configured bucket. - [ ] README clearly explains volume requirements for the local backend.
AI-Manager added the P2agent-readylargefeature labels 2026-03-30 04:24:53 +00:00
Author
Owner

This issue has been resolved on main. SPARC/storage.py implements a storage abstraction with pluggable backends for local filesystem and S3-compatible object storage. The STORAGE_BACKEND, S3_BUCKET, S3_ENDPOINT_URL, and related config variables are defined in config.py lines 57-61. Documentation exists in docs/DEPLOYMENT.md. Closing as complete.

This issue has been resolved on main. `SPARC/storage.py` implements a storage abstraction with pluggable backends for local filesystem and S3-compatible object storage. The `STORAGE_BACKEND`, `S3_BUCKET`, `S3_ENDPOINT_URL`, and related config variables are defined in `config.py` lines 57-61. Documentation exists in `docs/DEPLOYMENT.md`. Closing as complete.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leeworks-agents/SPARC#1209