1212 SCOPE_TENANT ,
1313)
1414from feature_flags .contracts .schemas import FeatureFlagView , ToggleRequest
15- from feature_flags .deps import FeatureFlagRegistryDep , FeatureFlagServiceDep
15+ from feature_flags .deps import (
16+ FeatureFlagRegistryDep ,
17+ FeatureFlagServiceDep ,
18+ require_known_tenant ,
19+ )
1620
1721router = APIRouter ()
1822
@@ -87,7 +91,10 @@ async def clear_override(
8791@router .get (
8892 "/tenant/{tenant_id}" ,
8993 response_model = list [FeatureFlagView ],
90- dependencies = [Depends (RequiresPermission (PERM_FEATURE_FLAGS_VIEW ))],
94+ dependencies = [
95+ Depends (RequiresPermission (PERM_FEATURE_FLAGS_VIEW )),
96+ Depends (require_known_tenant ),
97+ ],
9198)
9299async def list_flags_for_tenant (
93100 tenant_id : str ,
@@ -100,7 +107,10 @@ async def list_flags_for_tenant(
100107@router .put (
101108 "/tenant/{tenant_id}/{name}" ,
102109 response_model = FeatureFlagView ,
103- dependencies = [Depends (RequiresPermission (PERM_FEATURE_FLAGS_MANAGE ))],
110+ dependencies = [
111+ Depends (RequiresPermission (PERM_FEATURE_FLAGS_MANAGE )),
112+ Depends (require_known_tenant ),
113+ ],
104114)
105115async def set_tenant_override (
106116 tenant_id : str ,
@@ -118,6 +128,8 @@ async def set_tenant_override(
118128 return view
119129
120130
131+ # Clearing is not validated: an override left behind for a tenant that has
132+ # since gone must stay removable.
121133@router .delete (
122134 "/tenant/{tenant_id}/{name}" ,
123135 status_code = 204 ,
0 commit comments