|
This is legacy documentation
CloudBees Feature Management is now part of CloudBees Unify. For current feature management documentation, go to CloudBees Unify Feature management. This documentation covers the original CloudBees Feature Management product (formerly Rollout.io), which is end-of-life. It remains available only for existing customers who are migrating to CloudBees Unify. |
|
Support during the extension period
Because CloudBees Feature Management is an end-of-life product, support during the extension period is limited to critical items only:
This coverage is consistent with the CloudBees end-of-life policy in the support Terms & Conditions. |
Flag freeze
When a Flag value is frozen - the first time a flag is checked, the flag value will be frozen and kept for future evaluation. This will result in consistent behavior for the user. Any change, whether new configurations or local custom property values, will not have an effect until the flag gets unfrozen.
|
The flag freeze, unfreeze and freeze levels are only available on these client-side SDKs
|
|
Flag freeze level
|
The flag gets unfrozen in the following scenario:
-
Next application launch or page loading in a browser - when the app is launched, the flag value is checked by the app and the value gets calculated based on the last fetched configuration.
-
Next foreground event (only for mobile) - when the app goes into the foreground the SDK calls unfreeze. This behavior can be controlled by defining different freeze levels.
-
Unfreeze - when the unfreeze function gets called.
|
Flag freeze level default
|
Flag unfreeze
The following are code examples of how to unfreeze a flag:
Rox.unfreeze();
[Rox unfreeze];
Rox.unfreeze();
Rox.unfreeze();
Rox.unfreeze();
Rox.Unfreeze();
To unfreeze all flags under a specific namespace:
ROXCore.unfreezeNamespace(namespace);
[ROXCore unfreezeNamespace:namespace];
Rox.unfreeze(namespace);
Rox.unfreeze(namespace);
Rox.unfreeze(namespace);
Rox.Unfreeze(namespace);
To unfreeze a specific flag:
flag.unfreeze();
[flag unfreeze];
flag.unfreeze();
flag.unfreeze();
flag.unfreeze();
flag.Unfreeze();
Set flag freeze level default
You can define flag freeze level on an app level by defining the default flag level using RoxOptions , options.defaultFreezeLevel , or when creating the flag by supplying the flag level to the constructor.
let options = ROXOptions() options.defaultFreezeLevel = .untilForeground ROX.setup(withKey:appKey, options:options) public let someFlag = RoxFlag(withDefault: false, freeze: .untilLaunch)!
ROXOptions *options = [[ROXOptions alloc] init]; options.defaultFreezeLevel = ROXFreeze_untilForeground; [ROX setupWithKey:@"a8c00ba1f04cf4ecbb396a2" options:options]; self.someFlag = [RoxFlag[init] initWithDefaultValue: YES freeze: ROXFreeze_untilLaunch];
RoxOptions options = new RoxOptions.Builder().withFreeze(Freeze.None).build(); Rox.setup(this.getApplication(), options); public RoxFlag someFlag = new RoxFlag(defaultValue, Freeze.UntilLaunch);
Rox.setup(appKey, { freeze: Rox.FreezeOptions.freezeOptionUntilForeground }); someFlag: new Rox.Flag(false, { freeze: Rox.FreezeOptions.freezeOptionUntilLaunch });
Rox.setup(appKey, { freeze: 'untilLaunch' }); someFlag: new Rox.Flag(false, { freeze: 'untilLaunch' });
Rox.Setup(appKey, new RoxOptions(new RoxOptions.RoxOptionsBuilder { Freeze = Freeze.UntilLaunch })); public RoxFlag enableTutorial = new RoxFlag(false, Freeze.UntilForeground);