Repository navigation
Releases: NCUnix/GitHubActionCacheServer
Releases · NCUnix/GitHubActionCacheServer
Release list
v1.1.2
-
Security and API Hardening
- fix(httpapi): HMAC-sign and verify upload URLs, rename download signature param to sig
- fix(httpapi): validate X-Forwarded-* for URL generation and de-reflect OpenAPI server URL
- fix(auth): require exp claim with clock-skew leeway in JWT validation
- fix(auth): initialize JWKS verifier eagerly with explicit timeouts and retries
- fix(cache): pin download response headers to prevent content sniffing
-
Storage and Reliability
- fix(cache): support validated ranged proxy downloads
- fix(storage): bound reconciliation and cleanup memory usage
- fix(cache): signal already-exists on reserve for live finalized cache entries
- fix(cache): keep active uploads alive during cleanup
-
Protocol and Compatibility
- fix(cache): accept proto3 JSON string size_bytes in finalize
-
Performance
- perf(cache): materialize capacity eviction recency for indexed candidate ordering
- perf(cache): take location row lock on downloads only while merge is possible
- perf(cache): batch reader lease releases
v1.1.1
-
Storage and Reliability
- feat(cache): protect active downloads with durable reader leases and fenced deletion
- feat(cache): validate storage representation before issuing download URLs
- feat(storage): persist logical payload sizes via shared storage inventory
- feat(cache): add capacity-based LRU eviction
- feat(cleanup): reconcile physical storage orphaned outside the deletion outbox
- fix(cache): serialize partsReadCloser reads against lease-loss closes
- feat(storage): fsync filesystem uploads before commit
- fix(storage): sweep orphaned .upload-* temporary files daily
-
Protocol and Compatibility
- feat(config): support GHES token issuer via ACTIONS_TOKEN_ISSUER
- feat(httpapi): support protobuf Twirp CacheService requests and responses
- fix(cache): match cache keys case-sensitively across SQL dialects
- feat: add PostgreSQL and MySQL TLS configuration
-
Security and API Hardening
- fix(config): reject out-of-range cleanup retention values at startup
- fix(httpapi): cap Twirp CacheService request body sizes
- fix(httpapi): guard blocklist commit against invalid uploads and unbounded XML
- fix(http): bound server and fallback proxy timeouts
- fix: compare management API keys in constant time
- fix(httpapi): hide internal error details from client responses
- fix: return 503 when token verifier initialization fails
- fix: prevent management pagination offset overflow
- fix(config): warn at startup when the download URL signing secret is unset
-
Database and Shutdown Reliability
- fix(db): replace oversized upload unique index with tuple hash
- feat(db): serialize schema migration across instances
- fix: avoid false merge timeout during shutdown
- fix(server): drain background database users before closing the database
- fix: restore default signal handling during shutdown
-
Observability
- feat(observability): log download, materialization, and storage deletion failures
- feat(metrics): expose Prometheus metrics surface
-
Performance
- fix(httpapi): batch management cache entry deletion
- perf(storage): reuse pooled buffer for filesystem uploads
v1.0.6
-
Storage and Reliability
- perf(storage): commit block lists via storage-level copy
- feat: add transactional outbox for physical storage deletions
-
Performance
- perf(cache): avoid storage scans for committed parts
- perf(cache): decouple download streaming from background materialization
- perf(cache): throttle recency writes and drop obsolete upload counters
- perf(db): add composite index for cache matching
v1.0.5
- Storage
- feat(storage): expose S3 upload tuning options
- Performance
- perf(buffer): pool stream copy buffers
- Cache and Management API
- refactor: reduce duplicated cache and management logic
v1.0.4
fix(db): match original schema for in-place migration
v1.0.3
ci(docker): generate ent before image build