XS⚠️ ◾ Remove client feature overrides - #882
XS⚠️ ◾ Remove client feature overrides#882Muiris Woulfe (muiriswoulfe) wants to merge 8 commits into
Conversation
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>
|
Replaces #880 so the head branch is hosted directly in microsoft/Omex. The original pull request retains the earlier review timeline. |
There was a problem hiding this comment.
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.
PR Metrics✔ Thanks for keeping your pull request small.
Metrics computed by PR Metrics. Add it to your Azure DevOps and GitHub PRs! |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.