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 Admin
role for the consent form bucket you created duringParticipant datastore
deployment) - Verify that your VM instance has the
Stackdriver Logging API
write access scope (on by default) and that your VM’s service account has theLogs Writer
role (off by default) - Check out the latest code from the FDA MyStudies repository
- Deploy the
Participant manager datastore
container 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-image
from theparticipant-manager-datastore/
directory (you may need to install Docker and Maven, for examplesudo apt install maven
) - Update the Docker environment file
variables.env
with values to configure theapplication.properties
file 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
Hydra
instance 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