In Manage Apps app, there is list of app definitions.
Built-in apps cannot be edited and they doesn’t have Preview action, so it means that its impossible to copy these apps definitions.
Question:
Do we want to add Edit action (just like in Implementation-Defined apps) for Built-In apps or do we just want to add Preview action for them?
An AppFrameworkFactory is responsible for loading apps from wherever it choses, the default one that ships with the appframework module loads them from the classpath and there is another factory that loads them from the database, this is the one that loads those apps you add via the manage apps page.
I believe the app service can be exposed via rest if necessary, I’m not sure if anybody has put any thought into it though.
From an implementer’s perspective, at the time when we first looked at it we were surprised/annoyed that certain built-in apps would not behave like the others and were locked. So having them being editable is what we would have wished for.
I know we worked around it and from the top of my head I don’t remember anymore how, but I can dig in if that’s of any interest.
Since we built the refapp, Bahmni has taken what I think is a better philosophical approach to the way these apps are set up, and I think we should draw inspiration from what they have done.
My quick thought about this is:
Upon first installation, we write the built-in app definitions to a config folder in the filesystem (like Bahmni does) or the database
Users are able to edit these just like any other apps