forked from phoenix/litellm-mirror
docs: add docs on restricting key creation
This commit is contained in:
parent
463fa0c9d5
commit
eb0a357eda
3 changed files with 77 additions and 1 deletions
|
@ -755,6 +755,7 @@ general_settings:
|
||||||
| cache_params.supported_call_types | array of strings | The types of calls to cache. [Further docs](./caching) |
|
| cache_params.supported_call_types | array of strings | The types of calls to cache. [Further docs](./caching) |
|
||||||
| cache_params.mode | string | The mode of the cache. [Further docs](./caching) |
|
| cache_params.mode | string | The mode of the cache. [Further docs](./caching) |
|
||||||
| disable_end_user_cost_tracking | boolean | If true, turns off end user cost tracking on prometheus metrics + litellm spend logs table on proxy. |
|
| disable_end_user_cost_tracking | boolean | If true, turns off end user cost tracking on prometheus metrics + litellm spend logs table on proxy. |
|
||||||
|
| key_generation_settings | object | Restricts who can generate keys. [Further docs](./virtual_keys.md#restricting-key-generation) |
|
||||||
|
|
||||||
### general_settings - Reference
|
### general_settings - Reference
|
||||||
|
|
||||||
|
|
|
@ -217,4 +217,10 @@ litellm_settings:
|
||||||
max_parallel_requests: 1000 # (Optional[int], optional): Max number of requests that can be made in parallel. Defaults to None.
|
max_parallel_requests: 1000 # (Optional[int], optional): Max number of requests that can be made in parallel. Defaults to None.
|
||||||
tpm_limit: 1000 #(Optional[int], optional): Tpm limit. Defaults to None.
|
tpm_limit: 1000 #(Optional[int], optional): Tpm limit. Defaults to None.
|
||||||
rpm_limit: 1000 #(Optional[int], optional): Rpm limit. Defaults to None.
|
rpm_limit: 1000 #(Optional[int], optional): Rpm limit. Defaults to None.
|
||||||
```
|
|
||||||
|
key_generation_settings: # Restricts who can generate keys. [Further docs](./virtual_keys.md#restricting-key-generation)
|
||||||
|
team_key_generation:
|
||||||
|
allowed_team_member_roles: ["admin"]
|
||||||
|
personal_key_generation: # maps to 'Default Team' on UI
|
||||||
|
allowed_user_roles: ["proxy_admin"]
|
||||||
|
```
|
||||||
|
|
|
@ -811,6 +811,75 @@ litellm_settings:
|
||||||
team_id: "core-infra"
|
team_id: "core-infra"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Restricting Key Generation
|
||||||
|
|
||||||
|
Use this to control who can generate keys. Useful when letting others create keys on the UI.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
litellm_settings:
|
||||||
|
key_generation_settings:
|
||||||
|
team_key_generation:
|
||||||
|
allowed_team_member_roles: ["admin"]
|
||||||
|
personal_key_generation: # maps to 'Default Team' on UI
|
||||||
|
allowed_user_roles: ["proxy_admin"]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Spec
|
||||||
|
|
||||||
|
```python
|
||||||
|
class TeamUIKeyGenerationConfig(TypedDict):
|
||||||
|
allowed_team_member_roles: List[str]
|
||||||
|
|
||||||
|
|
||||||
|
class PersonalUIKeyGenerationConfig(TypedDict):
|
||||||
|
allowed_user_roles: List[LitellmUserRoles]
|
||||||
|
|
||||||
|
|
||||||
|
class StandardKeyGenerationConfig(TypedDict, total=False):
|
||||||
|
team_key_generation: TeamUIKeyGenerationConfig
|
||||||
|
personal_key_generation: PersonalUIKeyGenerationConfig
|
||||||
|
|
||||||
|
|
||||||
|
class LitellmUserRoles(str, enum.Enum):
|
||||||
|
"""
|
||||||
|
Admin Roles:
|
||||||
|
PROXY_ADMIN: admin over the platform
|
||||||
|
PROXY_ADMIN_VIEW_ONLY: can login, view all own keys, view all spend
|
||||||
|
ORG_ADMIN: admin over a specific organization, can create teams, users only within their organization
|
||||||
|
|
||||||
|
Internal User Roles:
|
||||||
|
INTERNAL_USER: can login, view/create/delete their own keys, view their spend
|
||||||
|
INTERNAL_USER_VIEW_ONLY: can login, view their own keys, view their own spend
|
||||||
|
|
||||||
|
|
||||||
|
Team Roles:
|
||||||
|
TEAM: used for JWT auth
|
||||||
|
|
||||||
|
|
||||||
|
Customer Roles:
|
||||||
|
CUSTOMER: External users -> these are customers
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Admin Roles
|
||||||
|
PROXY_ADMIN = "proxy_admin"
|
||||||
|
PROXY_ADMIN_VIEW_ONLY = "proxy_admin_viewer"
|
||||||
|
|
||||||
|
# Organization admins
|
||||||
|
ORG_ADMIN = "org_admin"
|
||||||
|
|
||||||
|
# Internal User Roles
|
||||||
|
INTERNAL_USER = "internal_user"
|
||||||
|
INTERNAL_USER_VIEW_ONLY = "internal_user_viewer"
|
||||||
|
|
||||||
|
# Team Roles
|
||||||
|
TEAM = "team"
|
||||||
|
|
||||||
|
# Customer Roles - External users of proxy
|
||||||
|
CUSTOMER = "customer"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## **Next Steps - Set Budgets, Rate Limits per Virtual Key**
|
## **Next Steps - Set Budgets, Rate Limits per Virtual Key**
|
||||||
|
|
||||||
[Follow this doc to set budgets, rate limiters per virtual key with LiteLLM](users)
|
[Follow this doc to set budgets, rate limiters per virtual key with LiteLLM](users)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue