The FDA MyStudies Participant manager datastore provides the backend APIs that the Participant manager web application uses to create and maintain participants, studies and sites. The Participant manager datastore is a Java Spring boot application that shares a MySQL backend database with the Participant datastore. The Participant manager datastore uses basic authentication client_id and client_secret that are provided to client applications and managed by Hydra.
The Participant manager datastore client application is the Participant manager user interface. Interaction with other platform components is through the shared Participant datastore database.
NOTE: Holistic deployment of the FDA MyStudies platform with Terraform and infrastructure-as-code is the recommended approach to deploying this component. A step-by-step guide to semi-automated deployment can be found in the
deployment/directory. The following instructions are provided in case manual deployment in a VM is required. Google Cloud infrastructure is indicated, but equivalent alternative infrastructure can be used as well. It is important for the deploying organization to consider the identity and access control choices made when configuring the selected services. If pursuing a manual deployment, a convenient sequence ishydra/→auth-server/→participant-datastore/→participant-manager-datastore/→participant-manager/→study-datastore/→response-datastore/→study-builder/→Android/→iOS/.
To deploy the Participant manager datastore manually:
- Create a Compute Engine VM instance with a static IP and read/write access scopes for Cloud Storage (make sure your VM’s GCE service account has the
Storage Object Adminrole for the consent form bucket you created duringParticipant datastoredeployment) - Verify that your VM instance has the
Stackdriver Logging APIwrite access scope (on by default) and that your VM’s service account has theLogs Writerrole (off by default) - Check out the latest code from the FDA MyStudies repository
- Deploy the
Participant manager datastorecontainer to the VM- Create the Docker image using
sudo mvn -B package -Pprod com.google.cloud.tools:jib-maven-plugin:2.5.2:dockerBuild -Dimage=participant-manager-datastore-imagefrom theparticipant-manager-datastore/directory (you may need to install Docker and Maven, for examplesudo apt install maven) - Update the Docker environment file
variables.envwith values to configure theapplication.propertiesfile for your deployment - Run the container on the VM using
sudo docker run --detach --env-file variables.env -p 80:8080 --name participant-manager-datastore participant-manager-datastore-image - If your
Hydrainstance is a using self-signed certificate, add that certificate to your container’s keystore, for example withsudo docker exec -it participant-manager-datastore bash -c "openssl s_client -connect <your_hydra_instance> | sed -ne '/-BEGIN CERTIFICATE/,/END CERTIFICATE/p' > hydra.crt; keytool -import -trustcacerts -alias hydra -file hydra.crt -keystore /usr/local/openjdk-11/lib/security/cacerts -storepass changeit", then restart the container withsudo docker restart participant-manager-datastore
- Create the Docker image using
- Test if the application is running with
curl http://0.0.0.0/participant-manager-datastore/healthCheck - You can review application logs in the logging directories you specified, or with
sudo docker logs participant-manager-datastore; audit logs are available in Cloud Logging
Copyright 2020 Google LLC