App persistence
We should think about a way to persist app definitions. We need this feature already in several places, and there are plenty of opportunities in even allowing users to define dataset or profile -specific apps etc.
The serialization is needed in:
-
nomad.yaml
file contains the definition for each app per NOMAD installation (=searchcontext) - Users should be able to share apps. It is unclear whether we can URL-encode an app definition due to URL size limits, but sharing may also be possible by sharing a simple JSON file, or by tying an app to a specific dataset/upload/(=project). I think the best option might be to allow users to augment their dataset with an app JSON config file, that could be changed (does not have to be immutable). On the code level each dataset already uses it's own SearchContext, so should be quite easy to achieve. Sharing an app would then be as easy as sharing a DOI that points to your dataset.
An app should be able to control at least the following:
- Menus
- Search columns
- Dashboard
- Overview for an entry?
- Help page, description etc.