test(otel): assert allowlisted key metadata end to end and drop dead auth fallback

UserAPIKeyAuth has no user_api_key_auth_metadata field, so the fallback never fired.
The test now uses a real UserAPIKeyAuth, compares the full promoted baggage, and checks
that the default allowlist promotes no key metadata.
This commit is contained in:
Jesus Velarde 2026-11-05 16:10:41 -08:00
parent 25a6223130
commit 6ffa31c196
2 changed files with 22 additions and 13 deletions

View file

@ -152,12 +152,7 @@ class RequestIdentity:
)
if (value := get(attr))
)
raw_key_meta: Final = as_str_mapping(get("metadata") or get("user_api_key_auth_metadata"))
key_meta: Final = (
tuple(flatten_metadata({"user_api_key_auth_metadata": raw_key_meta}))
if raw_key_meta is not None
else ()
)
key_meta: Final = flatten_metadata({"user_api_key_auth_metadata": get("metadata")})
request_meta: Final = flatten_metadata(request_metadata) if request_metadata is not None else ()
metadata: Final = MappingProxyType(dict((*request_meta, *auth_meta, *key_meta)))
return cls(

View file

@ -1607,16 +1607,30 @@ def test_request_identity_from_user_api_key_auth():
assert ident.metadata["user_api_key_end_user_id"] == "eu9"
def test_request_identity_from_user_api_key_auth_flattens_key_metadata():
def test_virtual_key_metadata_reaches_baggage_only_for_allowlisted_sub_keys():
from litellm.integrations.otel.model.baggage import DEFAULT_BAGGAGE_METADATA_KEYS, promoted_baggage
from litellm.integrations.otel.model.payloads import RequestIdentity
from litellm.proxy._types import UserAPIKeyAuth
class _Auth:
metadata = {"team": "a", "customtag": "b", "nested": {"k": "v"}}
auth: Final = UserAPIKeyAuth(
key_alias="cost-key",
metadata={"team": "a", "cost": {"center": "cc-42"}, "owner": "not-allowlisted"},
)
identity: Final = RequestIdentity.from_user_api_key_auth(auth)
ident = RequestIdentity.from_user_api_key_auth(_Auth())
assert ident.metadata["user_api_key_auth_metadata.team"] == "a"
assert ident.metadata["user_api_key_auth_metadata.customtag"] == "b"
assert ident.metadata["user_api_key_auth_metadata.nested.k"] == "v"
allowlisted: Final = promoted_baggage(
identity,
None,
promoted_keys=(),
metadata_keys=("user_api_key_auth_metadata.team", "user_api_key_auth_metadata.cost.center"),
)
default: Final = promoted_baggage(identity, None, promoted_keys=(), metadata_keys=DEFAULT_BAGGAGE_METADATA_KEYS)
assert allowlisted == {
"litellm.metadata.user_api_key_auth_metadata.team": "a",
"litellm.metadata.user_api_key_auth_metadata.cost.center": "cc-42",
}
assert default == {"litellm.metadata.user_api_key_alias": "cost-key"}
# --- request-metadata translation layer (RequestContext) -------------------- #