-
Notifications
You must be signed in to change notification settings - Fork 334
WPB-21964: introduce Wire Meetings feature flags #4915
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WPB-21964: introduce Wire Meetings feature flags #4915
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces two new feature flags for Wire Meetings: MeetingConfig and MeetingPremiumConfig. The MeetingConfig flag controls access to the meetings API, while MeetingPremiumConfig distinguishes premium teams from trial teams (which have a 25-minute limit on meetings).
- Added complete API routes and handlers for both feature flags in Galley (public and internal) and Stern
- Implemented type definitions, instances, and default configurations for both features
- Updated all configuration files and Helm charts with default values (enabled and unlocked)
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| libs/wire-api/src/Wire/API/Team/Feature.hs | Defines MeetingConfig and MeetingPremiumConfig types with documentation and necessary instances |
| libs/wire-api/src/Wire/API/Routes/Public/Galley/Feature.hs | Adds GET/PUT public API routes for both meeting features |
| libs/wire-api/src/Wire/API/Routes/Internal/Galley.hs | Adds internal API routes for lock status management |
| libs/galley-types/src/Galley/Types/Teams.hs | Defines FeatureDefaults instances for both meeting features |
| services/galley/src/Galley/API/Teams/Features/Get.hs | Implements GetFeatureConfig instances for retrieving feature configs |
| services/galley/src/Galley/API/Teams/Features.hs | Implements SetFeatureConfig instances for updating feature configs |
| services/galley/src/Galley/API/Public/Feature.hs | Integrates meeting features into public feature API |
| services/galley/src/Galley/API/Internal.hs | Integrates meeting features into internal feature API with lock status support |
| tools/stern/src/Stern/API/Routes.hs | Adds Stern API route definitions for team feature management |
| tools/stern/src/Stern/API.hs | Implements Stern API handlers for meeting features |
| services/galley/galley.integration.yaml | Configures default values (enabled/unlocked) for integration tests |
| deploy/dockerephemeral/federation-v*/galley.yaml | Updates federation test configurations with meeting feature defaults |
| charts/galley/values.yaml | Sets default Helm chart values for production deployments |
| charts/galley/templates/configmap.yaml | Adds conditional rendering of meeting features in Helm templates |
| integration/test/Test/FeatureFlags/Meeting.hs | Implements integration tests for meeting feature flag |
| integration/test/Test/FeatureFlags/MeetingPremium.hs | Implements integration tests for meeting premium feature flag |
| integration/test/Test/FeatureFlags/Util.hs | Updates test utilities with meeting features in default feature set |
| integration/integration.cabal | Registers new test modules in the build configuration |
| docs/src/developer/reference/config-options.md | Documents configuration options and behavior for both meeting features |
| changelog.d/2-features/WPB-21964 | Describes the new features and API endpoints in the changelog |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
battermann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The values for CI are not set, which is not super important as there are defaults, so if it was intentionally not set, then it's fine.
It's not, which files should I change? |
hack/helm_vars/wire-server/values.yaml.gotmpl |
|
@battermann can you have another look please? |
battermann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
But I think the defaults are not aligned with the RFC, AFAICT.
Also, stern/backoffice endpoint are probably required.
| meetings: | ||
| defaults: | ||
| status: disabled | ||
| lockStatus: unlocked | ||
| meetingsPremium: | ||
| defaults: | ||
| status: disabled | ||
| lockStatus: unlocked |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
align with the defaults?
Co-authored-by: Leif Battermann <leif.battermann@wire.com>
Thanks for this
I'm confused here, I already changed Thanks in advance for your help. |
You are right, sorry. But I would like to have a test for the stern endpoints. |
Great, I look at this. |
battermann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
https://wearezeta.atlassian.net/browse/WPB-21964
Checklist
changelog.d