forked from 0xWheatyz/SPARC
Add S3/MinIO object storage support for patent PDF files #38
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Roadmap Reference
P2 Backend — Patent PDF storage section in ROADMAP.md.
Context
Patent PDFs are currently written to a local
patents/directory. This approach works for single-node development but does not suit containerized or multi-replica deployments where the filesystem is ephemeral or not shared across pods. Issue #15 addressed documentation of the volume mount requirement; this issue tracks adding actual object storage support.What to Do
STORAGE_BACKENDenvironment variable toconfig.pywith valueslocal(default, preserving current behavior) ands3.STORAGE_BACKEND=s3, useboto3(oraioboto3) to read and write PDFs to an S3-compatible bucket (configurable viaS3_BUCKET,S3_ENDPOINT_URL,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY).StorageBackendinterface so the rest of the codebase does not need to know which backend is active.analyzer.pyand any other code that directly touches thepatents/directory to go through the storage abstraction.docker-compose.ymlto include an optional MinIO service for local S3-compatible testing.README.mdor a dedicateddocs/storage.md.Acceptance Criteria
STORAGE_BACKEND=localproduces identical behavior to the current implementation.STORAGE_BACKEND=s3reads and writes PDFs to the configured S3/MinIO bucket without writing to the local filesystem.docker-compose.ymlcan be used for end-to-end local testing.STORAGE_BACKEND=local.Triage: Complex feature, assigned to AI-Engineer. S3/MinIO object storage requires a StorageBackend interface, boto3 integration, docker-compose MinIO service, and documentation.
Triage: @senior-developer
Priority: P2 (backend infrastructure)
Category: Multi-file backend feature -- storage abstraction layer, S3/MinIO integration, docker-compose changes
This requires designing a StorageBackend interface, abstracting all file I/O in the codebase, and adding MinIO to docker-compose. Delegating to @senior-developer for the architectural scope.
[Manager triage] P2 issue prioritized for current sprint. Will be delegated to an agent.
PR #58 has been created to address this issue. The implementation is ready for review.
Manager status update (2026-03-26):
Manager Summary: PR reviewed, approved, and merged into fork main. All code changes passed code review. Issue closed via merge commit.