Routes
Route Overview
SCHEMA-Lab implements a comprehensive routing architecture designed for intuitive navigation and effective task management. The application's URL structure is organized into logical categories that support user workflows for managing tasks, workflows, and experiments.
Route Categories
General Routes
These routes are accessible to all users, whether authenticated or not.
Route | Description |
---|---|
/ | Home page and landing screen |
/auth | Authentication portal for login and registration |
/aboutus | Information about the SCHEMA-Lab project and team |
/learnmore | Educational resources and additional information |
Protected Routes
These routes require user authentication to access.
Route | Purpose |
---|---|
/logout | Secure user logout process |
/dashboard | Main control center for tasks and workflows |
/runtask | Interface for creating and executing single tasks |
/runworkflowtask | Interface for creating and orchestrating workflow tasks |
/preferences | User settings and configuration options |
Experiment Management
Experiment Routes
SCHEMA-Lab provides dedicated routes for managing experiments (collections of related tasks).
Route | Function |
---|---|
/experiment | Lists all available experiments |
/view | Displays selected experiment details |
/create | Interface for creating new experiments |
/preview | Previews experiment configuration before creation |
/edit/:creator/:name | Edit interface for existing experiments |
Experiment Details
Each experiment has detailed views accessed through parameterized routes.
/experiment-details/:creator/:name
This route displays comprehensive information about a specific experiment identified by creator and name parameters. It includes:
- General experiment metadata
- Associated tasks
- Execution statistics (Submission, Update)
- Status information
Nested Experiment Routes
Nested Route | Content |
---|---|
/experiment-details/:creator/:name/description | Detailed experiment descriptions and documentation |
Task Management
Task Detail Routes
Individual tasks can be examined through dedicated detail views:
/task-details/:uuid
This route provides access to specific task information identified by the task's unique UUID.
Nested Task Routes
Nested Route | Content |
---|---|
/task-details/:uuid/executors | Details about the task executors and runtime environment |
/task-details/:uuid/inputs | Task input parameters and configurations |
/task-details/:uuid/outputs | Task results and output artifacts |
Adding New Routes
To extend SCHEMA-Lab with new functionality, add routes following this pattern:
- Create your component in the appropriate directory
- Import it in
routes.jsx
- Add a new Route element with the desired path
- For protected functionality, place inside the ProtectedRoute element
// Example of adding a new protected route
<Route element={<ProtectedRoute />}>
{/* Existing routes */}
{/* New custom route */}
<Route path="/custom-feature" element={<CustomFeature />} />
</Route>
Best Practices
When working with SCHEMA-Lab routes:
- Use the established URL patterns for consistency
- Leverage route parameters for dynamic content
- Implement proper authentication checks for protected routes
- Consider creating nested routes for related functionality
- Use descriptive route names that reflect their purpose