Skip to content
  • Alex Kalderimis's avatar
    Allow feature flags to be disabled on an actor-by-actor basis · 7b4e917e
    Alex Kalderimis authored and Fabio Pitino's avatar Fabio Pitino committed
    Prior to this change, if a flag has been globally enabled, then
    disabling it for an actor would not do anything, making it impossible
    to have flag opt-outs.
    
    This model opt-outs via actor flipper-ids.
    This change maintains a synthetic disabled flag alongside
    each active flag, and checks them to see if the actor is marked as
    in the disabled list first. If so, then we return `disabled`, even
    if the feature is globally enabled, allowing individual opt-outs.
    
    Disabling a flag for an actor and opting out are distinct operations.
    
    We also include changes to handle feature flag groups. While we don't
    use any ourselves, we do support the manipulation of feature flag groups
    through the API, and self-hosted instances may provide their own group
    definitions, so we must continue to support this. Currently opting-out
    for groups is a NO-OP, but might be supported in the future.
    
    Support for the opt_out/remove_opt_out operations is added to the
    REST API.
    7b4e917e