WPB-26771: Deprecate meetingsPremium endpoints at API v17#5364
Conversation
075a1b1 to
0c0fe3f
Compare
There was a problem hiding this comment.
Pull request overview
Deprecates the meetingsPremium team feature flag endpoints starting at API v17 by version-gating them to return 404 for v17+ while keeping them available through v16, and ensures OpenAPI generation remains functional with the version-gating combinators.
Changes:
- Version-gate public and internal
meetingsPremiumfeature endpoints withUntil 'V17and mark the public endpoints asDeprecated. - Add
HasOpenApiinstances forUntil/Fromto make them transparent for non-version-specific OpenAPI generation. - Update integration tests and docs/changelog to reflect v17 404 behavior and keep relevant assertions on v16.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| services/galley/src/Galley/API/Public/Feature.hs | Adjusts server handler composition to match the split, version-gated public meetingsPremium GET/PUT endpoints. |
| libs/wire-api/src/Wire/API/VersionInfo.hs | Adds OpenAPI support for Until/From so version-gated APIs can still be documented when not specialised to a specific version. |
| libs/wire-api/src/Wire/API/Routes/Public/Galley/Feature.hs | Gates and deprecates the public meetingsPremium endpoints at v17 while retaining them through v16. |
| libs/wire-api/src/Wire/API/Routes/Internal/Galley.hs | Gates the internal legacy lock-status meetingsPremium endpoint at v17. |
| integration/test/Test/FeatureFlags/MeetingPremium.hs | Ensures existing meetingsPremium tests run against v16 and adds coverage asserting v17 returns 404. |
| integration/test/Test/FeatureFlags.hs | Keeps non-member authz coverage by forcing the meetingsPremium per-feature GET check to run at v16. |
| docs/src/developer/reference/config-options.md | Updates operator-facing documentation for meetingsPremium to state v17 404 behavior and v16 availability. |
| changelog.d/1-api-changes/wpb-26771-meetings-premium-endpoint.md | Adds an API-change changelog entry describing the v17 deprecation/404 behavior. |
| changelog.d/0-release-notes/wpb-26771-meetings-premium.md | Updates release notes to mention v17 404 behavior and v16 availability for the endpoints. |
battermann
left a comment
There was a problem hiding this comment.
Can you explain how the versioning strategy for the
GET /feature-configsGET /teams/:tid/features
endpoints should look like? I think this also needs to be addressed in this PR.
I have documented it (keep), but I can filter it out, but I'll need a bit of guidance (type-level vs json-based). |
95f88ed to
e96891d
Compare
Version-gate the meetingsPremium team feature endpoints with servant Until 'V17: the public GET/PUT /teams/:tid/features/meetingsPremium (also marked Deprecated in OpenAPI) and the internal legacy lock PUT /i/teams/:tid/features/meetingsPremium/(un)?locked. They remain available through v16 and return 404 for v17 clients. The flag has had no behavioural effect since WPB-26771 (team meetings are always non-trial). - Public route split into two individually-wrapped Deprecated ::> Until 'V17 arms (GET/PUT); the handler uses explicit mkNamedAPI arms since the featureAPIGetPut helper signature cannot carry the wrapper. - Add HasOpenApi pass-through instances for Until/From so the internal swagger (plain toOpenApi) renders the gated endpoint; the public per-version path specialises them away and is unaffected. - Pin the existing public feature test to v16; add a regression test asserting v17 GET+PUT -> 404 and v16 GET+PUT -> 200.
The aggregate endpoints GET /feature-configs and GET /teams/:tid/features are version-agnostic by design (precedent: From-gated features like MLS), so they keep returning meetingsPremium at every API version, including v17 where the dedicated meetingsPremium endpoints now 404. Add testMeetingPremiumListedAtV17 and note this in the api changelog, release notes, and operator docs.
09e7c65 to
4f3789f
Compare
https://wearezeta.atlassian.net/browse/WPB-26771
Checklist
changelog.d