Add On manager OWA bundled within the Platform

Tags: #<Tag:0x00007f8c966b59c0>

Continuing discussion from here Does the Add On Manager OWA work for you?

Hi everyone,

Platform 2.3.0 release is around the corner and I would like to take this opportunity to thank everybody who has added their efforts to make this happen. We have a pending feature to do with the Add On manager OWA being bundled within the Platform. Work has been done towards this effort as can be seen on ticket PLAT-30 and that testing this was the remaining activity. For some reason work done was reverted. I would therefore like to get community views on whether this feature gets to be part of Platform 2.3.0 release and what the acceptance criteria would be, seeing the initial work on this was reverted.

cc @burke, @dkayiwa, @c.antwi, @ssmusoke, @jyothsna18, @mozzy

Thank you,

Nathan

1 Like

Thanks @ruhanga for this. To be more clear , work on this issue majorly required the following.

  • Bundling tha Addon manager Owa with in the Platform
  • Adding a link on the Landing page of the Platform to acces the addon manager OWA.

All the above work was succesfuly done and merged. But for some reason that wasn’t stated , the UI changes (Adding a link on the Landing page to acces the Addon Manager Owa) were reveted. There fore ,Currently the Addon manager Is Bundled within the platform , but theres no link on the Landing Page to Acces it.

1 Like

Is any of you in position to look at the design call notes https://notes.openmrs.org/2018-02-28-Design-Forum and then put a comment on the ticket stating what has so far been done and what is left?

2 Likes

Thank you very much @dkayiwa , I will summarize the design requirements and work already done on the ticket. :slight_smile:

1 Like

@ruhanga What is status of this issue? Were you able to have a closer look at this?

Yes @c.antwi, I tried looking into this and came up with a tentative idea that can be seen on this draft PR.

Basically the OWA module where the solution is tentatively placed since it manages the open web apps, has a controller that intercepts routes to index.html and redirects to the globally configured login.url property. This solution entails that an open web app should be able to activate global properties, something that can be achieved through the OWA module’s activator using the open web app Manifest file. This is still work in progress and I’d like to invite community suggestions.

cc @burke, @dkayiwa, @darius, @wyclif

1 Like

@ruhanga Thanks for the clear explanation. @burke , @dkayiwa , any insights on how we could resolve this?

This is the only feature preventing us from preparing for the great work done to be packaged for further testing and subsequent release.

@ruhanga did you test your changes and confirm that they are working as required by the ticket?

Hi @dkayiwa, I am still developing the solution to a completely working state. But meanwhile the PR has the initial work. I will ping you as soon as I get the changes to fully work but any suggestions or comments are welcome on the PR.

1 Like

Hi dear all,

I have been working on the PLAT-30 ticket to ensure it (Add On Manager) is correctly bundled with the Platform. I have been successful with adding this capability as derived from the design notes to the issue. Unfortunately upon making several tests with the Add On Manager bundled with the platform, I’ve stumbled on a missing dependency on the platform, (appui module) that does not seem to break anything when using the Add On Manager in terms of uploading modules. Looks like bundling Add On Manager owa with Platform may be tricky since the owa depends on a reference application module.

I’ve been examining the possibility to migrate the rest endpoints in question involved from appui module to the rest module, but this is intricately dependent on other modules that ship with the reference application which are out of scope with the modules that ship with platform.

Alternatively, Add On manager would need to be refactored to adapt its dependency on the appui module with respect to whether it is installed on Ref App or Platform.

I am currently facing this as a blocker as far as Platform 2.3.0 release is concerned. I will greatly appreciate any advise on a way forward with regards to what can be done about the the missing dependency related to PLAT-30.

Thank you very much.

cc: @burke, @dkayiwa, @c.antwi

Does this mean that after installing the platform, i can successfully use the addon manager to install any modules, even in the absence of the appui module?

What functionality do i miss when i do not have the appui module?

One basically misses the ability to login based on a session location. None the less one still logs in (though some Javascript errors related to the missing dependency are silently thrown) and can upload a module. So my worry is bundling an owa that still has a missing dependency into platform.

And how does one access the adon manager? Is it via a link on the “Platform is running” page?

When installing the platform for the first time, you don’t need to click any link, type any link into the browser link address bar or do any extra thing once you’ve been on the initialization page. The Add On Manager is accessed automatically. It’s login page is the default login or landing page. The next time one starts the platform server, they have to type in http://localhost:8080/openmrs/index.htm url into the browser’s address bar depending on the installation port and server specs used, in order to access the Add On Manager. This can be fine tuned to capture http://localhost:8080/openmrs/ and http://localhost:8080/openmrs/login.htm .

1 Like

@ruhanga how do i test this? Do i just install the platform and run? Or is there anything else that i need?

Thank you @dkayiwa. Sorry I missed out on the exact steps to test this. This can be tested by first building the platform with the dependency on webservices.rest module version 2.25.0 and OWA module version 1.11.0-SNAPSHOT.

The changes made in the OWA module have not yet been merged. So for the platform build to include these changes, one needs to first clone and do mvn clean install on the OWA module from the branch on which I made changes here before doing mvn clean install on the platform.

When the build is complete on platform, openmrs.war file is picked from openmrs-distro-platform/target/distro/web file path and dropped into the tomcat webapps folder and tomcat is then started. This launches the platform which can be accessed at http://localhost:8080/openmrs/ . After going through the initial setup processes, the default login should be that of Add On Manager.

I have added some comments to the owa pull request.

Thanks @dkayiwa. Let me address them.

@ruhanga how did the meeting with @burke What was the outcome? When do you think we can conclude this part of the release?

1 Like

Hi @c.antwi, we had the following points noted during the discussion with @burke;

  • The Add On Manager owa should run independently from the reference application if it is to be bundle-able with the platform. This is because we do not want to add more modules to platform that ship out of the box with it.

  • It is not good design for modules and OWAs to know about each other and/or be weighted to override each other.

  • Since Add On Manager OWA is not part of the back end, it will be fine to allow the OWA module manage the intelligence involved in determining whether to/not to use the Add On Manager as a default login means.

  • For now we are going to allow the OWA module to be aware of legacy and Ref App Modules so it can redirect to the Add On Manager owa on condition that none of the UI modules are installed. We will have to make this more generic in the next releases of platform as different UI modules with login capabilities come up.

I am currently working on having the Add On Manager independent of the appui module here. We definitely want the Add On Manager bundled with the platform and this is happening with this release as the feature has been bumped from the previous releases.

1 Like