Skip to content

Conversation

@blackheaven
Copy link
Contributor

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

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 December 19, 2025 10:12
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Dec 19, 2025
@battermann battermann requested a review from Copilot December 19, 2025 10:44
Copy link
Contributor

Copilot AI left a 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.

Copy link
Contributor

@battermann battermann left a 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.

@blackheaven
Copy link
Contributor Author

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?

@battermann
Copy link
Contributor

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

@blackheaven
Copy link
Contributor Author

@battermann can you have another look please?

Copy link
Contributor

@battermann battermann left a 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.

Comment on lines 231 to 238
meetings:
defaults:
status: disabled
lockStatus: unlocked
meetingsPremium:
defaults:
status: disabled
lockStatus: unlocked
Copy link
Contributor

Choose a reason for hiding this comment

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

align with the defaults?

blackheaven and others added 2 commits December 19, 2025 16:21
Co-authored-by: Leif Battermann <leif.battermann@wire.com>
@blackheaven
Copy link
Contributor Author

But I think the defaults are not aligned with the RFC, AFAICT.

Thanks for this

Also, stern/backoffice endpoint are probably required.

I'm confused here, I already changed tools/stern/src/Stern/API.hs and tools/stern/src/Stern/API/Routes.hs, are there other files I should look at?

Thanks in advance for your help.

@battermann
Copy link
Contributor

But I think the defaults are not aligned with the RFC, AFAICT.

Thanks for this

Also, stern/backoffice endpoint are probably required.

I'm confused here, I already changed tools/stern/src/Stern/API.hs and tools/stern/src/Stern/API/Routes.hs, are there other files I should look at?

Thanks in advance for your help.

You are right, sorry. But I would like to have a test for the stern endpoints.

@blackheaven
Copy link
Contributor Author

But I think the defaults are not aligned with the RFC, AFAICT.

Thanks for this

Also, stern/backoffice endpoint are probably required.

I'm confused here, I already changed tools/stern/src/Stern/API.hs and tools/stern/src/Stern/API/Routes.hs, are there other files I should look at?
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.

Copy link
Contributor

@battermann battermann left a comment

Choose a reason for hiding this comment

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

LGTM

@blackheaven blackheaven merged commit 8abc171 into develop Dec 19, 2025
11 checks passed
@blackheaven blackheaven deleted the gdifolco/WPB-21964-wire-meetings-feature-flags branch December 19, 2025 21:40
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