Skip to content

XS⚠️ ◾ Remove client feature overrides - #882

Open
Muiris Woulfe (muiriswoulfe) wants to merge 8 commits into
mainfrom
fix/client-feature-overrides
Open

XS⚠️ ◾ Remove client feature overrides#882
Muiris Woulfe (muiriswoulfe) wants to merge 8 commits into
mainfrom
fix/client-feature-overrides

Conversation

@muiriswoulfe

Copy link
Copy Markdown
Member

Purpose

Remove unauthenticated request controls that allowed callers to force feature states and bypass configured evaluation.

Impact

Feature state is now controlled only by server configuration, experiments, and existing filters. This intentionally breaks consumers of the retired request override API.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@muiriswoulfe
Muiris Woulfe (muiriswoulfe) requested a review from a team as a code owner August 25, 2026 14:27
Copilot AI lite review requested due to automatic review settings August 25, 2026 14:27
@muiriswoulfe Muiris Woulfe (muiriswoulfe) added the bug Something isn't working label Aug 25, 2026
@muiriswoulfe

Copy link
Copy Markdown
Member Author

Replaces #880 so the head branch is hosted directly in microsoft/Omex. The original pull request retains the earlier review timeline.

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

This PR removes unauthenticated, request-driven feature override mechanisms (query-string controls) so feature state is determined only by server configuration (FeatureOverrideSettings), experiments, and existing filters—intentionally breaking consumers of the retired request override API.

Changes:

  • Removed query-string feature overrides from ExtendedFeatureManager, ToggleFilter, and related request-parameter constants.
  • Simplified frontend feature-gate generation to rely on IsEnabledAsync (which now reflects server-controlled overrides), and updated unit tests accordingly.
  • Updated public docs and interfaces to describe server-controlled override behavior instead of request overrides.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/FeatureManagement.UnitTests/Filters/ToggleFilterTests.cs Removes query-string toggle tests and updates construction to match the new ToggleFilter DI signature.
tests/FeatureManagement.UnitTests/FeatureGatesServiceTests.cs Updates expectations to reflect removal of request override lists and rely on IsEnabledAsync results.
tests/FeatureManagement.UnitTests/ExtendedFeatureManagerTests.cs Removes HttpContext-based override tests and focuses on FeatureOverrideSettings behavior.
src/FeatureManagement/README.md Re-documents precedence as server-controlled overrides → experiments → static config; removes query-string guidance.
src/FeatureManagement/IFeatureGatesService.cs Removes request-override API surface (RequestedFeatures/BlockedFeatures) and updates remarks accordingly.
src/FeatureManagement/IFeatureGatesConsolidator.cs Removes mention of query-string overrides; updates remarks to reference server-controlled overrides.
src/FeatureManagement/IExtendedFeatureManager.cs Removes request-driven override properties and documents server-controlled-only override behavior.
src/FeatureManagement/Filters/ToggleFilter.cs Removes query-string evaluation and toggles only via FeatureOverrideSettings.Toggled.
src/FeatureManagement/FeatureGatesService.cs Removes bulk override application from request override lists; keeps override precedence via GetOverride.
src/FeatureManagement/FeatureGatesConsolidator.cs Removes query-string override mention from high-level documentation.
src/FeatureManagement/ExtendedFeatureManager.cs Removes HttpContext/query parsing and applies only server-controlled override lists.
src/FeatureManagement/Constants/RequestParameters.cs Removes request parameter constants for feature overrides/toggles.
.github/copilot-instructions.md Updates repo guidance to reflect server-controlled overrides instead of query overrides.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tests/FeatureManagement.UnitTests/ExtendedFeatureManagerTests.cs
Comment thread src/FeatureManagement/IFeatureGatesConsolidator.cs
@microsoft-omex

microsoft-omex Bot commented Aug 25, 2026

Copy link
Copy Markdown

PR Metrics

Thanks for keeping your pull request small.
⚠️ Consider adding additional tests.

Lines
Product Code 25
Test Code 3
Subtotal 28
Ignored Code 11
Total 39

Metrics computed by PR Metrics. Add it to your Azure DevOps and GitHub PRs!

@microsoft-omex microsoft-omex Bot changed the title Remove client feature overrides XS⚠️ ◾ Remove client feature overrides Aug 25, 2026

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

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Comment thread src/FeatureManagement/ExtendedFeatureManager.cs Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

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

Copilot reviewed 13 out of 13 changed files in this pull request and generated no new comments.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

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

Copilot reviewed 13 out of 13 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants