-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
When setting up and using PyAres based modules we've run into some friction when dealing with settings for planners and analyzers (we haven't played too much with devices yet but some of this could apply to them as well). Namely some settings for these services may differ from campaign to campaign, while others are fixed, but the UI is configured based on the assumption that all settings are fixed. If the user is in the middle of setting up an experimental campaign, this forces them to break their workflow and save the campaign before navigating to the configuration page, creating a pain point and an increased chance of forgetting to change a setting.
Example
The computer vision analyzer for Educational ARES requires a camera configuration settings JSON that will generally not be changed, as it is associated with the actual hardware as well as a JSON of settings that correspond to the test model being used, which is much more likely to change from campaign to campaign. In order to configure either of these settings, the user must navigate to the ARES OS configuration page and open the entry for that module.
Other examples of settings that don't change could be things like API keys, login credentials, random number generator seeds, or connection configurations for HPC resources. Another examples of parameters that may change between campaigns could be things like hyper parameters for planners.
Possible solutions
I think that ultimately the solution is to make settings accessible from where they are used, but I don't yet have a firm idea of exactly what that looks like in practice. A few ideas are outlined below:
- Access settings from multiple locations: Add the ability to access and set the settings from both the existing configuration UI as well as at the point of use so within the campaign planner, once you've selected your analyzer a little gear wheel would enable that would let you edit all settings from right there. Likewise for planner, once you've assigned a parameter to a planner, it gives you the option to configure the planner from right there. For devices, this could manifest as an a little gear menu in the corner of each UI pane on the dashboard and/or when a device is added to the campaign template.
- Multiple types of settings: We could define two different types of settings, global and campaign. Global would be for things that are never really meant to be changed once they're set up and would be accessible from the current service configuration menu. Campaign settings would be accessible from the planner and analyzer tabs. Right now I think the most sensible behavior for campaign settings would be to carry over from campaign to campaign unless changed. Either that or we could define defaults along with the global settings.