Open seamustuohy opened 6 years ago
Thank you very much for this detailed feature request!
If I understand well you propose a new kind of object (called Reference with the attributes title, url, description, and object reference), in order to give more information/context to other MONARC objects (like Asset types, Threats, Vulnerabilities, etc.). Like some notes.
For the backend this won't be difficult. And implementing the frontend iteratively is indeed wise.
This is a good idea.
Add a reference object that holds a URL and a description which can be linked to any data object. I have a personal preference for a priority on adding support in the user interface for the Risk objects.
The need for external references
Monarc has a minimalist data structure that does not allow a user to store guidance within the core objects. This design choice has many benefits, but I believe that it also has side effects:
Monarc should add a reference object that supports the fact that it will be used alongside external knowledge bases and systems. Many of the default objects used in Monarc are derived from external sources that contain additional information about them. An organization often has to document the specific risks they are addressing and will have sources that a risk was derived from. Different compliance standards also require different types of documentation that Monarc should not be expected to integrate. Finally, the recommendations and treatment plans that are put in place will be tracked in an organizations project trackers.
Providing a "reference" object that allows a user to reference external resources will address current usability and collaboration challenges and allow users to more easily use it alongside their existing knowledge bases and tools.
Thoughts on implementation
Provided only to make review easier and without any expectation of being followed in feature implementation.
After examining the interface and backend a bit I have some thoughts on how to accomplish this without having to do a massive overhaul. Doing it this way would allow you to implement the backend without disrupting any existing functionality and implement the fronted support iteratively.
Backend
Frontend