Rationale
Currently each rollout can be configured to target either a subject, or a percentage-based slice of a subject.
There should be a way to further narrow down a subject by something meaningful. Assuming you have a subject "Users", you could derive filtered subjects along the lines of:
- "Users with email ending with..."
- "Users with id equal to..."
A possible implementation is to have a distinction between:
- plain Subjects
- filterable Subjects
where a filterable Subject can be parametrised with a string and the meaning of the string is specific to the particular Subject. This means that "Users with email..." and "Users with id..." would be separate subject classes that only differ by how they interpret the filter string. It would be difficult (UX wise) to provide a good way to do a single rollout for "Users with email ... or id ..."), unless you write a very specific Subject for this case & figure out a language that allows to encode the parameters in a single string.
Combining with percentage based rollouts
Since all Subjects already have a way to slice by percentage (built-in), we need to define how this would interact with filter strings.
A trivial implementation of implementing "roll out to 50% users with email ending with gmail.com" would be to test if the user's flag score is <= 50% and if the email ends with gmail.com. This should be in line with what the user expects as long as the flag score doesn't obviously correlate with the e-mail.
Rationale
Currently each rollout can be configured to target either a subject, or a percentage-based slice of a subject.
There should be a way to further narrow down a subject by something meaningful. Assuming you have a subject "Users", you could derive filtered subjects along the lines of:
A possible implementation is to have a distinction between:
where a filterable Subject can be parametrised with a string and the meaning of the string is specific to the particular Subject. This means that "Users with email..." and "Users with id..." would be separate subject classes that only differ by how they interpret the filter string. It would be difficult (UX wise) to provide a good way to do a single rollout for "Users with email ... or id ..."), unless you write a very specific Subject for this case & figure out a language that allows to encode the parameters in a single string.
Combining with percentage based rollouts
Since all Subjects already have a way to slice by percentage (built-in), we need to define how this would interact with filter strings.
A trivial implementation of implementing "roll out to 50% users with email ending with gmail.com" would be to test if the user's flag score is <= 50% and if the email ends with gmail.com. This should be in line with what the user expects as long as the flag score doesn't obviously correlate with the e-mail.