Description
Hello,
While experimenting with the sdk, we noticed that when evaluating the filters and the contextual filters, the FeatureManager
internal loop will break and return true
for the first filter that returns true
.
We are planning to use heavily the sdk, but we feel that our needs are mainly steering towards a logical AND.
For example, we will want to enable a feature for one specific country (contextual filter), but only for a defined percentage of them (filter). This would look like this in the app configuration store :
"conditions": {
"client_filters": [
{
"name": "CountryContextual",
"parameters": {
"Country": [
"FR",
"IT"
]
}
},
{
"name": "Microsoft.Percentage",
"parameters": {
"Value": "50"
}
}
]
}
We imagine we might be able to create "meta" filters that would contain a logical operator and a list of sub filters, which can also be recursive. This would solve pretty much any use case we could imagine, but it seems to be a little over-complicated.
We could also create our own implementation of IFeatureManager
, but the required dependency IFeatureSettingsProvider
is currently internal.
In our opinion, the most sensible default combination operator should be an AND.
What's your opinion on that? Do you think of any built-in or alternative way of reaching our goals?