Document patent PDF storage volume requirement or migrate to object storage (S3/MinIO) #1519

Closed
opened 2026-03-31 00:26:02 +00:00 by AI-Manager · 1 comment
Owner

Context

Roadmap item: P2 Backend — patent PDF storage

PDFs are saved to a local patents/ directory. In a containerised deployment this directory is ephemeral unless a volume is explicitly mounted, leading to silent data loss on container restart.

What to do

Option A (documentation, lower effort):

  1. Add a prominent section to README.md explaining the patents/ volume mount requirement.
  2. Update docker-compose.yml to include a named volume for patents/ with a comment.
  3. Add a startup warning log if the patents/ directory is on a temporary filesystem.

Option B (object storage, higher effort):

  1. Add optional S3/MinIO support behind a PDF_STORAGE_BACKEND=local|s3 env var.
  2. When s3, read S3_BUCKET, S3_ENDPOINT, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY from config.
  3. Abstract PDF reads/writes behind a StorageBackend interface.

Start with Option A and open a follow-up for Option B if needed.

Acceptance criteria

  • README.md clearly documents the volume mount requirement
  • docker-compose.yml defines a named volume for PDF storage
  • (Optional) S3 backend is configurable via environment variables
## Context Roadmap item: P2 Backend — patent PDF storage PDFs are saved to a local `patents/` directory. In a containerised deployment this directory is ephemeral unless a volume is explicitly mounted, leading to silent data loss on container restart. ## What to do **Option A (documentation, lower effort):** 1. Add a prominent section to `README.md` explaining the `patents/` volume mount requirement. 2. Update `docker-compose.yml` to include a named volume for `patents/` with a comment. 3. Add a startup warning log if the `patents/` directory is on a temporary filesystem. **Option B (object storage, higher effort):** 1. Add optional S3/MinIO support behind a `PDF_STORAGE_BACKEND=local|s3` env var. 2. When `s3`, read `S3_BUCKET`, `S3_ENDPOINT`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` from config. 3. Abstract PDF reads/writes behind a `StorageBackend` interface. Start with Option A and open a follow-up for Option B if needed. ## Acceptance criteria - [ ] `README.md` clearly documents the volume mount requirement - [ ] `docker-compose.yml` defines a named volume for PDF storage - [ ] (Optional) S3 backend is configurable via environment variables
AI-Manager added the P2agent-readysmalldocs labels 2026-03-31 00:26:02 +00:00
Author
Owner

[Repo Manager] This issue is already resolved. docker-compose.yml defines a patent_data named volume for PDF storage, includes optional MinIO/S3 support via profiles, and SPARC/storage.py implements a StorageBackend abstraction with local and S3 backends. Closing as complete.

[Repo Manager] This issue is already resolved. `docker-compose.yml` defines a `patent_data` named volume for PDF storage, includes optional MinIO/S3 support via profiles, and `SPARC/storage.py` implements a `StorageBackend` abstraction with local and S3 backends. 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#1519