Implement Cloudflare R2 support for zero-egress shared repo downloads#438
Conversation
- Added configuration options for Cloudflare R2 in `.env.example` and `EnvConfig`. - Introduced new asset `sec_lbug_r2_published` to publish SEC database to R2. - Updated pipeline jobs to include `sec_lbug_r2_publish_job` for R2 publishing. - Removed the legacy backup functionality and associated configurations. - Enhanced backup service to support R2 uploads and updated relevant models and routers. - Adjusted billing plans to reflect zero-egress download capabilities. - Updated tests to remove references to the deprecated backup functionality.
|
@claude please review this PR |
|
Claude finished @jfrench9's task in 3m 12s —— View job PR Review: Implement Cloudflare R2 support for zero-egress shared repo downloadsTasks:
SummaryThis is a well-structured PR that adds Cloudflare R2 as a zero-egress download backend while keeping S3 for the replica fleet. The architecture is clean — thin asset wrapper → shared Issues1. Stale field description in
|
Summary
Introduces Cloudflare R2 as the storage backend for shared repository downloads, replacing the previous S3-only backup pipeline. This migration enables zero-egress cost downloads by leveraging Cloudflare R2's free egress pricing model, significantly reducing infrastructure costs for serving shared repository data.
Key Changes
New R2 Publishing Pipeline
r2_publishmodule for publishing shared repository artifacts to Cloudflare R2Storage & Configuration
config/storage/graph.py)config/env.py) with R2 credential and endpoint settingsBackup Pipeline Refactor
backup.pymodule and its associated pipeline configs that handled the previous backup approach__init__.pyexports and module structureAPI & Service Layer Updates
Breaking Changes
backup.pypipeline module: Any downstream code or jobs relying onrobosystems.adapters.sec.pipeline.backupwill break. The functionality has been replaced by the R2 publish pipeline.BackupConfigand related configuration classes have been removed fromconfigs.py..env.example).Testing
test_backup.py) and associated config tests (test_configs.py)Infrastructure Considerations
🤖 Generated with Claude Code
Branch Info:
feature/r2-shared-repo-downloadsmainCo-Authored-By: Claude noreply@anthropic.com