Applies to:
- Plan - Any
- Deployment - Any
- Use case - Audit ACLs by mapping UUID grants to human users or service accounts
Summary
ACL entries show raw UUIDs instead of names. These UUIDs are the user or service account IDs for the grant. Use an org-scoped API key for the Braintrust instance where you exported the ACLs. CallGET /v1/user and GET /v1/service_token and match the UUIDs to the id or service_account_id fields.
What is happening
ACL records store principals as UUIDs. The UUID identifies either a human user or a service account in that instance.GET /v1/userreturns human users withid,email,given_name, andfamily_name.GET /v1/service_tokenreturns service tokens withservice_account_id(the account user ID, not the token ID).
Resolution
SetBRAINTRUST_API_URL to your org’s API URL for self-hosted deployments, or https://api.braintrust.dev for Braintrust-hosted orgs.
Human users
CallGET /v1/user and match ACL user_id to objects[].id. The response also includes email, given_name, and family_name.
limit and starting_after for large orgs.
Service accounts
For UUIDs not found in/v1/user, call GET /v1/service_token (org owner key required) and match ACL user_id to objects[].service_account_id, not the token’s id.
Expected results
- Human user: matched object includes
email,given_name, andfamily_name. - Service account: matched object includes
service_account_nameandservice_account_email. - Still unresolved: check the ACL’s
role_id, or go to Settings > Project permissions. The Service accounts tab lists every service account with access, including internal ones (such as online scoring) and custom accounts you created.
Notes
- If auditing across multiple environments, repeat the lookup in each. User IDs are not shared across instances.
/v1/service_tokenonly lists accounts with tokens. Some auto-created accounts will not appear.GET /v1/user/{id}returningForbiddenErrorcan mean the UUID is a service account, but it can also mean the user was deleted, the UUID is wrong, or you queried the wrong API URL or org. Confirm withGET /v1/service_tokenor the UI before treating it as a service account.