WPB-27912: Deprecate backgroundEffects feature flag at API v17 - #5431
WPB-27912: Deprecate backgroundEffects feature flag at API v17#5431blackheaven wants to merge 11 commits into
Conversation
Mark BackgroundEffectsConfig with a DEPRECATED pragma and flip its default from disabled+locked to enabled+locked. The flag is purely declarative (no backend behavioral code), so no consumer needed neutralizing. Gate the public GET/PUT /teams/:tid/features/backgroundEffects and the internal lock-status PUT to 404 at API v17 (available through v16), matching the meetingsPremium (WPB-26771) deprecation pattern. Split the single FeatureAPIGetPut route + handler into separate version-gated GET and PUT. The aggregate GET /feature-configs and GET /teams/:tid/features endpoints remain version-agnostic and continue to include the flag. Remove the Helm configuration override (charts/wire-server values.yaml + galley configmap.yaml); stale operator overrides are now inert. Update config docs and add changelogs.
d6a6f95 to
60e6e51
Compare
| :<|> Until 'V17 ::> IFeatureStatusLockStatusPut MeetingsPremiumConfig | ||
| :<|> IFeatureStatusLockStatusPut BackgroundEffectsConfig | ||
| :<|> Until 'V17 ::> IFeatureStatusLockStatusPut BackgroundEffectsConfig |
There was a problem hiding this comment.
AFAIK we don't use internal endpoints in a versioned manner. Please check that this doesn't break e.g. stern.
There was a problem hiding this comment.
The Until 'V17 on the internal endpoint is safe: internal calls omit X-Wire-API-Version, so getVersionHeader defaults to V0, and the gate V0 >= V17 is False (never fires). Matches the existing
MeetingsPremiumConfig precedent on the adjacent line; plus, there is no reference in stern.
| bindResponse (baseRequest owner Galley (ExplicitVersion 17) p >>= submit "GET") $ \resp -> do | ||
| resp.status `shouldMatchInt` 404 | ||
| bindResponse (baseRequest owner Galley (ExplicitVersion 17) p <&> addJSON body >>= submit "PUT") $ \resp -> do | ||
| resp.status `shouldMatchInt` 404 |
Co-authored-by: Sven Tennie <sven.tennie@wire.com>
Co-authored-by: Sven Tennie <sven.tennie@wire.com>
Co-authored-by: Sven Tennie <sven.tennie@wire.com>
| <@> mkNamedAPI @'("get", BackgroundEffectsConfig) getFeature | ||
| <@> mkNamedAPI @'("put", BackgroundEffectsConfig) setFeature |
There was a problem hiding this comment.
Hm, why do we need this change? Or, what changes it? 🤔
| -- /Deprecated (WPB-27912)./ This feature flag no longer affects meeting | ||
| -- behaviour and is kept solely for API compatibility. It defaults to | ||
| -- /enabled and locked/. Scheduled for removal in a future release. |
There was a problem hiding this comment.
This should probably be Haddock of the data BackgroundEffectsConfig type.
| :<|> Deprecated ::> Until 'V17 ::> FeatureAPIGet BackgroundEffectsConfig | ||
| :<|> Deprecated ::> Until 'V17 ::> FeatureAPIPut BackgroundEffectsConfig |
There was a problem hiding this comment.
See https://github.com/wireapp/wire-server/pull/5431/changes#r3758084593 - I unfortunately don't understand this split 🤔
There was a problem hiding this comment.
I have squashed them
Address review feedback (@supersven): - Simplify the deprecated/v17-gated backgroundEffects Get/Put endpoints to a single `Deprecated ::> Until 'V17 ::> FeatureAPIGetPut` arm served by `hoistAPI id featureAPIGetPut`, matching the MLSConfig pattern. The split was unnecessary since `Deprecated` and `Until` are server/client-transparent (`ServerT (... :> api) = ServerT api`), so routing, v17 404-gating and the OpenAPI `deprecated` flagging are unchanged. - Attach the deprecation note as a `-- |` Haddock on `data BackgroundEffectsConfig`.
https://wearezeta.atlassian.net/browse/WPB-27912
Checklist
changelog.d