mirror of
https://github.com/onyx-dot-app/onyx.git
synced 2026-10-22 03:14:06 -05:00
## Description `/admin/scim` and `/admin/service-accounts` now redirect with "This feature requires a license" when the license does not cover EE features, like the other paid admin pages. Fixes [ENG-4442](https://linear.app/onyx-app/issue/ENG-4442/scim-and-service-account-pages-are-not-locked-after-the-community). **Why** - Paid pages are locked by `web/src/proxy.ts:EE_ROUTES`, which rewrites them to the `/ee` tree whose layout turns an unlicensed deployment away. - These two paths were never in that list, so after a downgrade SCIM offered a token button that returns 402, and service accounts showed a load error. **What** - Both paths are added to `EE_ROUTES`. - Like `/admin/groups`, each has a one-line page stub in `app/admin/` (keeps typed `Link` hrefs valid) and `app/ee/admin/` (the copy the proxy serves). - The SCIM page body moves to `views/admin/ScimPage/`, with `interfaces.ts` renamed `types.ts` and imports made absolute. - `src/app/admin` type-coverage floor drops from 97.3 to 97.2 because typed code left it. Feature-map docs list the new EE routes. | Before | After | | --- | --- | |  |  | |  |  | ## How Has This Been Tested? Live in Chrome against a scratch API with no license (`ee_features_enabled` false, tier community): on main both pages load as above. On this branch both redirect to `/app` with the license toast, the same as `/admin/groups`. With a license seeded, both pages still load. Jest (`src/app/ee/__tests__/licenseGatedRoutes.test.ts`): the proxy rewrites both paths to `/ee`, and both cases fail against main's `proxy.ts`. `types:check` and pre-commit pass. ## Additional Options - [x] [Optional] Please cherry-pick this PR to the latest release version.