Skip to content

Latest commit

 

History

History

participant-manager-datastore

Overview

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.

Deployment

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 is hydra/auth-server/participant-datastore/participant-manager-datastore/participant-manager/study-datastore/response-datastore/study-builder/Android/iOS/.

To deploy the Participant manager datastore manually:

  1. 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 during Participant datastore deployment)
  2. Verify that your VM instance has the Stackdriver Logging API write access scope (on by default) and that your VM’s service account has the Logs Writer role (off by default)
  3. Check out the latest code from the FDA MyStudies repository
  4. 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 the participant-manager-datastore/ directory (you may need to install Docker and Maven, for example sudo apt install maven)
    • Update the Docker environment file variables.env with values to configure the application.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 with sudo 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 with sudo docker restart participant-manager-datastore
  5. Test if the application is running with curl http://0.0.0.0/participant-manager-datastore/healthCheck
  6. 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