Skip to content

[AI-FSSDK] [FSSDK-12369] Add local holdouts support with includedRules field#398

Open
Mat001 wants to merge 4 commits into
masterfrom
ai/mat001/FSSDK-12369-local-holdouts
Open

[AI-FSSDK] [FSSDK-12369] Add local holdouts support with includedRules field#398
Mat001 wants to merge 4 commits into
masterfrom
ai/mat001/FSSDK-12369-local-holdouts

Conversation

@Mat001
Copy link
Copy Markdown
Contributor

@Mat001 Mat001 commented May 14, 2026

Summary

Adds Local Holdouts support to the Ruby SDK. Local holdouts allow targeting specific experiment and delivery rules within a flag via a new includedRules field, while global holdouts (where includedRules is absent or nil) continue to apply to all rules across all flags.

Changes

  • Added includedRules optional field support to holdout data model in DatafileProjectConfig
  • Added holdout_global? predicate, get_global_holdouts, and get_holdouts_for_rule methods to config
  • Updated get_variation_from_experiment_rule and get_variation_from_delivery_rule in DecisionService to check local holdouts per rule after forced decisions
  • Updated JSON schema in constants.rb to allow includedRules field in holdout objects
  • Added comprehensive Level 1 (config/parsing) and Level 2 (decision service) unit tests

Jira Ticket

FSSDK-12369

Mat001 and others added 3 commits May 14, 2026 15:34
- Fix Layout/SpaceInsideHashLiteralBraces in datafile_project_config_spec.rb
- Fix Lint/UselessAssignment by removing unused feature_flag variable in decision_service_holdout_spec.rb

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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