litellm/tests/e2e/ui/tests
devin-ai-integration[bot] 008fcb4fe3
feat(tool-policies): show the user who owns the key that discovered a tool (#43892)
* feat(tool-policies): show the user who owns the key that discovered a tool

GET /v1/tool/list and GET /v1/tool/{tool_name} resolve the discovering key's owner from the verification token and user tables at response time and return it as a nullable user field. The Tool Policies page adds a User column that shows alias, then email, then ID, with the same cell the Virtual Keys page uses. Keys without an owner, deleted owners, and rows without a key hash show no user, and a database failure in the owner lookup keeps the tools listed with user null

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(tool-policies): bound the owner lookup with chunked membership queries

The key-by-token and user-by-id lookups behind the tool rows' user field
put every distinct key hash into one IN list. BaseRepository gains
find_many_in, which runs the repository's chunked membership query and
converts the rows like find_many does, and the owner lookup uses it

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(tool-policies): cover the owner column across the tool routes and the dashboard

Integration cells for the direct, detail and filtered tool routes, owners without alias or email, deleted owners and keys, keyless and unknown-key historical rows, more keys than one membership chunk, repeated reads, two-worker reads during discovery and a failed owner lookup. A Playwright cell drives the bundled Tool Policies page against the live proxy and follows the owner link

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: ryan <ryan@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 20:34:57 +00:00
..
auth fix(ci): stop stale CI reds, keep unit tests off the host env, retry CyberArk policy conflicts (#43294) 2026-09-26 09:25:13 -07:00
budgets test(e2e/ui): wait for the filtered budget list before clicking a row action 2026-09-17 21:39:22 -07:00
guardrails test(e2e): wait for serving propagation in UI journeys 2026-09-11 10:25:43 -07:00
integrationCritical feat(tool-policies): show the user who owns the key that discovered a tool (#43892) 2026-10-01 20:34:57 +00:00
internal-user fix(ui): rename All Models tab to Deployed Models and model filters to All Proxy Models (#43638) 2026-09-28 17:59:47 -07:00
internal-viewer test(e2e): assert user-observable behavior instead of DOM structure 2026-08-31 14:04:15 -07:00
login fix(e2e/ui): resolve dashboard base URL from env instead of hardcoding localhost (#34739) 2026-07-27 10:19:32 -07:00
logs test(ci): repair stale tests and flaky CI infrastructure (#43983) 2026-10-01 17:46:43 +00:00
mcp test(e2e-ui): check the MCP Tools tab against the upstream's own tools/list (#42397) 2026-09-21 20:35:30 -07:00
migration test(ui): assert navigation through accessible links and page content 2026-09-06 00:59:18 -07:00
modelHub style: drop explanatory comments from the agent publish fix 2026-09-03 04:27:43 -07:00
modelsPage fix(ui): rename All Models tab to Deployed Models and model filters to All Proxy Models (#43638) 2026-09-28 17:59:47 -07:00
navigation test(ui): assert navigation through accessible links and page content 2026-09-06 00:59:18 -07:00
playground test(e2e/ui): address the migrated dashboard controls by role, not antd classes 2026-08-15 15:37:09 -07:00
prompts test(ui): address review feedback 2026-09-17 23:46:53 -07:00
proxy-admin fix(e2e): onboard dashboard fixtures through invitations 2026-09-15 17:44:18 -07:00
settings test(e2e): drop redundant SCIM key cleanup, the throwaway db is the teardown 2026-08-31 15:36:35 -07:00
tables test: repair two CI tests broken by intentional changes 2026-09-05 12:02:48 -07:00
tagManagement test(ci): repair stale tests and flaky CI infrastructure (#43983) 2026-10-01 17:46:43 +00:00
team-admin fix(e2e): onboard dashboard fixtures through invitations 2026-09-15 17:44:18 -07:00
usage test(e2e/ui): cover the Usage page activity tabs (#39061) 2026-09-01 12:36:17 -07:00
users test(e2e): match the Internal Users search placeholder shipped by #39604 2026-09-03 16:57:10 -07:00