# Application Feature Flags This document outlines how to enable or disable specific features and UI components within the Cassandra application by modifying the `src/cassandra-config.json` file. ## Configuration File Feature flags are managed in `src/cassandra-config.json`. To enable or disable a feature, simply change its corresponding boolean value to `true` or `false`. ```json { "features": { "ENABLE_OMRON_E5": true, "ENABLE_AMPERAGE_BUDGET_MANAGER": true, "ENABLE_PROFILE_TEMPERATURE": true, "ENABLE_PROFILE_SIGNAL_PLOT": true, "ENABLE_PRESS_CYLINDER": true, // ... other flags } } ``` ## Feature Mappings The following table details which features are controlled by which flags and where they appear in the application. | Feature Flag | UI Feature / Component | Controlled Routes / Areas | | :--- | :--- | :--- | | `ENABLE_OMRON_E5` | Controller Partitions | A section within the settings page at `/advanced/settings`. | | `ENABLE_AMPERAGE_BUDGET_MANAGER` | Sequential Heating | A section within the settings page at `/advanced/settings`. | | `ENABLE_PROFILE_TEMPERATURE` | Temperature Profiles | The main profile creation and editing pages at `/profiles`, `/profiles/new`, and `/profiles/edit/:slot`. | | `ENABLE_PROFILE_SIGNAL_PLOT` | Signal Plot Editor | The signal plot editor pages at `/signals` and `/signal-plot-editor`. | | `ENABLE_PRESS_CYLINDER` | Press Cylinder Controls | The press cylinder control panel on the main HMI display. | ## Implementation Example (`App.tsx`) The application routes are conditionally rendered based on these flags. For example, in `src/App.tsx`, the routes for creating and editing temperature profiles would be wrapped in a condition like this: ```tsx import features from './cassandra-config.json'; //... {/* ... other routes */} {features.ENABLE_PROFILE_TEMPERATURE && ( <> } /> } /> )} }> } /> {features.ENABLE_PROFILE_SIGNAL_PLOT && ( } /> )} {features.ENABLE_PROFILE_TEMPERATURE && ( } /> )} {/* ... other nested routes */} {/* ... */} ```