Releases: ebogdum/callfs
Releases · ebogdum/callfs
v1.4.0
v1.3.0
Breaking Changes
- Authorization model replaced: Removed Unix-style UID/GID permission system. Authorization is now based on an
ownerstring field (the app user ID). App users have no relationship to OS users. TheMetadatastruct no longer hasUIDorGIDfields; useOwnerinstead. - API response headers changed:
X-CallFS-UIDandX-CallFS-GIDheaders replaced withX-CallFS-Owner. - JSON response format changed: File listing
uid/gidinteger fields replaced withownerstring field. - Database schema migration: SQLite schema replaces
uid/gidINTEGER columns withownerTEXT. Postgres migration003_replace_uid_gid_with_owneraddsownercolumn and dropsuid/gid.
New Features
- Owner-based access control: files and directories track their creator via the
Ownerfield. Owners have full access; other authenticated users can read files and create children in directories; admin users (root,internal-proxy) bypass all checks. Engine.GetMetadataUncached()for bypassing the metadata cache when fresh data is needed.
Bug Fixes
- Raft stale reads: Fixed
ListChildrenon follower nodes returning partially-replicated results. Followers now forward to the leader for consistent reads. - Cross-server Content-Length mismatch: Fixed empty responses when reading files after concurrent cross-server writes.
- S3/MinIO SSE error: Fixed 500 errors on S3 file creation with MinIO due to default SSE config.
- Integration test fixes: Fixed env-var override test (scratch container), test framework assertion counter.
Tests
- 16 new unit tests for auth (authenticator + authorizer).
- All 35 Docker-based integration test suites pass.
Documentation
- Comprehensive audit of all 12 documentation files. Fixed 23 discrepancies.
Full Changelog: v1.2.0...v1.3.0
v1.2.0
What's Changed
Features
- Reed-Solomon erasure coding with parallel multi-server shard download
- New
/v1/shards/{path}/{index}endpoint for individual shard retrieval
Documentation Fixes
- Corrected authentication description from "JWT" to "API key" across all Swagger/OpenAPI specs
- Added missing
/v1/shardsand/v1/files/ws(WebSocket) endpoints to API specs - Documented erasure coding headers (
X-CallFS-Erasure-*) alongside query parameters - Added missing CLI flags (
--api-endpoint,--internal-secret) for cluster join - Added
external_url, logging config, and validation notes to minimal config example - Documented rate limiting (link generation: 100 req/s, downloads: 10 req/s)
- Corrected feature comparison table for MinIO, SeaweedFS, and Ceph RGW
- Removed premature contact info from Swagger specs
Fixes
- Fixed Dockerfile Go version from 1.21 to 1.24 (matching go.mod)
- Hardened auth, rate limiting, distributed locking, error handling, and path sanitization
Dependencies
- Bumped golang.org/x/crypto to v0.45.0
- Bumped github.com/go-viper/mapstructure/v2 to v2.4.0
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
Features
- Raft metadata mode for fully self-contained clusters with no external dependencies
- Multi-store metadata configuration (PostgreSQL, SQLite, Redis, Raft)
Fixes
- Critical security and data integrity fixes
- Hardened infrastructure and runtime paths
Full Changelog: v1.0.0...v1.1.0
Release v1.0.0
Version v1.0.0 not found in changelog. Extracting latest changes...
[0.1.0] - 2025-07-13
Added
- Initial public release of CallFS
- REST API filesystem with GET, POST, PUT, HEAD, DELETE operations
- Multiple storage backends: Local filesystem and S3
- Multi-server architecture with transparent internal routing
- Secure single-use links with HMAC signatures
- Distributed locking with Redis backend
- In-memory metadata caching with TTL and LRU eviction
- Prometheus metrics integration
- Rate limiting for API endpoints
- API key authentication
- Unix socket authorization for local access
- Comprehensive logging with structured JSON output
- Security headers middleware (CSP, HSTS, etc.)
- Request ID tracking across requests
- OpenAPI/Swagger documentation
- Docker and Docker Compose support
- Comprehensive test coverage
- CI/CD workflows for GitHub Actions
- Security scanning and code quality checks
Security
- Added security headers middleware
- Implemented proper error handling to prevent information leakage
- Added rate limiting to prevent abuse
- Secure file path handling to prevent directory traversal attacks
Documentation
- Installation guide
- Configuration reference
- API documentation with OpenAPI spec
- Developer guide
- Troubleshooting guide
- Contributing guidelines
- Code of conduct
- Security policy