diff --git a/embedded/project/db.init.sql.tar.gz b/embedded/project/db.init.sql.tar.gz new file mode 100644 index 0000000..2bf58bd Binary files /dev/null and b/embedded/project/db.init.sql.tar.gz differ diff --git a/embedded/project/docker-source/adverse-events/Dockerfile b/embedded/project/docker-source/adverse-events/Dockerfile index a7df4a0..19c68d2 100644 --- a/embedded/project/docker-source/adverse-events/Dockerfile +++ b/embedded/project/docker-source/adverse-events/Dockerfile @@ -1,12 +1,12 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master ARG SUBSTANCES_MODULE_BRANCH=master ARG ADVERSE_EVENTS_MODULE_BRANCH=starter -COPY . . + COPY . . RUN if [ "$RELEASE_MODE" = "development" ]; then \ git clone --branch $STARTER_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-starter.git && \ diff --git a/embedded/project/docker-source/applications/Dockerfile b/embedded/project/docker-source/applications/Dockerfile index 786f970..bdfe670 100644 --- a/embedded/project/docker-source/applications/Dockerfile +++ b/embedded/project/docker-source/applications/Dockerfile @@ -1,12 +1,11 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master ARG SUBSTANCES_MODULE_BRANCH=master ARG APPLICATIONS_MODULE_BRANCH=starter -COPY . . COPY . . RUN if [ "$RELEASE_MODE" = "development" ]; then \ git clone --branch $STARTER_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-starter.git && \ diff --git a/embedded/project/docker-source/clinical-trials/Dockerfile b/embedded/project/docker-source/clinical-trials/Dockerfile index 9561874..3102042 100644 --- a/embedded/project/docker-source/clinical-trials/Dockerfile +++ b/embedded/project/docker-source/clinical-trials/Dockerfile @@ -1,5 +1,5 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master diff --git a/embedded/project/docker-source/docker-compose.yml b/embedded/project/docker-source/docker-compose.yml index c5f32b1..8b29d46 100644 --- a/embedded/project/docker-source/docker-compose.yml +++ b/embedded/project/docker-source/docker-compose.yml @@ -1,4 +1,3 @@ -version: '3' services: adverse-events: container_name: adverse-events-emb @@ -6,6 +5,8 @@ services: environment: APPLICATION_HOST: http://gateway:9081 APPLICATION_HOST_PORT: 9081 + DB_TEST_PASSWORD: ${DB_TEST_PASSWORD} + DB_TEST_USERNAME: ${DB_TEST_USERNAME} EUREKA_SERVICE_URL: http://discovery:8761/eureka IX_HOME: /app/data/adverse-events/ginas.ix IX_HOME_SUBSTANCES: /app/data/substances/ginas.ix @@ -35,6 +36,8 @@ services: - 8083:8083 clinical-trials: container_name: clinical-trials-emb + depends_on: + - substances image: gsrs3/gsrs-emb-docker-clinical-trials:0.0.1-SNAPSHOT entrypoint: ["java", "-cp", "/target/clinical-trials.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] environment: @@ -69,24 +72,25 @@ services: MS_FRONTEND_SERVER_PORT: 8082 MS_SERVLET_CONTEXT_PATH_FRONTEND: / image: gsrs3/gsrs-emb-docker-frontend:0.0.1-SNAPSHOT - volumes: - - ../volumes/app-data:/app/data ports: - 8082:8082 + volumes: + - ../volumes/app-data:/app/data gateway: container_name: gateway-emb entrypoint: ["java", "-cp", "/target/gateway.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] - ports: - - 9081:9081 - image: gsrs3/gsrs-emb-docker-gateway:0.0.1-SNAPSHOT - volumes: - - ../volumes/app-data:/app/data environment: + DEBUG: false API_BASE_PATH: /ginas/app APPLICATION_HOST: http://gateway:9081 APPLICATION_HOST_PORT: 9081 EUREKA_SERVICE_URL: http://discovery:8761/eureka SERVER_PORT: 9081 + image: gsrs3/gsrs-emb-docker-gateway:0.0.1-SNAPSHOT + ports: + - 9081:9081 + volumes: + - ../volumes/app-data:/app/data impurities: container_name: impurities-emb entrypoint: ["java", "-cp", "/target/impurities.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] @@ -123,6 +127,8 @@ services: - 8090:8090 products: container_name: products-emb + depends_on: + - substances entrypoint: ["java", "-cp", "/target/products.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] environment: APPLICATION_HOST: http://gateway:9081 @@ -178,9 +184,9 @@ services: mariadb: container_name: mariadb-emb environment: - MARIADB_ROOT_USER: $DB_TEST_USERNAME - MARIADB_USER: $DB_TEST_USERNAME - MARIADB_ROOT_PASSWORD: $DB_TEST_PASSWORD + MARIADB_ROOT_USER: ${DB_TEST_USERNAME} + MARIADB_USER: ${DB_TEST_USERNAME} + MARIADB_ROOT_PASSWORD: ${DB_TEST_PASSWORD} image: mariadb:latest ports: - "3306:3306" @@ -194,9 +200,9 @@ services: # "--mysql-native-password=ON", command: ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"] environment: - MYSQL_ROOT_PASSWORD: $DB_TEST_PASSWORD - MYSQL_PASSWORD: $DB_TEST_PASSWORD - MYSQL_USER: $DB_TEST_USERNAME + MYSQL_ROOT_PASSWORD: ${DB_TEST_PASSWORD} + MYSQL_PASSWORD: ${DB_TEST_PASSWORD} + MYSQL_USER: ${DB_TEST_USERNAME} MYSQL_ALLOW_EMPTY_PASSWORD: "no" image: mysql:8.4 ports: @@ -209,8 +215,8 @@ services: command: postgres -c 'max_connections=1000' container_name: postgres-emb environment: - - POSTGRES_USER=root - - POSTGRES_PASSWORD=yourpassword + - POSTGRES_USER=${DB_TEST_USERNAME} + - POSTGRES_PASSWORD=${DB_TEST_PASSWORD} image: postgres:14-alpine ports: - 5432:5432 diff --git a/embedded/project/docker-source/docker-notes.md b/embedded/project/docker-source/docker-notes.md index 0f13190..9f2e9fa 100644 --- a/embedded/project/docker-source/docker-notes.md +++ b/embedded/project/docker-source/docker-notes.md @@ -3,30 +3,41 @@ ## Terminal Environment ``` -export DOCKER_SOURCE=../../docker-source -export HOST_VOLUMES=../../volumes +export DOCKER_SOURCE=/path/to/docker-source +export HOST_VOLUMES=/path/to/volumes export DB_TEST_USERNAME=root -export DB_TEST_PASSWORD=yourpassword +export DB_TEST_PASSWORD=XXXXXX + +# choose development or public +export RELEASE_MODE=development + +export BUILD_VERSION=v2025.0429.1 -# export RELEASE_MODE=development -export RELEASE_MODE=public ``` ## Purpose -This Docker recipe is mainly meant for local testing and also to provide an introduction to using Docker with GSRS. +This Docker recipe is mainly meant for local testing and also to provide an introduction to using Docker with GSRS in an embedded Tomcat scenario. ## gsrs-ci -Below gsrs-ci refers to the deployments folder used by FDA. but you may use any similar deployment repository such as gsrs-example-deployment, or gsrs3-main-deployment. +Below "gsrs-ci" refers to a deployments folder used by FDA. but you may use any similar deployment repository/folder: + +- gsrs-ci +- gsrs-example-deployment +- gsrs3-main-deployment ## Clone gsrs-ci ``` # Temporarily clone your gsrs-ci repo here -cd gsrs3-docker-deployments/projects + +cd gsrs3-docker-deployments/embedded/project +clone http://github.com/ncats/gsrs-ci.git +cd gsrs-ci + ``` ## Running the containers @@ -34,54 +45,147 @@ cd gsrs3-docker-deployments/projects First you'll need to build your images (see below) ``` -cd gsrs-ci -# use ONE of (postgresql, mariadb, mysql) database flavors. +# use ONE of the database flavors: + +- h2 (DATABASE="" in this case) +- postgresql +- mariadb +- mysql + # The docker-compose.yml file should require one of these but does not yet do so. -docker-compose -f ../docker-source/docker-compose.yml up postgresql frontend gateway substances clinical-trials + +# If you need to use sudo, put the sudo before the db credentials. + +cd gsrs-ci + +export DATABASE=postgresql +sudo \ +DB_TEST_USERNAME=root DB_TEST_PASSWORD=yourpassword \ +docker-compose -f $DOCKER_SOURCE/docker-compose.yml up \ +$DATABASE frontend gateway substances products +``` + +## Available services + +``` +adverse-events +applications +discovery +frontend +gateway +clinical-trials +impurities +invitro-pharmacology +substances +ssg4m + +# Most entity services, depend on the substances service for full functionality. +# Discovery isn't used in practice, yet. +``` + +## Pick one database service + +``` +h2 +mariadb +mysql +postgresql + +# For h2, set $DATABASE='' on the docker-compose command. It is used by default. ``` + +## Database `-env-db.conf` files and init files + +These files contain default configs details for flavor + +- blank.env-db.conf.tar.gz (use for h2) +- db.init.sql.tar.gz +- mariadb.env-db.conf.tar.gz +- mysql.env-db.conf.tar.gz +- postgresql.env-db.conf.tar.gz + + ## Check environment variables See if environment variables are interpolated as expected. ``` -docker-compose -f ../docker-source/docker-compose.yml config +export DATABASE=postgresql +sudo \ +DB_TEST_USERNAME=root DB_TEST_PASSWORD=XXXXXX \ +docker-compose -f ../docker-source/docker-compose.yml up \ +config ``` -## Building images +## Override the frontend config.json + +Place your custom `config.json` file in this location before running the container. -You may want to run with `--build-arg RELEASE_MODE=$RELEASE_MODE` +``` +$HOST_VOLUMES/app-data/frontend/classes/static/assets/data/config.json +``` + +## Building images ``` -# substances -docker build -f $DOCKER_SOURCE/substances/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-substances:0.0.1-SNAPSHOT . +# Run these in the gsrs-ci/ corresponding folder + +# Make sure you have set a value RELEASE_MODE (development|public). This will determine whether a `Dockerfile` looks for code in Github or Maven. + +# ==== + +cd gsrs-ci + +cd substances +docker build -f $DOCKER_SOURCE/substances/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-substances:0.0.1-SNAPSHOT . + +cd .. +cd gateway +docker build -f $DOCKER_SOURCE/gateway/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-gateway:0.0.1-SNAPSHOT . + +cd .. +cd frontend +export FRONTEND_TAG='development_3.0' +# export FRONTEND_TAG='GSRSv3.1.1PUB' +docker build -f $DOCKER_SOURCE/frontend/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-frontend:0.0.1-SNAPSHOT . -# gateway -docker build -f $DOCKER_SOURCE/gateway/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-gateway:0.0.1-SNAPSHOT . +cd .. +cd adverse-events +docker build -f $DOCKER_SOURCE/adverse-events/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-adverse-events:0.0.1-SNAPSHOT . -# frontend -docker build -f $DOCKER_SOURCE/frontend/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-frontend:0.0.1-SNAPSHOT . +cd .. +cd applications +docker build -f $DOCKER_SOURCE/applications/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-applications:0.0.1-SNAPSHOT . -# adverse-events -docker build -f $DOCKER_SOURCE/adverse-events/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-adverse-events:0.0.1-SNAPSHOT . +cd .. +cd clinical-trials +docker build -f $DOCKER_SOURCE/clinical-trials/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-clinical-trials:0.0.1-SNAPSHOT . -# applications -docker build -f $DOCKER_SOURCE/applications/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-applications:0.0.1-SNAPSHOT . +cd .. +cd impurities +docker build -f $DOCKER_SOURCE/impurities/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-impurities:0.0.1-SNAPSHOT . -# clinical-trials -docker build -f $DOCKER_SOURCE/clinical-trials/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-clinical-trials:0.0.1-SNAPSHOT . +cd .. +cd invitro-pharmacology +docker build -f $DOCKER_SOURCE/invitro-pharmacology/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-invitro-pharmacology:0.0.1-SNAPSHOT . + +cd .. +cd products +docker build -f $DOCKER_SOURCE/products/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-products:0.0.1-SNAPSHOT . + +cd .. +cd ssg4m +docker build -f $DOCKER_SOURCE/ssg4m/Dockerfile --no-cache --progress=plain --build-arg RELEASE_MODE=$RELEASE_MODE --build-arg BUILD_VERSION=$BUILD_VERSION -t gsrs3/gsrs-emb-docker-ssg4m:0.0.1-SNAPSHOT . +``` -# impurities -docker build -f $DOCKER_SOURCE/impurities/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-impurities:0.0.1-SNAPSHOT . +## Create/reset database init.sql files -# invitro -docker build -f $DOCKER_SOURCE/invitro-pharmacology/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-invitro-pharmacology:0.0.1-SNAPSHOT . +``` -# products -docker build -f $DOCKER_SOURCE/products/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-products:0.0.1-SNAPSHOT . +cd project +tar -xvzf db.init.sql.tar.gz -# ssg4m -docker build -f $DOCKER_SOURCE/ssg4m/Dockerfile --no-cache --progress=plain --build-arg BUILD_VERSION=v2023.0714.1 -t gsrs3/gsrs-emb-docker-ssg4m:0.0.1-SNAPSHOT . ``` ## Clean up indexes @@ -111,9 +215,43 @@ rm -r ./volumes/app-data/db/mysql/info && mkdir -p ./volumes/app-data/db/mysql/i find . -type f | grep -v app-data/db | grep -v 'frontend/classes' | grep -v gsrs-ci ``` -# Backup configuration files +# Backup init.sql scripts + +``` +tar -cvzf db.init.sql.tar.gz $(find volumes -name init -type d) +``` + +# Backup configuration files from volumes ``` tar -cvzf flavor.env-db.conf.tar.gz $(find volumes -type f -name "*env-db.conf") -tar -cvzf backup.all.conf.tar.gz $(find volumes -name conf -type d) + +tar -cvzf backup.volumes.confs.tar.gz $(find volumes -name "*.conf" -type f) +``` + +# Backup configuration files from a gsrs-ci deployment and put in volumes/app-data structure + +``` +if ( test -d temp.ci.confs ); then + echo "Aborted temp.ci.confs folder already exists"; +else + rm -f temp.ci.confs.tar.gz + for f in $(find . -name "*.conf" -type f); do + dir="$(dirname "${f}")" + file="$(basename "${f}")" + newDir=$(echo "$dir" | sed -e 's/\.\/\(.*\)\/src\/main\/resources/temp.ci.confs\/volumes\/app-data/\/\1\/conf/g') + mkdir -p $newDir + cp $f $newDir/$file + tar -cvzf temp.ci.confs.tar.gz temp.ci.confs + done; +fi +``` + +# To do + +``` +Remove deletion of application.conf form Dockerfiles +Separate db init/info folders +Add depends on substances to all entity services in docker-compose.yml (except ssg4m) +copy salt file in substances Dockerfile ``` diff --git a/embedded/project/docker-source/frontend/Dockerfile b/embedded/project/docker-source/frontend/Dockerfile index 769e694..f1c385d 100644 --- a/embedded/project/docker-source/frontend/Dockerfile +++ b/embedded/project/docker-source/frontend/Dockerfile @@ -1,21 +1,20 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG FRONTEND_TAG=development_3.0 COPY . . # If you use this you can put the a build of the Angular in /app/data/frontend/classes/static -RUN mvn clean -U package -Dwith.packaging=jar -Dnode.disable -Dwithout.static -Dfrontend.tag=$FRONTEND_TAG -Dwithout.visualizer -DskipTests +# RUN mvn clean -U package -Dwith.packaging=jar -Dnode.disable -Dwithout.static -Dfrontend.tag=$FRONTEND_TAG -Dwithout.visualizer -DskipTests -# RUN mvn clean -U package -Dwith.packaging=jar -Dfrontend.tag=$FRONTEND_TAG -Dwithout.visualizer -DskipTests +RUN mvn clean -U package -Dwith.packaging=jar -Dfrontend.tag=$FRONTEND_TAG -Dwithout.visualizer -DskipTests ENV TZ=America/New_York RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN mkdir -p /app/data/frontend/conf RUN mkdir -p /app/data/frontend/classes/static -RUN echo -c "hello 3" > /app/data/frontend/classes/static/index.html WORKDIR /app/data/frontend EXPOSE 8082 ENTRYPOINT ["java", "-cp", "/target/frontend.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/gateway/Dockerfile b/embedded/project/docker-source/gateway/Dockerfile index 844dd0e..eaa8d37 100644 --- a/embedded/project/docker-source/gateway/Dockerfile +++ b/embedded/project/docker-source/gateway/Dockerfile @@ -1,5 +1,5 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build COPY . . RUN mvn clean -U package -Dwith.packaging=jar -DskipTests diff --git a/embedded/project/docker-source/how-to-setup-docker-desktop-and-wsl-on.windows.md b/embedded/project/docker-source/how-to-setup-docker-desktop-and-wsl-on.windows.md new file mode 100644 index 0000000..03f3403 --- /dev/null +++ b/embedded/project/docker-source/how-to-setup-docker-desktop-and-wsl-on.windows.md @@ -0,0 +1,49 @@ +# How to set up Docker Desktop and WSL with on windows + +## Set up WSL and Ubuntu + +go to CMD terminal +type `wsl --list` + +If you don't see an Ubuntu installation, then install one. + +``` +## Do this once, for example. It will ask you for a username and password. +wsl --install -d Ubuntu-24.04 +``` +## wt.exe + +After intalled, it will be more convenient, to use `wt.exe` as it allows you to use tabbed terminal sessions. + +``` +wt.exe --window last new-tab --profile "Ubuntu-24.04" +``` + +## Associate your Docker Desktop with WSL/Ubuntu + +In Docker Desktop click on Settings/Gear Icon (top-right). + +On left menu click on Resources > WSL Integration and enable Ubuntu + +Now you can create a folder in Ubuntu and clone the GSRS docker recipes repo. + +``` +mkdir -p ~/gsrs3/docker && cd ~/gsrs3/docker` + +clone gsrs3-docker-deployments +``` + + +## Using web constainers that you create + +You should be able to access containers from your Windows Firefox or other browser, for example like this. + + +``` +http://localhost:9081/ginas/app/ui + +http://localhost:9081/api/v1/substances + +``` + + diff --git a/embedded/project/docker-source/impurities/Dockerfile b/embedded/project/docker-source/impurities/Dockerfile index b835421..c0a49f1 100644 --- a/embedded/project/docker-source/impurities/Dockerfile +++ b/embedded/project/docker-source/impurities/Dockerfile @@ -1,5 +1,5 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master diff --git a/embedded/project/docker-source/invitro-pharmacology/Dockerfile b/embedded/project/docker-source/invitro-pharmacology/Dockerfile index 5551963..603e40c 100644 --- a/embedded/project/docker-source/invitro-pharmacology/Dockerfile +++ b/embedded/project/docker-source/invitro-pharmacology/Dockerfile @@ -1,12 +1,11 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master ARG SUBSTANCES_MODULE_BRANCH=master -ARG INVITRO_PHARMACOLOGY_MODULE_BRANCH=starter +ARG INVITRO_PHARMACOLOGY_MODULE_BRANCH=master -COPY . . COPY . . RUN if [ "$RELEASE_MODE" = "development" ]; then \ git clone --branch $STARTER_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-starter.git && \ @@ -18,13 +17,16 @@ RUN if [ "$RELEASE_MODE" = "development" ]; then \ cd .. && cd gsrs-spring-module-substances && \ sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh && \ mvn clean -U install -DskipTests && \ - cd .. && cd gsrs-spring-module-invitro-pharmacology && \ + cd .. && cd gsrs-spring-module-invitro-pharmacology && \ # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ mvn clean -U install -DskipTests; \ fi -RUN sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh -RUN mvn clean -U package -Dwith.packaging=jar -DskipTests +RUN rm -rf src/main/resources/application.conf && \ + rm -rf src/main/resources/invitro-pharmacology-env.conf && \ + rm -rf src/main/resources/invitro-pharmacology-env-db.conf && \ + sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh && \ + mvn clean -U package -Dwith.packaging=jar -DskipTests ENV TZ=America/New_York RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone @@ -35,3 +37,4 @@ RUN mkdir -p /app/data/invitro-pharmacology/classes WORKDIR /app/data/invitro-pharmacology EXPOSE 8084 ENTRYPOINT ["java", "-cp", "/target/invitro-pharmacology.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + diff --git a/embedded/project/docker-source/products/Dockerfile b/embedded/project/docker-source/products/Dockerfile index bf48847..a302a50 100644 --- a/embedded/project/docker-source/products/Dockerfile +++ b/embedded/project/docker-source/products/Dockerfile @@ -1,5 +1,5 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master diff --git a/embedded/project/docker-source/ssg4m/Dockerfile b/embedded/project/docker-source/ssg4m/Dockerfile index f60c23f..69356cc 100644 --- a/embedded/project/docker-source/ssg4m/Dockerfile +++ b/embedded/project/docker-source/ssg4m/Dockerfile @@ -1,5 +1,5 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build +FROM maven:3.6.3-jdk-11 AS build ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master @@ -10,14 +10,14 @@ COPY . . RUN if [ "$RELEASE_MODE" = "development" ]; then \ git clone --branch $STARTER_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-starter.git && \ # git clone --branch $SUBSTANCES_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-substances.git && \ - git clone --branch $SSG4M_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-ssg4m.git && \ + git clone --branch $SSG4M_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-ssg4.git && \ cd gsrs-spring-starter && mvn clean -U install -DskipTests && \ sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh && \ mvn clean -U install -DskipTests && \ # cd .. && cd gsrs-spring-module-substances && \ # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh && \ # mvn clean -U install -DskipTests && \ - cd .. && cd gsrs-spring-module-ssg4m && \ + cd .. && cd gsrs-spring-module-ssg4 && \ # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ mvn clean -U install -DskipTests; \ fi diff --git a/embedded/project/docker-source/substances/Dockerfile b/embedded/project/docker-source/substances/Dockerfile index febead5..e95a1ba 100644 --- a/embedded/project/docker-source/substances/Dockerfile +++ b/embedded/project/docker-source/substances/Dockerfile @@ -1,6 +1,6 @@ # Docker mvn build -FROM maven:3.6.3-jdk-11 as build -# public|development +FROM maven:3.6.3-jdk-11 AS build + ARG RELEASE_MODE='public' ARG STARTER_MODULE_BRANCH=master ARG SUBSTANCES_MODULE_BRANCH=master @@ -28,18 +28,6 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN mkdir -p /app/data/substances/conf RUN mkdir -p /app/data/substances/classes -# RUN git clone --branch $STARTER_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-starter.git -# RUN git clone --branch $SUBSTANCES_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-substances.git - -# RUN cd gsrs-spring-starter && mvn clean -U install -DskipTests \ -# && sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ -# && mvn clean -U install -DskipTests - -# RUN cd gsrs-spring-module-substances \ -# && sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ -# && mvn clean -U install -DskipTests - - WORKDIR /app/data/substances EXPOSE 8080 ENTRYPOINT ["java", "-cp", "/target/substances.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/mariadb.env-db.conf.tar.gz b/embedded/project/mariadb.env-db.conf.tar.gz index 3105c35..2de734f 100644 Binary files a/embedded/project/mariadb.env-db.conf.tar.gz and b/embedded/project/mariadb.env-db.conf.tar.gz differ diff --git a/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env-db.conf b/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env-db.conf new file mode 100644 index 0000000..f33120e --- /dev/null +++ b/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env-db.conf @@ -0,0 +1,18 @@ + +DB_URL_SUBSTANCES="jdbc:mariadb://mariadb:3306/substances" +DB_USERNAME_SUBSTANCES=${DB_TEST_USERNAME} +DB_PASSWORD_SUBSTANCES=${DB_TEST_PASSWORD} +DB_DRIVER_CLASS_NAME_SUBSTANCES="org.mariadb.jdbc.Driver" +DB_CONNECTION_TIMEOUT_SUBSTANCES=12000 +DB_MAXIMUM_POOL_SIZE_SUBSTANCES=50 +DB_DIALECT_SUBSTANCES="org.hibernate.dialect.MariaDB103Dialect" +DB_DDL_AUTO_SUBSTANCES=none + +DB_URL_ADVERSE_EVENTS="jdbc:mariadb://mariadb:3306/adverse_events" +DB_USERNAME_ADVERSE_EVENTS=${DB_TEST_USERNAME} +DB_PASSWORD_ADVERSE_EVENTS=${DB_TEST_PASSWORD} +DB_DRIVER_CLASS_NAME_ADVERSE_EVENTS="org.mariadb.jdbc.Driver" +DB_CONNECTION_TIMEOUT_ADVERSE_EVENTS=12000 +DB_MAXIMUM_POOL_SIZE_ADVERSE_EVENTS=50 +DB_DIALECT_ADVERSE_EVENTS="org.hibernate.dialect.MariaDB103Dialect" +DB_DDL_AUTO_ADVERSE_EVENTS=update diff --git a/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env.conf b/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env.conf index 3a4c253..033aedf 100644 --- a/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env.conf +++ b/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env.conf @@ -14,3 +14,5 @@ MS_SERVLET_CONTEXT_PATH_ADVERSE_EVENTS="/" DB_DDL_AUTO=update # API URLS have slash API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" + +MS_ALLOW_CIRCULAR_REFERENCES_ADVERSE_EVENTS=true diff --git a/embedded/project/volumes/app-data/adverse-events/conf/application.conf b/embedded/project/volumes/app-data/adverse-events/conf/application.conf index 9e7493f..14cd3d6 100644 --- a/embedded/project/volumes/app-data/adverse-events/conf/application.conf +++ b/embedded/project/volumes/app-data/adverse-events/conf/application.conf @@ -8,7 +8,9 @@ include "adverse-events-env-db.conf" spring.application.name="adverse-events" -# Single Tomcat use "/" +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files server.servlet.context-path="/"${spring.application.name} server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_ADVERSE_EVENTS} @@ -28,13 +30,22 @@ server.port=${?MS_SERVER_PORT_ADVERSE_EVENTS} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=false -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_ADVERSE_EVENTS} + spring.main.allow-bean-definition-overriding=true +spring.main.allow-circular-references=false +spring.main.allow-circular-references=${?MS_ALLOW_CIRCULAR_REFERENCES_ADVERSE_EVENTS} + +spring.mvc.pathmatch.matching-strategy=ant_path_matcher + # export path, has a default value for each microservice, but can be overridden. # in practice, it should be the same disk location at the substances export path. # it might make sense to use ${IX_HOME_SUBSTANCES}/exports @@ -52,6 +63,9 @@ management.health.rabbit.enabled: false management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_ADVERSE_EVENTS} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_ADVERSE_EVENTS} ################################################################## # GSRS CONFIGURATION REPORTS ## @@ -63,6 +77,13 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "entity-service-info-endpoints.conf" +include "basic-service-info-endpoints.conf" +gsrs.serviceinfo.api.endpoints.entities = ["adverseeventcvm", "adverseeventdme", "adverseeventpt"] + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -70,9 +91,18 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_ADVERSE_EVENTS} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_ADVERSE_EVENTS} + + ################################################################## # DATABASE CONNECTION ## @@ -149,6 +179,13 @@ substanceAPI.BaseUrl=${?API_URL} gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} +gsrs.microservice.substances.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_SUBSTANCES} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_SUBSTANCES} +} + gsrs.loopback.port=8080 gsrs.loopback.port=${?APPLICATION_HOST_PORT} gsrs.loopback.port=${?MS_LOOPBACK_PORT_ADVERSE_EVENTS} @@ -157,54 +194,101 @@ gsrs.loopback.port=${?MS_LOOPBACK_PORT_ADVERSE_EVENTS} # CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## ################################################################## -gsrs.entityprocessors = [ +# validators + +# __aw__ added this due to startup error? Do we need to fix? +gsrs.validators.vocabularies.list = null + + +# entityProcessors + +gsrs.entityprocessors.list.AdverseEventPtProcessor = { - "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventpt.models.AdverseEventPt", - "processor" = "gov.hhs.gsrs.adverseevents.adverseeventpt.processors.AdverseEventPtProcessor" - }, + "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventpt.models.AdverseEventPt", + "processor" = "gov.hhs.gsrs.adverseevents.adverseeventpt.processors.AdverseEventPtProcessor", + "order" = 10100 + } + +gsrs.entityprocessors.list.AdverseEventDmeProcessor = { - "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventDme", - "processor" = "gov.hhs.gsrs.adverseevents.adverseeventdme.processors.AdverseEventDmeProcessor" - }, + "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventDme", + "processor" = "gov.hhs.gsrs.adverseevents.adverseeventdme.processors.AdverseEventDmeProcessor", + "order" = 10200 + } + +gsrs.entityprocessors.list.AdverseEventCvmProcessor = { - "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventcvm.models.AdverseEventCvm", - "processor" = "gov.hhs.gsrs.adverseevents.adverseeventcvm.processors.AdverseEventCvmProcessor" + "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventcvm.models.AdverseEventCvm", + "processor" = "gov.hhs.gsrs.adverseevents.adverseeventcvm.processors.AdverseEventCvmProcessor", + "order" = 10300 } -] + # NEED THIS TO AVOID CVApi ERROR -gsrs.entityProcessors=[] +gsrs.entityProcessors.list = null -ix.ginas.export.factories.adverseeventpt = [ - "gov.hhs.gsrs.adverseevents.adverseeventpt.exporters.AdverseEventPtExporterFactory" -] +# exporterfactories -ix.ginas.export.factories.adverseeventdme = [ - "gov.hhs.gsrs.adverseevents.adverseeventdme.exporters.AdverseEventDmeExporterFactory" -] +ix.ginas.export.exporterfactories.adverseeventpt.list.AdverseEventPtExporterFactory = +{ + "exporterFactoryClass" = "gov.hhs.gsrs.adverseevents.adverseeventpt.exporters.AdverseEventPtExporterFactory", + "order" = 10100, + "parameters":{ + } +} +ix.ginas.export.exporterfactories.adverseeventdme.list.DefaultSubstanceSpreadsheetExporterFactory = +{ + "exporterFactoryClass" = "gov.hhs.gsrs.adverseevents.adverseeventdme.exporters.AdverseEventDmeExporterFactory", + "order" = 10200, + "parameters":{ + } +} +ix.ginas.export.exporterfactories.adverseeventcvm.list.DefaultSubstanceSpreadsheetExporterFactory = +{ + "exporterFactoryClass" = "gov.hhs.gsrs.adverseevents.adverseeventcvm.exporters.AdverseEventCvmExporterFactory", + "order" = 10300, + "parameters":{ + } +} -ix.ginas.export.factories.adverseeventcvm = [ - "gov.hhs.gsrs.adverseevents.adverseeventcvm.exporters.AdverseEventCvmExporterFactory" -] +# indexers -gsrs.indexers.list=[ +gsrs.indexers.list.AEATCIndexValueMaker_Substance = { - "indexer" = "gov.hhs.gsrs.adverseevents.indexers.ATCIndexValueMaker", - "class" = "ix.ginas.models.v1.Substance" - }, + "indexer" = "gov.hhs.gsrs.adverseevents.indexers.ATCIndexValueMaker", + "class" = "ix.ginas.models.v1.Substance", + "order" = 10100 + } +gsrs.indexers.list.AEATCIndexValueMaker_Pt = + { + "indexer" = "gov.hhs.gsrs.adverseevents.indexers.AEATCIndexValueMaker", + "class" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventPt", + "order" = 10200 + } +gsrs.indexers.list.AEATCIndexValueMaker_Dme = { - "indexer" = "gov.hhs.gsrs.adverseevents.indexers.AEATCIndexValueMaker", - "class" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventPt" - }, + "indexer" = "gov.hhs.gsrs.adverseevents.indexers.AEATCIndexValueMaker", + "class" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventDme", + "order" = 10300 + } +gsrs.indexers.list.AEATCIndexValueMaker_Cvm = { - "indexer" = "gov.hhs.gsrs.adverseevents.indexers.AEATCIndexValueMaker", - "class" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventDme" - }, + "indexer" = "gov.hhs.gsrs.adverseevents.indexers.AEATCIndexValueMaker", + "class" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventCvm", + "order" = 10400 + } +gsrs.indexers.list.AdverseEventIndexValueMaker = { - "indexer" = "gov.hhs.gsrs.adverseevents.indexers.AEATCIndexValueMaker", - "class" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventCvm" + "indexer" = "gov.hhs.gsrs.adverseevents.adverseeventpt.indexers.AdverseEventIndexValueMaker", + "class" = "gov.hhs.gsrs.adverseevents.adverseeventpt.models.AdverseEventPt", + "order" = 10500 } -] + +# tasks + +# For now, turn off any scheduled tasks that may be been defined upstream +gsrs.scheduled-tasks.list = null + ################################################################## # LEGACY AUTHENTICATION ## @@ -218,10 +302,11 @@ ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} ################################################################## # CUSTOM CONFIGURATION ## ################################################################## include "conf/adverse-events.conf" -include "adverse-events.conf" \ No newline at end of file +include "adverse-events.conf" diff --git a/embedded/project/volumes/app-data/applications/conf/application.conf b/embedded/project/volumes/app-data/applications/conf/application.conf index bcabfc8..79dcdf7 100644 --- a/embedded/project/volumes/app-data/applications/conf/application.conf +++ b/embedded/project/volumes/app-data/applications/conf/application.conf @@ -8,6 +8,9 @@ include "applications-env-db.conf" spring.application.name="applications" +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files server.servlet.context-path="/"${spring.application.name} server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_APPLICATIONS} @@ -27,12 +30,19 @@ server.port=${?MS_SERVER_PORT_APPLICATIONS} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=false -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true -spring.main.allow-bean-definition-overriding=true +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_APPLICATIONS} + +spring.main.allow-circular-references=false +spring.main.allow-circular-references=${?MS_ALLOW_CIRCULAR_REFERENCES_APPLICATIONS} + +spring.mvc.pathmatch.matching-strategy=ant_path_matcher # export path, has a default value for each microservice, but can be overridden. # in practice, it should be the same disk location at the substances export path. @@ -51,6 +61,10 @@ management.health.rabbit.enabled: false management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_APPLICATIONS} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_APPLICATIONS} + ################################################################## # GSRS CONFIGURATION REPORTS ## @@ -62,6 +76,14 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "entity-service-info-endpoints.conf" +include "basic-service-info-endpoints.conf" +gsrs.serviceinfo.api.endpoints.entities = ["applications"] + + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -69,9 +91,16 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_APPLICATIONS} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_APPLICATIONS} ################################################################## # DATABASE CONNECTION ## @@ -147,6 +176,13 @@ substanceAPI.BaseUrl=${?API_URL} gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} +gsrs.microservice.substances.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_SUBSTANCES} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_SUBSTANCES} +} + gsrs.loopback.port=8080 gsrs.loopback.port=${?APPLICATION_HOST_PORT} gsrs.loopback.port=${?MS_LOOPBACK_PORT_APPLICATIONS} @@ -155,57 +191,93 @@ gsrs.loopback.port=${?MS_LOOPBACK_PORT_APPLICATIONS} # CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## ################################################################## -gsrs.validators.applications = [ +gsrs.validators.applications.list.RequiredFieldNonNullValidator = { "validatorClass" = "gov.hhs.gsrs.application.application.validators.RequiredFieldNonNullValidator", "newObjClass" = "gov.hhs.gsrs.application.application.models.Application", + "order" = 5100 } -], + + +# entityProcessors # NOT SURE IF WE NEED THIS OR NOT -gsrs.entityprocessors = [ +gsrs.entityprocessors.list.ApplicationProcessor = { - "class" = "gov.hhs.gsrs.application.application.models.Application", - "processor" = "gov.hhs.gsrs.application.application.processors.ApplicationProcessor" - }, - { - "class" = "gov.hhs.gsrs.application.applicationall.models.ApplicationAll", - "processor" = "gov.hhs.gsrs.application.applicationall.processors.ApplicationAllProcessor" - }, + "entityClassName" = "gov.hhs.gsrs.application.application.models.Application", + "processor" = "gov.hhs.gsrs.application.application.processors.ApplicationProcessor", + "order" = 10100 + } +gsrs.entityprocessors.list.ApplicationAllProcessor = { - "class" = "gov.hhs.gsrs.application.applicationdarrts.models.ApplicationDarrts", - "processor" = "gov.hhs.gsrs.application.applicationdarrts.processors.ApplicationDarrtsProcessor" + "entityClassName" = "gov.hhs.gsrs.application.applicationall.models.ApplicationAll", + "processor" = "gov.hhs.gsrs.application.applicationall.processors.ApplicationAllProcessor", + "order" = 10200 } -] + +gsrs.entityprocessors.list.ApplicationDarrtsProcessor = + { + "entityClassName" = "gov.hhs.gsrs.application.applicationdarrts.models.ApplicationDarrts", + "processor" = "gov.hhs.gsrs.application.applicationdarrts.processors.ApplicationDarrtsProcessor", + "order" = 10300 + } # NEED THIS TO AVOID CVApi ERROR -gsrs.entityProcessors=[] +gsrs.entityProcessors.list= null -ix.ginas.export.factories.applications = [ - "gov.hhs.gsrs.application.application.exporters.ApplicationExporterFactory" -] +# exporterfactories -ix.ginas.export.factories.applicationsall = [ - "gov.hhs.gsrs.application.applicationall.exporters.ApplicationAllExporterFactory" -] +ix.ginas.exporterfactories.applications.list.ApplicationExporterFactory = + { + "exporterFactoryClass" = "gov.hhs.gsrs.application.application.exporters.ApplicationExporterFactory", + "order" = 10100, + "parameters":{ + } + } -gsrs.indexers.list=[ +ix.ginas.export.exporterfactories.applications.list.ApplicationExporterFactory = + { + "exporterFactoryClass" = "gov.hhs.gsrs.application.application.exporters.ApplicationExporterFactory", + "order" = 10200, + "parameters":{ + } + } + +ix.ginas.export.factories.applicationsall.listApplicationAllExporterFactory = { + "exporterFactoryClass" = "gov.hhs.gsrs.application.applicationall.exporters.ApplicationAllExporterFactory", + "order" = 10300, + "parameters":{ + } +} + +# indexers + +gsrs.indexers.list.ApplicationIngredientIndexValueMaker = { "indexer" = "gov.hhs.gsrs.application.application.indexers.ApplicationIngredientIndexValueMaker", - "class" = "gov.hhs.gsrs.application.application.models.Application" - }, + "class" = "gov.hhs.gsrs.application.application.models.Application", + "order" = 10100 + } +gsrs.indexers.list.ApplicationClinicalTrialIndexValueMaker = { "indexer" = "gov.hhs.gsrs.application.application.indexers.ApplicationClinicalTrialIndexValueMaker", - "class" = "gov.hhs.gsrs.application.application.models.Application" - }, + "class" = "gov.hhs.gsrs.application.application.models.Application", + "order" = 10200 + } +gsrs.indexers.list.ApplicationSubstanceIndexValueMaker = { "indexer" = "gov.hhs.gsrs.application.applicationall.indexers.ApplicationSubstanceIndexValueMaker", - "class" = "gov.hhs.gsrs.application.applicationall.models.ApplicationAll" - } -] + "class" = "gov.hhs.gsrs.application.applicationall.models.ApplicationAll", + "order" = 10300 + } + +# tasks + +# For now, turn off any scheduled tasks that may be been defined upstream +gsrs.scheduled-tasks.list = null + -# Do we need this in services other than substances? ################################################################## # LEGACY AUTHENTICATION ## ################################################################## @@ -218,6 +290,8 @@ ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} + ################################################################## # CUSTOM CONFIGURATION ## diff --git a/embedded/project/volumes/app-data/applications/conf/applications-env-db.conf b/embedded/project/volumes/app-data/applications/conf/applications-env-db.conf new file mode 100644 index 0000000..1e3a6b1 --- /dev/null +++ b/embedded/project/volumes/app-data/applications/conf/applications-env-db.conf @@ -0,0 +1,19 @@ + +DB_URL_SUBSTANCES="jdbc:mariadb://mariadb:3306/substances" +DB_USERNAME_SUBSTANCES=${DB_TEST_USERNAME} +DB_PASSWORD_SUBSTANCES=${DB_TEST_PASSWORD} +DB_DRIVER_CLASS_NAME_SUBSTANCES="org.mariadb.jdbc.Driver" +DB_CONNECTION_TIMEOUT_SUBSTANCES=12000 +DB_MAXIMUM_POOL_SIZE_SUBSTANCES=50 +DB_DIALECT_SUBSTANCES="org.hibernate.dialect.MariaDB103Dialect" +DB_DDL_AUTO_SUBSTANCES=none + +DB_URL_APPLICATIONS="jdbc:mariadb://mariadb:3306/applications" +DB_USERNAME_APPLICATIONS=${DB_TEST_USERNAME} +DB_PASSWORD_APPLICATIONS=${DB_TEST_PASSWORD} +DB_DRIVER_CLASS_NAME_APPLICATIONS="org.mariadb.jdbc.Driver" +DB_CONNECTION_TIMEOUT_APPLICATIONS=12000 +DB_MAXIMUM_POOL_SIZE_APPLICATIONS=50 +DB_DIALECT_APPLICATIONS="org.hibernate.dialect.MariaDB103Dialect" +DB_DDL_AUTO_APPLICATIONS=update + diff --git a/embedded/project/volumes/app-data/applications/conf/applications-env.conf b/embedded/project/volumes/app-data/applications/conf/applications-env.conf index c3052cf..8b59081 100644 --- a/embedded/project/volumes/app-data/applications/conf/applications-env.conf +++ b/embedded/project/volumes/app-data/applications/conf/applications-env.conf @@ -13,4 +13,6 @@ MS_SERVLET_CONTEXT_PATH_APPLICATIONS="/" # IX_HOME_SUBSTANCES="../substances/ginas.ix" DB_DDL_AUTO=update # API URLS have slash -API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" \ No newline at end of file +API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" + +MS_ALLOW_CIRCULAR_REFERENCES_APPLICATIONS=true diff --git a/embedded/project/volumes/app-data/clinical-trials/conf/application.conf b/embedded/project/volumes/app-data/clinical-trials/conf/application.conf index de32650..cbc33bc 100644 --- a/embedded/project/volumes/app-data/clinical-trials/conf/application.conf +++ b/embedded/project/volumes/app-data/clinical-trials/conf/application.conf @@ -1,4 +1,5 @@ include "gsrs-core.conf" + include "clinical-trial-core.conf" include "clinical-trials-env.conf" include "clinical-trials-env-db.conf" @@ -9,7 +10,9 @@ include "clinical-trials-env-db.conf" spring.application.name="clinical-trials" -# ??? this doesn't work well with embedded tomcat +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files server.servlet.context-path="/"${spring.application.name} server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_CLINICAL_TRIALS} @@ -29,11 +32,16 @@ server.port=${?MS_SERVER_PORT_CLINICAL_TRIALS} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=false -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true + +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_CLINICAL_TRIALS} + spring.main.allow-bean-definition-overriding=true # export path, has a default value for each microservice, but can be overridden. @@ -49,10 +57,13 @@ spring.servlet.multipart.max-request-size=512MB # SPRING BOOT ACTUATOR SETTINGS FOR MICROSERVICE HEALTH CHECKS ## ################################################################## # turn off rabbit mq check for now since we don't use it otherwise it will say we are down -management.health.rabbit.enabled: false +management.health.rabbit.enabled = false management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_CLINICAL_TRIALS} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_CLINICAL_TRIALS} ################################################################## # GSRS CONFIGURATION REPORTS ## @@ -64,6 +75,14 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "entity-service-info-endpoints.conf" +include "basic-service-info-endpoints.conf" +gsrs.serviceinfo.api.endpoints.entities = ["clinicaltrialsus", "clinicaltrialseurope"] + + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -71,9 +90,17 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_CLINICAL_TRIALS} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_CLINICAL_TRIALS} + ################################################################## # DATABASE CONNECTION ## @@ -150,6 +177,13 @@ substanceAPI.BaseUrl=${?API_URL} gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} +gsrs.microservice.substances.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_SUBSTANCES} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_SUBSTANCES} +} + gsrs.loopback.port=8080 gsrs.loopback.port=${?APPLICATION_HOST_PORT} gsrs.loopback.port=${?MS_LOOPBACK_PORT_CLINICAL_TRIALS} @@ -168,15 +202,15 @@ mygsrs.clinicaltrial.cvUrl = ${gsrs.microservice.substances.api.baseURL} # LEGACY AUTHENTICATION ## ################################################################## -# ix.authentication.allownonauthenticated = ${?AUTH_ALLOW_NONAUTH} -# ix.authentication.autoregister = ${?AUTH_AUTOREGISTER} -# ix.authentication.autoregisteractive = ${?AUTH_AUTOREGISTERACTIVE} -# ix.authentication.sysadmin-email = ${?AUTH_SYSADMIN_EMAIL} -# ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} -# ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} -# ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} -# ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} - +ix.authentication.allownonauthenticated = ${?AUTH_ALLOW_NONAUTH} +ix.authentication.autoregister = ${?AUTH_AUTOREGISTER} +ix.authentication.autoregisteractive = ${?AUTH_AUTOREGISTERACTIVE} +ix.authentication.sysadmin-email = ${?AUTH_SYSADMIN_EMAIL} +ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} +ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} +ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} +ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} ################################################################## # CUSTOM CONFIGURATION ## diff --git a/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env-db.conf b/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env-db.conf new file mode 100644 index 0000000..1fce5d2 --- /dev/null +++ b/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env-db.conf @@ -0,0 +1,18 @@ + +DB_URL_SUBSTANCES="jdbc:mariadb://mariadb:3306/substances" +DB_USERNAME_SUBSTANCES=${DB_TEST_USERNAME} +DB_PASSWORD_SUBSTANCES=${DB_TEST_PASSWORD} +DB_DRIVER_CLASS_NAME_SUBSTANCES="org.mariadb.jdbc.Driver" +DB_CONNECTION_TIMEOUT_SUBSTANCES=12000 +DB_MAXIMUM_POOL_SIZE_SUBSTANCES=50 +DB_DIALECT_SUBSTANCES="org.hibernate.dialect.MariaDB103Dialect" +DB_DDL_AUTO_SUBSTANCES=none + +DB_URL_CLINICAL_TRIALS="jdbc:mariadb://mariadb:3306/clinical_trials" +DB_USERNAME_CLINICAL_TRIALS=${DB_TEST_USERNAME} +DB_PASSWORD_CLINICAL_TRIALS=${DB_TEST_PASSWORD} +DB_DRIVER_CLASS_NAME_CLINICAL_TRIALS="org.mariadb.jdbc.Driver" +DB_CONNECTION_TIMEOUT_CLINICAL_TRIALS=12000 +DB_MAXIMUM_POOL_SIZE_CLINICAL_TRIALS=50 +DB_DIALECT_CLINICAL_TRIALS="org.hibernate.dialect.MariaDB103Dialect" +DB_DDL_AUTO_CLINICAL_TRIALS=update diff --git a/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env.conf b/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env.conf index 80a535c..2f60be9 100644 --- a/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env.conf +++ b/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env.conf @@ -16,24 +16,3 @@ DB_DDL_AUTO=update API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" -# {"trialNumber":"NCT001", "title":"hello"} - -server.tomcat.relaxed-query-chars="<,>,[,\\,],^,`,{,|,}" -server.tomcat.relaxed-path-chars="<,>,[,\\,],^,`,{,|,}" - -mygsrs.substanceAPI.baseUrl = "http://substances:8080/" - -mygsrs.clinicaltrial.us.substance.linking.keyType.value = "UUID" -mygsrs.clinicaltrial.us.substance.linking.keyType.agencyCodeValue = "BDNUM" - -mygsrs.clinicaltrial.us.ClinicalTrial.trialNumberPattern = "^NCT\\d+$" -mygsrs.clinicaltrial.us.substanceKeyPatternRegex = "^[-0-9a-f]{36}$" -mygsrs.clinicaltrial.us.agencySubstanceKeyTypeValue = "BDNUM"; -mygsrs.clinicaltrial.us.skipSubstanceValidation = false - -mygsrs.clinicaltrial.eu.ClinicalTrialEurope.trialNumberPattern = "^\\d{4}-\\d{6}-\\d{2}-[A-Z]{2}$" -mygsrs.clinicaltrial.eu.substanceKeyPatternRegex = "^[-0-9a-f]{36}$" -mygsrs.clinicaltrial.eu.agencySubstanceKeyTypeValue = "BDNUM"; -mygsrs.clinicaltrial.eu.skipSubstanceValidation = false - -mygsrs.clinicaltrial.cvUrl = ${API_BASE_URL_SUBSTANCES} \ No newline at end of file diff --git a/embedded/project/volumes/app-data/db/mariadb/init/init.sql b/embedded/project/volumes/app-data/db/mariadb/init/init.sql new file mode 100644 index 0000000..da0cfd4 --- /dev/null +++ b/embedded/project/volumes/app-data/db/mariadb/init/init.sql @@ -0,0 +1,19 @@ +/* +DROP DATABASE IF EXISTS adverse_events; +DROP DATABASE IF EXISTS applications; +DROP DATABASE IF EXISTS clinical_trials; +DROP DATABASE IF EXISTS impurities; +DROP DATABASE IF EXISTS invitro_pharmacology; +DROP DATABASE IF EXISTS products; +DROP DATABASE IF EXISTS ssg4m; +DROP DATABASE IF EXISTS substances; +*/ +CREATE DATABASE IF NOT EXISTS adverse_events CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS applications CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS clinical_trials CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS impurities CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS invitro_pharmacology CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS products CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS ssg4m CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS substances CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + diff --git a/embedded/project/volumes/app-data/db/mysql/init/01.sql b/embedded/project/volumes/app-data/db/mysql/init/01.sql new file mode 100644 index 0000000..79f7ea9 --- /dev/null +++ b/embedded/project/volumes/app-data/db/mysql/init/01.sql @@ -0,0 +1,9 @@ +CREATE DATABASE IF NOT EXISTS adverse_events CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS applications CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS clinical_trials CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS impurities CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS invitro_pharmacology CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS products CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS ssg4m CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE IF NOT EXISTS substances CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + diff --git a/embedded/project/volumes/app-data/db/postgresql/init/init.sql b/embedded/project/volumes/app-data/db/postgresql/init/init.sql new file mode 100644 index 0000000..a453d47 --- /dev/null +++ b/embedded/project/volumes/app-data/db/postgresql/init/init.sql @@ -0,0 +1,18 @@ +/* +DROP DATABASE IF EXISTS "adverse_events"; +DROP DATABASE IF EXISTS "applications"; +DROP DATABASE IF EXISTS "clinical_trials"; +DROP DATABASE IF EXISTS "impurities"; +DROP DATABASE IF EXISTS "invitro_pharmacology"; +DROP DATABASE IF EXISTS "products"; +DROP DATABASE IF EXISTS "ssg4m"; +DROP DATABASE IF EXISTS "substances"; +*/ +CREATE DATABASE "adverse_events" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; +CREATE DATABASE "applications" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; +CREATE DATABASE "clinical_trials" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; +CREATE DATABASE "impurities" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; +CREATE DATABASE "invitro_pharmacology" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; +CREATE DATABASE "products" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; +CREATE DATABASE "ssg4m" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; +CREATE DATABASE "substances" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; \ No newline at end of file diff --git a/embedded/project/volumes/app-data/discovery/conf/application.conf b/embedded/project/volumes/app-data/discovery/conf/application.conf index cbc6172..51bf0eb 100644 --- a/embedded/project/volumes/app-data/discovery/conf/application.conf +++ b/embedded/project/volumes/app-data/discovery/conf/application.conf @@ -1,22 +1,56 @@ -MS_SERVER_PORT_DISCOVERY=8761 +include "discovery-env.conf" ################################################################## # MAIN CONFIGURATION ## ################################################################## -# Server port is used in Embedded Tomcat. It will be ignored by Single Tomcat + +spring.application.name="discovery" + +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_DISCOVERY} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat server.port="" server.port=${?MS_SERVER_PORT_DISCOVERY} -spring.application.name="discovery" +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_DISCOVERY} + +################################################################## +# SPRING BOOT ACTUATOR SETTINGS FOR MICROSERVICE HEALTH CHECKS ## +################################################################## + +management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_DISCOVERY} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_DISCOVERY} + + + +################################################################## +# GSRS CONFIGURATION REPORTS ## +################################################################## + +# See document 'How configuration works' for discussion of security implications. +# If in doubt, you probably want false (default) for all optons in production or even online development instances +gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} +gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} + +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "basic-service-info-endpoints.conf" -# commenting out for now -# server.servlet.context-path="/"${spring.application.name} ################################################################## # EUREKA SETTINGS ## ################################################################## -# Spring boot actuator setting (was in previous fda config) -management.endpoint.health.show-details=always eureka.client.register-with-eureka=false eureka.client.fetch-registry=false @@ -26,6 +60,23 @@ logging.level.com.netflix.discovery=OFF ################################################################## # CUSTOM CONFIGURATION ## ################################################################## + gsrs.serviceinfo.api.endpoints.list.actuatorInfo.disabled = true + gsrs.serviceinfo.api.endpoints.list.actuatorEnv.disabled = true + + +################################################################## +# LEGACY AUTHENTICATION ## +################################################################## + +ix.authentication.allownonauthenticated = ${?AUTH_ALLOW_NONAUTH} +ix.authentication.autoregister = ${?AUTH_AUTOREGISTER} +ix.authentication.autoregisteractive = ${?AUTH_AUTOREGISTERACTIVE} +ix.authentication.sysadmin-email = ${?AUTH_SYSADMIN_EMAIL} +ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} +ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} +ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} +ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} include "conf/discovery.conf" include "discovery.conf" diff --git a/embedded/project/volumes/app-data/discovery/conf/discovery-env.conf b/embedded/project/volumes/app-data/discovery/conf/discovery-env.conf new file mode 100644 index 0000000..9936425 --- /dev/null +++ b/embedded/project/volumes/app-data/discovery/conf/discovery-env.conf @@ -0,0 +1,11 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://localhost:8081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +# APPLICATION_HOST_PORT=8081 +# APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} +# APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} +# 8761 +MS_SERVER_PORT_DISCOVERY=${SERVER_PORT} +MS_LOOPBACK_PORT_DISCOVERY=8761 +MS_SERVLET_CONTEXT_PATH_DISCOVERY="/" \ No newline at end of file diff --git a/embedded/project/volumes/app-data/frontend/conf/application.conf b/embedded/project/volumes/app-data/frontend/conf/application.conf new file mode 100644 index 0000000..e0ff495 --- /dev/null +++ b/embedded/project/volumes/app-data/frontend/conf/application.conf @@ -0,0 +1,85 @@ +include "frontend-env.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +# Server port is used in Embedded Tomcat. It will be ignored by Single Tomcat +server.port="" +server.port=${?MS_SERVER_PORT_FRONTEND} + +spring.application.name="frontend" + +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_FRONTEND} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +gsrs.frontend.prefix="ginas/app/ui/" +gsrs.frontend.config.dir="classpath:/static/assets/data" +gsrs.frontend.config.dir=${?FRONTEND_CONFIG_DIR} + +debug=false +debug=${?DEBUG_FRONTEND} + +################################################################## +# SPRING BOOT ACTUATOR SETTINGS FOR MICROSERVICE HEALTH CHECKS ## +################################################################## +# turn off rabbit mq check for now since we don't use it otherwise it will say we are down +management.health.rabbit.enabled: false + +management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_FRONTEND} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_FRONTEND} + + +################################################################## +# GSRS CONFIGURATION REPORTS ## +################################################################## + +# See document 'How configuration works' for discussion of security implications. +# If in doubt, you probably want false (default) for all optons in production or even online development instances +gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLED} +gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} +gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} + +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "basic-service-info-endpoints.conf" + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +eureka.instance.hostname=${spring.application.name} +eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" +eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} + +eureka.client.enabled=false +eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_FRONTEND} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_FRONTEND} + + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/frontend.conf" +include "frontend.conf" + + + + diff --git a/embedded/project/volumes/app-data/frontend/conf/frontend-env.conf b/embedded/project/volumes/app-data/frontend/conf/frontend-env.conf index 70078bf..508360c 100644 --- a/embedded/project/volumes/app-data/frontend/conf/frontend-env.conf +++ b/embedded/project/volumes/app-data/frontend/conf/frontend-env.conf @@ -1,4 +1,3 @@ -CONFIG_TEST="frontend-env.conf test" MS_SERVER_PORT_FRONTEND=8082 -MS_SERVLET_CONTEXT_PATH_FRONTEND=/ +MS_SERVLET_CONTEXT_PATH_FRONTEND="/" diff --git a/embedded/project/volumes/app-data/gateway/conf/application.conf b/embedded/project/volumes/app-data/gateway/conf/application.conf new file mode 100644 index 0000000..7a26679 --- /dev/null +++ b/embedded/project/volumes/app-data/gateway/conf/application.conf @@ -0,0 +1,515 @@ + +include "gateway-env.conf" + +api.base.path=/ginas/app +api.base.path=${?API_BASE_PATH} + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="gateway" + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port used in Embedded Tomcat +server.port="" +server.port=${?MS_SERVER_PORT_GATEWAY} + +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_GATEWAY} + +################################################################## +# SPRING BOOT ACTUATOR SETTINGS FOR MICROSERVICE HEALTH CHECKS ## +################################################################## + +# turn off rabbit mq check for now since we don't use it otherwise it wil say we ar down +management.health.rabbit.enabled: false + +management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_GATEWAY} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_GATEWAY} + + +################################################################## +# GSRS CONFIGURATION REPORTS ## +################################################################## + +# See document 'How configuration works' for discussion of security implications. +# If in doubt, you probably want false (default) for all optons in production or even online development instances +gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} +gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +gsrs.services.config.gatewayProcessedRouteConfigs.report.api.enabled=${?GATEWAY_PROCESSED_ROUTE_CONFIGS_REPORT_API_ENABLED} +gsrs.services.config.gatewayProcessedRouteConfigs.report.log.enabled=${?GATEWAY_PROCESSED_ROUTE_CONFIGS_REPORT_LOG_ENABLED} + +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "basic-service-info-endpoints.conf" + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +eureka.instance.hostname=${spring.application.name} +eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" +eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} + +eureka.client.enabled=false +eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +eureka.client.enabled=${?EUREKA_CLIENT_ENABLED_GATEWAY} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED_GATEWAY} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_GATEWAY} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_GATEWAY} + +################################################################## +# API SETTINGS ## +################################################################## + + +# THE DEFAULT PATTERN IMPLICIT HERE IS SINGLE TOMCAT +# might be nice to make assumptions about trailing slash consistent + +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.gateway.api.baseURL=${application.host} + +gsrs.microservice.adverseevents.api.baseURL=${substanceAPI.BaseUrl}"adverse-events" +gsrs.microservice.adverseevents.api.baseURL=${?MS_URL_ADVERSE_EVENTS} +gsrs.microservice.applications.api.baseURL=${substanceAPI.BaseUrl}"applications" +gsrs.microservice.applications.api.baseURL=${?MS_URL_APPLICATIONS} +gsrs.microservice.clinicaltrialsus.api.baseURL=${substanceAPI.BaseUrl}"clinical-trials" +gsrs.microservice.clinicaltrialsus.api.baseURL=${?MS_URL_CLINICAL_TRIALS} +gsrs.microservice.clinicaltrialsus.api.baseURL=${?MS_URL_CLINICAL_TRIALS_US} +gsrs.microservice.clinicaltrialseurope.api.baseURL=${substanceAPI.BaseUrl}"clinical-trials" +gsrs.microservice.clinicaltrialseurope.api.baseURL=${?MS_URL_CLINICAL_TRIALS} +gsrs.microservice.clinicaltrialseurope.api.baseURL=${?MS_URL_CLINICAL_TRIALS_EUROPE} +gsrs.microservice.discovery.api.baseURL=${substanceAPI.BaseUrl}"discovery" +gsrs.microservice.discovery.api.baseURL=${?MS_URL_DISCOVERY} +gsrs.microservice.frontend.api.baseURL=${substanceAPI.BaseUrl}"frontend" +gsrs.microservice.frontend.api.baseURL=${?MS_URL_FRONTEND} +gsrs.microservice.impurities.api.baseURL=${substanceAPI.BaseUrl}"impurities" +gsrs.microservice.impurities.api.baseURL=${?MS_URL_IMPURITIES} +gsrs.microservice.products.api.baseURL=${substanceAPI.BaseUrl}"products" +gsrs.microservice.products.api.baseURL=${?MS_URL_PRODUCTS} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?MS_URL_SUBSTANCES} +gsrs.microservice.ssg4m.api.baseURL=${substanceAPI.BaseUrl}"ssg4m" +gsrs.microservice.ssg4m.api.baseURL=${?MS_URL_SSG4M} +gsrs.microservice.invitropharmacology.api.baseURL=${substanceAPI.BaseUrl}"invitro-pharmacology" +gsrs.microservice.invitropharmacology.api.baseURL=${?MS_URL_INVITRO_PHARMACOLOGY} + +################################################################## +# ZUUL ROUTES CONFIGURATION ## +################################################################## +gsrs.microservice.frontend.api.routeURL=${gsrs.microservice.frontend.api.baseURL}"/ginas/app/ui" +gsrs.microservice.frontend.api.routeURL=${?GATEWAY_FRONTEND_ROUTE_URL} + +zuul.routes = { + "00005_ui_beta" = { + "path" = "/ginas/app/beta/**", + "url" = ${gsrs.microservice.frontend.api.routeURL}, + "serviceId" = "frontend", + }, + "00010_ui" = { + "path" = "/ginas/app/ui/**", + "url" = ${gsrs.microservice.frontend.api.routeURL}, + "serviceId" = "frontend", + }, + + "00015_gateway_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/gateway/**", + "url" = ${gsrs.microservice.gateway.api.baseURL}"/service-info/api/v1/gateway", + "serviceId" = "gateway_service_info", + }, + + "00017_gateway_service" = { + "path" = ${?api.base.path}"/service/gateway/**", + "url" = ${gsrs.microservice.gateway.api.baseURL}, + "serviceId" = "gateway_service", + }, + + "00020_root" = { + "path" = "/", + "url" = ${gsrs.microservice.frontend.api.routeURL}, + "serviceId" = "root" + }, + +# Look into this with Ramez; Ramez says change url to application.host value +# "00030_ginas_app" = { +# "path" = "/ginas/app", +# "url" = ${gsrs.microservice.frontend.api.routeURL}, +# "serviceId" = "ginas_app" +# }, + "00040_service_info_frontend" = { + "path" = ${?api.base.path}"/service-info/api/v1/frontend/**", + "url" = ${gsrs.microservice.frontend.api.baseURL}"/service-info/api/v1/frontend", + "serviceId" = "service_info_frontend", + }, + ############################# + #START applications section + ############################# + "applications_core" = { + "path" = ${?api.base.path}"/api/v1/applications/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/applications", + "serviceId" = "applications_core" + }, + "applications_core_alt" = { + "path" = ${?api.base.path}"/api/v1/applications(**)/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/applications", + "serviceId" = "applications_core_alt" + }, + "applications_all" = { + "path" = ${?api.base.path}"/api/v1/applicationsall/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/applicationsall", + "serviceId" = "applications_all" + }, + "applications_all_alt" = { + "path" = ${?api.base.path}"/api/v1/applicationsall(**)/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/applicationsall", + "serviceId" = "applications_all_alt" + }, + "applications_darrts" = { + "path" = ${?api.base.path}"/api/v1/applicationsdarrts/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/applicationsdarrts", + "serviceId" = "applications_darrts" + }, + "applications_darrts_alt" = { + "path" = ${?api.base.path}"/api/v1/applicationsdarrts(**)/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/applicationsdarrts", + "serviceId" = "applications_darrts_alt" + }, + "applications_searchcount" = { + "path" = ${?api.base.path}"/api/v1/searchcounts/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/searchcounts", + "serviceId" = "applications_searchcount" + }, + "applications_searchcount_alt" = { + "path" = ${?api.base.path}"/api/v1/searchcounts(**)/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/api/v1/searchcounts", + "serviceId" = "applications_searchcount" + }, + "applications_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/applications/**", + "url" = ${gsrs.microservice.applications.api.baseURL}"/service-info/api/v1/applications", + "serviceId" = "applications_service_info", + }, + "applications_service" = { + "path" = ${?api.base.path}"/service/applications/**", + "url" = ${gsrs.microservice.applications.api.baseURL}, + "serviceId" = "applications_service", + }, + + + ############################# + #END applications section + ############################# + ############################# + #START products section + ############################# + "products_core" = { + "path" = ${?api.base.path}"/api/v1/products/**", + "url" = ${gsrs.microservice.products.api.baseURL}"/api/v1/products", + "serviceId" = "products_core" + }, + "products_core_alt" = { + "path" = ${?api.base.path}"/api/v1/products(**)/**", + "url" = ${gsrs.microservice.products.api.baseURL}"/api/v1/products", + "serviceId" = "products_core" + }, + "products_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/products/**", + "url" = ${gsrs.microservice.products.api.baseURL}"/service-info/api/v1/products", + "serviceId" = "products_service_info", + }, + "products_service" = { + "path" = ${?api.base.path}"/service/products/**", + "url" = ${gsrs.microservice.products.api.baseURL}, + "serviceId" = "products_service", + }, + + ############################# + #END products section + ############################# + ############################# + #START impurities section + ############################# + "impurities_core" = { + "path" = ${?api.base.path}"/api/v1/impurities/**", + "url" = ${gsrs.microservice.impurities.api.baseURL}"/api/v1/impurities", + "serviceId" = "impurities_core" + }, + "impurities_core_alt" = { + "path" = ${?api.base.path}"/api/v1/impurities(**)/**", + "url" = ${gsrs.microservice.impurities.api.baseURL}"/api/v1/impurities", + "serviceId" = "impurities_core" + }, + "impurities_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/impurities/**", + "url" = ${gsrs.microservice.impurities.api.baseURL}"/service-info/api/v1/impurities", + "serviceId" = "impurities_service_info", + }, + "impurities_service" = { + "path" = ${?api.base.path}"/service/impurities/**", + "url" = ${gsrs.microservice.impurities.api.baseURL}, + "serviceId" = "impurities_service", + }, + + ############################# + #END impurities section + ############################# + ############################# + #START clinical_trials section + ############################# + "clinical_trials_us" = { + "path" = ${?api.base.path}"/api/v1/clinicaltrialsus/**", + "url" = ${gsrs.microservice.clinicaltrialsus.api.baseURL}"/api/v1/clinicaltrialsus", + "serviceId" = "clinical_trials_us" + }, + "clinical_trials_us_alt" = { + "path" = ${?api.base.path}"/api/v1/clinicaltrialsus(**)/**", + "url" = ${gsrs.microservice.clinicaltrialsus.api.baseURL}"/api/v1/clinicaltrialsus", + "serviceId" = "clinical_trials_us" + }, + "clinical_trials_europe" = { + "path" = ${?api.base.path}"/api/v1/clinicaltrialseurope/**", + "url" = ${gsrs.microservice.clinicaltrialseurope.api.baseURL}"/api/v1/clinicaltrialseurope", + "serviceId" = "clinical_trials_europe" + }, + "clinical_trials_europe_alt" = { + "path" = ${?api.base.path}"/api/v1/clinicaltrialseurope(**)/**", + "url" = ${gsrs.microservice.clinicaltrialseurope.api.baseURL}"/api/v1/clinicaltrialseurope", + "serviceId" = "clinical_trials_europe" + }, + "clinical_trials_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/clinical-trials/**", + "url" = ${gsrs.microservice.clinicaltrialsus.api.baseURL}"/service-info/api/v1/clinical-trials", + "serviceId" = "clinical_trials_service_info", + }, + "clinical_trials_service" = { + "path" = ${?api.base.path}"/service/clinical-trials/**", + "url" = ${gsrs.microservice.clinicaltrialsus.api.baseURL}, + "serviceId" = "clinical_trials_service", + }, + ############################# + #END clinical_trials section + ############################# + ############################# + #START discovery section + ############################# + + "discovery_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/discovery/**", + "url" = ${gsrs.microservice.discovery.api.baseURL}"/service-info/api/v1/discovery", + "serviceId" = "discovery_service_info", + }, + "discovery_service" = { + "path" = ${?api.base.path}"/service/discovery/**", + "url" = ${gsrs.microservice.discovery.api.baseURL}, + "serviceId" = "discovery_service", + }, + ############################# + #END discovery section + ############################# + + ############################# + #START adverse-eventpt section + ############################# + "adverseeventpt_core" = { + "path" = ${?api.base.path}"/api/v1/adverseeventpt/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}"/api/v1/adverseeventpt", + "serviceId" = "adverseeventpt_core" + }, + "adverseeventpt_core_alt" = { + "path" = ${?api.base.path}"/api/v1/adverseeventpt(**)/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}"/api/v1/adverseeventpt", + "serviceId" = "adverseeventpt_core" + }, + "adverseeventdme_core" = { + "path" = ${?api.base.path}"/api/v1/adverseeventdme/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}"/api/v1/adverseeventdme", + "serviceId" = "adverseeventdme_core" + }, + "adverseeventdme_core_alt" = { + "path" = ${?api.base.path}"/api/v1/adverseeventdme(**)/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}"/api/v1/adverseeventdme", + "serviceId" = "adverseeventdme_core" + }, + "adverseeventcvm_core" = { + "path" = ${?api.base.path}"/api/v1/adverseeventcvm/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}"/api/v1/adverseeventcvm", + "serviceId" = "adverseeventcvm_core" + }, + "adverseeventcvm_core_alt" = { + "path" = ${?api.base.path}"/api/v1/adverseeventcvm(**)/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}"/api/v1/adverseeventcvm", + "serviceId" = "adverseeventcvm_core" + }, + "adverse_events_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/adverse-events/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}"/service-info/api/v1/adverse-events", + "serviceId" = "adverse_events_service_info", + }, + "adverse_events_service" = { + "path" = ${?api.base.path}"/service/adverse-events/**", + "url" = ${gsrs.microservice.adverseevents.api.baseURL}, + "serviceId" = "adverse_events_service", + }, + + ############################# + #END adverse-eventpt section + ############################# + ############################# + #START SSG4 section + ############################# + "ssg4m_core" = { + "path" = ${?api.base.path}"/api/v1/ssg4m/**", + # The url is a bit different for this one + "url" = ${gsrs.microservice.ssg4m.api.baseURL}"/ssg4m", + "serviceId" = "ssg4m_core" + }, + "ssg4m_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/ssg4m/**", + "url" = ${gsrs.microservice.ssg4m.api.baseURL}"/service-info/api/v1/ssg4m", + "serviceId" = "ssg4m_service_info", + }, + "ssg4m_service" = { + "path" = ${?api.base.path}"/service/ssg4m/**", + "url" = ${gsrs.microservice.ssg4m.api.baseURL}, + "serviceId" = "ssg4m_service", + }, + ############################# + #END SSG4 section + ############################# + + ######################################### + #START invitro-pharmacology section + ######################################### + "invitropharmacology_core" = { + "path" = ${?api.base.path}"/api/v1/invitropharmacology/**", + "url" = ${gsrs.microservice.invitropharmacology.api.baseURL}"/api/v1/invitropharmacology", + "serviceId" = "invitropharmacology_core" + }, + "invitro_pharmacology_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/invitro-pharmacology/**", + "url" = ${gsrs.microservice.invitropharmacology.api.baseURL}"/service-info/api/v1/invitro-pharmacology", + "serviceId" = "invitro_pharmacology_service_info", + }, + "invitro_pharmacology_service" = { + "path" = ${?api.base.path}"/service/invitro-pharmacology/**", + "url" = ${gsrs.microservice.invitropharmacology.api.baseURL}, + "serviceId" = "invitro_pharmacology_service", + }, + + + + ######################################### + #END invitro-pharmacology section + ######################################### + "substances_service_info" = { + "path" = ${?api.base.path}"/service-info/api/v1/substances/**", + "url" = ${gsrs.microservice.substances.api.baseURL}"/service-info/api/v1/substances", + "serviceId" = "substances_service_info", + }, + "substances_service" = { + "path" = ${?api.base.path}"/service/substances/**", + "url" = ${gsrs.microservice.substances.api.baseURL}, + "serviceId" = "substances_service", + }, + + # This makes non-substance urls not work in embedded tomcat + # I do not see something similar in fda branch yaml + "z0010_substances_core" = { + "path" = ${?api.base.path}"/api/v1/**", + "url" = ${gsrs.microservice.substances.api.baseURL}"/api/v1", + "serviceId" = "substances_core", + }, + + "z0020_api_legacy_gsrs_app" = { + "path": "/gsrs/app/**", + "url": ${gsrs.microservice.substances.api.baseURL}, + "serviceId" = "substances" + }, + + # Without this things don't work right in embedded tomcat + # Here we assume API_BASE_PATH is = "" since that is what we do locally + # Why can't we be consistent and always use a base path since the discrepancy + # causes a lot of acrobats to accomodate ???? + # to void this put zuul.routes.z0023_api_legacy_ginas_app_local = null in gateway.conf + + "z0023_api_legacy_ginas_app_local" = { + "path" = "/ginas/app/**", + "url" = ${gsrs.microservice.substances.api.baseURL}, + "serviceId" = "substances_core_local", + }, + + # Without this logout does not work in single tomcat + "z0025_api_legacy_ginas_app" = { + "path" = ${?api.base.path}"/**", + "url" = ${gsrs.microservice.substances.api.baseURL}, + "serviceId" = "substances_core", + }, + + + #fallback anything else goes to substances + "z0030_legacy" = { + "path" = "/**", + "url" = ${gsrs.microservice.substances.api.baseURL}, + "serviceId" = "substances" + } +} + +zuul.sensitiveHeaders = "" + +# do not use API_BASE_PATH with ignored patterns +zuul.ignored-patterns = [ + # Keep actuator first + "/service-info/api/v1/gateway/actuator/**", + "/service-info/api/v1/gateway/**", + "/service/gateway/**" +] + +# Make sure microservices are given enough time to perform tasks. +zuul.host.socket-timeout-millis=300000 + +# Keeps + encoded characters encoded as + +zuul.forceOriginalQueryStringEncoding=true + +spring.servlet.multipart.max-file-size=512MB +spring.servlet.multipart.max-request-size=512MB + +################################################################## +# LEGACY AUTHENTICATION ## +################################################################## + +ix.authentication.allownonauthenticated = ${?AUTH_ALLOW_NONAUTH} +ix.authentication.autoregister = ${?AUTH_AUTOREGISTER} +ix.authentication.autoregisteractive = ${?AUTH_AUTOREGISTERACTIVE} +ix.authentication.sysadmin-email = ${?AUTH_SYSADMIN_EMAIL} +ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} +ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} +ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} +ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +gsrs.serviceinfo.api.endpoints.list.processedRouteConfigs.disabled = false +gsrs.serviceinfo.api.endpoints.list.logProcessedRouteConfigs.disabled = false +gsrs.serviceinfo.api.endpoints.list.actuatorRoutes.disabled = false + + +include "conf/gateway.conf" +include "gateway.conf" diff --git a/embedded/project/volumes/app-data/gateway/conf/application.yml b/embedded/project/volumes/app-data/gateway/conf/application.yml deleted file mode 100644 index 8cc22cb..0000000 --- a/embedded/project/volumes/app-data/gateway/conf/application.yml +++ /dev/null @@ -1,249 +0,0 @@ -api.base.path: ${API_BASE_PATH:/ginas/appx} - -gsrs: - gateway: - server: - addHeaders: - - "Access-Control-Allow-Origin: *" - - "Access-Control-Allow-Methods: POST, GET, PUT, PATCH, DELETE, OPTIONS" - -eureka: - client: - registerWithEureka: true - fetch-registry: true - serviceUrl: - defaultZone: ${EUREKA_SERVER:http://discovery:8761} - -spring: - application: - name: gateway - -debug: true - -zuul: - #this sets sensitiveHeaders to empty list so cookies and auth headers are passed through both ways - sensitiveHeaders: - routes: - ui_beta: - path: /ginas/app/beta/** - url: http://frontend:8082 - serviceId: frontend - stripPrefix: false - ui_ui: - path: /ginas/app/ui/** - url: http://frontend:8082 - serviceId: frontend - stripPrefix: false - - ############################# - #START adverse-events section - ############################# - adverseeventpt: - path: ${api.base.path}/api/v1/adverseeventpt/** - url: http://adverse-events:8086/api/v1/adverseeventpt - serviceId: adverseeventpt - adverseeventpt_alt: - path: ${api.base.path}/api/v1/adverseeventpt(**)/** - url: http://adverse-events:8086/api/v1/adverseeventpt - serviceId: adverseeventpt - adverseeventdme: - path: ${api.base.path}/api/v1/adverseeventdme/** - url: http://adverse-events:8086/api/v1/adverseeventdme - serviceId: adverseeventdme - adverseeventdme_alt: - path: ${api.base.path}/api/v1/adverseeventdme(**)/** - url: http://adverse-events:8086/api/v1/adverseeventdme - serviceId: adverseeventdme - adverseeventcvm: - path: ${api.base.path}/api/v1/adverseeventcvm/** - url: http://adverse-events:8086/api/v1/adverseeventcvm - serviceId: adverseeventcvm - adverseeventcvm_alt: - path: ${api.base.path}/api/v1/adverseeventcvm(**)/** - url: http://adverse-events:8086/api/v1/adverseeventcvm - serviceId: adverseeventcvm - ############################# - #END adverse-events section - ############################# - - ############################# - #START applications section - ############################# - applications_core: - path: ${api.base.path}/api/v1/applications/** - url: http://applications:8083/api/v1/applications - serviceId: applications_core - applications_core_alt: - path: ${api.base.path}/api/v1/applications(**)/** - url: http://applications:8083/api/v1/applications - serviceId: applications_core_alt - applications_all: - path: ${api.base.path}/api/v1/applicationsall/** - url: http://applications:8083/api/v1/applicationsall - serviceId: applications_all - applications_all_alt: - path: ${api.base.path}/api/v1/applicationsall(**)/** - url: http://applications:8083/api/v1/applicationsall - serviceId: applications_all_alt - applications_darrts: - path: ${api.base.path}/api/v1/applicationsdarrts/** - url: http://applications:8083/api/v1/applicationsdarrts - serviceId: applications_darrts - applications_darrts_alt: - path: ${api.base.path}/api/v1/applicationsdarrts(**)/** - url: http://applications:8083/api/v1/applicationsdarrts - serviceId: applications_darrts_alt - applications_searchcount: - path: ${api.base.path}/api/v1/searchcounts/** - url: http://applications:8083/api/v1/searchcounts - serviceId: applications_searchcount - applications_searchcount_alt: - path: ${api.base.path}/api/v1/searchcounts(**)/** - url: http://applications:8083/api/v1/searchcounts - serviceId: applications_searchcount - ############################# - #END applications section - ############################# - - ############################# - #START clinical-trials section - ############################# - clinical_trials_us: - path: ${api.base.path}/api/v1/clinicaltrialsus/** - url: http://clinical-trials:8089/api/v1/clinicaltrialsus - serviceId: clinical_trials_us - clinical_trials_us_alt: - path: ${api.base.path}/api/v1/clinicaltrialsus(**)/** - url: http://clinical-trials:8089/api/v1/clinicaltrialsus - serviceId: clinical_trials_us - clinical_trials_europe: - path: ${api.base.path}/api/v1/clinicaltrialseurope/** - url: http://clinical-trials:8089/api/v1/clinicaltrialseurope - serviceId: clinical_trials_europe - clinical_trials_europe_alt: - path: ${api.base.path}/api/v1/clinicaltrialseurope(**)/** - url: http://clinical-trials:8089/api/v1/clinicaltrialseurope - serviceId: clinical_trials_europe - ############################# - #END clinical-trials section - ############################# - - ############################# - #START impurities section - ############################# - impurities_core: - path: ${api.base.path}/api/v1/impurities/** - url: http://impurities:8085/api/v1/impurities - serviceId: impurities_core - impurities_core_alt: - path: ${api.base.path}/api/v1/impurities(**)/** - url: http://impurities:8085/api/v1/impurities - serviceId: impurities_core - ############################# - #END impurities section - ############################# - ############################# - #START invitro-pharmacology section - ############################# - invitropharmacology_core: - path: ${api.base.path}/api/v1/invitropharmacology/** - url: http://invitro-pharmacology:8090/api/v1/invitropharmacology - serviceId: invitropharmacology_core - - # invitropharmacology_core_alt: - # path: ${api.base.path}/api/v1/invitropharmacology(**)/** - # url: http://invitro-pharmacology:8090/api/v1/invitropharmacology - # serviceId: invitropharmacology_core_alt - ############################# - #END invitro-pharmacology section - ############################# - - - ############################# - #START products section - ############################# - products_core: - path: ${api.base.path}/api/v1/products/** - url: http://products:8084/api/v1/products - serviceId: products_core - products_core_alt: - path: ${api.base.path}/api/v1/products(**)/** - url: http://products:8084/api/v1/products - serviceId: products_core - ############################# - #END products section - ############################# - - ############################# - #START ssg4m section - ############################# - ssg4m_core: - path: ${api.base.path}/api/v1/ssg4m/** - url: http://ssg4m:8088/ssg4m - serviceId: ssg4m_core - ssg4m_core_alt: - path: ${api.base.path}/api/v1/ssg4m(**)/** - url: http://ssg4m:8088/ssg4m - serviceId: ssg4m_core_alt - ############################# - #END ssg4m section - ############################# - - ############################# - #START substances/legacy section - ############################# - - api_legacy_ginas_app: - path: /ginas/app/** - url: http://substances:8080 - stripPrefix: true - api_legacy_gsrs_app: - path: /gsrs/app/** - url: http://substances:8080 - stripPrefix: true - - #fallback anything else goes to substances - legacy: - path: /** - url: http://substances:8080 - serviceId: substances - ############################# - #END substances/legacy section - ############################# - - ignored-patterns: - - "/actuator/health" - -ribbon: - eureka: - enabled: false - -server.port: 9081 -#management.endpoints.web.exposure.include: * -management.endpoints.web.exposure.include: 'routes,filters' - -logging: - level: - org.springframework.cloud.gateway: DEBUG - reactor.netty.http.client: DEBUG - -spring.servlet.multipart.max-file-size: 100MB -spring.servlet.multipart.max-request-size: 100MB - -eureka.client.enabled: false -#Adding high timeout so that GSRS won't time out waiting for response from server. - -ix: - authentication: - allownonauthenticated: true - #set the administrator email here to include their contact info in the error message - #sysadmin-email: admin@example.com - trustheader: true - usernameheader: test-username - -# Make sure microservices are given enoough time to perform tasks. -zuul.host.socket-timeout-millis: 300000 - -#Keeps + encoded characters encoded as + -zuul.forceOriginalQueryStringEncoding: true - diff --git a/embedded/project/volumes/app-data/gateway/conf/gateway-env.conf b/embedded/project/volumes/app-data/gateway/conf/gateway-env.conf new file mode 100644 index 0000000..5681a67 --- /dev/null +++ b/embedded/project/volumes/app-data/gateway/conf/gateway-env.conf @@ -0,0 +1,35 @@ +# API_BASE_PATH="/ginas/app" +# APPLICATION_HOST="http://localhost:8081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +# APPLICATION_HOST_PORT=8081 +# APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} +# APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} +# MS_SERVER_PORT_GATEWAY=8081 +# MS_SERVER_PORT_GATEWAY=${?OVERRIDE_MS_SERVER_PORT_GATEWAY} + +# Use this when running the Frontend service +MS_URL_FRONTEND="http://frontend:8082" + +# # Use these two lines for Frontend development mode, otherwise comment out both lines +# # MS_URL_FRONTEND="http://localhost:4200" +# # GATEWAY_FRONTEND_ROUTE_URL="http://localhost:4200" +APPLICATION_HOST="http://localhost:9081" + +MS_URL_ADVERSE_EVENTS="http://adverse-events:8086" +MS_URL_APPLICATIONS="http://applications:8083" +MS_URL_CLINICAL_TRIALS_US="http://clinical-trials:8089" +MS_URL_CLINICAL_TRIALS_EUROPE="http://clinical-trials:8089" +MS_URL_DISCOVERY="http://discovery:8761" +MS_URL_IMPURITIES="http://impurities:8085" +MS_URL_INVITRO_PHARMACOLOGY="http://invitro-pharmacology:8090" +MS_URL_PRODUCTS="http://products:8084" +MS_URL_SUBSTANCES="http://substances:8080" +MS_URL_SSG4M="http://ssg4m:8088" + +# Can't get discovery to work with gateway in embedded Tomcat +EUREKA_CLIENT_ENABLED_GATEWAY=false +RIBBON_EUREKA_ENABLED_GATEWAY=false + +MS_API_HEADERS_AUTH_USERNAME="admin" +MS_API_HEADERS_AUTH_KEY="cBOnEXAi6EPcHywWzze4" diff --git a/embedded/project/volumes/app-data/impurities/conf/application.conf b/embedded/project/volumes/app-data/impurities/conf/application.conf index a7fa200..d1725ce 100644 --- a/embedded/project/volumes/app-data/impurities/conf/application.conf +++ b/embedded/project/volumes/app-data/impurities/conf/application.conf @@ -8,6 +8,9 @@ include "impurities-env-db.conf" spring.application.name="impurities" +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files server.servlet.context-path="/"${spring.application.name} server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_IMPURITIES} @@ -27,13 +30,23 @@ server.port=${?MS_SERVER_PORT_IMPURITIES} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=false -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true + +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_IMPURITIES} + spring.main.allow-bean-definition-overriding=true +spring.main.allow-circular-references=false +spring.main.allow-circular-references=${?MS_ALLOW_CIRCULAR_REFERENCES_IMPURITIES} + +spring.mvc.pathmatch.matching-strategy=ant_path_matcher + # export path, has a default value for each microservice, but can be overridden. # in practice, it should be the same disk location at the substances export path. # it might make sense to use ${IX_HOME_SUBSTANCES}/exports @@ -53,6 +66,10 @@ management.health.rabbit.enabled: false management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_IMPURITIES} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_IMPURITIES} + ################################################################## # GSRS CONFIGURATION REPORTS ## @@ -64,6 +81,13 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "entity-service-info-endpoints.conf" +include "basic-service-info-endpoints.conf" +gsrs.serviceinfo.api.endpoints.entities = ["impurities"] + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -71,9 +95,16 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_IMPURITIES} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_IMPURITIES} ################################################################## # DATABASE CONNECTION ## @@ -150,6 +181,13 @@ substanceAPI.BaseUrl=${?API_URL} gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} +gsrs.microservice.substances.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_SUBSTANCES} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_SUBSTANCES} +} + gsrs.loopback.port=8080 gsrs.loopback.port=${?APPLICATION_HOST_PORT} gsrs.loopback.port=${?MS_LOOPBACK_PORT_IMPURITIES} @@ -158,28 +196,43 @@ gsrs.loopback.port=${?MS_LOOPBACK_PORT_IMPURITIES} # CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## ################################################################## -gsrs.validators.impurities = [ +# validators + +gsrs.validators.impurities.list.RequiredFieldNonNullValidator = { "validatorClass" = "gov.hhs.gsrs.impurities.validators.RequiredFieldNonNullValidator", "newObjClass" = "gov.hhs.gsrs.impurities.models.Impurities", } -] + +# entityProcessors + # NOT SURE IF WE NEED THIS OR NOT -gsrs.entityprocessors = [ +gsrs.entityprocessors.list.ImpuritiesProcessor = { - "class" = "gov.hhs.gsrs.impurities.Impurities", - "processor" = "gov.hhs.gsrs.impurities.processors.ImpuritiesProcessor" + "entityClassName" = "gov.hhs.gsrs.impurities.Impurities", + "processor" = "gov.hhs.gsrs.impurities.processors.ImpuritiesProcessor", + "order" = 10100 } -] + # NEED THIS TO AVOID CVApi ERROR -gsrs.entityprocessors = [] +gsrs.entityprocessors.list = null + +# exporterfactories + +ix.ginas.export.exporterfactories.impurities.list.ImpuritiesExporterFactory = { + "exporterFactoryClass" = "gov.hhs.gsrs.impurities.exporters.ImpuritiesExporterFactory", + "order" = 10100, + "parameters":{ + } +} +# tasks + +# For now, turn off any scheduled tasks that may be been defined upstream +gsrs.scheduled-tasks.list = null -ix.ginas.export.factories.impurities = [ - "gov.hhs.gsrs.impurities.exporters.ImpuritiesExporterFactory" -] ################################################################## # LEGACY AUTHENTICATION ## @@ -193,6 +246,8 @@ ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} + ################################################################## # CUSTOM CONFIGURATION ## diff --git a/embedded/project/volumes/app-data/impurities/conf/impurities-env.conf b/embedded/project/volumes/app-data/impurities/conf/impurities-env.conf index 6d2dec9..82c6f97 100644 --- a/embedded/project/volumes/app-data/impurities/conf/impurities-env.conf +++ b/embedded/project/volumes/app-data/impurities/conf/impurities-env.conf @@ -1,8 +1,8 @@ # Application host url should have no trailing slash -# APPLICATION_HOST="http://localhost:9081" +# APPLICATION_HOST="http://localhost:8081" # APPLICATION_HOST=${?GATEWAY_HOST} # APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} -# APPLICATION_HOST_PORT=9081 +# APPLICATION_HOST_PORT=8081 # APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} # APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} @@ -13,4 +13,6 @@ MS_SERVLET_CONTEXT_PATH_IMPURITIES="/" # IX_HOME_SUBSTANCES="../substances/ginas.ix" DB_DDL_AUTO=update # API URLS have slash -API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" \ No newline at end of file +API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" + +MS_ALLOW_CIRCULAR_REFERENCES_IMPURITIES=true diff --git a/embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf b/embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf index 5e9c763..0199e34 100644 --- a/embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf +++ b/embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf @@ -8,9 +8,15 @@ include "invitro-pharmacology-env-db.conf" spring.application.name="invitro-pharmacology" -# ??? this doesn't work well with embedded tomcat +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files server.servlet.context-path="/"${spring.application.name} server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_INVITRO_PHARMACOLOGY} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_INVITRO_PHARMACOLOGY} + ix.home=${spring.application.name}".ix" ix.home=${?IX_HOME} @@ -28,12 +34,21 @@ server.port=${?MS_SERVER_PORT_INVITRO_PHARMACOLOGY} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=false -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true -spring.main.allow-bean-definition-overriding=true +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_INVITRO_PHARMACOLOGY} + +pring.main.allow-bean-definition-overriding=true + +spring.main.allow-circular-references=false +spring.main.allow-circular-references=${?MS_ALLOW_CIRCULAR_REFERENCES_INVITRO_PHARMACOLOGY} + +spring.mvc.pathmatch.matching-strategy=ant_path_matcher # export path, has a default value for each microservice, but can be overridden. # in practice, it should be the same disk location at the substances export path. @@ -63,6 +78,13 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "entity-service-info-endpoints.conf" +include "basic-service-info-endpoints.conf" +gsrs.serviceinfo.api.endpoints.entities = ["invitropharmacology"] + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -70,9 +92,18 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_INVITRO_PHARMACOLOGY} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_INVITRO_PHARMACOLOGY} + + ################################################################## # DATABASE CONNECTION ## @@ -149,6 +180,13 @@ substanceAPI.BaseUrl=${?API_URL} gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} +gsrs.microservice.substances.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_SUBSTANCES} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_SUBSTANCES} +} + gsrs.loopback.port=8080 gsrs.loopback.port=${?APPLICATION_HOST_PORT} gsrs.loopback.port=${?MS_LOOPBACK_PORT_INVITRO_PHARMACOLOGY} @@ -163,56 +201,78 @@ substance.invitropharmacology.ivm.substancekey.resolver.touse="entitymanager" # CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## ################################################################## +# validators -gsrs.validators.invitropharmacology = [ - { - "validatorClass" = "gov.hhs.gsrs.invitropharmacology.validators.RequiredFieldNonNullValidator", - "newObjClass" = "gov.hhs.gsrs.invitropharmacology.models.InvitroAssayInformation", - }, +gsrs.validators.invitropharmacology.list.RequiredFieldNonNullValidator = + { + "validatorClass" = "gov.hhs.gsrs.invitropharmacology.validators.RequiredFieldNonNullValidator", + "newObjClass" = "gov.hhs.gsrs.invitropharmacology.models.InvitroAssayInformation", + "order" = 10100 + } +gsrs.validators.invitropharmacology.list.AssayInformationUniqueValidator = { "validatorClass" = "gov.hhs.gsrs.invitropharmacology.validators.AssayInformationUniqueValidator", "newObjClass" = "gov.hhs.gsrs.invitropharmacology.models.InvitroAssayInformation", + "order" = 10200 } -] # NOT SURE IF WE NEED THIS OR NOT -gsrs.entityprocessors = [ - { - "class" = "gov.hhs.gsrs.invitropharmacology.models.InvitroPharmacology", - "processor" = "gov.hhs.gsrs.invitropharmacology.processors.InvitroPharmacologyProcessor" +gsrs.entityprocessors.list.InvitroPharmacologyProcessor = { + "entityClassName" = "gov.hhs.gsrs.invitropharmacology.models.InvitroPharmacology", + "processor" = "gov.hhs.gsrs.invitropharmacology.processors.InvitroPharmacologyProcessor", + "order" = 10100 } -] # NEED THIS TO AVOID CVApi ERROR -gsrs.entityprocessors = [] +gsrs.entityprocessors.list = null -# EXPORTERS -ix.ginas.export.factories.invitropharmacology = [ - "gov.hhs.gsrs.invitropharmacology.exporters.InvitroPharmacologyExporterFactory", - "gov.hhs.gsrs.invitropharmacology.exporters.InvitroPharmacologyTextExporterFactory" -] -# INDEXERS -gsrs.indexers.list=[ - { - "indexer" = "gov.hhs.gsrs.invitropharmacology.indexers.InvitroPharmacologyIndexValueMaker", - "class" = "gov.hhs.gsrs.invitropharmacology.models.InvitroAssayInformation" +# exporterfactories + +ix.ginas.export.exporterfactories.invitropharmacology.list.InvitroPharmacologyExporterFactory = + { + "exporterFactoryClass" = "gov.hhs.gsrs.invitropharmacology.exporters.InvitroPharmacologyExporterFactory", + "order" = 10100, + "parameters":{ + } + } + +ix.ginas.export.exporterfactories.invitropharmacology.list.InvitroPharmacologyTextExporterFactory = + { + "exporterFactoryClass" = "gov.hhs.gsrs.invitropharmacology.exporters.InvitroPharmacologyTextExporterFactory", + "order" = 10200, + "parameters":{ } -] + } + +# indexers + +gsrs.indexers.list.InvitroPharmacologyIndexValueMaker = + { + "indexer" = "gov.hhs.gsrs.invitropharmacology.indexers.InvitroPharmacologyIndexValueMaker", + "class" = "gov.hhs.gsrs.invitropharmacology.models.InvitroAssayInformation", + "order" = 10100 + } + +# tasks + +# For now, turn off any scheduled tasks that may be been defined upstream +gsrs.scheduled-tasks.list = null + ################################################################## # LEGACY AUTHENTICATION ## ################################################################## -# ix.authentication.allownonauthenticated = ${?AUTH_ALLOW_NONAUTH} -# ix.authentication.autoregister = ${?AUTH_AUTOREGISTER} -# ix.authentication.autoregisteractive = ${?AUTH_AUTOREGISTERACTIVE} -# ix.authentication.sysadmin-email = ${?AUTH_SYSADMIN_EMAIL} -# ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} -# ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} -# ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} -# ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} - +ix.authentication.allownonauthenticated = ${?AUTH_ALLOW_NONAUTH} +ix.authentication.autoregister = ${?AUTH_AUTOREGISTER} +ix.authentication.autoregisteractive = ${?AUTH_AUTOREGISTERACTIVE} +ix.authentication.sysadmin-email = ${?AUTH_SYSADMIN_EMAIL} +ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} +ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} +ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} +ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} ################################################################## # CUSTOM CONFIGURATION ## diff --git a/embedded/project/volumes/app-data/products/conf/application.conf b/embedded/project/volumes/app-data/products/conf/application.conf index 3f87d7c..7b3999c 100644 --- a/embedded/project/volumes/app-data/products/conf/application.conf +++ b/embedded/project/volumes/app-data/products/conf/application.conf @@ -32,13 +32,24 @@ server.port=${?MS_SERVER_PORT_PRODUCTS} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=false -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true + +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_PRODUCTS} + spring.main.allow-bean-definition-overriding=true +spring.main.allow-circular-references=false +spring.main.allow-circular-references=${?MS_ALLOW_CIRCULAR_REFERENCES_PRODUCTS} + +spring.mvc.pathmatch.matching-strategy=ant_path_matcher + + # export path, has a default value for each microservice, but can be overridden. # in practice, it should be the same disk location at the substances export path. # it might make sense to use ${IX_HOME_SUBSTANCES}/exports @@ -56,6 +67,10 @@ management.health.rabbit.enabled: false management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_PRODUCTS} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_PRODUCTS} + ################################################################## # GSRS CONFIGURATION REPORTS ## @@ -67,6 +82,14 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "entity-service-info-endpoints.conf" +include "basic-service-info-endpoints.conf" +gsrs.serviceinfo.api.endpoints.entities = ["products"] + + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -74,9 +97,17 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_PRODUCTS} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_PRODUCTS} + ################################################################## # DATABASE CONNECTION ## @@ -112,8 +143,8 @@ spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MA spring.hibernate.show-sql=false product.datasource.url="jdbc:h2:"${ix.h2.base}"/appinxight;AUTO_SERVER=TRUE" - product.datasource.url=${?DB_URL_PRODUCTS} product.datasource.url=${?DB_URL_SRSCID} + product.datasource.url=${?DB_URL_PRODUCTS} product.datasource.driverClassName=org.h2.Driver product.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} product.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} @@ -153,6 +184,13 @@ substanceAPI.BaseUrl=${?API_URL} gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} +gsrs.microservice.substances.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_SUBSTANCES} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_SUBSTANCES} +} + # Substance API Substance Key Type, choose one (UUID, APPROVAL_ID, or BDNUM) substance.linking.keyType.productKeyType="UUID" @@ -167,36 +205,61 @@ gsrs.loopback.port=${?MS_LOOPBACK_PORT_PRODUCTS} # CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## ################################################################## - -gsrs.validators.products = [ +gsrs.validators.products.list.ProductValidator = { "validatorClass" = "gov.hhs.gsrs.products.product.validators.ProductValidator", "newObjClass" = "gov.hhs.gsrs.products.product.models.Product", + "order" = 10100 } -] + # NOT SURE IF WE NEED THIS OR NOT -gsrs.entityprocessors = [ - { - "class" = "gov.hhs.gsrs.products.product.models.Product", - "processor" = "gov.hhs.gsrs.products.product.processors.ProductProcessor" - } -] +gsrs.entityprocessors.list.ProductProcessor = + { + "entityClassName" = "gov.hhs.gsrs.products.product.models.Product", + "processor" = "gov.hhs.gsrs.products.product.processors.ProductProcessor", + "order" = 10100 + } + # NEED THIS TO AVOID CVApi ERROR -gsrs.entityprocessors = [] +# __aw__ I am not sure if this is a case issue, +# but I get a CVApi error related to substance groups processor unless I comment it out in -core.conf +# ... even with this line. +# this line does however, remove the above processor in this application.conf file +gsrs.entityprocessors.list = null -ix.ginas.export.factories.products = [ - "gov.hhs.gsrs.products.product.exporters.ProductExporterFactory", - "gov.hhs.gsrs.products.product.exporters.ProductTextExporterFactory" -] +# exporterfactories + +ix.ginas.export.exporterfactories.products.list.ProductExporterFactory = + { + "exporterFactoryClass" = "gov.hhs.gsrs.products.product.exporters.ProductExporterFactory", + "order" = 10100, + "parameters":{} + } + +ix.ginas.export.exporterfactories.products.list.ProductTextExporterFactory = + { + "exporterFactoryClass" = "gov.hhs.gsrs.products.product.exporters.ProductTextExporterFactory", + "order" = 10200, + "parameters":{} + } + + +# indexers + +gsrs.indexers.list.ProductSubstanceIndexValueMaker = + { + "indexer" = "gov.hhs.gsrs.products.product.indexers.ProductSubstanceIndexValueMaker", + "class" = "gov.hhs.gsrs.products.product.models.Product", + "order" = 10100 + } + +# tasks + +# For now, turn off any scheduled tasks that may be been defined upstream +gsrs.scheduled-tasks.list = null -gsrs.indexers.list=[ - { - "indexer" = "gov.hhs.gsrs.products.product.indexers.ProductSubstanceIndexValueMaker", - "class" = "gov.hhs.gsrs.products.product.models.Product" - } -] ################################################################## # LEGACY AUTHENTICATION ## @@ -210,6 +273,7 @@ ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} ################################################################## # CUSTOM CONFIGURATION ## diff --git a/embedded/project/volumes/app-data/products/conf/products-env.conf b/embedded/project/volumes/app-data/products/conf/products-env.conf index fc8662b..413062a 100644 --- a/embedded/project/volumes/app-data/products/conf/products-env.conf +++ b/embedded/project/volumes/app-data/products/conf/products-env.conf @@ -6,6 +6,7 @@ # APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} # APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} # 8084 + MS_SERVER_PORT_PRODUCTS=${SERVER_PORT} MS_LOOPBACK_PORT_PRODUCTS=${SERVER_PORT} MS_SERVLET_CONTEXT_PATH_PRODUCTS="/" @@ -13,4 +14,6 @@ MS_SERVLET_CONTEXT_PATH_PRODUCTS="/" # IX_HOME_SUBSTANCES="../substances/ginas.ix" DB_DDL_AUTO=update # API URLS have slash -API_BASE_URL_SUBSTANCES="${APPLICATION_HOST}/" \ No newline at end of file +API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" + +MS_ALLOW_CIRCULAR_REFERENCES_PRODUCTS=true diff --git a/embedded/project/volumes/app-data/ssg4m/conf/application.conf b/embedded/project/volumes/app-data/ssg4m/conf/application.conf index 2078c62..f6d549b 100644 --- a/embedded/project/volumes/app-data/ssg4m/conf/application.conf +++ b/embedded/project/volumes/app-data/ssg4m/conf/application.conf @@ -8,7 +8,9 @@ include "ssg4m-env-db.conf" spring.application.name="ssg4m" -# ??? this doesn't work well with embedded tomcat +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files server.servlet.context-path="/"${spring.application.name} server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_SSG4M} @@ -28,11 +30,15 @@ server.port=${?MS_SERVER_PORT_SSG4M} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=false -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_SSG4M} + spring.main.allow-bean-definition-overriding=true # export path, has a default value for each microservice, but can be overridden. @@ -52,6 +58,10 @@ management.health.rabbit.enabled: false management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_SSG4M} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_SSG4M} + ################################################################## # GSRS CONFIGURATION REPORTS ## @@ -63,6 +73,14 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +# include "entity-service-info-endpoints.conf" ?? +include "basic-service-info-endpoints.conf" +# gsrs.serviceinfo.api.endpoints.entities = ["ssg4m"] ?? + + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -70,9 +88,16 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_SSG4M} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_SSG4M} ################################################################## # DATABASE CONNECTION ## @@ -123,6 +148,13 @@ substanceAPI.BaseUrl=${?API_URL} gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} +gsrs.microservice.substances.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_SUBSTANCES} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_SUBSTANCES} +} + gsrs.loopback.port=8080 gsrs.loopback.port=${?APPLICATION_HOST_PORT} gsrs.loopback.port=${?MS_LOOPBACK_PORT_SSG4M} @@ -147,6 +179,7 @@ ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} ################################################################## # CUSTOM CONFIGURATION ## diff --git a/embedded/project/volumes/app-data/substances/conf/application.conf b/embedded/project/volumes/app-data/substances/conf/application.conf index 5db3774..e1c4790 100644 --- a/embedded/project/volumes/app-data/substances/conf/application.conf +++ b/embedded/project/volumes/app-data/substances/conf/application.conf @@ -1,16 +1,19 @@ include "substances-core.conf" include "substances-env.conf" include "substances-env-db.conf" +include "substances-import.conf" ################################################################## # MAIN CONFIGURATION ## ################################################################## -CONFIG_TEST_APPL_CONF="This is substances application.conf" - spring.application.name="substances" -# ??? this doesn't work well with embedded tomcat +gsrs.serviceinfo.api.endpoints.entities = ["substances", "vocabularies"] + +# The default assumes single Tomcat where the context path is "/" + the service name +# In embedded Tomcat you'll probably override with using env value "/" +# as we do by default in the *-env.conf files server.servlet.context-path="/"${spring.application.name} server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_SUBSTANCES} @@ -26,17 +29,25 @@ server.port=${?MS_SERVER_PORT_SUBSTANCES} # Secure session off for dev, but if using HTTPS it's better to have it on gsrs.sessions.sessionSecure=false +gsrs.sessions.sessionSecure=${?GSRS_SESSIONS_SESSION_SECURE} gsrs.substances.molwitch.enabled=true -# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE -#debug=true + +# PUT YOUR SOME SERVICE SPECIFIC ADDITIONS HERE + +debug=false +debug=${?DEBUG_SUBSTANCES} + spring.main.allow-bean-definition-overriding=true # export path ix.ginas.export.path=./exports ix.ginas.export.path=${?MS_EXPORT_PATH_SUBSTANCES} +# download path +admin.panel.download.path=${?MS_ADMIN_PANEL_DOWNLOAD_PATH_SUBSTANCES} + gsrs.substance.structures.saltFilePath=${?MS_SALT_PATH_SUBSTANCES} # maximum file upload size @@ -48,7 +59,7 @@ spring.servlet.multipart.max-request-size=512MB # ix.structure-standardizer = "ix.core.chem.LychiStandardizer" # For CDK -ffix.structure-hasher = "ix.core.chem.InchiStructureHasher" +ix.structure-hasher = "ix.core.chem.InchiStructureHasher" ix.structure-standardizer = "ix.core.chem.InchiStandardizer" ################################################################## @@ -59,6 +70,9 @@ management.health.rabbit.enabled: false management.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_SUBSTANCES} +management.endpoint.health.show-details="NEVER" +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS} +management.endpoint.health.show-details=${?MS_ACTUATOR_SHOW_HEALTH_DETAILS_SUBSTANCES} ################################################################## # GSRS CONFIGURATION REPORTS ## @@ -70,6 +84,15 @@ gsrs.extensions.config.report.api.enabled=${?EXTENSIONS_CONFIG_REPORT_API_ENABLE gsrs.services.config.properties.report.api.enabled=${?CONFIG_PROPERTIES_REPORT_API_ENABLED} gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_LOG_ENABLED} + +################################################################## +# ENDPOINTS CONFIGURATION ## +################################################################## +include "entity-service-info-endpoints.conf" +include "basic-service-info-endpoints.conf" +gsrs.serviceinfo.api.endpoints.entities = ["substances", "vocabularies"] + + ################################################################## # EUREKA SETTINGS ## ################################################################## @@ -77,9 +100,17 @@ gsrs.services.config.properties.report.log.enabled=${?CONFIG_PROPERTIES_REPORT_L eureka.instance.hostname=${spring.application.name} eureka.client.serviceUrl.defaultZone="http://localhost:8761/eureka" eureka.client.serviceUrl.defaultZone=${?EUREKA_SERVICE_URL} -#turn off eureka for now + eureka.client.enabled=false eureka.client.enabled=${?EUREKA_CLIENT_ENABLED} +ribbon.eureka.enabled=false +ribbon.eureka.enabled=${?RIBBON_EUREKA_ENABLED} + +eureka.instance.statusPageUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.statusPageUrl=${?EUREKA_STATUS_PAGE_URL_SUBSTANCES} +eureka.instance.healthCheckUrl="${application.host}/ginas/app${management.endpoints.web.base-path}/health" +eureka.instance.healthCheckUrl=${?EUREKA_HEALTH_CHECK_URL_SUBSTANCES} + ################################################################## # DATABASE CONNECTION ## @@ -119,17 +150,52 @@ spring.hibernate.show-sql=false substanceAPI.BaseUrl="http://localhost:8080/" substanceAPI.BaseUrl=${?API_URL} + gsrs.microservice.applications.api.baseURL=${substanceAPI.BaseUrl}"applications" gsrs.microservice.applications.api.baseURL=${?API_BASE_URL_APPLICATIONS} + gsrs.microservice.clinicaltrialsus.api.baseURL=${substanceAPI.BaseUrl}"clinical-trials" gsrs.microservice.clinicaltrialsus.api.baseURL=${?API_BASE_URL_CLINICAL_TRIALS} -gsrs.microservice.clinicaltrialsus.api.baseURL=${?API_BASE_URL__CLINICAL_TRIALS_US} +gsrs.microservice.clinicaltrialsus.api.baseURL=${?API_BASE_URL_CLINICAL_TRIALS_US} + gsrs.microservice.clinicaltrialseurope.api.baseURL=${substanceAPI.BaseUrl}"clinical-trials" gsrs.microservice.clinicaltrialseurope.api.baseURL=${?API_BASE_URL_CLINICAL_TRIALS} gsrs.microservice.clinicaltrialseurope.api.baseURL=${?API_BASE_URL_CLINICAL_TRIALS_EUROPE} + gsrs.microservice.products.api.baseURL=${substanceAPI.BaseUrl}"products" gsrs.microservice.products.api.baseURL=${?API_BASE_URL_PRODUCTS} +gsrs.microservice.applications.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_APPLICATIONS} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_APPLICATIONS} +} + +gsrs.microservice.clinicaltrialsus.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_CLINICAL_TRIALS} + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_CLINICAL_TRIALS_US} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_CLINICAL_TRIALS} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_CLINICAL_TRIALS_US} +} +gsrs.microservice.clinicaltrialseurope.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_CLINICAL_TRIALS} + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_CLINICAL_TRIALS_EUROPE} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_CLINICAL_TRIALS} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_CLINICAL_TRIALS_EUROPE} +} + +gsrs.microservice.products.api.headers= { + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME}, + "auth-username" = ${?MS_API_HEADERS_AUTH_USERNAME_PRODUCTS} + "auth-key"=${?MS_API_HEADERS_AUTH_KEY}, + "auth-key"=${?MS_API_HEADERS_AUTH_KEY_PRODUCTS} +} + gsrs.loopback.port=8080 gsrs.loopback.port=${?APPLICATION_HOST_PORT} gsrs.loopback.port=${?MS_LOOPBACK_PORT_SUBSTANCES} @@ -138,8 +204,6 @@ gsrs.application.ivm.search.max.fetch = "20000" gsrs.product.ivm.search.max.fetch = "20000" gsrs.clinicaltrial.ivm.search.max.fetch = "20000" -gsrs.substance.structures.saltFilePath=salt_data_public.tsv - ################################################################## # CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## ################################################################## @@ -149,20 +213,109 @@ ix.ginas.approvalIdGenerator.generatorClass=${?APPROVALID_GENERATOR} ix.ginas.approvalIdGenerator.parameters.name=${?APPROVALID_NAME} ix.ginas.approvalIdGenerator.parameters.codeSystem=${?APPROVALID_CODESYSTEM} -# __aw__ can we remove from MS since already in -core.conf? -ix.ginas.export.settingsPresets.substances= { - "PUBLIC_DATA_ONLY": { - "owner":"admin", - "scrubberSettings": { - "removeAllLocked":true - } - }, - "ALL_DATA": { - "owner":"admin", - "scrubberSettings":null - } + +# indexers + +# These "cross indexers" make calls to other non-substance services. +# If using the public release gsrs3-main-deployment, first edit the +# substances/pom.xml file and uncomment the gsrs-fda-substance-extension +# dependency. +# Use substances-env.conf/environment variables to assure that disabled=false +# Also make sure they are not disabled at the bottom of this file (set to null). +# Comment-out those lines as needed. + +gsrs.indexers.list.SubstanceApplicationIndexValueMaker = +{ + "indexer" = "fda.gsrs.substance.indexers.SubstanceApplicationIndexValueMaker", + "order" = 5000, + "disabled" = true + "disabled" = ${?MS_DISABLE_CROSS_INDEX_APPLICATIONS_SUBSTANCES} +} +gsrs.indexers.list.SubstanceProductIndexValueMaker = +{ + "indexer" = "fda.gsrs.substance.indexers.SubstanceProductIndexValueMaker", + "order" = 5100, + "disabled" = true + "disabled" = ${?MS_DISABLE_CROSS_INDEX_PRODUCTS_SUBSTANCES} } +gsrs.indexers.list.SubstanceClinicalUSTrialIndexValueMaker = +{ + "indexer" = "fda.gsrs.substance.indexers.SubstanceClinicalUSTrialIndexValueMaker", + "order" = 5200, + "disabled" = true + "disabled" = ${?MS_DISABLE_CROSS_INDEX_CLINICAL_TRIALS_US_SUBSTANCES} +} +gsrs.indexers.list.SubstanceClinicalEuropeTrialIndexValueMaker = +{ + "indexer" = "fda.gsrs.substance.indexers.SubstanceClinicalEuropeTrialIndexValueMaker", + "order" = 5300, + "disabled" = true + "disabled" = ${?MS_DISABLE_CROSS_INDEX_CLINICAL_TRIALS_EUROPE_SUBSTANCES} +} + +# exporters + +# These "fda extension exporters" may be enabled. +# If using the public release gsrs3-main-deployment, first edit the +# substances/pom.xml file and uncomment the gsrs-fda-substance-extension +# dependency. +# Use substances-env.conf/environment variables to assure that disabled=false +# Also make sure they are not disabled at the bottom of this file (set to null). +# Comment-out those lines as needed. + +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedApplicationsExporterFactory = + { + "exporterFactoryClass" : "fda.gsrs.substance.exporters.ExcelSubstanceRelatedApplicationsExporterFactory", + "order" = 5300, + "disabled" = true + "disabled" = ${?MS_DISABLE_EXCEL_SUBSTANCE_RELATED_APPLICATIONS_EXPORTER_FACTORY} + } + +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedProductsExporterFactory = + { + "exporterFactoryClass" : "fda.gsrs.substance.exporters.ExcelSubstanceRelatedProductsExporterFactory", + "order" = 5400, + "disabled" = true + "disabled" = ${?MS_DISABLE_EXCEL_SUBSTANCE_RELATED_PRODUCTS_EXPORTER_FACTORY} + + } + +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedClinicalTrialsUSExporterFactory = + { + "exporterFactoryClass" : "fda.gsrs.substance.exporters.ExcelSubstanceRelatedClinicalTrialsUSExporterFactory", + "order" = 5600, + "disabled" = true + "disabled" = ${?MS_DISABLE_EXCEL_SUBSTANCE_RELATED_CLINICAL_TRIALS_US_EXPORTER_FACTORY} + } + +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedClinicalTrialsEuropeExporterFactory = + { + "exporterFactoryClass" : "fda.gsrs.substance.exporters.ExcelSubstanceRelatedClinicalTrialsEuropeExporterFactory", + "order" = 5700, + "disabled" = true + "disabled" = ${?MS_DISABLE_EXCEL_SUBSTANCE_RELATED_CLINICAL_TRIALS_EUROPE_EXPORTER_FACTORY} + } + + +# special adjustments when not using gsrs-fda-substance-extension + +# If you remove these lines and you DON'T gsrs-fda-substance-extension as a dependency you will get errors. +# Remove or comment-out these lines as needed if you use gsrs-fda-substance-extension as a dependency +# These lines turn off any configuration for these items that may be included above in this file or in upstream modules. +gsrs.indexers.list.SubstanceApplicationIndexValueMaker = null +gsrs.indexers.list.SubstanceProductIndexValueMaker = null +gsrs.indexers.list.SubstanceClinicalUSTrialIndexValueMaker = null +gsrs.indexers.list.SubstanceClinicalEuropeTrialIndexValueMaker = null +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedApplicationsExporterFactory = null +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedProductsExporterFactory = null +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedClinicalTrialsUSExporterFactory = null +ix.ginas.export.exporterfactories.substances.list.ExcelSubstanceRelatedClinicalTrialsEuropeExporterFactory = null +ix.ginas.export.exporterfactories.substances.list.FDANameExporterFactory=null +ix.ginas.export.exporterfactories.substances.list.FDACodeExporterFactory=null +ix.ginas.export.exporterfactories.substances.list.SRSLegacyDictionaryExporterFactory=null +ix.ginas.export.exporterfactories.substances.list.SPLValidatorXMLExporterFactory=null + ################################################################## # LEGACY AUTHENTICATION ## ################################################################## @@ -175,10 +328,13 @@ ix.authentication.trustheader = ${?AUTH_TRUST_HEADER} ix.authentication.usernameheader = ${?AUTH_USERNAME_HEADER} ix.authentication.useremailheader = ${?AUTH_EMAIL_HEADER} ix.authentication.userrolesheader = ${?AUTH_ROLES_HEADER} +ix.authentication.logheaders = ${?AUTH_LOG_HEADERS} ################################################################## # CUSTOM CONFIGURATION ## ################################################################## + + include "conf/substances.conf" include "substances.conf" diff --git a/embedded/project/volumes/app-data/substances/conf/salt_data_public.tsv b/embedded/project/volumes/app-data/substances/conf/salt_data_public.tsv new file mode 100644 index 0000000..cda7922 --- /dev/null +++ b/embedded/project/volumes/app-data/substances/conf/salt_data_public.tsv @@ -0,0 +1,61 @@ +InChI Key SMILES Occurrences +VEXZGXHMUGYJMC-UHFFFAOYSA-N Cl 7206 +FKNQFGJONOIPTF-UHFFFAOYSA-N [Na+] 3488 +XLYOFNOQVPJJNP-UHFFFAOYSA-N O 1608 +NPYPAHLBTDXSSS-UHFFFAOYSA-N [K+] 811 +XLYOFNOQVPJJNP-UHFFFAOYSA-M [OH-] 791 +CPELXLSAUQHCOX-UHFFFAOYSA-N Br 645 +BHPQYMZQTOCNFJ-UHFFFAOYSA-N [Ca+2] 526 +QAOWNCQODCNURD-UHFFFAOYSA-N OS(=O)(=O)O 510 +AFVFQIVMOAPDHO-UHFFFAOYSA-N CS(=O)(=O)O 350 +XMBWDFGMSWQBCA-UHFFFAOYSA-N I 326 +JLVVSXFLKOJNIY-UHFFFAOYSA-N [Mg+2] 316 +QGZKDVFQNNGYKY-UHFFFAOYSA-N N 300 +QTBSBXVTEAMEQO-UHFFFAOYSA-N CC(=O)O 280 +GPRLSGONYQIRFK-UHFFFAOYSA-N [H+] 277 +REDXJYDRNCIFBQ-UHFFFAOYSA-N [Al+3] 270 +VZCYOOQTPOCHFL-UPHRSURJSA-N OC(=O)/C=C\C(O)=O 259 +PTFCDOFLOPIGGS-UHFFFAOYSA-N [Zn+2] 241 +VEXZGXHMUGYJMC-UHFFFAOYSA-M [Cl-] 240 +FEWJPZIEWOKRBE-JCYAYHJZSA-N [C@@H]([C@H](C(=O)O)O)(C(=O)O)O 214 +NBIIXXVUZAFLBC-UHFFFAOYSA-N OP(=O)(O)O 212 +JPVYNHNXODAKFH-UHFFFAOYSA-N [Cu+2] 172 +VZCYOOQTPOCHFL-OWOJBTEDSA-N OC(=O)/C=C/C(O)=O 164 +KRKNYBCHXYNGOX-UHFFFAOYSA-N C(C(=O)O)C(CC(=O)O)(C(=O)O)O 162 +VTLYFUHAOXGGBS-UHFFFAOYSA-N [Fe+3] 139 +HBBGRARXTFLTSG-UHFFFAOYSA-N [Li+] 139 +JZMJDSHXVKJFKW-UHFFFAOYSA-M COS(=O)(=O)[O-] 126 +CWYNVVGOOAEACU-UHFFFAOYSA-N [Fe+2] 124 +QAOWNCQODCNURD-UHFFFAOYSA-L O=S(=O)([O-])[O-] 120 +JOXIMZWYDAKGHI-UHFFFAOYSA-N Cc1ccc(cc1)S(=O)(=O)O 116 +QTBSBXVTEAMEQO-UHFFFAOYSA-M CC(=O)[O-] 110 +KDYFGRWQOYBRFD-UHFFFAOYSA-N C(CC(=O)O)C(=O)O 99 +MUBZPKHOEPUJKR-UHFFFAOYSA-N C(=O)(C(=O)O)O 98 +NHNBFGGVMKEFGY-UHFFFAOYSA-N [N+](=O)([O-])[O-] 97 +XDFCIPNJCBUZJN-UHFFFAOYSA-N [Ba+2] 95 +KRHYYFGTRYWZRS-UHFFFAOYSA-N F 90 +WAEMQWOKJMHJLA-UHFFFAOYSA-N [Mn+2] 85 +GSEJCLTVZPLZKY-UHFFFAOYSA-N C(CO)N(CCO)CCO 80 +GRYLNZFGIOXLOG-UHFFFAOYSA-N [N+](=O)(O)[O-] 77 +AHKZTVQIVOEVFO-UHFFFAOYSA-N [O-2] 72 +BVKZGUZCCUSVTD-UHFFFAOYSA-L C(=O)([O-])[O-] 71 +LELOWRISYMNNSU-UHFFFAOYSA-N C#N 70 +XMBWDFGMSWQBCA-UHFFFAOYSA-M [I-] 69 +QGZKDVFQNNGYKY-UHFFFAOYSA-O [NH4+] 65 +XLJKHNWPARRRJB-UHFFFAOYSA-N [Co+2] 64 +FOIXSVOLVBLSDH-UHFFFAOYSA-N [Ag+] 63 +CPELXLSAUQHCOX-UHFFFAOYSA-M [Br-] 63 +KRKNYBCHXYNGOX-UHFFFAOYSA-K C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 62 +JDIBGQFKXXXXPN-UHFFFAOYSA-N [Bi+3] 61 +KDXKERNSBIXSRK-YFKPBYRVSA-N C(CCN)C[C@@H](C(=O)O)N 59 +BFGKITSFLPAWGI-UHFFFAOYSA-N [Cr+3] 59 +RVPVRDXYQKGNMQ-UHFFFAOYSA-N [Pb+2] 59 +HRGDZIGMBDGFTC-UHFFFAOYSA-N [Pt+2] 59 +PWYYWQHXAPXYMF-UHFFFAOYSA-N [Sr+2] 58 +HZAXFHJVJLSVMW-UHFFFAOYSA-N C(CO)N 57 +JVTAAEKCZFNVCJ-UHFFFAOYSA-N CC(C(=O)O)O 57 +ZBCBWPMODOFKDW-UHFFFAOYSA-N C(CO)NCCO 56 +ODKSFYDXXFIFQN-BYPYZUCNSA-N C(C[C@@H](C(=O)O)N)CNC(=N)N 54 +MBBZMMPHUWSWHV-BDVNFPICSA-N CNC[C@@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O 52 +GBNDTYKAOXLLID-UHFFFAOYSA-N [Zr+4] 51 +YGSDEFSMJLZEOE-UHFFFAOYSA-N c1ccc(c(c1)C(=O)O)O 51 diff --git a/embedded/project/volumes/app-data/substances/conf/substances-env.conf b/embedded/project/volumes/app-data/substances/conf/substances-env.conf index b9410d5..177f68d 100644 --- a/embedded/project/volumes/app-data/substances/conf/substances-env.conf +++ b/embedded/project/volumes/app-data/substances/conf/substances-env.conf @@ -19,5 +19,14 @@ API_BASE_URL_CLINICAL_TRIALS_EUROPE=${APPLICATION_HOST}"/" API_BASE_URL_PRODUCTS=${APPLICATION_HOST}"/" MS_SERVLET_CONTEXT_PATH_SUBSTANCES="/" - MS_SALT_PATH_SUBSTANCES=salt_data_public.tsv + +MS_DISABLE_CROSS_INDEX_APPLICATIONS_SUBSTANCES=true +MS_DISABLE_CROSS_INDEX_PRODUCTS_SUBSTANCES=true +MS_DISABLE_CROSS_INDEX_CLINICAL_TRIALS_US_SUBSTANCES=true +MS_DISABLE_CROSS_INDEX_CLINICAL_TRIALS_EUROPE_SUBSTANCES=true + +MS_DISABLE_EXCEL_SUBSTANCE_RELATED_APPLICATIONS_EXPORTER_FACTORY=true +MS_DISABLE_EXCEL_SUBSTANCE_RELATED_PRODUCTS_EXPORTER_FACTORY=true +MS_DISABLE_EXCEL_SUBSTANCE_RELATED_CLINICAL_TRIALS_US_EXPORTER_FACTORY=true +MS_DISABLE_EXCEL_SUBSTANCE_RELATED_CLINICAL_TRIALS_EUROPE_EXPORTER_FACTORY=true