Skip to content

WPB-27912: Deprecate backgroundEffects feature flag at API v17 - #5431

Open
blackheaven wants to merge 11 commits into
developfrom
gdifolco/WPB-27912-background-effects-ff-deprecation
Open

WPB-27912: Deprecate backgroundEffects feature flag at API v17#5431
blackheaven wants to merge 11 commits into
developfrom
gdifolco/WPB-27912-background-effects-ff-deprecation

Conversation

@blackheaven

Copy link
Copy Markdown
Contributor

https://wearezeta.atlassian.net/browse/WPB-27912

Checklist

  • Add a new entry in an appropriate subdirectory of changelog.d
  • Read and follow the PR guidelines

@blackheaven
blackheaven requested review from a team as code owners August 10, 2026 15:12
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Aug 10, 2026
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.
@blackheaven
blackheaven force-pushed the gdifolco/WPB-27912-background-effects-ff-deprecation branch from d6a6f95 to 60e6e51 Compare August 10, 2026 16:14
Comment on lines 102 to +103
:<|> Until 'V17 ::> IFeatureStatusLockStatusPut MeetingsPremiumConfig
:<|> IFeatureStatusLockStatusPut BackgroundEffectsConfig
:<|> Until 'V17 ::> IFeatureStatusLockStatusPut BackgroundEffectsConfig

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIK we don't use internal endpoints in a versioned manner. Please check that this doesn't break e.g. stern.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docs/src/developer/reference/config-options.md Outdated
Comment on lines +44 to +47
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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you considered to use assertStatus here?

Comment thread integration/test/Test/FeatureFlags/BackgroundEffects.hs Outdated
Comment thread integration/test/Test/FeatureFlags/BackgroundEffects.hs Outdated
blackheaven and others added 3 commits August 11, 2026 11:03
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>
@blackheaven
blackheaven requested a review from supersven August 11, 2026 09:48
Comment on lines +89 to +90
<@> mkNamedAPI @'("get", BackgroundEffectsConfig) getFeature
<@> mkNamedAPI @'("put", BackgroundEffectsConfig) setFeature

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, why do we need this change? Or, what changes it? 🤔

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

outdated

Comment on lines +2432 to +2434
-- /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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be Haddock of the data BackgroundEffectsConfig type.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved down

Comment on lines +89 to +90
:<|> Deprecated ::> Until 'V17 ::> FeatureAPIGet BackgroundEffectsConfig
:<|> Deprecated ::> Until 'V17 ::> FeatureAPIPut BackgroundEffectsConfig

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See https://github.com/wireapp/wire-server/pull/5431/changes#r3758084593 - I unfortunately don't understand this split 🤔

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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`.
@blackheaven
blackheaven requested a review from supersven August 11, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants