litellm/type-discipline-budget.json
ryan-crabbe-berri 527dc0a8bb
feat(proxy): add apply_user_budget_to_team_keys opt-in (#36102)
* feat(proxy): add apply_user_budget_to_team_keys opt-in

PR #32005 made a user's personal max_budget apply to their team-scoped keys
too, and PR #35271 reverted the whole thing (behavior plus the
skip_user_budget_on_team_key opt-out) because that flipped the default for
everyone. This brings the behavior back the other way round: default is
unchanged, and general_settings.apply_user_budget_to_team_keys opts a
deployment into charging the key owner's personal budget on team keys.

The flag reaches all three personal-budget gates so an opted-in deployment
enforces consistently: the read-time check in common_checks, the optimistic
reservation counter in _get_budget_counters, and the _PROXY_MaxBudgetLimiter
pre-call hook. It is also in the /config/list allowed args and, unlike the
reverted flag, in the _update_general_settings propagation allowlist, so the
Admin UI General Settings toggle actually takes effect at runtime; an explicit
YAML value still wins over the DB value on reload.

get_config_list's allowed_args moves to a module-level frozen mapping of
field name to type string, dropping 18 LIT002 violations and rebuilding one
less dict per request.

* style(proxy): drop explanatory comments from the budget flag paths
2026-08-07 15:40:13 +00:00

35 lines
400 B
JSON

{
"LIT001": {
"limit": 23256
},
"LIT002": {
"limit": 27195
},
"LIT003": {
"limit": 269
},
"LIT004": {
"limit": 43
},
"LIT005": {
"limit": 0
},
"LIT006": {
"limit": 1091
},
"LIT007": {
"limit": 0
},
"LIT008": {
"limit": 951
},
"LIT009": {
"limit": 0
},
"LIT010": {
"limit": 16783
},
"LIT011": {
"limit": 5602
}
}