UNSCOPED_RESOURCE_OWNER_SCOPE collapsed every caller without an identity field (no user_id / team_id / org_id / api_key / token) into a single shared owner — a cross-tenant access primitive: any two such callers could see and delete each other's containers and skills. Drop the sentinel. ``get_primary_resource_owner_scope`` returns ``None`` and ``get_resource_owner_scopes`` returns ``[]`` for identity-less callers. ``record_container_owner`` and ``LiteLLMSkillsHandler.create_skill`` now reject creates from identity-less callers with a 403 instead of stamping the placeholder. Read paths already deny ``owner is None`` correctly so legacy rows (if any) are admin-only. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_azure_container_transformation.py | ||
| test_container_api.py | ||
| test_container_handler_url.py | ||
| test_container_integration.py | ||
| test_container_proxy_ownership.py | ||
| test_container_regional_api_base.py | ||
| test_container_transformation.py | ||
| test_container_utils.py | ||