Releases: statsig-io/go-sdk
v1.28.0 - Transport override option & bug fixes
New Features
- Option to override the internal HTTP client's transport.
Improvements
- Better type conversion, now supports golang
"enums"
Fixes
- User persistent store evaluation schema for
explicit_parameters
fixed to be consistent with other SDKs
Included In This Release
Full Changelog: v1.27.1...v1.28.0
v1.27.1 - Remove private attributes from bootstrapping
Fixes
- Remove private attribute from user object in getClientInitializationResponse api
Included In This Release
- 41dbb9b kat-statsig
- remove private attribute (#214)
Full Changelog: v1.27.0...v1.27.1
v1.27.0 - API Overrides, initialize timeout bug fix, hashing exposures
New Features
- Added options to override APIs used for /download_config_specs, /get_id_lists, /log_event.
Improvements
- Allow omitempty on User struct
- Support hashing secondary exposures on GetClientInitializeResponse
Fixes
- Fixed a bug where the sdk doesn't not poll config sync if timed out.
Included In This Release
- d61c079 kat-statsig
- add hash algo + hash secondary and undelegated exposures (#209)
- 6c9e4ad kat-statsig
- omit empty on non id fields (#211)
- 2d84feb kat-statsig
- fix flakey tests (#210)
- 042361a kenny-statsig
- API Overrides (#205)
- bad9d89 kenny-statsig
- Allow UAParser and CountryLookup to load in case of timeout (#207)
- a17493f kat-statsig
- set timeout on client init (#203)
- 9b5e607 kenny-statsig
- Fix race condition in test (#206)
Full Changelog: v1.26.0...v1.27.0
v1.26.0 - Exposure callback and spec update bug fix
New Features
- New options to pass in ExposureCallback and IncludeDisabledExposures
Fixes
- Fixes a bug where we could update the internal store with stale values (older than the current values in memory). While this was unlikely, now it wont happen
Included In This Release
Full Changelog: v1.25.0...v1.26.0
v1.25.0 - Sanitize error messages
Improvements
- Remove secret keys in output logs
Included In This Release
Full Changelog: v1.24.0...v1.25.0
v1.24.0 - Improved errors
Bug fixes:
- Errors for failed event logging not being sent to stderr or log callback
Improvements:
- Introduced custom errors with matching:
ErrFailedLogEvent
- Error messages in stderr now contain timestamps
- Network error messages include status code, # of retries, and endpoint
- Errors now sent to stderr instead of stdout
Included In This Release
Full Changelog: 1.23.0...v1.24.0
v1.23.0 - Evaluation and LogEvent Improvements
- GetClientInitialization improvements
- LogEvent compression
- Output logging for logEvent failures
- Added Evaluation Details to GetGate
- Diagnostics bug fixes
Included In This Release
- 5c91260 kenny-statsig
- add empty secondary exposures to GCIR with local override (#185)
- 8285fec kenny-statsig
- filter & dedupe exposures during evaluation (#184)
- 45ad920 kat-statsig
- log compression (#183)
- 654e8f1 kat-statsig
- logEvent Error Logging (#181)
- eb645d9 kat-statsig
- diagnostics changes (#182)
- 9fd3b2f kat-statsig
- gcir improvements (#180)
- 7901e86 kenny-statsig
- make evaluation details public (#179)
- 59bf132 kenny-statsig
- add evaluation details to GetGate (#176)
Full Changelog: 1.22.0...1.23.0
v1.22.0 - Add GetExperimentLayer
New method GetExperimentLayer to retrieve the layer name an experiment belongs to
Included In This Release
- ec74201 kat-statsig
- get experiment layer (#177)
Full Changelog: v1.21.0...1.22.0
v1.21.0 - Optimize local mode initialization
Introduced 2 new options to configure the load strategy of the IP to country lookup & UA parser.
IPCountryOptions
- Disabled: Fully disable IP to country lookup
- LazyLoad: Load in background
- EnsureLoaded: Wait until loaded when needed
UAParserOptions
- Disabled: Fully disable UA parser
- LazyLoad: Load in background
- EnsureLoaded: Wait until loaded when needed
These are 2 of the more expensive processes during initialization of the SDK outside of network requests.
- If your service does not rely on country based checks from an IP address, disabling IPCountry is recommended.
- If your service does not rely on parsing the UserAgent, disabling UAParser is recommended.
LazyLoad
is generally recommended to avoid waiting to initialize these on start up.EnsureLoaded
will ensure that it's loaded when eventually needed for evaluation.
Bug fix:
- Disable internal error logging in Local Mode
Included In This Release
Full Changelog: v1.20.0...1.21.0
v1.20.0 - Optimizations & persistent storage updates
Made optimizations to evaluation logic:
- Unmarshal spec defaultValue and rule returnValue on initialization (rather than per evaluation)
- Remove unnecessary string conversion for layer assignment
- Replace array contains with map lookup
- Replace
Sprintf
withstrconv
Impact
- Reduces layer evaluation for layers with partial allocation by about 50%
- Reduces general evaluation for dynamic configs, experiments, layers by about 15%
- Refactored persistent storage interface to include experiment name to solve for concurrent user evaluations across SDK instances
Included In This Release
- b171689 kenny-statsig
- support persisted layers (#171)
- 6f1aea8 kenny-statsig
- refactor persistent storage (#170)
- 8fcd077 kenny-statsig
- optimize string conversion (#169)
- 95a9fd4 kenny-statsig
- optimize array contains to lookup (#167)
- 2eb486f kenny-statsig
- optimize parsing config values and layer bucketing (#166)
Full Changelog: v1.19.0...1.20.0