Skip to content

[AI-FSSDK] [FSSDK-12792] Add localHoldouts datafile section for backward-compatible local holdout support#414

Closed
junaed-optimizely wants to merge 1 commit into
masterfrom
ai/junaed-optimizely/FSSDK-12792-csharp-local-datafile
Closed

[AI-FSSDK] [FSSDK-12792] Add localHoldouts datafile section for backward-compatible local holdout support#414
junaed-optimizely wants to merge 1 commit into
masterfrom
ai/junaed-optimizely/FSSDK-12792-csharp-local-datafile

Conversation

@junaed-optimizely

@junaed-optimizely junaed-optimizely commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add new top-level localHoldouts datafile section to separate local (rule-scoped) holdouts from global holdouts
  • Strip includedRules from global holdouts at parse time — section membership is the sole signal for scope
  • Validate local holdouts: entries without includedRules are logged as errors and excluded
  • Enforce forced decision priority over local holdouts (mandatory cross-SDK ordering)

Changes

  • DatafileProjectConfig.cs: Parse localHoldouts from datafile; strip IncludedRules from global holdouts; validate local holdouts
  • ProjectConfig.cs: Add LocalHoldouts property to IProjectConfig interface
  • Holdout.cs: Change IsGlobal to settable property with internal setter; update docstrings
  • HoldoutConfig.cs: Use holdout.IsGlobal property instead of computing from IncludedRules
  • DecisionService.cs: Update comment for section-based scope
  • Tests: Add parsing tests, validation tests, backward compatibility tests, and mandatory forced-decision-beats-local-holdout test

Jira Ticket

FSSDK-12792

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant