July 25, 2024: V6.0.1
-
Adding Cloudbees Platform VPC support
June 28, 2024: V6.0.0
-
Official Cloudbees Platform support (No breaking changes)
June 14, 2024: V5.4.13
-
Fix signature verification error when runing in Nuxt.
May 21, 2024: V5.4.12
-
Added Fetch api support (instead of axios)
-
Added debug information
March 4, 2024: V5.4.12
-
Added Fetch api support (instead of axios)
-
Added debug information
March 4, 2024: V5.4.10
-
Added Semver custom property
December 14, 2023: V5.4.9
-
Updated Axios library to address security vulnerabilities.
September 10, 2023: V5.4.8
-
Fixing unhandled error on signature verification.
June 28, 2023: V5.4.6
-
Workaround for "'n' is read-only" runtime error in some browser applications built using Babel.
May 15, 2023: V5.4.4
-
Added support for CloudBees platform app keys (UUID).
August 17, 2022: V5.4.2
-
"Reduced dependencies" version of rox-serverless.
August 9, 2022: V5.4.1
-
Support for Chrome extensions using V3 Manifest (
window
element no longer accessible).
July 18, 2022: V5.4.0
-
Switched async storage to @react-native-async-storage/async-storage, as @react-native-community/async-storage is no longer supported.
-
Added rox-serverless SDK to support serverless applications.
-
Updated a number of dependencies.
May 20, 2022
-
European Union (EU) hosting has been removed.
March 17, 2022: V5.2.0
-
Refactored internal compilation processes
-
Reduced rox-browser build size
2021-11-25: V5.1.2
-
Update to Axios dependency: internal build changes
2021-11-24: V5.1.1
-
Update to Axios dependency: internal build changes
2021-08-09: V5.1.0
Proxy capability
-
Added a proxy that supports servers or clients using CloudBees Feature Management SDKs with the following connection issues:
-
No internet access
-
Trouble connecting to CloudBees Feature Management services
-
Blocked by a firewall
-
Client does not have CORS permissions
-
Needing full control over network requests
For more information, refer to A proxy for CloudBees Feature Management.
-
EU hosting capability
-
CloudBees Feature Management customers now have the option to host data on CloudBees servers located in Ireland. By providing both EU and US servers, this capability can increase speed, reliability, security, and privacy, as well as support regulatory and business compliance requirements designated to the respective user locations.
With EU hosting enabled, the following data related to CloudBees Feature Management is stored on EU servers:
-
Applications
-
Environments
-
Flags
-
Target groups
-
Audit logs
-
2021-4-21: V5.0.1
-
Update to Axios dependency: internal build changes
2020-11-20: V5.0.0
Breaking changes:
-
Configurations were eliminated, please use flags instead:
-
new Configuration("string") ⇒ new RoxString("string")
-
new Configuration(number) ⇒ new RoxNumber(number)
-
new Configuration(false/true) ⇒ new Flag(false/true)
-
-
Variant changed to RoxString
-
new Variant("defaultStr", ["str1", "str2"]) ⇒ new RoxString("defaultStr", ["str1", "str2"])
-
-
rox-browser size reduced
-
The rox-browser SDK size was minimized by removing pollyfill and some cleanups To give you more control, axios and eventsource were also removed from the bundle.
axios
will have to be added as a dependency if you currently don’t have it.eventsource
is used for push notification. This SDK feature won’t work if it is missing; to enable it add it as a dependency.
-
-
Default Freeze level was changed to 'none'
-
In order to maintain the old behavior please add to your setup options object { freeze: 'untilLaunch' }. If there’s no options object currently, add it to your setup call: Rox.setup(<app_key>, { freeze: 'untilLaunch'})
-
-
Rox.dynamicPropertyRuleHandler moved to options
-
In order to maintain the old behavior please remove Rox.dynamicPropertyRuleHandler and instead, add it to your setup options object { dynamicPropertyRuleHandler: <handler>} If there’s no options object currently, add it to your setup call: Rox.setup(<app_key>, { dynamicPropertyRuleHandler: <handler> })
-
-
functions input validations
-
some trivial parameters (mostly type) validations were added to
dynamicApi
and flags constructions. For example:new RoxString(false)
will raise an Error of wrong default type (default value ofRoxString
should be a string).Rox.dynamicApi.value(0, 'defaultStr', ['str2', 'str3'])
will raise an Error of wrong flag name (name should always be a string)
-
-
Can use register without a namespace:
-
register(container)
will register the container under an empty string namespace (multiple register calls with the same namespaces are still not allowed)
-
Fixes and Additions:
-
Added a User Space Error handling
-
It is recommended to wrap all handlers used in Rox platform (
setCustomProperty
,impressionHandler
,ConfigurationFetchedHandler
,dynamicPropertyRuleHandler
) with try-catch in order to be in the right context. In case there will be an uncaught Error, it will reach theRox.setUserspaceUnhandledErrorHandler
handler. You can use this handler for debugging, or for further error handling. An Error thrown within this handler will be written to log. If nosetUserspaceUnhandledErrorHandler
was set errors will be written to the log.
-
-
analytics / impressions
-
Starting with SDK 5, flags will always send impressions after setup (not only when targeting is enabled on the dashboard)
-
-
impression handler parameters change
-
As experiments were removed, impressions handler signature was changed from (
reportingValue
,experiment
,context
) to (reportingValue
,context
).reportingValue
now also has a targeting (boolean) property, indicating the flag was evaluated by using the dashboard configurations.
-
-
dynamicApi uses freeze like staticApi
-
Starting with SDK 5
dynamicApi
calls freeze flags even if no dashboard configurations were set (prior to SDK 5, local default values didn’t trigger a freeze, only dashboard configurations did).
-
2020-07-21: V4.9.16
-
Remove use of eval() to satisfy strict Content Security Policy (CSP)
2020-06-09: V4.9.7
-
rox-ssr: Add compatibility to server-side webpack
2020-03-10: V4.9.0
-
Upgrade to latest axios (0.19.2)
-
rox-react-native: Replace deprecated ReactNative.AsyncStorage with @react-native-community/async-storage
-
Clean-up bundles (less files are included)
2020-02-18: V4.8.10
-
Replace logger to fix issues on React Native (iOS)
2019-12-03: V4.8.6
-
Fixed potential issue when analytic server is unreachable
-
Fixed compatibility with Roxy
-
Fixed undefined error when no options passed to rox-ssr
2019-11-29: V4.8.5
-
Fixed TypeScript signatures in rox-ssr
-
Added support for es5/IE11 to rox-ssr
2019-11-22: V4.8.4
-
Adding rox-ssr SDK
2019-11-22: V4.8.3
-
Internal changes to prepare for rox-ssr
2019-09-05: V4.8.0
-
ReactNative: Adding ability to replace default storage (see AsyncStorage)
-
Browser: use the minified version in package.json
-
Improved error reporting
-
Upgraded axios version
2019-08-07: V4.7.1
-
Fixed push updates for React Native
2019-07-16: V4.7.0
-
API version 1.8.0
-
Values are base64 - fixing " and () bug
-
Changes to API calls, using Cloudfront
2019-06-06: V4.5.3
-
Remove check for signed date in signature verification
-
[Alpha] Add
flag.explainLastResult
to rox-browser -
removed async func
2019-04-10: V4.5.2
-
Prevent duplicate calls to fetch configuration on Rox.setup (was caused by custom properties)
-
Removing various polyfills (including promise)
-
Make Overrides screen case insensitive
2019-01-21: V4.5.1
-
Fixed compatibility with IE (
Object.assign
,Array.filter
)
2019-01-16: V4.5.0
-
Add an option to override the default SDK logger (see JavaScript (Browser) API - setup for documentation)
-
Analytics will use stickiness property for distinctness
2018-12-26: V4.4.0
-
Dynamic properties (see JavaScript (Browser) API - setDynamicCustomPropertyRule for documentation)
2018-12-18: V4.3.1
-
Variants in Dynamic API is open for any value from the dashboard
-
Support for old Node version (v4.8.3)
-
Dynamic API updates dashboard on new flags
2018-12-03: V4.3.0
-
Fix for view controller when namespace doesn’t exist
-
Added Dynamic API
2018-11-12: V4.2.2
-
Security enhancement - verify the signature of local/remove feature flags configuration
-
Fixed push endpoint
2018-11-08: V4.2.1
-
fixed node js Rox.setup should resolve the promise only after configuration is fetched
2018-11-06: V4.2.0
-
Added push updates via Server-Sent Events (closed for beta customers)
2018-08-20: V4.1.4
-
Remove TTL on local storage client_data
2018-08-20: V4.1.3
-
Fixed missing dependencies on nodejs package
2018-08-20: V4.1.2
-
Shrink package size by 70%
2018-08-20: V4.1.1
-
Fixed issue with crypto on edge browser
2018-08-20: V4.1.1
-
Scheduled Released
-
Encrypted in operator - you can now use in operator and the data will be passed to the clients encrypted
-
API version 1.7.0
2018-08-09: V4.0.1
-
Adding support for old browsers (without crypto)
2018-08-06: V4.0.0
-
Impression analytics - reporting flag impression to CloudBees Feature Management servers
-
DisableNetwork - ability to disable automatic fetching of data upon Rox.setup (for SSR)
-
Support for context (for SSR)
2018-08-02: V3.2.5
-
Adding support for SSR release (Isomorphic)
2018-07-31: V3.2.4
-
Fix in react native
2018-07-29: V3.2.0
-
Adding support to get labels in impression handler
-
Adding support for SSR release (Isomorphic)
-
Support for Roxy
2018-07-04: V3.1.3
Support for Fuse-Box
2018-06-28: V3.0.0
flag dependency support
2018-05-01: V2.2.1
-
Added support for Tizen
2018-03-12: V2.1.2
-
Internal changes for better error reporting
-
Embedded Experiments support
2018-01-03: V2.0.2
-
Internal changes to support react native release
-
Flag freeze level - allow specifying the freezing level of a flag, till this version the flag value remained consistent from the time it was evaluated till the application goes into the foreground or a
unfreeze
was called. Now have three different freeze level:-
.none
- The flag is constantly evaluated every time it is called-
.untilLaunch
(default) - Once the flag is evaluated its value is persistent till the app is terminated You can control the value of a specific flag via its constructor or globally by usingoptions.defaultFreezeLevel
-
-
2017-11-19: V1.2.7
-
Security enhancement - verify app key matched configured one
-
Moving from webpack to rollup
-
Redesign to overrides API
2017-10-03: V1.2.2
-
Fix - Add cache url and cache miss url to api request
2017-10-01: V1.2.1
-
Add unfreeze API
-
Remove sync method
2017-09-26: V1.2.0
-
Support for computed custom property without context
-
Fix - long query names cause disconnection with amazon s3 objects
2017-09-07: V1.0.2
-
Split node.js from browser