litellm/ui/litellm-dashboard
ryan-crabbe-berri ffa3880b80 feat(ui): adopt openapi-react-query as the typed data-fetching client
Stands up the typed transport on top of the generated OpenAPI types and migrates
the first real hook to prove the pattern. src/lib/http/api.ts creates an
openapi-fetch client wrapped by openapi-react-query ($api); base URL stays
call-time via getProxyBaseUrl in an onRequest middleware (not a frozen
createClient baseUrl, which would break server-root-path and worker switching),
and the access token is passed per call via authHeader.

useInfiniteUsers now calls $api.useInfiniteQuery("get", "/user/list", ...) instead
of the hand-rolled userListCall: query params, the response body, and the user
rows are all typed from the spec, and the 11-arg positional call collapses into a
typed query object. Its infinite-query return shape is unchanged, so UsagePageView
is untouched. Global query errors route through QueryCache.onError into the
existing handleError, preserving the session-expiry logout behavior.

The test mocks fetch (installed via vi.hoisted because openapi-fetch captures
globalThis.fetch at client creation) and asserts the real request URLs, the bearer
header, pagination, and the error path.
2026-06-30 16:45:24 -07:00
..
e2e_tests test(ui): drop the e2e typecheck CI gate, keep the typed import for the editor 2026-06-30 12:50:21 -07:00
public chore: litellm oss staging (#30745) 2026-06-18 13:55:35 -07:00
scripts feat(proxy): type Customer Management response_model for OpenAPI coverage (#31043) 2026-06-30 09:58:01 -07:00
src feat(ui): adopt openapi-react-query as the typed data-fetching client 2026-06-30 16:45:24 -07:00
tests feat(ui): track frontend lint counts in a committed snapshot (#31157) 2026-06-24 11:35:32 -07:00
.env.development hidden dashboard routing, dev and build env files 2025-10-06 19:21:34 -07:00
.env.production remove next env 2026-04-18 16:45:32 -07:00
.npmrc [Fix] CI/Tooling: Correct min-release-age value in .npmrc files 2026-04-29 19:49:27 -07:00
.nvmrc [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
.prettierignore feat(ui): generate dashboard API types from the proxy OpenAPI spec (#29816) 2026-06-05 17:20:01 -07:00
.prettierrc added and ran prettier autoformatter 2025-10-04 18:19:48 -07:00
build_release_ui.sh build release ui script 2026-01-17 18:16:14 -08:00
build_ui.sh chore: remove _experimental/out (#31546) 2026-06-29 21:42:58 -07:00
build_ui_custom_path.sh chore: remove _experimental/out (#31546) 2026-06-29 21:42:58 -07:00
CLAUDE.md feat(ui): generate dashboard API types from the proxy OpenAPI spec (#29816) 2026-06-05 17:20:01 -07:00
eslint-budgets.json ci(ui): frontend-lint job enforcing prettier + eslint on changed files (#29633) 2026-06-04 07:41:31 -07:00
eslint-metrics.json fix(ui): allow any git host on the skills add form (LIT-4053) (#31652) 2026-06-30 10:29:49 -07:00
eslint-suppressions.json fix(ui): allow any git host on the skills add form (LIT-4053) (#31652) 2026-06-30 10:29:49 -07:00
eslint.config.mjs feat(ui): generate dashboard API types from the proxy OpenAPI spec (#29816) 2026-06-05 17:20:01 -07:00
knip.json chore(ui): make knip recognize .mjs scripts and openapi-typescript (#30052) 2026-06-10 11:44:24 -07:00
next.config.mjs chore(admin-ui): regenerate static export with trailingSlash: true (#28112) 2026-05-25 21:06:50 -07:00
package-lock.json feat(ui): adopt openapi-react-query as the typed data-fetching client 2026-06-30 16:45:24 -07:00
package.json feat(ui): adopt openapi-react-query as the typed data-fetching client 2026-06-30 16:45:24 -07:00
postcss.config.js build(ui/litellm-dashboard): initial commit of litellm dashboard 2024-01-27 12:12:48 -08:00
README.md build(ui/litellm-dashboard): initial commit of litellm dashboard 2024-01-27 12:12:48 -08:00
tailwind.config.js added and ran prettier autoformatter 2025-10-04 18:19:48 -07:00
tailwind.config.ts added and ran prettier autoformatter 2025-10-04 18:19:48 -07:00
tsconfig.json style(ui): run prettier --write across the dashboard (#29622) 2026-06-04 11:37:54 -07:00
tsconfig.tsbuildinfo feat(ui): migrate projects and access-groups to path routes (#30226) 2026-06-11 13:20:21 -07:00
ui_colors.json added and ran prettier autoformatter 2025-10-04 18:19:48 -07:00
vitest.config.ts [Test] UI - Unit tests: raise global vitest timeout and remove per-test overrides 2026-04-09 23:58:35 -07:00

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.