Skip to main content

Pages & Routing

Router: React Router v7 (react-router-dom 7.9.1) with createBrowserRouter.


Application Layout


Complete Route Table

Core Routes

PathComponentNotes
/HomeLanding page
/dashboardDashboardObservability dashboard
/guidesPlaceholderComing soon
/projectsPlaceholderComing soon
/settingsPlaceholderComing soon
/supportPlaceholderComing soon

Access Management

PathComponentNotes
/access-managementRedirect/users
/access-management/usersUsersPageUser list
/access-management/users/:userIdUserDetailPageUser detail
/access-management/user-groupsUserGroupsPageGroups with tree nav
/access-management/roles-permissionsRolesPermissionsPageRBAC management
/access-management/sso-sessionsPlaceholder
/access-management/token-managementPlaceholder

Data Management

PathComponentNotes
/data-managementRedirect/schema-management
/data-management/schema-managementSchemaRegistrySchema list
/data-management/schema-management/createCreateSchemaPageCreate wizard
/data-management/schema-management/:idSchemaDetailPageSchema detail + tabs
/data-management/schema-management/:id/editCreateSchemaPageEdit (reuses create)
/data-management/connectorsConnectorsConnector list
/data-management/synthetic-dataSyntheticDataDashboardSDG dashboard
/data-management/synthetic-data/generatorsGeneratorListPageGenerator list
/data-management/synthetic-data/createCreateGeneratorPageCreate wizard
/data-management/synthetic-data/:idGeneratorDetailPageGenerator detail
/data-management/synthetic-data/:id/editCreateGeneratorPageEdit generator
/data-management/synthetic-data/poolsPoolsPageData pools
/data-management/synthetic-data/universesUniverseListPageUniverse list
/data-management/synthetic-data/universes/createCreateUniversePageCreate universe
/data-management/synthetic-data/universes/:idUniverseDetailPageUniverse detail

Pipeline

PathComponentNotes
/pipelineRedirect/designer
/pipeline/pipelinesPipelinesPipeline list
/pipeline/designerPipelineDesignerFull-screen — XYFlow canvas

Infrastructure

PathComponentNotes
/infra-managementRedirect/kafka
/infra-management/kafkaKafkaManagementTopic list
/infra-management/kafka/:topicNameKafkaTopicDetailPageTopic detail
/infra-management/cacheCacheManagementKey browser
/infra-management/cache/:keyNameCacheKeyDetailPageKey detail

Approval Workflow

PathComponentNotes
/approval-workflowRedirect/workflows
/approval-workflow/workflowsWorkflowsPageWorkflow list
/approval-workflow/workflows/:workflowIdWorkflowDetailPageWorkflow detail
/approval-workflow/tasksTasksPageTask inbox
/approval-workflow/designerWorkflowDesignerFull-screen
/approval-workflow/designer/:workflowIdWorkflowDesignerFull-screen edit

Designers (Full-Screen)

PathComponentNotes
/pipeline/designerPipelineDesignerNo Layout wrapper
/data-management/designerConnectorDesignerNo Layout wrapper
/approval-workflow/designerWorkflowDesignerNo Layout wrapper

The sidebar is defined in src/constants/navigation.ts and rendered by Sidebar.tsx:

Top Items
├── Home (/)
└── Guides (/guides)

Access Management
├── Users (/access-management/users)
├── User Groups (/access-management/user-groups)
├── Roles & Permissions (/access-management/roles-permissions)
├── SSO Sessions (/access-management/sso-sessions)
└── Token Management (/access-management/token-management)

Data Management
├── Schema Management (/data-management/schema-management)
├── Designer (/data-management/designer)
├── Connectors (/data-management/connectors)
└── Synthetic Data (/data-management/synthetic-data)

Pipeline
├── Designer (/pipeline/designer)
└── Pipelines (/pipeline/pipelines)

Infrastructure
├── Kafka (/infra-management/kafka)
└── Cache (/infra-management/cache)

Observability
└── Dashboard (/dashboard)

Approval Workflow
├── Designer (/approval-workflow/designer)
├── Workflows (/approval-workflow/workflows)
└── My Tasks (/approval-workflow/tasks)

Bottom Items
├── Projects (/projects)
├── Settings (/settings)
└── Support (/support)

All icons are from @untitledui/icons.


Authentication & Guards

Auth Flow

Key Points

  • All routes require authentication — Keycloak onLoad: 'login-required' redirects before the app renders
  • No route-level guards — once authenticated, all routes are accessible
  • Permission checking is component-level via usePermissionCheck() hook
  • Token injectionfetchWithAuth() automatically sets Authorization: Bearer {token} on all API calls
  • PKCE — S256 for HTTPS, disabled for HTTP development
  • Tenant ID — extracted from JWT tenant_id claim