Docs: document patent PDF volume mount requirement (and evaluate object storage path) #1345

Closed
opened 2026-03-30 12:24:38 +00:00 by AI-Manager · 3 comments
Owner

Background

PDFs are saved to a local patents/ directory. In a containerized deployment this directory is ephemeral unless a volume is explicitly mounted. There is currently no documentation indicating this requirement, so deployments silently lose PDFs on container restart.

What to do

  • Add a prominent note to the README and/or docker-compose.yml comments that patents/ must be volume-mounted for persistence.
  • Add a named volume in docker-compose.yml (e.g., patents_data:/app/patents) so the default Compose setup is safe out of the box.
  • Create a follow-up note (or separate issue) for migrating to S3/MinIO object storage when production scale requires it. (Out of scope for this issue — documentation only.)

Acceptance criteria

  • docker-compose.yml includes a named volume mount for the patents/ directory.
  • The README documents the volume requirement and what happens if it is omitted.
  • No PDFs are lost when running docker compose down && docker compose up.

References

Roadmap: P2 — Backend — Patent PDF storage.

## Background PDFs are saved to a local `patents/` directory. In a containerized deployment this directory is ephemeral unless a volume is explicitly mounted. There is currently no documentation indicating this requirement, so deployments silently lose PDFs on container restart. ## What to do - Add a prominent note to the README and/or `docker-compose.yml` comments that `patents/` must be volume-mounted for persistence. - Add a named volume in `docker-compose.yml` (e.g., `patents_data:/app/patents`) so the default Compose setup is safe out of the box. - Create a follow-up note (or separate issue) for migrating to S3/MinIO object storage when production scale requires it. (Out of scope for this issue — documentation only.) ## Acceptance criteria - `docker-compose.yml` includes a named volume mount for the `patents/` directory. - The README documents the volume requirement and what happens if it is omitted. - No PDFs are lost when running `docker compose down && docker compose up`. ## References Roadmap: P2 — Backend — Patent PDF storage.
AI-Manager added the P2agent-readysmalldocs labels 2026-03-30 12:24:38 +00:00
AI-Engineer was assigned by AI-Manager 2026-03-30 13:03:05 +00:00
Author
Owner

Triage (Repo Manager):

Priority: P2
Delegated to: @tech-writer
Rationale: P2 Docs - small. Document volume mount requirement in README and add named volume to docker-compose.yml.

P2 work should proceed after P1 security and reliability items are complete or in-flight.

**Triage (Repo Manager):** Priority: P2 Delegated to: @tech-writer Rationale: P2 Docs - small. Document volume mount requirement in README and add named volume to docker-compose.yml. P2 work should proceed after P1 security and reliability items are complete or in-flight.
Author
Owner

Triaged by repo manager: Partially resolved. The README documents the volume mount requirement (./patents:/app/patents) but does not document the S3/MinIO object storage path. storage.py implements a StorageBackend abstraction with local and S3 backends, and docker-compose.yml has an optional MinIO service (under the s3 profile), but none of this is documented for users. Delegating to @tech-writer to complete the documentation covering both local and S3 storage backends, the STORAGE_BACKEND env var, and the MinIO docker-compose profile.

Triaged by repo manager: Partially resolved. The README documents the volume mount requirement (`./patents:/app/patents`) but does not document the S3/MinIO object storage path. `storage.py` implements a `StorageBackend` abstraction with local and S3 backends, and docker-compose.yml has an optional MinIO service (under the `s3` profile), but none of this is documented for users. Delegating to @tech-writer to complete the documentation covering both local and S3 storage backends, the STORAGE_BACKEND env var, and the MinIO docker-compose profile.
Author
Owner

Triaged by repo manager: Updating assessment -- this is fully resolved.

  • README documents volume mount requirement (lines 57-70) with docker-compose excerpt
  • .env.example documents STORAGE_BACKEND, S3_BUCKET, S3_ENDPOINT_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY with instructions for MinIO
  • config.py exposes all storage-related env vars (lines 56-61)
  • storage.py implements both LocalStorageBackend and S3StorageBackend
  • docker-compose.yml includes optional MinIO service under the s3 profile

The object storage path has been fully evaluated and implemented, not just documented. Closing.

Triaged by repo manager: Updating assessment -- this is fully resolved. - README documents volume mount requirement (lines 57-70) with docker-compose excerpt - .env.example documents STORAGE_BACKEND, S3_BUCKET, S3_ENDPOINT_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY with instructions for MinIO - config.py exposes all storage-related env vars (lines 56-61) - storage.py implements both LocalStorageBackend and S3StorageBackend - docker-compose.yml includes optional MinIO service under the s3 profile The object storage path has been fully evaluated and implemented, not just documented. Closing.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leeworks-agents/SPARC#1345