BREAKING CHANGES:
- Target REST API v0.7 (previously v0.5)
- Remove
ImageInfoandVideoMetafields fromfile.BasicFileInfo— useContentInfo.ImageandContentInfo.Video - Remove
RecognitionInfofield fromfile.Info— useAppData - Add
MetadataandAppDatafields tofile.Info - Remove
group.Store()method (endpoint removed in v0.7) - Remove
file.Copy()method andfile.CopyParamstype — useLocalCopy()andRemoteCopy() - Remove
file.OrderBySizeAscandfile.OrderBySizeDescconstants (not supported in v0.7) - Remove
APIv05andAPIv06constants - Change
file.Service.Info()signature to accept*file.InfoParamsfor optionalincludequery parameters - Change
webhook.Service.Delete()to delete by webhook ID instead of target URL - Minimum Go version is now 1.25
- Throttled requests no longer retry by default — automatic retries are now opt-in via
ucare.Config.Retry
FEATURES:
- Add
projectapipackage for the Project API with bearer token authentication — manage projects, secret keys, and usage metrics - Add
ucare.NewBearerClient()for bearer token authentication used by the Project API - Add
ucare.ProjectAPIErrortype for Project API error responses - Add
addonpackage for Addons API execution and status polling - Add typed addon params for Remove.bg and ClamAV requests
- Add
metadatapackage with file metadata CRUD operations - Add
group.Delete()for deleting group metadata without deleting files - Add webhook event constants for
file.stored,file.deleted,file.info_updated, and deprecatedfile.infected - Add
ucare.Config.RetryandRetryConfigfor configurable throttling retries - Add
upload.Service.Upload()for automatic direct-vs-multipart upload selection - Add upload metadata support for direct, multipart, from-URL, and unified uploads
- Add
file.InfoParams.Includeandfile.ListParams.Includeforinclude=appdata - Add
conversion.Params.SaveInGroupfor document conversions that should persist image output as a file group - Add
conversion.BuildDocumentPath()andconversion.BuildVideoPath()helpers for constructing conversion paths - Export structured API error types:
APIError,AuthError,ThrottleError,ValidationError, andForbiddenError - Automatic per-project CDN base URL derived from the public key (
ucare.Config.CDNBase)
IMPROVEMENTS:
- Add
UserAgentfield toucare.Configfor custom agent identification - Extend form/query encoding to support Upload API metadata fields in
metadata[key]=valuebracket notation - Replace
http.NewRequest+WithContextwithhttp.NewRequestWithContext - Throttle retry loops now respect context cancellation
- REST throttling retries now honor
Retry-Afterwith configurable fail-fast limits and fallback exponential backoff - Upload throttling retries now use configurable exponential backoff capping
- Error values now expose HTTP status details for caller inspection
- Replace
ioutilusage withioequivalents - Replace
go-envdependency withos.Getenv - Update
stretchr/testifyto v1.10.0 - Update CI: Go 1.25, modern GitHub Actions versions, remove deprecated golint
- Integration tests skip gracefully when credentials are not set
- Fix errors in package documentation examples and update public examples for the new
file.Info()signature
IMPROVEMENTS:
- Update delete method endpoint
- Remove useless code
FEATURES:
- Webhooks
- Project
BUG FIXES:
- Fix empty response handling
BUG FIXES:
- Fix throttling request empty body issue
BUG FIXES:
- Set default upload ToStore form param value to "auto"
- Change "UPLOADCARE_STORE" upload.FromURL param to "store" according to specs
IMPROVEMENTS:
- Use HMAC-SHA256 signature for signed uploads
- Set upload TTL to 60 seconds
BUG FIXES:
- Change ImageInfo.Orientation type to interface{}
BUG FIXES:
- Change ImageInfo.Orientation type to *string
BUG FIXES:
- Change ImageInfo.DateTimeOrignal type to *time.Time
BUG FIXES:
- Change ImageInfo.DPI field value type to []float64
BUG FIXES:
- Change Location field value types to float64
BUG FIXES:
- Change file.VideoStreamMeta.FrameRate type (uint64 to float64)
BUG FIXES:
- Change file.AudioStreamMeta.Channels type (uint64 to string)
FEATURES:
- Support for the APIv05 file Copy method
IMPROVEMENTS:
- Use caching during CI builds
- Run integration test on push
BUG FIXES:
- Some broken tests
- Broken conversion api request body construction
Initial version