Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: remove deprecated strategies and allow deprecate default (#3575)
## About the changes Improvements around strategies to steer users toward using [strategy constraints](https://docs.getunleash.io/reference/strategy-constraints) instead of [custom strategies](https://docs.getunleash.io/reference/custom-activation-strategies) Related to #1265 Important changes: 1.[ Ability to deprecate default strategy](https://github.com/Unleash/unleash/pull/3575/files#diff-3b49e566565b01580ff7a15f662d2cb824547fdfb3935d0a0baa7fae326d28d6L232-L235) 2. [Remove strategies that were deprecated in v4 only if they're not used](https://github.com/Unleash/unleash/pull/3575/files#diff-a04de7adf327c48d54b030bed70d9b1d62ff14df3efc668eb6897a210124ebe0R7-R10) 3. [Fresh Unleash installations will not include deprecated strategies from v4](https://github.com/Unleash/unleash/pull/3575/files#diff-46265b0d51725a5acbf251589b98a8970e45d3a1c6f3d7ea77bdcc3714e672d8L31-L78) 4. [Deprecate userWithId strategy](https://github.com/Unleash/unleash/pull/3575/files#diff-a04de7adf327c48d54b030bed70d9b1d62ff14df3efc668eb6897a210124ebe0R13) (note: if in use it will continue to work, it'll be not listed when selecting strategies for a feature toggle). 5. [Switch the order of strategies to make gradual rollout first and change the comment to suggest using gradual rollout instead of other existing strategies](https://github.com/Unleash/unleash/pull/3575/files#diff-a04de7adf327c48d54b030bed70d9b1d62ff14df3efc668eb6897a210124ebe0R16-R18)
- Loading branch information
1 parent
097dd8a
commit 4dd4d43
Showing
7 changed files
with
78 additions
and
77 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
'use strict'; | ||
|
||
exports.up = function (db, callback) { | ||
db.runSql( | ||
` | ||
-- delete deprecated strategies still present in v4 | ||
delete from strategies | ||
where name in ('gradualRolloutUserId', 'gradualRolloutRandom', 'gradualRolloutSessionId') | ||
and deprecated | ||
and not exists (select * from feature_strategies where strategy_name = name limit 1); | ||
-- deprecate strategies on v5 | ||
update strategies set deprecated = true where name in ('userWithId'); | ||
-- update strategy descriptions and sort order | ||
update strategies set sort_order = 1, description = 'This strategy turns on / off for your entire userbase. Prefer using "Gradual rollout" strategy (100%=on, 0%=off).' WHERE name = 'default'; | ||
update strategies set sort_order = 0 WHERE name = 'flexibleRollout'; | ||
update strategies set description = 'Enable the feature for a specific set of userIds. Prefer using "Gradual rollout" strategy with user id constraints.' WHERE name = 'userWithId'; | ||
`, | ||
callback, | ||
); | ||
}; | ||
|
||
exports.down = function (db, callback) { | ||
db.runSql( | ||
` | ||
-- restore deleted strategies | ||
insert into strategies (name, description, parameters, deprecated, sort_order) values | ||
('gradualRolloutRandom', 'Randomly activate the feature toggle. No stickiness.', [ | ||
{ | ||
"name": "percentage", | ||
"type": "percentage", | ||
"description": "", | ||
"required": false | ||
} | ||
], true, 3), | ||
('gradualRolloutSessionId', 'Gradually activate feature toggle. Stickiness based on session id.', [ | ||
{ | ||
"name": "percentage", | ||
"type": "percentage", | ||
"description": "", | ||
"required": false | ||
}, | ||
{ | ||
"name": "groupId", | ||
"type": "string", | ||
"description": "Used to define a activation groups, which allows you to correlate across feature toggles.", | ||
"required": true | ||
} | ||
], true, 4), | ||
('gradualRolloutUserId', 'Gradually activate feature toggle for logged in users. Stickiness based on user id.', [ | ||
{ | ||
"name": "percentage", | ||
"type": "percentage", | ||
"description": "", | ||
"required": false | ||
}, | ||
{ | ||
"name": "groupId", | ||
"type": "string", | ||
"description": "Used to define a activation groups, which allows you to correlate across feature toggles.", | ||
"required": true | ||
} | ||
], true, 5); | ||
-- revert sort order | ||
update strategies set sort_order = 0 WHERE name = 'default'; | ||
update strategies set sort_order = 1 WHERE name = 'flexibleRollout'; | ||
`, | ||
callback, | ||
); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters