Catalyst / admin/Synapse-Cortex 14.8 GB / 57.8 GB 40.0 GB free
Help Sign in

admin / Synapse-Cortex

public

Self Hosted ITSM Tool with RBAC/Tenanting and MFA

Code Issues Pull requests Pipelines Packages Security Insights Wiki Settings
Synapse-Cortex / Synapse-Cortexv2 / frontend / src / App.tsx 3500 B · main
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { Navigate, Route, BrowserRouter, Routes } from 'react-router-dom'
import { AuthProvider } from './auth/AuthContext'
import { SetupGate } from './auth/SetupGate'
import { RequireAdmin, RequireAuth, RequireGlobalAdmin } from './auth/RequireAuth'
import { AppShell } from './layout/AppShell'
import { Login } from './pages/Login'
import { Setup } from './pages/Setup'
import { MfaChallenge } from './pages/MfaChallenge'
import { MfaEnroll } from './pages/MfaEnroll'
import { MfaDisable } from './pages/MfaDisable'
import { Dashboard } from './pages/Dashboard'
import { TicketsList } from './pages/TicketsList'
import { TicketDetail } from './pages/TicketDetail'
import { AssetsList } from './pages/AssetsList'
import { AssetDetail } from './pages/AssetDetail'
import { SettingsProfile } from './pages/SettingsProfile'
import { AdminUsers } from './pages/admin/AdminUsers'
import { AdminSlaPolicies } from './pages/admin/AdminSlaPolicies'
import { AdminAssetTypes } from './pages/admin/AdminAssetTypes'
import { AdminIntegrations } from './pages/admin/AdminIntegrations'
import { AdminAudit } from './pages/admin/AdminAudit'
import { AdminPlaybooks } from './pages/admin/AdminPlaybooks'
import { PlaybookBuilder } from './pages/admin/PlaybookBuilder'
import { AdminAiSettings } from './pages/admin/AdminAiSettings'
import { AdminVault } from './pages/admin/AdminVault'

function App() {
  return (
    <BrowserRouter>
      <SetupGate>
        <AuthProvider>
          <Routes>
            <Route path="/setup" element={<Setup />} />
            <Route path="/login" element={<Login />} />
            <Route path="/mfa" element={<MfaChallenge />} />

            <Route element={<RequireAuth />}>
              <Route element={<AppShell />}>
                <Route index element={<Dashboard />} />
                <Route path="tickets" element={<TicketsList />} />
                <Route path="tickets/:id" element={<TicketDetail />} />
                <Route path="assets" element={<AssetsList />} />
                <Route path="assets/:id" element={<AssetDetail />} />
                <Route path="settings" element={<SettingsProfile />} />
                <Route path="settings/mfa/enroll" element={<MfaEnroll />} />
                <Route path="settings/mfa/disable" element={<MfaDisable />} />

                <Route element={<RequireAdmin />}>
                  <Route path="admin/users" element={<AdminUsers />} />
                  <Route path="admin/sla-policies" element={<AdminSlaPolicies />} />
                  <Route path="admin/asset-types" element={<AdminAssetTypes />} />
                  <Route path="admin/integrations" element={<AdminIntegrations />} />
                  <Route path="admin/audit" element={<AdminAudit />} />
                  <Route path="admin/playbooks" element={<AdminPlaybooks />} />
                  <Route path="admin/playbooks/new" element={<PlaybookBuilder />} />
                  <Route path="admin/playbooks/:id" element={<PlaybookBuilder />} />

                  <Route element={<RequireGlobalAdmin />}>
                    <Route path="admin/ai-settings" element={<AdminAiSettings />} />
                    <Route path="admin/vault" element={<AdminVault />} />
                  </Route>
                </Route>
              </Route>
            </Route>

            <Route path="*" element={<Navigate to="/" replace />} />
          </Routes>
        </AuthProvider>
      </SetupGate>
    </BrowserRouter>
  )
}

export default App