litellm/ui/litellm-dashboard
ryan-crabbe-berri a2c916fb45
feat(ui): migrate projects and access-groups to path routes (#30226)
* feat(ui): cut projects and access-groups over to path routes

Same recipe as playground (#30185): MIGRATED_PAGES entries route the
sidebar and redirect the legacy ?page= URLs, the switch arms are
deleted, and the e2e fixture grows two entries. Both components were
already zero-prop and self-fetching via React Query hooks, so the
route wrappers are trivial.

* refactor(ui): move Projects and AccessGroups components into their route folders

Both folders were imported only by the legacy switch, so they colocate
wholesale under (dashboard)/{projects,access-groups}/components. Their
React Query hooks stay in the shared (dashboard)/hooks layer. eslint
suppressions are re-keyed to the new paths.

* test(ui): enable enable_projects_ui in e2e global setup

The projects migration smoke clicks the Projects sidebar link, which
only renders when the enterprise-gated enable_projects_ui setting is
on; the seeded e2e database starts with it off, so the locator timed
out in both e2e_ui_testing jobs. CI already launches the proxy with
LITELLM_LICENSE for premium UI coverage, so flip the setting in
globalSetup via the same /update/ui_settings call the admin UI toggle
makes, failing loudly if the PATCH is rejected.

* test(ui): use Playwright request context instead of raw fetch in global setup

The frontend lint bans raw fetch() outside src/lib/http/; the e2e
convention for proxy API calls is Playwright's APIRequestContext, as
in routerSettings.spec.ts.
2026-06-11 13:20:21 -07:00
..
e2e_tests feat(ui): migrate projects and access-groups to path routes (#30226) 2026-06-11 13:20:21 -07:00
public Litellm oss staging 050626 (#29774) 2026-06-05 13:51:51 -07:00
scripts feat(ui): include internal routes in the dashboard's generated OpenAPI types (#29885) 2026-06-06 23:05:36 -07:00
src feat(ui): migrate projects and access-groups to path routes (#30226) 2026-06-11 13:20:21 -07:00
tests refactor(ui): consolidate dashboard to one shell in the (dashboard) layout (#30166) 2026-06-10 18:37:44 -07:00
.env.development
.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
build_release_ui.sh
build_ui_custom_path.sh chore: harden npm supply chain — pin overrides, enforce npm ci, add ignore-scripts (#24838) 2026-03-31 13:41:37 -07:00
build_ui.sh chore: harden npm supply chain — pin overrides, enforce npm ci, add ignore-scripts (#24838) 2026-03-31 13:41:37 -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-suppressions.json feat(ui): migrate projects and access-groups to path routes (#30226) 2026-06-11 13:20:21 -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 chore(ui): remove dead dashboard files and unused dependencies (#30047) 2026-06-09 17:54:38 -07:00
package.json chore(ui): remove dead dashboard files and unused dependencies (#30047) 2026-06-09 17:54:38 -07:00
postcss.config.js
README.md
tailwind.config.js
tailwind.config.ts
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
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.