Mondo Diaz
722e7d2d81
Add large file upload enhancements and tests ( #43 )
...
- Add upload duration/throughput metrics (duration_ms, throughput_mbps) to response
- Add upload progress logging for large files (hash computation and multipart upload)
- Add client disconnect handling during uploads with proper cleanup
- Add upload progress tracking endpoint GET /upload/{upload_id}/progress
- Add large file upload tests (10MB, 100MB, 1GB)
- Add upload cancellation and timeout handling tests
- Add API documentation for upload endpoints with curl, Python, JavaScript examples
2026-01-16 19:33:31 +00:00
Mondo Diaz
a166b6d37f
Add streaming download enhancements and tests ( #42 )
...
- Add conditional request support (If-None-Match, If-Modified-Since) returning 304 Not Modified
- Add caching headers: Cache-Control (immutable), Last-Modified
- Add 416 Range Not Satisfiable response for invalid range requests
- Add download completion logging with bytes transferred and throughput
- Add client disconnect handling during streaming downloads
- Add comprehensive streaming download tests
2026-01-16 18:55:34 +00:00
Mondo Diaz
bce27c43f3
Add comprehensive integrity verification tests
...
- Round-trip verification: upload → download → verify hash matches
- Client-side verification workflow: pre-upload hash computation, checksum header validation
- Size variant tests: integrity verification for 1KB, 100KB, 1MB, 10MB files
- Consistency check endpoint: response format, after upload, limit parameter
- Digest header tests: RFC 3230 format validation, base64 encoding
- Verification modes: pre-verification and streaming verification
- Corruption detection tests:
- Single bit flip detection
- Truncated content detection
- Appended content detection
- Client-side hash mismatch detection
- Consistency check detects size mismatches
- Consistency check detects missing S3 objects
2026-01-16 18:13:03 +00:00
Mondo Diaz
2bb619975e
Add version API tests for new package_versions feature
...
- Add tests for version creation via upload with explicit version parameter
- Add tests for version auto-detection from filename/metadata
- Add tests for version listing and retrieval
- Add tests for download by version: prefix
- Add tests for version deletion
- Test version resolution priority (version: vs tag: prefixes)
2026-01-16 17:46:38 +00:00
Mondo Diaz
e7ae94b1e1
Merge main into feature/upload-download-tests
2026-01-16 17:39:35 +00:00
Mondo Diaz
4deadc708f
Add comprehensive upload/download API tests and error handling tests
...
- Add upload API tests: upload without tag, artifact creation, S3 storage
- Add download tests: tag: prefix, Content-Type/Length/Disposition headers
- Add download tests: 404 for nonexistent project/package/artifact
- Add checksum header tests: ETag, X-Checksum-SHA256
- Add error handling tests: timeout behavior, checksum validation
- Add resource cleanup tests: verify no orphans on failed uploads
- Add graceful error response tests: JSON format, detail messages
2026-01-16 17:37:09 +00:00
Mondo Diaz
b93d5a9c68
Add separate version tracking for artifacts
2026-01-16 11:36:08 -06:00
Mondo Diaz
9106e79aac
Add upload/download tests for size boundaries and concurrency
...
- Add size boundary tests: 1B, 1KB, 10KB, 100KB, 1MB, 5MB, 10MB, 50MB
- Add large file tests (100MB-1GB) marked with @pytest.mark.large
- Add chunk boundary tests at 64KB boundaries
- Add concurrent upload/download tests (2, 5, 10 parallel)
- Add data integrity tests (binary, text, unicode, compressed)
- Add generate_content() and sized_content fixture for test helpers
- Add @pytest.mark.large and @pytest.mark.concurrent markers
- Fix Content-Disposition header encoding for non-ASCII filenames (RFC 5987)
2026-01-16 17:22:16 +00:00
Mondo Diaz
5d5a054452
Replace project cards with sortable data table on Home page
2026-01-15 14:17:56 -06:00
Mondo Diaz
32162c4ec7
Cleanup: improve pod naming, remove dead code, update docs
2026-01-14 14:47:11 -06:00
Mondo Diaz
4b3d2fd41d
Add feature branch deployment pipeline
2026-01-14 12:29:37 -06:00
Mondo Diaz
617bcbe89c
Implement authentication system with access control UI
2026-01-12 09:52:35 -07:00
Mondo Diaz
10d3694794
Add drag-and-drop upload component with chunked uploads and offline support
2026-01-08 11:59:32 -06:00
Mondo Diaz
35fda65d38
Add download verification with SHA256 checksum support ( #26 , #27 , #28 , #29 )
2026-01-07 13:36:46 -06:00
Mondo Diaz
2f1891cf01
Metadata database tracks all uploads with project, package, tag, and timestamp queryable via API
2026-01-07 12:31:44 -06:00
Mondo Diaz
7e68baed08
Add ref_count management for deletions with atomic operations and error handling
2026-01-06 13:44:23 -06:00
Mondo Diaz
2df97ae94a
Add presigned URL support for direct S3 downloads ( #48 )
2025-12-15 16:06:51 -06:00
Mondo Diaz
3fd2747ae4
Store SHA256 checksums with artifacts and add multiple hash support
2025-12-15 14:47:30 -06:00
Mondo Diaz
b52c8840f1
Add schema enhancements for uploads, artifacts, and audit tracking
2025-12-12 15:23:50 -06:00
Mondo Diaz
9604540dd3
Implement database storage layer
2025-12-12 12:45:33 -06:00
Mondo Diaz
096887d4da
Add global search and filtering enhancements
2025-12-12 12:12:46 -06:00
Mondo Diaz
7d80bef39a
Fix: restore enhanced tags API endpoints
2025-12-12 10:57:27 -06:00
Mondo Diaz
5d0122fc36
Revert "Add API endpoints for listing tagged versions and artifacts"
...
This reverts commit 54e33e67ce .
2025-12-12 10:33:21 -06:00
Mondo Diaz
2b5bc60a69
Add API endpoints for listing tagged versions and artifacts
2025-12-12 10:23:40 -06:00
Mondo Diaz
dea03c4a12
Implement Backend API to List Packages within a Project
2025-12-11 18:47:46 -06:00
Mondo Diaz
c119ab4a04
Implement backend upload/download API enhancements
2025-12-11 18:05:08 -06:00
Mondo Diaz
e9404a4425
Merge branch 'feature/projects-api-pagination-search' into 'main'
...
Add pagination and search to projects API
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!1
2025-12-11 15:03:42 -06:00
Mondo Diaz
b896ad1fad
Add pagination and search to projects API
2025-12-11 15:03:41 -06:00
Mondo Diaz
c08d1082eb
Add development mode with automatic test data seeding
2025-12-11 14:36:22 -06:00
Mondo Diaz
2e2f17ae37
Fix remaining old terminology references
...
- backend/app/main.py: grove/ -> project/ in SPA route check
- frontend/vite.config.ts: /grove -> /project proxy
- helm/orchard/templates/NOTES.txt: Updated API examples
- migrations/001_initial.sql: Updated table/column names
2025-12-08 10:41:26 -06:00
Mondo Diaz
ff7df9eb3f
Rename terminology to industry standard terms
...
- Grove → Project
- Tree → Package
- Fruit → Artifact
- Graft → Tag
- Cultivate → Upload
- Harvest → Download
Updated across:
- Backend models, schemas, and routes
- Frontend types, API client, and components
- README documentation
- API endpoints now use /project/:project/packages pattern
2025-12-08 10:38:44 -06:00
Mondo Diaz
2261bfc830
Rewrite from Go + vanilla JS to Python (FastAPI) + React (TypeScript)
...
- Backend: Python 3.12 with FastAPI, SQLAlchemy, boto3
- Frontend: React 18 with TypeScript, Vite build tooling
- Updated Dockerfile for multi-stage Node + Python build
- Updated CI pipeline for Python backend
- Removed old Go code (cmd/, internal/, go.mod, go.sum)
- Updated README with new tech stack documentation
2025-12-05 17:16:43 -06:00