routes.js
1 import { lazy } from "react"; 2 import { Navigate } from "react-router-dom"; 3 4 import AuthGuard from "./auth/AuthGuard"; 5 import { authRoles } from "./auth/authRoles"; 6 7 import Loadable from "./components/Loadable"; 8 import MatxLayout from "./components/MatxLayout/MatxLayout"; 9 10 import sessionRoutes from "./views/sessions/session-routes"; 11 12 const Home = Loadable(lazy(() => import("app/views/dashboard/Home"))); 13 const LLMs = Loadable(lazy(() => import("app/views/llms/List"))); 14 const LLMsNewChooser = Loadable(lazy(() => import("app/views/llms/NewChooser"))); 15 const LLMsNew = Loadable(lazy(() => import("app/views/llms/NewInteractive"))); 16 const LLMsInfo = Loadable(lazy(() => import("app/views/llms/Info"))); 17 const LLMsEdit = Loadable(lazy(() => import("app/views/llms/Edit"))); 18 const Embeddings = Loadable(lazy(() => import("app/views/embeddings/List"))); 19 const ImageGenerators = Loadable(lazy(() => import("app/views/image_generators/List"))); 20 const SpeechToText = Loadable(lazy(() => import("app/views/speech_to_text/List"))); 21 const EmbeddingsNewChooser = Loadable(lazy(() => import("app/views/embeddings/NewChooser"))); 22 const EmbeddingsNew = Loadable(lazy(() => import("app/views/embeddings/NewInteractive"))); 23 const EmbeddingsInfo = Loadable(lazy(() => import("app/views/embeddings/Info"))); 24 const EmbeddingsEdit = Loadable(lazy(() => import("app/views/embeddings/Edit"))); 25 const Projects = Loadable(lazy(() => import("app/views/projects/List"))); 26 const Library = Loadable(lazy(() => import("app/views/projects/Library"))); 27 const Tools = Loadable(lazy(() => import("app/views/projects/Tools"))); 28 const ProjectsInfo = Loadable(lazy(() => import("app/views/projects/Info"))); 29 const ProjectsNew = Loadable(lazy(() => import("app/views/projects/New"))); 30 const ProjectsEdit = Loadable(lazy(() => import("app/views/projects/Edit"))); 31 const ProjectsLogs = Loadable(lazy(() => import("app/views/projects/Logs"))); 32 const ProjectsPlayground = Loadable(lazy(() => import("app/views/projects/Playground"))); 33 const ProjectsAPI = Loadable(lazy(() => import("app/views/projects/API"))); 34 const ProjectsIDE = Loadable(lazy(() => import("app/views/projects/IDE"))); 35 const ProjectsEvals = Loadable(lazy(() => import("app/views/projects/Evals"))); 36 const ProjectsGuards = Loadable(lazy(() => import("app/views/projects/Guards"))); 37 const Users = Loadable(lazy(() => import("app/views/users/List"))); 38 const UsersInfo = Loadable(lazy(() => import("app/views/users/Info"))); 39 const UsersNew = Loadable(lazy(() => import("app/views/users/New"))); 40 const Image = Loadable(lazy(() => import("app/views/projects/Image"))); 41 const Audio = Loadable(lazy(() => import("app/views/projects/Audio"))); 42 const Keys = Loadable(lazy(() => import("app/views/proxy/Keys"))); 43 44 // Team routes 45 const Teams = Loadable(lazy(() => import("app/views/teams/Teams"))); 46 const TeamView = Loadable(lazy(() => import("app/views/teams/TeamView"))); 47 const TeamEdit = Loadable(lazy(() => import("app/views/teams/TeamEdit"))); 48 const DirectAccess = Loadable(lazy(() => import("app/views/direct/DirectAccess"))); 49 const ClassifierPlayground = Loadable(lazy(() => import("app/views/classifier/ClassifierPlayground"))); 50 const PermissionMatrix = Loadable(lazy(() => import("app/views/admin/PermissionMatrix"))); 51 const OllamaModels = Loadable(lazy(() => import("app/views/llms/ollama/OllamaModels"))); 52 const Settings = Loadable(lazy(() => import("app/views/settings/Settings"))); 53 const GpuInfo = Loadable(lazy(() => import("app/views/settings/GpuInfo"))); 54 const AuditLog = Loadable(lazy(() => import("app/views/audit/AuditLog"))); 55 const CronLogs = Loadable(lazy(() => import("app/views/admin/CronLogs"))); 56 const InvitationsPage = Loadable(lazy(() => import("app/views/invitations/Invitations"))); 57 58 const routes = [ 59 { 60 path: "/", 61 element: <Navigate to="home" /> 62 }, 63 { 64 element: ( 65 <AuthGuard> 66 <MatxLayout /> 67 </AuthGuard> 68 ), 69 children: [ 70 { 71 path: "/home", 72 element: <Home />, 73 auth: authRoles.admin 74 }, 75 { 76 path: "/users", 77 element: <Users />, 78 auth: authRoles.admin 79 }, 80 { 81 path: "/user/:id", 82 element: <UsersInfo />, 83 auth: authRoles.admin 84 }, 85 { 86 path: "/users/new", 87 element: <UsersNew />, 88 auth: authRoles.admin 89 }, 90 { 91 path: "/llms", 92 element: <LLMs />, 93 auth: authRoles.user 94 }, 95 { 96 path: "/llms/new", 97 element: <LLMsNewChooser />, 98 auth: authRoles.admin 99 }, 100 { 101 path: "/llms/new/manual", 102 element: <LLMsNew />, 103 auth: authRoles.admin 104 }, 105 { 106 path: "/llms/ollama", 107 element: <OllamaModels />, 108 auth: authRoles.admin 109 }, 110 { 111 path: "/llm/:id", 112 element: <LLMsInfo />, 113 auth: authRoles.user 114 }, 115 { 116 path: "/llm/:id/edit", 117 element: <LLMsEdit />, 118 auth: authRoles.admin 119 }, 120 { 121 path: "/embeddings", 122 element: <Embeddings />, 123 auth: authRoles.user 124 }, 125 { 126 path: "/embeddings/new", 127 element: <EmbeddingsNewChooser />, 128 auth: authRoles.admin 129 }, 130 { 131 path: "/embeddings/new/manual", 132 element: <EmbeddingsNew />, 133 auth: authRoles.admin 134 }, 135 { 136 path: "/embedding/:id", 137 element: <EmbeddingsInfo />, 138 auth: authRoles.user 139 }, 140 { 141 path: "/embedding/:id/edit", 142 element: <EmbeddingsEdit />, 143 auth: authRoles.admin 144 }, 145 { 146 path: "/generators/image", 147 element: <ImageGenerators />, 148 auth: authRoles.user 149 }, 150 { 151 path: "/generators/speech2text", 152 element: <SpeechToText />, 153 auth: authRoles.user 154 }, 155 { 156 path: "/projects", 157 element: <Projects />, 158 auth: authRoles.user 159 }, 160 { 161 path: "/projects/library", 162 element: <Library />, 163 auth: authRoles.user 164 }, 165 { 166 path: "/projects/tools", 167 element: <Tools />, 168 auth: authRoles.user 169 }, 170 { 171 path: "/project/:id", 172 element: <ProjectsInfo />, 173 auth: authRoles.user 174 }, 175 { 176 path: "/projects/new", 177 element: <ProjectsNew />, 178 auth: authRoles.user 179 }, 180 { 181 path: "/project/:id/edit", 182 element: <ProjectsEdit />, 183 auth: authRoles.user 184 }, 185 { 186 path: "/project/:id/logs", 187 element: <ProjectsLogs />, 188 auth: authRoles.user 189 }, 190 { 191 path: "/project/:id/playground", 192 element: <ProjectsPlayground />, 193 auth: authRoles.user 194 }, 195 { 196 path: "/project/:id/api", 197 element: <ProjectsAPI />, 198 auth: authRoles.user 199 }, 200 { 201 path: "/project/:id/ide", 202 element: <ProjectsIDE />, 203 auth: authRoles.user 204 }, 205 { 206 path: "/project/:id/evals", 207 element: <ProjectsEvals />, 208 auth: authRoles.user 209 }, 210 { 211 path: "/project/:id/guards", 212 element: <ProjectsGuards />, 213 auth: authRoles.user 214 }, 215 { 216 path: "/proxy/keys", 217 element: <Keys />, 218 auth: authRoles.admin 219 }, 220 { 221 path: "/classifier", 222 element: <ClassifierPlayground />, 223 auth: authRoles.admin 224 }, 225 { 226 path: "/image", 227 element: <Image />, 228 auth: authRoles.admin 229 }, 230 { 231 path: "/audio", 232 element: <Audio />, 233 auth: authRoles.admin 234 }, 235 { 236 path: "/teams", 237 element: <Teams />, 238 auth: authRoles.admin 239 }, 240 { 241 path: "/teams/new", 242 element: <TeamEdit />, 243 auth: authRoles.admin 244 }, 245 { 246 path: "/team/:id", 247 element: <TeamView />, 248 auth: authRoles.admin 249 }, 250 { 251 path: "/team/:id/edit", 252 element: <TeamEdit />, 253 auth: authRoles.admin 254 }, 255 { 256 path: "/direct", 257 element: <DirectAccess />, 258 auth: authRoles.admin 259 }, 260 { 261 path: "/settings", 262 element: <Settings />, 263 auth: authRoles.admin 264 }, 265 { 266 path: "/gpu", 267 element: <GpuInfo />, 268 auth: authRoles.admin 269 }, 270 { 271 path: "/audit", 272 element: <AuditLog />, 273 auth: authRoles.admin 274 }, 275 { 276 path: "/admin/cron-logs", 277 element: <CronLogs />, 278 auth: authRoles.admin 279 }, 280 { 281 path: "/admin/permissions", 282 element: <PermissionMatrix />, 283 auth: authRoles.teamAdmin 284 }, 285 { 286 path: "/invitations", 287 element: <InvitationsPage />, 288 auth: authRoles.user 289 } 290 ] 291 }, 292 293 ...sessionRoutes 294 ]; 295 296 export default routes;