There are a number of modules installed manually on qa-refapp, which makes it a customized version of RA 2.6. I thought qa-refapp is to be used exclusively for RA SNAPSHOT testing. Is that right? Is it okay, if I remove the extra modules?
@cintiadr, I notice there’s a SNAPSHOT version of an RA docker image pushed to the docker hub already. How far are we from using docker for qa-refapp same as for demo and resetting it with every build?
What you are seeing is a result of our not having a publicly available server where community members can test compatibility of their modules with an upcoming reference application release.
In summary, i agree with removing them. But before we provide an alternative server for such a need, then i would rather they stay.
Name: mc-refapp.openmrs.org (Where “mc” stands for module compatibility)
Description: Server for testing compatibility of modules with those in the upcoming reference application release.
It’s actually pretty simple! I just didn’t stop to do it yet. I can do it this weekend.
So, we’d have a modules-refapp.openmrs.org, which I assume should be reset every few hours? (12h? 24h?)
I can also make qa-refapp.openmrs.org inside docker too at the same time, and deployed on every green build (as it’s already like that).
I don’t think we should do this. Letting people upload arbitrary modules is too much of a security risk (because basically they can run arbitrary code on our infrastructure.)
Unless we change things so that people can’t have admin access with a well-known admin password.
Changing module.allow_web_admin=true or the admin password is the same for me. I can even create a couple of other users, and save the database, it shouldn’t be that complicated.
While it is arbitrary code, it’s running inside the JVM and inside docker. While I’m not ignoring that there’s always the possibility of getting out of the container, we are not giving extra permissions to the docker containers we are running.
So, while there’s always risk, it’s not so easy to compromise it compared a ‘regular’ installation outside docker.
Turns out I will need to change my webhook scripts in order to allow dockerhub to deploy the same image (openmrs-refapp-distro) to multiple openmrs instances running on the same box.
(For now it’s SSH, and it’s working ~fine, but it’s not the best solution. I will work on that.)
@cintiadr was the SSH line a response to my question of how developers will upload modules to test their compatibility with the reference application? Or were you talking about something else?
I thought we would have the same commonly known account like admin/Admin123
That way, we do not burden ourselves with unnecessarily extra work in addition to blocking someone up to whenever the permission request is granted.
If @cintiadr (representing the infra team) is okay with us allowing module uploads by anonymous people, I’ll go with that.
My own preference is that we do require people to ask us “can I upload a module to the modules-refapp server” and we manually create an account for them the first time. (How often do new people want to do this? There aren’t that many modules out there, or that many module authors.)
Currently, for modules-refapp.openmrs.org, even an admin user account cannot upload modules via the web interface because module.allow_web_admin=false
Was this intentional?
It’s intentional that our standard server deployed by the infra team does not allow web management of modules.
I agree with you that for the “module testing server” we need to be more permissive. We just need to decide how permissive.
(I suggest, @dkayiwa, that since you have the most emotional ownership over the modules-refapp server, that you just decide how this should work. You’ve heard what Cintia and I had to say. Now you can make the call.)