Repository navigation
Releases: mstgnz/cleango
Releases · mstgnz/cleango
Release list
v1.1.1
Documentation
- README completely revised to match the v1.0.0 API
- Code examples now include proper error handling
- New section: Context support with cancellation and timeout examples
- New table: API Actions Reference — all action strings documented with examples
- Architecture section updated to reflect the actual package layout
- Removed incorrect gRPC claim
v1.1.0
Breaking Changes
TrimColumnsParallel()now returns(*DataFrame, error)instead of*DataFrame
to propagate context cancellation errors. Update callers accordingly:// Before df = df.TrimColumnsParallel() // After df, err = df.TrimColumnsParallel()
New Features
- Context support — All parallel operations now accept WithContext(ctx) option.
Pass context.WithTimeout or context.WithCancel to cancel long-running operations.
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
df, err = df.TrimColumnsParallel(cleaner.WithContext(ctx)) - Graceful shutdown — API server now handles SIGTERM/SIGINT cleanly with a 30s drain window.
- CI/CD pipeline — GitHub Actions workflow runs tests with race detector, builds binaries, and builds Docker image on every push and pull request.
Bug Fixes
- CleanDates now correctly tries the user-provided layout as the first input format candidate.
- FilterOutliersParallel now preserves original row order in the output.
- JSON/YAML/XML readers now produce deterministic column ordering (sort.Strings).
- xml.Header write error is now propagated instead of silently ignored.
- json.NewEncoder().Encode() errors in API handlers are now logged.
Security
- Fixed path traversal vulnerability in /clean-file API endpoint — file paths are now validated against the working directory.
Infrastructure
- Docker image now runs as non-root user (appuser), includes HEALTHCHECK, and follows OCI image label conventions.
- API server now sets ReadTimeout, WriteTimeout, and IdleTimeout to prevent resource exhaustion.
Tests
- Added 16 API handler tests (cmd/api/main_test.go)
- Added 11 CLI tests (cmd/cleango/main_test.go)
- CLI main() refactored into a testable runClean(args []string) error function