This commit is contained in:
24
CHANGELOG.md
24
CHANGELOG.md
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- Added download verification with `verify` and `verify_mode` query parameters (#26)
|
||||
- `?verify=true&verify_mode=pre` - Pre-verification: verify before streaming (guaranteed no corrupt data)
|
||||
- `?verify=true&verify_mode=stream` - Streaming verification: verify while streaming (logs error if mismatch)
|
||||
- Added checksum response headers to all download endpoints (#27)
|
||||
- `X-Checksum-SHA256` - SHA256 hash of the artifact
|
||||
- `X-Content-Length` - File size in bytes
|
||||
- `X-Checksum-MD5` - MD5 hash (if available)
|
||||
- `ETag` - Artifact ID (SHA256)
|
||||
- `Digest` - RFC 3230 format sha-256 hash (base64)
|
||||
- `X-Verified` - Verification status (true/false/pending)
|
||||
- Added `checksum.py` module with SHA256 utilities (#26)
|
||||
- `compute_sha256()` and `compute_sha256_stream()` functions
|
||||
- `HashingStreamWrapper` for incremental hash computation
|
||||
- `VerifyingStreamWrapper` for stream verification
|
||||
- `verify_checksum()` and `verify_checksum_strict()` functions
|
||||
- `ChecksumMismatchError` exception with context
|
||||
- Added `get_verified()` and `get_stream_verified()` methods to storage layer (#26)
|
||||
- Added `logging_config.py` module with structured logging (#28)
|
||||
- JSON logging format for production
|
||||
- Request ID tracking via context variables
|
||||
- Verification failure logging with full context
|
||||
- Added `log_level` and `log_format` settings to configuration (#28)
|
||||
- Added 62 unit tests for checksum utilities and verification (#29)
|
||||
- Added 17 integration tests for download verification API (#29)
|
||||
- Added global artifacts endpoint `GET /api/v1/artifacts` with project/package/tag/size/date filters (#18)
|
||||
- Added global tags endpoint `GET /api/v1/tags` with project/package/search/date filters (#18)
|
||||
- Added wildcard pattern matching (`*`) for tag filters across all endpoints (#18)
|
||||
|
||||
Reference in New Issue
Block a user