Skip to content

WPB-26771: Deprecate meetingsPremium endpoints at API v17#5364

Merged
blackheaven merged 4 commits into
developfrom
gdifolco/WPB-26771-deprecate-meetingPremium
Jul 25, 2026
Merged

WPB-26771: Deprecate meetingsPremium endpoints at API v17#5364
blackheaven merged 4 commits into
developfrom
gdifolco/WPB-26771-deprecate-meetingPremium

Conversation

@blackheaven

Copy link
Copy Markdown
Contributor

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

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 July 22, 2026 14:36
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Jul 22, 2026
@blackheaven
blackheaven force-pushed the gdifolco/WPB-26771-deprecate-meetingPremium branch 3 times, most recently from 075a1b1 to 0c0fe3f Compare July 22, 2026 20:23
@battermann
battermann requested a review from Copilot July 23, 2026 07:05

Copilot AI left a comment

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.

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 meetingsPremium feature endpoints with Until 'V17 and mark the public endpoints as Deprecated.
  • Add HasOpenApi instances for Until/From to 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 battermann left a comment

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.

Can you explain how the versioning strategy for the

  • GET /feature-configs
  • GET /teams/:tid/features

endpoints should look like? I think this also needs to be addressed in this PR.

Comment thread integration/test/Test/FeatureFlags/MeetingPremium.hs
@blackheaven
blackheaven requested a review from battermann July 23, 2026 10:11
@blackheaven

Copy link
Copy Markdown
Contributor Author

Can you explain how the versioning strategy for the

  • GET /feature-configs
  • GET /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).

@blackheaven
blackheaven force-pushed the gdifolco/WPB-26771-deprecate-meetingPremium branch from 95f88ed to e96891d Compare July 24, 2026 20:02
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.
@blackheaven
blackheaven force-pushed the gdifolco/WPB-26771-deprecate-meetingPremium branch from 09e7c65 to 4f3789f Compare July 25, 2026 08:06
@blackheaven
blackheaven merged commit 35d8df6 into develop Jul 25, 2026
10 checks passed
@blackheaven
blackheaven deleted the gdifolco/WPB-26771-deprecate-meetingPremium branch July 25, 2026 12:19
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.

4 participants