# BR-LIST-03 When the allow list targets a value, then the way to apply it follows one of three settings. Defined in [Impose a deny list and an allow list](https://docs.piighost.dev/en/domain/processes/impose-a-deny-list-and-an-allow-list/#br-list-03). ## Where the rule lives - [`_exact_invalidated()`](https://github.com/Athroniaeth/piighost/blob/master/src/piighost/components/override/detector.py#L16) - [`_value_invalidated()`](https://github.com/Athroniaeth/piighost/blob/master/src/piighost/components/override/detector.py#L24) - [`_overlap_invalidated()`](https://github.com/Athroniaeth/piighost/blob/master/src/piighost/components/override/detector.py#L30) - [`DetectionOverride._clear()`](https://github.com/Athroniaeth/piighost/blob/master/src/piighost/components/override/detector.py#L145) ## Direct tests No test calls this code directly. ## Indirect tests - [`tests/components/override/test_override.py::TestAllowListStrategies::test_exact_keeps_a_label_mismatch`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L85) - [`tests/components/override/test_override.py::TestAllowListStrategies::test_exact_removes_the_identical_detection`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L76) - [`tests/components/override/test_override.py::TestAllowListStrategies::test_overlap_removes_what_it_touches`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L114) - [`tests/components/override/test_override.py::TestAllowListStrategies::test_value_is_the_default_and_ignores_the_label`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L94) - [`tests/components/override/test_override.py::TestAllowListStrategies::test_value_removes_the_value_everywhere`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L102) - [`tests/components/override/test_override.py::TestClearedValues::test_is_empty_without_a_allow_list`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L174) - [`tests/components/override/test_override.py::TestClearedValues::test_reports_the_allow_listed_values`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L167) - [`tests/components/override/test_override.py::TestConflictStrategies::test_allow_list_wins_clears_the_forced_value`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L135) - [`tests/components/override/test_override.py::TestConflictStrategies::test_deny_list_wins_by_default`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L125) - [`tests/components/override/test_override.py::TestConflictStrategies::test_raise_applies_both_lists_when_disjoint`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L154) - [`tests/components/override/test_override.py::TestConflictStrategies::test_raise_refuses_the_collision`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L144) - [`tests/components/override/test_override.py::TestConformance::test_satisfies_the_port`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L31) - [`tests/components/override/test_override.py::TestDenyList::test_adds_a_missed_value`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L45) - [`tests/components/override/test_override.py::TestDenyList::test_keeps_the_detector_order_on_one_span`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L64) - [`tests/components/override/test_override.py::TestDenyList::test_replaces_an_overlapping_detection`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L54) - [`tests/components/override/test_override.py::TestEmpty::test_no_lists_leave_detections_unchanged`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L37) - [`tests/components/override/test_override.py::TestForcesValue::test_force_forces_a_matched_value`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L185) - [`tests/components/override/test_override.py::TestForcesValue::test_force_ignores_an_unmatched_value`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L193) - [`tests/components/override/test_override.py::TestForcesValue::test_respect_provenance_never_forces`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L180) - [`tests/components/override/test_override.py::TestUnicodeSpaces::test_value_clears_a_spelling_with_other_spaces`](https://github.com/Athroniaeth/piighost/blob/master/tests/components/override/test_override.py#L203) - [`tests/observation/test_pipeline_spans.py::TestRedaction::test_redactor_covers_forced_values`](https://github.com/Athroniaeth/piighost/blob/master/tests/observation/test_pipeline_spans.py#L145) - [`tests/observation/test_pipeline_spans.py::TestSpanTree::test_optional_stage_spans_appear_when_configured`](https://github.com/Athroniaeth/piighost/blob/master/tests/observation/test_pipeline_spans.py#L79) - [`tests/pipeline/test_override_integration.py::TestBasePipelineOverride::test_a_real_leak_still_trips_the_guard`](https://github.com/Athroniaeth/piighost/blob/master/tests/pipeline/test_override_integration.py#L64) - [`tests/pipeline/test_override_integration.py::TestBasePipelineOverride::test_allow_list_keeps_a_false_positive_in_clear`](https://github.com/Athroniaeth/piighost/blob/master/tests/pipeline/test_override_integration.py#L44) - [`tests/pipeline/test_override_integration.py::TestBasePipelineOverride::test_allow_listed_value_does_not_trip_the_guard`](https://github.com/Athroniaeth/piighost/blob/master/tests/pipeline/test_override_integration.py#L53) - [`tests/pipeline/test_override_integration.py::TestBasePipelineOverride::test_deny_list_forces_a_value_the_detector_missed`](https://github.com/Athroniaeth/piighost/blob/master/tests/pipeline/test_override_integration.py#L37) ## Used by - [`override/detector.py`](https://github.com/Athroniaeth/piighost/blob/master/src/piighost/components/override/detector.py#L1) - [`DetectionOverride.apply()`](https://github.com/Athroniaeth/piighost/blob/master/src/piighost/components/override/detector.py#L88) Read from the code graph graphify builds, at the places the domain documentation gives.