diff --git a/embedded/README.md b/embedded/README.md new file mode 100644 index 0000000..50f4c6e --- /dev/null +++ b/embedded/README.md @@ -0,0 +1,8 @@ + +# Docker GSRS embedded deployments + +This docker recipe is meant to help with testing. + +For more information: + +[project/docker-source/docker-notes.md](project/docker-source/docker-notes.md) diff --git a/embedded/project/README.md b/embedded/project/README.md new file mode 100644 index 0000000..a151094 --- /dev/null +++ b/embedded/project/README.md @@ -0,0 +1,5 @@ + +# Notes: + +[./docker-source/docker-notes.md](./docker-source/docker-notes.md) + diff --git a/embedded/project/blank.env-db.conf.tar.gz b/embedded/project/blank.env-db.conf.tar.gz new file mode 100644 index 0000000..104d032 Binary files /dev/null and b/embedded/project/blank.env-db.conf.tar.gz differ diff --git a/embedded/project/docker-source/adverse-events/Dockerfile b/embedded/project/docker-source/adverse-events/Dockerfile new file mode 100644 index 0000000..a7df4a0 --- /dev/null +++ b/embedded/project/docker-source/adverse-events/Dockerfile @@ -0,0 +1,40 @@ +# Docker mvn 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 && \ + git clone --branch $SUBSTANCES_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-substances.git && \ + git clone --branch $ADVERSE_EVENTS_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-adverse-events.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-adverse-events && \ + # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ + mvn clean -U install -DskipTests; \ +fi + +RUN rm -rf src/main/resources/application.conf && \ + rm -rf src/main/resources/adverse-events-env.conf && \ + rm -rf src/main/resources/adverse-events-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 + +RUN mkdir -p /app/data/adverse-events/conf +RUN mkdir -p /app/data/adverse-events/classes + +WORKDIR /app/data/adverse-events +EXPOSE 8084 +ENTRYPOINT ["java", "-cp", "/target/adverse-events.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/applications/Dockerfile b/embedded/project/docker-source/applications/Dockerfile new file mode 100644 index 0000000..786f970 --- /dev/null +++ b/embedded/project/docker-source/applications/Dockerfile @@ -0,0 +1,40 @@ +# Docker mvn 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 && \ + git clone --branch $SUBSTANCES_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-substances.git && \ + git clone --branch $APPLICATIONS_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-drug-applications.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-drug-applications && \ + # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ + mvn clean -U install -DskipTests; \ +fi + +RUN rm -rf src/main/resources/application.conf && \ + rm -rf src/main/resources/applications-env.conf && \ + rm -rf src/main/resources/applications-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 + +RUN mkdir -p /app/data/applications/conf +RUN mkdir -p /app/data/applications/classes + +WORKDIR /app/data/applications +EXPOSE 8084 +ENTRYPOINT ["java", "-cp", "/target/applications.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/clinical-trials/Dockerfile b/embedded/project/docker-source/clinical-trials/Dockerfile new file mode 100644 index 0000000..9561874 --- /dev/null +++ b/embedded/project/docker-source/clinical-trials/Dockerfile @@ -0,0 +1,39 @@ +# Docker mvn 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 CLINICAL_TRIALS_MODULE_BRANCH=master + +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 $CLINICAL_TRIALS_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-clinical-trials.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-clinical-trials && \ + # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ + mvn clean -U install -DskipTests; \ +fi + +RUN rm -rf src/main/resources/application.conf && \ + rm -rf src/main/resources/clinical-trials-env.conf && \ + rm -rf src/main/resources/clinical-trials-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 + +RUN mkdir -p /app/data/clinical-trials/conf +RUN mkdir -p /app/data/clinical-trials/classes + +WORKDIR /app/data/clinical-trials +EXPOSE 8089 +ENTRYPOINT ["java", "-cp", "/target/clinical-trials.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/discovery/Dockerfile b/embedded/project/docker-source/discovery/Dockerfile new file mode 100644 index 0000000..ead574f --- /dev/null +++ b/embedded/project/docker-source/discovery/Dockerfile @@ -0,0 +1,16 @@ +# Docker mvn build +FROM maven:3.6.3-jdk-11 as build + +COPY . . + +RUN 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 + +RUN mkdir -p /app/discovery +RUN mkdir -p /app/data/discovery/conf +RUN mkdir -p /app/data/discovery/classes +WORKDIR /app/data/discovery +EXPOSE 8761 +ENTRYPOINT ["java", "-cp", "/target/discovery.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/docker-compose.yml b/embedded/project/docker-source/docker-compose.yml new file mode 100644 index 0000000..c5f32b1 --- /dev/null +++ b/embedded/project/docker-source/docker-compose.yml @@ -0,0 +1,219 @@ +version: '3' +services: + adverse-events: + container_name: adverse-events-emb + entrypoint: ["java", "-cp", "/target/adverse-events.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + environment: + APPLICATION_HOST: http://gateway:9081 + APPLICATION_HOST_PORT: 9081 + EUREKA_SERVICE_URL: http://discovery:8761/eureka + IX_HOME: /app/data/adverse-events/ginas.ix + IX_HOME_SUBSTANCES: /app/data/substances/ginas.ix + SERVER_PORT: 8086 + image: gsrs3/gsrs-emb-docker-adverse-events:0.0.1-SNAPSHOT + ports: + - 8086:8086 + volumes: + - ../volumes/app-data:/app/data + applications: + container_name: applications-emb + entrypoint: ["java", "-cp", "/target/applications.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + 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/applications/ginas.ix + IX_HOME_SUBSTANCES: /app/data/substances/ginas.ix + SERVER_PORT: 8083 + + image: gsrs3/gsrs-emb-docker-applications:0.0.1-SNAPSHOT + volumes: + - ../volumes/app-data:/app/data + ports: + - 8083:8083 + clinical-trials: + container_name: clinical-trials-emb + 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: + 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/clinical-trials/ginas.ix + IX_HOME_SUBSTANCES: /app/data/substances/ginas.ix + SERVER_PORT: 8089 + volumes: + - ../volumes/app-data:/app/data + ports: + - 8089:8089 + discovery: + container_name: discovery-emb + entrypoint: ["java", "-cp", "/target/discovery.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + environment: + SERVER_PORT: 8761 + image: gsrs3/gsrs-emb-docker-discovery:0.0.1-SNAPSHOT + ports: + - 8761:8761 + frontend: + container_name: frontend-emb + entrypoint: ["java", "-cp", "/target/frontend.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + environment: + # Servlet context does not work from frontend-env.conf + APPLICATION_HOST: http://gateway:9081 + APPLICATION_HOST_PORT: 9081 + EUREKA_SERVICE_URL: http://discovery:8761/eureka + 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 + 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: + API_BASE_PATH: /ginas/app + APPLICATION_HOST: http://gateway:9081 + APPLICATION_HOST_PORT: 9081 + EUREKA_SERVICE_URL: http://discovery:8761/eureka + SERVER_PORT: 9081 + impurities: + container_name: impurities-emb + entrypoint: ["java", "-cp", "/target/impurities.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + 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/impurities/ginas.ix + IX_HOME_SUBSTANCES: /app/data/substances/ginas.ix + SERVER_PORT: 8085 + image: gsrs3/gsrs-emb-docker-impurities:0.0.1-SNAPSHOT + volumes: + - ../volumes/app-data:/app/data + ports: + - 8085:8085 + invitro-pharmacology: + container_name: invitro-pharmacology-emb + entrypoint: ["java", "-cp", "/target/invitro-pharmacology.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + 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/invitro-pharmacology/ginas.ix + IX_HOME_SUBSTANCES: /app/data/substances/ginas.ix + SERVER_PORT: 8090 + image: gsrs3/gsrs-emb-docker-invitro-pharmacology:0.0.1-SNAPSHOT + volumes: + - ../volumes/app-data:/app/data + ports: + - 8090:8090 + products: + container_name: products-emb + entrypoint: ["java", "-cp", "/target/products.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + 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/products/ginas.ix + IX_HOME_SUBSTANCES: /app/data/substances/ginas.ix + SERVER_PORT: 8084 + image: gsrs3/gsrs-emb-docker-products:0.0.1-SNAPSHOT + volumes: + - ../volumes/app-data:/app/data + ports: + - 8084:8084 + ssg4m: + container_name: ssg4m-emb + entrypoint: ["java", "-cp", "/target/ssg4m.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + 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/ssg4m/ginas.ix + SERVER_PORT: 8088 + image: gsrs3/gsrs-emb-docker-ssg4m:0.0.1-SNAPSHOT + volumes: + - ../volumes/app-data:/app/data + ports: + - 8088:8088 + substances: + container_name: substances-emb + entrypoint: ["java", "-cp", "/target/substances.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + 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/substances/ginas.ix + SERVER_PORT: 8080 + # - JAVA_OPTS= + # -Dix.home=/app/data/ginas.ix + # depends_on: + # - discovery + image: gsrs3/gsrs-emb-docker-substances:0.0.1-SNAPSHOT + volumes: + - ../volumes/app-data:/app/data + restart: on-failure + ports: + - 8080:8080 + mariadb: + container_name: mariadb-emb + environment: + MARIADB_ROOT_USER: $DB_TEST_USERNAME + MARIADB_USER: $DB_TEST_USERNAME + MARIADB_ROOT_PASSWORD: $DB_TEST_PASSWORD + image: mariadb:latest + ports: + - "3306:3306" + volumes: + - ../volumes/app-data/db/mariadb/info:/var/lib/mysql + - ../volumes/app-data/db/mariadb/init:/docker-entrypoint-initdb.d + # networks: + # - mariadb_network + mysql: + container_name: mysql8-emb + # "--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_ALLOW_EMPTY_PASSWORD: "no" + image: mysql:8.4 + ports: + - '3306:3306' + volumes: + - ../volumes/app-data/db/mysql/info:/var/lib/mysql + - ../volumes/app-data/db/mysql/init/01.sql:/docker-entrypoint-initdb.d/01.sql +# - ../volumes/app-data/db/mysql/conf.d:/etc/mysql/conf.d + postgresql: + command: postgres -c 'max_connections=1000' + container_name: postgres-emb + environment: + - POSTGRES_USER=root + - POSTGRES_PASSWORD=yourpassword + image: postgres:14-alpine + ports: + - 5432:5432 + volumes: + - ../volumes/app-data/db/postgresql/info:/var/lib/postgresql/data + - ../volumes/app-data/db/postgresql/init:/docker-entrypoint-initdb.d \ No newline at end of file diff --git a/embedded/project/docker-source/docker-notes.md b/embedded/project/docker-source/docker-notes.md new file mode 100644 index 0000000..0f13190 --- /dev/null +++ b/embedded/project/docker-source/docker-notes.md @@ -0,0 +1,119 @@ +# Notes for GSRS Docker embedded deployment + +## Terminal Environment + +``` +export DOCKER_SOURCE=../../docker-source +export HOST_VOLUMES=../../volumes + +export DB_TEST_USERNAME=root +export DB_TEST_PASSWORD=yourpassword + +# 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. + + +## 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. + +## Clone gsrs-ci + +``` +# Temporarily clone your gsrs-ci repo here +cd gsrs3-docker-deployments/projects +``` + +## Running the containers + +First you'll need to build your images (see below) + +``` +cd gsrs-ci +# use ONE of (postgresql, mariadb, mysql) database flavors. +# 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 +``` + +## Check environment variables + +See if environment variables are interpolated as expected. + +``` +docker-compose -f ../docker-source/docker-compose.yml config +``` + +## Building images + +You may want to run with `--build-arg RELEASE_MODE=$RELEASE_MODE` + +``` +# 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 . + +# 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 . + +# 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 . + +# 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 . + +# 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 . + +# 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 . + +# 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 . + +# 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 . + +# 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 + +Before committing to Git, clean up folders from test instances + +``` +rm -r ./volumes/app-data/adverse-events/ginas.ix +rm -r ./volumes/app-data/applications/ginas.ix +rm -r ./volumes/app-data/clinical-trials/ginas.ix +rm -r ./volumes/app-data/impurities/ginas.ix +rm -r ./volumes/app-data/invitro-pharmacology/ginas.ix +rm -r ./volumes/app-data/substances/ginas.ix +``` + +## Wipe databases + +``` +rm -r ./volumes/app-data/db/mariadb/info && mkdir -p ./volumes/app-data/db/mariadb/info +rm -r ./volumes/app-data/db/postgresql/info && mkdir -p ./volumes/app-data/db/postgresql/info +rm -r ./volumes/app-data/db/mysql/info && mkdir -p ./volumes/app-data/db/mysql/info +``` + +## Find more files to exclude from commits or clean up + +``` +find . -type f | grep -v app-data/db | grep -v 'frontend/classes' | grep -v gsrs-ci +``` + +# Backup configuration files + +``` +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) +``` diff --git a/embedded/project/docker-source/frontend/Dockerfile b/embedded/project/docker-source/frontend/Dockerfile new file mode 100644 index 0000000..769e694 --- /dev/null +++ b/embedded/project/docker-source/frontend/Dockerfile @@ -0,0 +1,21 @@ +# Docker mvn 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 -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 new file mode 100644 index 0000000..844dd0e --- /dev/null +++ b/embedded/project/docker-source/gateway/Dockerfile @@ -0,0 +1,16 @@ +# Docker mvn build +FROM maven:3.6.3-jdk-11 as build + +COPY . . +RUN 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 + +RUN mkdir -p /app/data/gateway +RUN mkdir -p /app/data/gateway/conf +RUN mkdir -p /app/data/gateway/classes +WORKDIR /app/data/gateway +EXPOSE 9081 +ENTRYPOINT ["java", "-cp", "/target/gateway.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] + diff --git a/embedded/project/docker-source/impurities/Dockerfile b/embedded/project/docker-source/impurities/Dockerfile new file mode 100644 index 0000000..b835421 --- /dev/null +++ b/embedded/project/docker-source/impurities/Dockerfile @@ -0,0 +1,39 @@ +# Docker mvn 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 IMPURITIES_MODULE_BRANCH=starter + +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 $IMPURITIES_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-impurities.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-impurities && \ + # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ + mvn clean -U install -DskipTests; \ +fi + +RUN rm -rf src/main/resources/application.conf && \ + rm -rf src/main/resources/impurities-env.conf && \ + rm -rf src/main/resources/impurities-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 + +RUN mkdir -p /app/data/impurities/conf +RUN mkdir -p /app/data/impurities/classes + +WORKDIR /app/data/impurities +EXPOSE 8090 +ENTRYPOINT ["java", "-cp", "/target/impurities.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/invitro-pharmacology/Dockerfile b/embedded/project/docker-source/invitro-pharmacology/Dockerfile new file mode 100644 index 0000000..5551963 --- /dev/null +++ b/embedded/project/docker-source/invitro-pharmacology/Dockerfile @@ -0,0 +1,37 @@ +# Docker mvn 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 + +COPY . . +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 $INVITRO_PHARMACOLOGY_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-invitro-pharmacology.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-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 + +ENV TZ=America/New_York +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +RUN mkdir -p /app/data/invitro-pharmacology/conf +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 new file mode 100644 index 0000000..bf48847 --- /dev/null +++ b/embedded/project/docker-source/products/Dockerfile @@ -0,0 +1,37 @@ +# Docker mvn 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 PRODUCTS_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 && \ + git clone --branch $SUBSTANCES_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-substances.git && \ + git clone --branch $PRODUCTS_MODULE_BRANCH --depth 2 https://github.com/ncats/gsrs-spring-module-drug-products.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-drug-products && \ + # 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 + +ENV TZ=America/New_York +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +RUN mkdir -p /app/data/products/conf +RUN mkdir -p /app/data/products/classes + +WORKDIR /app/data/products +EXPOSE 8084 +ENTRYPOINT ["java", "-cp", "/target/products.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/ssg4m/Dockerfile b/embedded/project/docker-source/ssg4m/Dockerfile new file mode 100644 index 0000000..f60c23f --- /dev/null +++ b/embedded/project/docker-source/ssg4m/Dockerfile @@ -0,0 +1,39 @@ +# Docker mvn 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 SSG4M_MODULE_BRANCH=master + +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 && \ + 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 && \ + # sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh \ + mvn clean -U install -DskipTests; \ +fi + +RUN rm -rf src/main/resources/application.conf && \ + rm -rf src/main/resources/ssg4m-env.conf && \ + rm -rf src/main/resources/ssg4m-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 + +RUN mkdir -p /app/data/ssg4m/conf +RUN mkdir -p /app/data/ssg4m/classes + +WORKDIR /app/data/ssg4m +EXPOSE 8088 +ENTRYPOINT ["java", "-cp", "/target/ssg4m.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] diff --git a/embedded/project/docker-source/substances/Dockerfile b/embedded/project/docker-source/substances/Dockerfile new file mode 100644 index 0000000..febead5 --- /dev/null +++ b/embedded/project/docker-source/substances/Dockerfile @@ -0,0 +1,45 @@ +# Docker mvn build +FROM maven:3.6.3-jdk-11 as build +# public|development +ARG RELEASE_MODE='public' +ARG STARTER_MODULE_BRANCH=master +ARG SUBSTANCES_MODULE_BRANCH=master + +COPY . . +RUN apt-get update && apt-get install git +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 && \ + 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 .. ;\ +fi + +RUN sed -i.bak -e "s/\.\/mvnw/mvn/g" installExtraJars.sh && sh installExtraJars.sh +RUN 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 + +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 new file mode 100644 index 0000000..3105c35 Binary files /dev/null and b/embedded/project/mariadb.env-db.conf.tar.gz differ diff --git a/embedded/project/mysql.env-db.conf.tar.gz b/embedded/project/mysql.env-db.conf.tar.gz new file mode 100644 index 0000000..8868edd Binary files /dev/null and b/embedded/project/mysql.env-db.conf.tar.gz differ diff --git a/embedded/project/postgresql.env-db.conf.tar.gz b/embedded/project/postgresql.env-db.conf.tar.gz new file mode 100644 index 0000000..1d470df Binary files /dev/null and b/embedded/project/postgresql.env-db.conf.tar.gz differ 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 new file mode 100644 index 0000000..3a4c253 --- /dev/null +++ b/embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env.conf @@ -0,0 +1,16 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://gateway:9081" +# 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} +# 8086 +MS_SERVER_PORT_ADVERSE_EVENTS=${SERVER_PORT} +MS_LOOPBACK_PORT_ADVERSE_EVENTS=${SERVER_PORT} +MS_SERVLET_CONTEXT_PATH_ADVERSE_EVENTS="/" +# IX_HOME="ginas.ix" +# IX_HOME_SUBSTANCES="../substances/ginas.ix" +DB_DDL_AUTO=update +# API URLS have slash +API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" diff --git a/embedded/project/volumes/app-data/adverse-events/conf/application.conf b/embedded/project/volumes/app-data/adverse-events/conf/application.conf new file mode 100644 index 0000000..9e7493f --- /dev/null +++ b/embedded/project/volumes/app-data/adverse-events/conf/application.conf @@ -0,0 +1,227 @@ +include "adverse-events-core.conf" +include "adverse-events-env.conf" +include "adverse-events-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="adverse-events" + +# Single Tomcat use "/" +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_ADVERSE_EVENTS} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +# We need to point to the substances service ginas.ix folder +ix.home_substances="substances.ix" +ix.home_substances=${?IX_HOME_SUBSTANCES} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=false + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# 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 +ix.ginas.export.path=${?MS_EXPORT_PATH_ADVERSE_EVENTS} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +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.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_ADVERSE_EVENTS} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2: { + base = ./${ix.home}/h2, + substances = ./${ix.home_substances}/h2 + } + +spring.datasource.url="jdbc:h2:"${ix.h2.substances}"/sprinxight;AUTO_SERVER=TRUE" + spring.datasource.url=${?DB_URL_SUBSTANCES} +spring.datasource.driverClassName=org.h2.Driver + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SUBSTANCES} +spring.datasource.username=${?DB_USERNAME} + spring.datasource.username=${?DB_USERNAME_SUBSTANCES} +spring.datasource.password=${?DB_PASSWORD} + spring.datasource.password=${?DB_PASSWORD_SUBSTANCES} +spring.datasource.connectionTimeout=120000 + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SUBSTANCES} +spring.datasource.maximumPoolSize=50 + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SUBSTANCES} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + spring.jpa.database-platform=${?DB_DIALECT} + spring.jpa.database-platform=${?DB_DIALECT_SUBSTANCES} +spring.jpa.hibernate.ddl-auto=none + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SUBSTANCES} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +spring.hibernate.show-sql=false + +adverseevent.datasource.url="jdbc:h2:"${ix.h2.base}"/appinxight;AUTO_SERVER=TRUE" + adverseevent.datasource.url=${?DB_URL_SRSCID} + adverseevent.datasource.url=${?DB_URL_ADVERSE_EVENTS} +adverseevent.datasource.driverClassName=org.h2.Driver + adverseevent.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + adverseevent.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} + adverseevent.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_ADVERSE_EVENTS} +adverseevent.datasource.username=${?DB_USERNAME} + adverseevent.datasource.username=${?DB_USERNAME_SRSCID} + adverseevent.datasource.username=${?DB_USERNAME_ADVERSE_EVENTS} +adverseevent.datasource.password=${?DB_PASSWORD} + adverseevent.datasource.password=${?DB_PASSWORD_SRSCID} + adverseevent.datasource.password=${?DB_PASSWORD_ADVERSE_EVENTS} +adverseevent.datasource.connectionTimeout=120000 + adverseevent.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + adverseevent.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SRSCID} + adverseevent.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_ADVERSE_EVENTS} +adverseevent.datasource.maximumPoolSize=50 + adverseevent.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + adverseevent.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SRSCID} + adverseevent.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_ADVERSE_EVENTS} +adverseevent.jpa.database-platform=org.hibernate.dialect.H2Dialect + adverseevent.jpa.database-platform=${?DB_DIALECT} + adverseevent.jpa.database-platform=${?DB_DIALECT_SRSCID} + adverseevent.jpa.database-platform=${?DB_DIALECT_ADVERSE_EVENTS} +adverseevent.jpa.hibernate.ddl-auto=none + adverseevent.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + adverseevent.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SRSCID} + adverseevent.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_ADVERSE_EVENTS} +adverseevent.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +adverseevent.hibernate.show-sql=false + +################################################################## +# API SETTINGS ## +################################################################## + +# API urls have slash +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} + +gsrs.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_ADVERSE_EVENTS} + +################################################################## +# CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## +################################################################## + +gsrs.entityprocessors = [ + { + "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventpt.models.AdverseEventPt", + "processor" = "gov.hhs.gsrs.adverseevents.adverseeventpt.processors.AdverseEventPtProcessor" + }, + { + "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventDme", + "processor" = "gov.hhs.gsrs.adverseevents.adverseeventdme.processors.AdverseEventDmeProcessor" + }, + { + "entityClassName" = "gov.hhs.gsrs.adverseevents.adverseeventcvm.models.AdverseEventCvm", + "processor" = "gov.hhs.gsrs.adverseevents.adverseeventcvm.processors.AdverseEventCvmProcessor" + } +] + +# NEED THIS TO AVOID CVApi ERROR +gsrs.entityProcessors=[] + +ix.ginas.export.factories.adverseeventpt = [ + "gov.hhs.gsrs.adverseevents.adverseeventpt.exporters.AdverseEventPtExporterFactory" +] + +ix.ginas.export.factories.adverseeventdme = [ + "gov.hhs.gsrs.adverseevents.adverseeventdme.exporters.AdverseEventDmeExporterFactory" +] + +ix.ginas.export.factories.adverseeventcvm = [ + "gov.hhs.gsrs.adverseevents.adverseeventcvm.exporters.AdverseEventCvmExporterFactory" +] + +gsrs.indexers.list=[ + { + "indexer" = "gov.hhs.gsrs.adverseevents.indexers.ATCIndexValueMaker", + "class" = "ix.ginas.models.v1.Substance" + }, + { + "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" + }, + { + "indexer" = "gov.hhs.gsrs.adverseevents.indexers.AEATCIndexValueMaker", + "class" = "gov.hhs.gsrs.adverseevents.adverseeventdme.models.AdverseEventCvm" + } +] + +################################################################## +# 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} + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/adverse-events.conf" +include "adverse-events.conf" \ No newline at end of file diff --git a/embedded/project/volumes/app-data/applications/conf/application.conf b/embedded/project/volumes/app-data/applications/conf/application.conf new file mode 100644 index 0000000..bcabfc8 --- /dev/null +++ b/embedded/project/volumes/app-data/applications/conf/application.conf @@ -0,0 +1,227 @@ +include "applications-core.conf" +include "applications-env.conf" +include "applications-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="applications" + +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_APPLICATIONS} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +# We need to point to the substances service ginas.ix folder +ix.home_substances="substances.ix" +ix.home_substances=${?IX_HOME_SUBSTANCES} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=false + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# 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 +ix.ginas.export.path=${?MS_EXPORT_PATH_APPLICATIONS} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +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.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_APPLICATIONS} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2: { + base = ./${ix.home}/h2, + substances = ./${ix.home_substances}/h2 + } + +spring.datasource.url="jdbc:h2:"${ix.h2.substances}"/sprinxight;AUTO_SERVER=TRUE" + spring.datasource.url=${?DB_URL_SUBSTANCES} +spring.datasource.driverClassName=org.h2.Driver + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SUBSTANCES} +spring.datasource.username=${?DB_USERNAME} + spring.datasource.username=${?DB_USERNAME_SUBSTANCES} +spring.datasource.password=${?DB_PASSWORD} + spring.datasource.password=${?DB_PASSWORD_SUBSTANCES} +spring.datasource.connectionTimeout=120000 + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SUBSTANCES} +spring.datasource.maximumPoolSize=50 + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SUBSTANCES} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + spring.jpa.database-platform=${?DB_DIALECT} + spring.jpa.database-platform=${?DB_DIALECT_SUBSTANCES} +spring.jpa.hibernate.ddl-auto=none + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SUBSTANCES} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +spring.hibernate.show-sql=false + +application.datasource.url="jdbc:h2:"${ix.h2.base}"/appinxight;AUTO_SERVER=TRUE" + application.datasource.url=${?DB_URL_SRSCID} + application.datasource.url=${?DB_URL_APPLICATIONS} +application.datasource.driverClassName=org.h2.Driver + application.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + application.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} + application.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_APPLICATIONS} +application.datasource.username=${?DB_USERNAME} + application.datasource.username=${?DB_USERNAME_SRSCID} + application.datasource.username=${?DB_USERNAME_APPLICATIONS} +application.datasource.password=${?DB_PASSWORD} + application.datasource.password=${?DB_PASSWORD_SRSCID} + application.datasource.password=${?DB_PASSWORD_APPLICATIONS} +application.datasource.connectionTimeout=120000 + application.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + application.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SRSCID} + application.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_APPLICATIONS} +application.datasource.maximumPoolSize=50 + application.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + application.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SRSCID} + application.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_APPLICATIONS} +application.jpa.database-platform=org.hibernate.dialect.H2Dialect + application.jpa.database-platform=${?DB_DIALECT} + application.jpa.database-platform=${?DB_DIALECT_SRSCID} + application.jpa.database-platform=${?DB_DIALECT_APPLICATIONS} +application.jpa.hibernate.ddl-auto=none + application.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + application.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SRSCID} + application.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_APPLICATIONS} +application.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +application.hibernate.show-sql=false + +################################################################## +# API SETTINGS ## +################################################################## + +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} + +gsrs.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_APPLICATIONS} + +################################################################## +# CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## +################################################################## + +gsrs.validators.applications = [ + { + "validatorClass" = "gov.hhs.gsrs.application.application.validators.RequiredFieldNonNullValidator", + "newObjClass" = "gov.hhs.gsrs.application.application.models.Application", + } +], + +# NOT SURE IF WE NEED THIS OR NOT +gsrs.entityprocessors = [ + { + "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" + }, + { + "class" = "gov.hhs.gsrs.application.applicationdarrts.models.ApplicationDarrts", + "processor" = "gov.hhs.gsrs.application.applicationdarrts.processors.ApplicationDarrtsProcessor" + } +] + +# NEED THIS TO AVOID CVApi ERROR +gsrs.entityProcessors=[] + + +ix.ginas.export.factories.applications = [ + "gov.hhs.gsrs.application.application.exporters.ApplicationExporterFactory" +] + +ix.ginas.export.factories.applicationsall = [ + "gov.hhs.gsrs.application.applicationall.exporters.ApplicationAllExporterFactory" +] + +gsrs.indexers.list=[ + { + "indexer" = "gov.hhs.gsrs.application.application.indexers.ApplicationIngredientIndexValueMaker", + "class" = "gov.hhs.gsrs.application.application.models.Application" + }, + { + "indexer" = "gov.hhs.gsrs.application.application.indexers.ApplicationClinicalTrialIndexValueMaker", + "class" = "gov.hhs.gsrs.application.application.models.Application" + }, + { + "indexer" = "gov.hhs.gsrs.application.applicationall.indexers.ApplicationSubstanceIndexValueMaker", + "class" = "gov.hhs.gsrs.application.applicationall.models.ApplicationAll" + } +] + +# Do we need this in services other than substances? +################################################################## +# 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} + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/applications.conf" +include "applications.conf" diff --git a/embedded/project/volumes/app-data/applications/conf/applications-env.conf b/embedded/project/volumes/app-data/applications/conf/applications-env.conf new file mode 100644 index 0000000..c3052cf --- /dev/null +++ b/embedded/project/volumes/app-data/applications/conf/applications-env.conf @@ -0,0 +1,16 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://gateway:9081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +# APPLICATION_HOST_PORT=9081 +# APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} +# APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} +# 8083 +MS_SERVER_PORT_APPLICATIONS=${SERVER_PORT} +MS_LOOPBACK_PORT_APPLICATIONS=${SERVER_PORT} +MS_SERVLET_CONTEXT_PATH_APPLICATIONS="/" +# IX_HOME="ginas.ix" +# 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 diff --git a/embedded/project/volumes/app-data/clinical-trials/conf/application.conf b/embedded/project/volumes/app-data/clinical-trials/conf/application.conf new file mode 100644 index 0000000..de32650 --- /dev/null +++ b/embedded/project/volumes/app-data/clinical-trials/conf/application.conf @@ -0,0 +1,186 @@ +include "gsrs-core.conf" +include "clinical-trial-core.conf" +include "clinical-trials-env.conf" +include "clinical-trials-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="clinical-trials" + +# ??? this doesn't work well with embedded tomcat +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_CLINICAL_TRIALS} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +# We need to point to the substances service ginas.ix folder +ix.home_substances="substances.ix" +ix.home_substances=${?IX_HOME_SUBSTANCES} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=false + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# 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 +ix.ginas.export.path=${?MS_EXPORT_PATH_CLINICAL_TRIALS} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +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.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_CLINICAL_TRIALS} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2: { + base = ./${ix.home}/h2, + substances = ./${ix.home_substances}/h2 + } + +spring.datasource.url="jdbc:h2:"${ix.h2.substances}"/sprinxight;AUTO_SERVER=TRUE" + spring.datasource.url=${?DB_URL_SUBSTANCES} +spring.datasource.driverClassName=org.h2.Driver + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SUBSTANCES} +spring.datasource.username=${?DB_USERNAME} + spring.datasource.username=${?DB_USERNAME_SUBSTANCES} +spring.datasource.password=${?DB_PASSWORD} + spring.datasource.password=${?DB_PASSWORD_SUBSTANCES} +spring.datasource.connectionTimeout=120000 + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SUBSTANCES} +spring.datasource.maximumPoolSize=50 + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SUBSTANCES} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + spring.jpa.database-platform=${?DB_DIALECT} + spring.jpa.database-platform=${?DB_DIALECT_SUBSTANCES} +spring.jpa.hibernate.ddl-auto=none + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SUBSTANCES} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +spring.hibernate.show-sql=false + +clinicaltrial.datasource.url="jdbc:h2:"${ix.h2.base}"/appinxight;AUTO_SERVER=TRUE" + clinicaltrial.datasource.url=${?DB_URL_SRSCID} + clinicaltrial.datasource.url=${?DB_URL_CLINICAL_TRIALS} +clinicaltrial.datasource.driverClassName=org.h2.Driver + clinicaltrial.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + clinicaltrial.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} + clinicaltrial.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_CLINICAL_TRIALS} +clinicaltrial.datasource.username=${?DB_USERNAME} + clinicaltrial.datasource.username=${?DB_USERNAME_SRSCID} + clinicaltrial.datasource.username=${?DB_USERNAME_CLINICAL_TRIALS} +clinicaltrial.datasource.password=${?DB_PASSWORD} + clinicaltrial.datasource.password=${?DB_PASSWORD_SRSCID} + clinicaltrial.datasource.password=${?DB_PASSWORD_CLINICAL_TRIALS} +clinicaltrial.datasource.connectionTimeout=120000 + clinicaltrial.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + clinicaltrial.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SRSCID} + clinicaltrial.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_CLINICAL_TRIALS} +clinicaltrial.datasource.maximumPoolSize=50 + clinicaltrial.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + clinicaltrial.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SRSCID} + clinicaltrial.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_CLINICAL_TRIALS} +clinicaltrial.jpa.database-platform=org.hibernate.dialect.H2Dialect + clinicaltrial.jpa.database-platform=${?DB_DIALECT} + clinicaltrial.jpa.database-platform=${?DB_DIALECT_SRSCID} + clinicaltrial.jpa.database-platform=${?DB_DIALECT_CLINICAL_TRIALS} +clinicaltrial.jpa.hibernate.ddl-auto=none + clinicaltrial.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + clinicaltrial.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SRSCID} + clinicaltrial.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_CLINICAL_TRIALS} +clinicaltrial.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +clinicaltrial.hibernate.show-sql=false + +################################################################## +# API SETTINGS ## +################################################################## + +# API urls have slash +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} + +gsrs.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_CLINICAL_TRIALS} + +# Is this needed? Fix. +mygsrs.substanceAPI.baseUrl = ${gsrs.microservice.substances.api.baseURL} +mygsrs.clinicaltrial.cvUrl = ${gsrs.microservice.substances.api.baseURL} + +################################################################## +# CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## +################################################################## +# see module -core.conf file + +# Do we need this in services other than substances? +################################################################## +# 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} + + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/clinical-trials.conf" +include "clinical-trials.conf" 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 new file mode 100644 index 0000000..80a535c --- /dev/null +++ b/embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env.conf @@ -0,0 +1,39 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://gateway:9081" +# 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} +# 8089 +MS_SERVER_PORT_CLINICAL_TRIALS=${SERVER_PORT} +MS_LOOPBACK_PORT_CLINICAL_TRIALS=${SERVER_PORT} +MS_SERVLET_CONTEXT_PATH_CLINICAL_TRIALS="/" +# IX_HOME="ginas.ix" +# IX_HOME_SUBSTANCES="../substances/ginas.ix" +DB_DDL_AUTO=update +# API URLS have slash +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/discovery/conf/application.conf b/embedded/project/volumes/app-data/discovery/conf/application.conf new file mode 100644 index 0000000..cbc6172 --- /dev/null +++ b/embedded/project/volumes/app-data/discovery/conf/application.conf @@ -0,0 +1,31 @@ +MS_SERVER_PORT_DISCOVERY=8761 + +################################################################## +# MAIN CONFIGURATION ## +################################################################## +# Server port is used in Embedded Tomcat. It will be ignored by Single Tomcat +server.port="" +server.port=${?MS_SERVER_PORT_DISCOVERY} + +spring.application.name="discovery" + +# 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 +logging.level.com.netflix.eureka=OFF +logging.level.com.netflix.discovery=OFF + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/discovery.conf" +include "discovery.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 new file mode 100644 index 0000000..70078bf --- /dev/null +++ b/embedded/project/volumes/app-data/frontend/conf/frontend-env.conf @@ -0,0 +1,4 @@ + +CONFIG_TEST="frontend-env.conf test" +MS_SERVER_PORT_FRONTEND=8082 +MS_SERVLET_CONTEXT_PATH_FRONTEND=/ diff --git a/embedded/project/volumes/app-data/gateway/conf/application.yml b/embedded/project/volumes/app-data/gateway/conf/application.yml new file mode 100644 index 0000000..8cc22cb --- /dev/null +++ b/embedded/project/volumes/app-data/gateway/conf/application.yml @@ -0,0 +1,249 @@ +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/impurities/conf/application.conf b/embedded/project/volumes/app-data/impurities/conf/application.conf new file mode 100644 index 0000000..a7fa200 --- /dev/null +++ b/embedded/project/volumes/app-data/impurities/conf/application.conf @@ -0,0 +1,203 @@ +include "impurities-core.conf" +include "impurities-env.conf" +include "impurities-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="impurities" + +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_IMPURITIES} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +# We need to point to the substances service ginas.ix folder +ix.home_substances="substances.ix" +ix.home_substances=${?IX_HOME_SUBSTANCES} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=false + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# 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 +ix.ginas.export.path=${?MS_EXPORT_PATH_IMPURITIES} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +spring.servlet.multipart.max-request-size=512MB + +gsrs.substance.structures.saltFilePath=${?MS_SALT_PATH_IMPURITIES} + +################################################################## +# 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_IMPURITIES} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2: { + base = ./${ix.home}/h2, + substances = ./${ix.home_substances}/h2 + } + +spring.datasource.url="jdbc:h2:"${ix.h2.substances}"/sprinxight;AUTO_SERVER=TRUE" + spring.datasource.url=${?DB_URL_SUBSTANCES} +spring.datasource.driverClassName=org.h2.Driver + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SUBSTANCES} +spring.datasource.username=${?DB_USERNAME} + spring.datasource.username=${?DB_USERNAME_SUBSTANCES} +spring.datasource.password=${?DB_PASSWORD} + spring.datasource.password=${?DB_PASSWORD_SUBSTANCES} +spring.datasource.connectionTimeout=120000 + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SUBSTANCES} +spring.datasource.maximumPoolSize=50 + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SUBSTANCES} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + spring.jpa.database-platform=${?DB_DIALECT} + spring.jpa.database-platform=${?DB_DIALECT_SUBSTANCES} +spring.jpa.hibernate.ddl-auto=none + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SUBSTANCES} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +spring.hibernate.show-sql=false + +impurities.datasource.url="jdbc:h2:"${ix.h2.base}"/sprinxight;AUTO_SERVER=TRUE" + impurities.datasource.url=${?DB_URL_SRSCID} + impurities.datasource.url=${?DB_URL_IMPURITIES} +impurities.datasource.driverClassName=org.h2.Driver + impurities.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + impurities.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} + impurities.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_IMPURITIES} +impurities.datasource.username=${?DB_USERNAME} + impurities.datasource.username=${?DB_USERNAME_SRSCID} + impurities.datasource.username=${?DB_USERNAME_IMPURITIES} +impurities.datasource.password=${?DB_PASSWORD} + impurities.datasource.password=${?DB_PASSWORD_SRSCID} + impurities.datasource.password=${?DB_PASSWORD_IMPURITIES} +impurities.datasource.connectionTimeout=120000 + impurities.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + impurities.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SRSCID} + impurities.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_IMPURITIES} +impurities.datasource.maximumPoolSize=50 + impurities.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + impurities.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SRSCID} + impurities.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_IMPURITIES} +impurities.jpa.database-platform=org.hibernate.dialect.H2Dialect + impurities.jpa.database-platform=${?DB_DIALECT} + impurities.jpa.database-platform=${?DB_DIALECT_SRSCID} + impurities.jpa.database-platform=${?DB_DIALECT_IMPURITIES} +impurities.jpa.hibernate.ddl-auto=none + impurities.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + impurities.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SRSCID} + impurities.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_IMPURITIES} +impurities.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +impurities.hibernate.show-sql=false + +################################################################## +# API SETTINGS ## +################################################################## + +# API urls have slash +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} + +gsrs.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_IMPURITIES} + +################################################################## +# CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## +################################################################## + +gsrs.validators.impurities = [ + { + "validatorClass" = "gov.hhs.gsrs.impurities.validators.RequiredFieldNonNullValidator", + "newObjClass" = "gov.hhs.gsrs.impurities.models.Impurities", + } +] + +# NOT SURE IF WE NEED THIS OR NOT +gsrs.entityprocessors = [ + { + "class" = "gov.hhs.gsrs.impurities.Impurities", + "processor" = "gov.hhs.gsrs.impurities.processors.ImpuritiesProcessor" + } +] + +# NEED THIS TO AVOID CVApi ERROR +gsrs.entityprocessors = [] + + +ix.ginas.export.factories.impurities = [ + "gov.hhs.gsrs.impurities.exporters.ImpuritiesExporterFactory" +] + +################################################################## +# 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} + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/impurities.conf" +include "impurities.conf" + diff --git a/embedded/project/volumes/app-data/impurities/conf/impurities-env.conf b/embedded/project/volumes/app-data/impurities/conf/impurities-env.conf new file mode 100644 index 0000000..6d2dec9 --- /dev/null +++ b/embedded/project/volumes/app-data/impurities/conf/impurities-env.conf @@ -0,0 +1,16 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://localhost:9081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +# APPLICATION_HOST_PORT=9081 +# APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} +# APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} + +MS_SERVER_PORT_IMPURITIES=${SERVER_PORT} +MS_LOOPBACK_PORT_IMPURITIES=${SERVER_PORT} +MS_SERVLET_CONTEXT_PATH_IMPURITIES="/" +# IX_HOME="ginas.ix" +# 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 diff --git a/embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf b/embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf new file mode 100644 index 0000000..5e9c763 --- /dev/null +++ b/embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf @@ -0,0 +1,224 @@ +include "invitro-pharmacology-core.conf" +include "invitro-pharmacology-env.conf" +include "invitro-pharmacology-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="invitro-pharmacology" + +# ??? this doesn't work well with embedded tomcat +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_INVITRO_PHARMACOLOGY} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +# We need to point to the substances service ginas.ix folder +ix.home_substances="substances.ix" +ix.home_substances=${?IX_HOME_SUBSTANCES} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=false + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# 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 +ix.ginas.export.path=${?MS_EXPORT_PATH_INVITRO_PHARMACOLOGY} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +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.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_INVITRO_PHARMACOLOGY} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2: { + base = ./${ix.home}/h2, + substances = ./${ix.home_substances}/h2 +} + +spring.datasource.url="jdbc:h2:"${ix.h2.substances}"/sprinxight;AUTO_SERVER=TRUE" +spring.datasource.url=${?DB_URL_SUBSTANCES} +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} +spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SUBSTANCES} +spring.datasource.username=${?DB_USERNAME} +spring.datasource.username=${?DB_USERNAME_SUBSTANCES} +spring.datasource.password=${?DB_PASSWORD} +spring.datasource.password=${?DB_PASSWORD_SUBSTANCES} +spring.datasource.connectionTimeout=120000 +spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} +spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SUBSTANCES} +spring.datasource.maximumPoolSize=50 +spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} +spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SUBSTANCES} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.database-platform=${?DB_DIALECT} +spring.jpa.database-platform=${?DB_DIALECT_SUBSTANCES} +spring.jpa.hibernate.ddl-auto=none +spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} +spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SUBSTANCES} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +spring.hibernate.show-sql=false + +invitropharmacology.datasource.url="jdbc:h2:"${ix.h2.base}"/appinxight;AUTO_SERVER=TRUE" +invitropharmacology.datasource.url=${?DB_URL_SRSCID} +invitropharmacology.datasource.url=${?DB_URL_INVITRO_PHARMACOLOGY} +invitropharmacology.datasource.driverClassName=org.h2.Driver +invitropharmacology.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} +invitropharmacology.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} +invitropharmacology.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_INVITRO_PHARMACOLOGY} +invitropharmacology.datasource.username=${?DB_USERNAME} +invitropharmacology.datasource.username=${?DB_USERNAME_SRSCID} +invitropharmacology.datasource.username=${?DB_USERNAME_INVITRO_PHARMACOLOGY} +invitropharmacology.datasource.password=${?DB_PASSWORD} +invitropharmacology.datasource.password=${?DB_PASSWORD_SRSCID} +invitropharmacology.datasource.password=${?DB_PASSWORD_INVITRO_PHARMACOLOGY} +invitropharmacology.datasource.connectionTimeout=120000 +invitropharmacology.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} +invitropharmacology.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SRSCID} +invitropharmacology.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_INVITRO_PHARMACOLOGY} +invitropharmacology.datasource.maximumPoolSize=50 +invitropharmacology.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} +invitropharmacology.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SRSCID} +invitropharmacology.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_INVITRO_PHARMACOLOGY} +invitropharmacology.jpa.database-platform=org.hibernate.dialect.H2Dialect +invitropharmacology.jpa.database-platform=${?DB_DIALECT} +invitropharmacology.jpa.database-platform=${?DB_DIALECT_SRSCID} +invitropharmacology.jpa.database-platform=${?DB_DIALECT_INVITRO_PHARMACOLOGY} +invitropharmacology.jpa.hibernate.ddl-auto=none +invitropharmacology.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} +invitropharmacology.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SRSCID} +invitropharmacology.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_INVITRO_PHARMACOLOGY} +invitropharmacology.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +invitropharmacology.hibernate.show-sql=false + +################################################################## +# API SETTINGS ## +################################################################## + +# API urls have slash +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} + +gsrs.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_INVITRO_PHARMACOLOGY} + +# Substance API Substance Key Type, choose one (UUID, APPROVAL_ID, or BDNUM) +substance.linking.keyType.invitroPharmacologyKeyType="UUID" + +# Choose one (api or entitymanager) to use Substance API or Substance Entity Manager for InvitroPharmacologyIndexValueMaker +substance.invitropharmacology.ivm.substancekey.resolver.touse="entitymanager" + +################################################################## +# CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## +################################################################## + + +gsrs.validators.invitropharmacology = [ + { + "validatorClass" = "gov.hhs.gsrs.invitropharmacology.validators.RequiredFieldNonNullValidator", + "newObjClass" = "gov.hhs.gsrs.invitropharmacology.models.InvitroAssayInformation", + }, + { + "validatorClass" = "gov.hhs.gsrs.invitropharmacology.validators.AssayInformationUniqueValidator", + "newObjClass" = "gov.hhs.gsrs.invitropharmacology.models.InvitroAssayInformation", + } +] + +# NOT SURE IF WE NEED THIS OR NOT +gsrs.entityprocessors = [ + { + "class" = "gov.hhs.gsrs.invitropharmacology.models.InvitroPharmacology", + "processor" = "gov.hhs.gsrs.invitropharmacology.processors.InvitroPharmacologyProcessor" + } +] + +# NEED THIS TO AVOID CVApi ERROR +gsrs.entityprocessors = [] + +# 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" + } +] + +################################################################## +# 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} + + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + + +include "conf/invitro-pharmacology.conf" +include "invitro-pharmacology.conf" + diff --git a/embedded/project/volumes/app-data/invitro-pharmacology/conf/invitro-pharmacology-env.conf b/embedded/project/volumes/app-data/invitro-pharmacology/conf/invitro-pharmacology-env.conf new file mode 100644 index 0000000..f9ebc5f --- /dev/null +++ b/embedded/project/volumes/app-data/invitro-pharmacology/conf/invitro-pharmacology-env.conf @@ -0,0 +1,16 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://gateway:9081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +APPLICATION_HOST_PORT=9081 +# APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} +# APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} +# 8090 +MS_SERVER_PORT_INVITRO_PHARMACOLOGY=${SERVER_PORT} +MS_LOOPBACK_PORT_INVITRO_PHARMACOLOGY=${SERVER_PORT} +MS_SERVLET_CONTEXT_PATH_INVITRO_PHARMACOLOGY="/" +# IX_HOME="ginas.ix" +# 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 diff --git a/embedded/project/volumes/app-data/products/conf/application.conf b/embedded/project/volumes/app-data/products/conf/application.conf new file mode 100644 index 0000000..3f87d7c --- /dev/null +++ b/embedded/project/volumes/app-data/products/conf/application.conf @@ -0,0 +1,219 @@ +include "products-core.conf" +include "products-env.conf" +include "products-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="products" +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_PRODUCTS} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +# We need to point to the substances service ginas.ix folder +ix.home_substances="substances.ix" +ix.home_substances=${?IX_HOME_SUBSTANCES} + +# Reassign deprecated values +APPLICATION_HOST=${?GATEWAY_HOST} +APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + + + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=false + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# 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 +ix.ginas.export.path=${?MS_EXPORT_PATH_PRODUCTS} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +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.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_PRODUCTS} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2: { + base = ./${ix.home}/h2, + substances = ./${ix.home_substances}/h2 + } + +spring.datasource.url="jdbc:h2:"${ix.h2.substances}"/sprinxight;AUTO_SERVER=TRUE" + spring.datasource.url=${?DB_URL_SUBSTANCES} +spring.datasource.driverClassName=org.h2.Driver + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SUBSTANCES} +spring.datasource.username=${?DB_USERNAME} + spring.datasource.username=${?DB_USERNAME_SUBSTANCES} +spring.datasource.password=${?DB_PASSWORD} + spring.datasource.password=${?DB_PASSWORD_SUBSTANCES} +spring.datasource.connectionTimeout=120000 + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SUBSTANCES} +spring.datasource.maximumPoolSize=50 + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SUBSTANCES} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + spring.jpa.database-platform=${?DB_DIALECT} + spring.jpa.database-platform=${?DB_DIALECT_SUBSTANCES} +spring.jpa.hibernate.ddl-auto=none + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SUBSTANCES} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +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.driverClassName=org.h2.Driver + product.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + product.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} + product.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_PRODUCTS} +product.datasource.username=${?DB_USERNAME} + product.datasource.username=${?DB_USERNAME_SRSCID} + product.datasource.username=${?DB_USERNAME_PRODUCTS} +product.datasource.password=${?DB_PASSWORD} + product.datasource.password=${?DB_PASSWORD_SRSCID} + product.datasource.password=${?DB_PASSWORD_PRODUCTS} +product.datasource.connectionTimeout=120000 + product.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + product.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SRSCID} + product.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_PRODUCTS} +product.datasource.maximumPoolSize=50 + product.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + product.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SRSCID} + product.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_PRODUCTS} +product.jpa.database-platform=org.hibernate.dialect.H2Dialect + product.jpa.database-platform=${?DB_DIALECT} + product.jpa.database-platform=${?DB_DIALECT_SRSCID} + product.jpa.database-platform=${?DB_DIALECT_PRODUCTS} +product.jpa.hibernate.ddl-auto=none + product.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + product.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SRSCID} + product.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_PRODUCTS} +product.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +product.hibernate.show-sql=false + + +################################################################## +# API SETTINGS ## +################################################################## + +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} + +# Substance API Substance Key Type, choose one (UUID, APPROVAL_ID, or BDNUM) +substance.linking.keyType.productKeyType="UUID" + +# Choose one (api or entitymanager) to use Substance API or Substance Entity Manager for ProductSubstanceIndexValueMaker +substance.product.ivm.substancekey.resolver.touse="entitymanager" + +gsrs.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_PRODUCTS} + +################################################################## +# CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## +################################################################## + + +gsrs.validators.products = [ + { + "validatorClass" = "gov.hhs.gsrs.products.product.validators.ProductValidator", + "newObjClass" = "gov.hhs.gsrs.products.product.models.Product", + } +] + +# 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" + } +] + +# NEED THIS TO AVOID CVApi ERROR +gsrs.entityprocessors = [] + +ix.ginas.export.factories.products = [ + "gov.hhs.gsrs.products.product.exporters.ProductExporterFactory", + "gov.hhs.gsrs.products.product.exporters.ProductTextExporterFactory" +] + +gsrs.indexers.list=[ + { + "indexer" = "gov.hhs.gsrs.products.product.indexers.ProductSubstanceIndexValueMaker", + "class" = "gov.hhs.gsrs.products.product.models.Product" + } +] + +################################################################## +# 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} + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/products.conf" +include "products.conf" diff --git a/embedded/project/volumes/app-data/products/conf/products-env.conf b/embedded/project/volumes/app-data/products/conf/products-env.conf new file mode 100644 index 0000000..fc8662b --- /dev/null +++ b/embedded/project/volumes/app-data/products/conf/products-env.conf @@ -0,0 +1,16 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://gateway:9081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +# APPLICATION_HOST_PORT=9081 +# 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="/" +# IX_HOME="ginas.ix" +# 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 diff --git a/embedded/project/volumes/app-data/ssg4m/conf/application.conf b/embedded/project/volumes/app-data/ssg4m/conf/application.conf new file mode 100644 index 0000000..2078c62 --- /dev/null +++ b/embedded/project/volumes/app-data/ssg4m/conf/application.conf @@ -0,0 +1,157 @@ +include "ssg4-core.conf" +include "ssg4m-env.conf" +include "ssg4m-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## + +spring.application.name="ssg4m" + +# ??? this doesn't work well with embedded tomcat +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_SSG4M} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +# ??? we need to connect to the substances db in other directory with h2 +ix.home_default=${spring.application.name}".ix" +ix.home_default=${?IX_HOME_DEFAULT} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=false + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# 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 +ix.ginas.export.path=${?MS_EXPORT_PATH_SSG4M} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +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.endpoints.web.base-path="/service-info/api/v1/"${spring.application.name}"/actuator" +management.endpoints.web.exposure.include=${?MS_ACTUATOR_EXPOSE_ENDPOINTS_SSG4M} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2: { + base = ./${ix.home}/h2 + } + +spring.datasource.url="jdbc:h2:"${ix.h2.base}"/sprinxight;AUTO_SERVER=TRUE" + spring.datasource.url=${?DB_URL_SRSCID} + spring.datasource.url=${?DB_URL_SSG4M} +spring.datasource.driverClassName=org.h2.Driver + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SRSCID} + spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SSG4M} +spring.datasource.username=${?DB_USERNAME} + spring.datasource.username=${?DB_USERNAME_SRSCID} + spring.datasource.username=${?DB_USERNAME_SSG4M} +spring.datasource.password=${?DB_PASSWORD} + spring.datasource.password=${?DB_PASSWORD_SRSCID} + spring.datasource.password=${?DB_PASSWORD_SSG4M} +spring.datasource.connectionTimeout=120000 + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SRSCID} + spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SSG4M} +spring.datasource.maximumPoolSize=50 + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SRSCID} + spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SSG4M} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + spring.jpa.database-platform=${?DB_DIALECT} + spring.jpa.database-platform=${?DB_DIALECT_SRSCID} + spring.jpa.database-platform=${?DB_DIALECT_SSG4M} +spring.jpa.hibernate.ddl-auto=none + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SRSCID} + spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SSG4M} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +spring.hibernate.show-sql=false + +################################################################## +# API SETTINGS ## +################################################################## + +substanceAPI.BaseUrl="http://localhost:8080/" +substanceAPI.BaseUrl=${?API_URL} +gsrs.microservice.substances.api.baseURL=${substanceAPI.BaseUrl}"substances" +gsrs.microservice.substances.api.baseURL=${?API_BASE_URL_SUBSTANCES} + +gsrs.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_SSG4M} + +################################################################## +# CONFIGURATIONS VALIDATORS, PROCESSORS, EXPORT, etc ## +################################################################## + +# No configuration yet + + +# Do we need this in services other than substances? +################################################################## +# 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} + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/ssg4m.conf" +include "ssg4m.conf" + diff --git a/embedded/project/volumes/app-data/ssg4m/conf/ssg4m-env.conf b/embedded/project/volumes/app-data/ssg4m/conf/ssg4m-env.conf new file mode 100644 index 0000000..37a5a46 --- /dev/null +++ b/embedded/project/volumes/app-data/ssg4m/conf/ssg4m-env.conf @@ -0,0 +1,15 @@ +# Application host url should have no trailing slash +# APPLICATION_HOST="http://gateway:8081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +# APPLICATION_HOST_PORT=9081 +# APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} +# APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} +# 8088 +MS_SERVER_PORT_SSG4M=${SERVER_PORT} +MS_LOOPBACK_PORT_SSG4M=${SERVER_PORT} +MS_SERVLET_CONTEXT_PATH_SSG4M="/" +# IX_HOME="ginas.ix" +DB_DDL_AUTO=update +# API URLS have slash +API_BASE_URL_SUBSTANCES=${APPLICATION_HOST}"/" \ No newline at end of file diff --git a/embedded/project/volumes/app-data/substances/conf/application.conf b/embedded/project/volumes/app-data/substances/conf/application.conf new file mode 100644 index 0000000..5db3774 --- /dev/null +++ b/embedded/project/volumes/app-data/substances/conf/application.conf @@ -0,0 +1,184 @@ +include "substances-core.conf" +include "substances-env.conf" +include "substances-env-db.conf" + +################################################################## +# MAIN CONFIGURATION ## +################################################################## +CONFIG_TEST_APPL_CONF="This is substances application.conf" + + +spring.application.name="substances" + +# ??? this doesn't work well with embedded tomcat +server.servlet.context-path="/"${spring.application.name} +server.servlet.context-path=${?MS_SERVLET_CONTEXT_PATH_SUBSTANCES} + +ix.home=${spring.application.name}".ix" +ix.home=${?IX_HOME} + +application.host="http://localhost:8080" +application.host=${?APPLICATION_HOST} + +# Server port is used in embedded Tomcat +server.port="" +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.substances.molwitch.enabled=true + +# PUT YOUR PERSONAL EXTENSIONS AND ADDITIONS HERE +#debug=true +spring.main.allow-bean-definition-overriding=true + +# export path +ix.ginas.export.path=./exports +ix.ginas.export.path=${?MS_EXPORT_PATH_SUBSTANCES} + +gsrs.substance.structures.saltFilePath=${?MS_SALT_PATH_SUBSTANCES} + +# maximum file upload size +spring.servlet.multipart.max-file-size=512MB +spring.servlet.multipart.max-request-size=512MB + +# For jchem3 +# ix.structure-hasher = "ix.core.chem.LychiStructureHasher" +# ix.structure-standardizer = "ix.core.chem.LychiStandardizer" + +# For CDK +ffix.structure-hasher = "ix.core.chem.InchiStructureHasher" +ix.structure-standardizer = "ix.core.chem.InchiStandardizer" + +################################################################## +# 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_SUBSTANCES} + +################################################################## +# 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} + +################################################################## +# EUREKA SETTINGS ## +################################################################## + +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} + +################################################################## +# DATABASE CONNECTION ## +################################################################## + +ix.h2 { + base = ./${ix.home}/h2 +} + +spring.datasource.url="jdbc:h2:"${ix.h2.base}"/sprinxight;AUTO_SERVER=TRUE" +spring.datasource.url=${?DB_URL_SUBSTANCES} +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME} +spring.datasource.driverClassName=${?DB_DRIVER_CLASS_NAME_SUBSTANCES} +spring.datasource.username=${?DB_USERNAME} +spring.datasource.username=${?DB_USERNAME_SUBSTANCES} +spring.datasource.password=${?DB_PASSWORD} +spring.datasource.password=${?DB_PASSWORD_SUBSTANCES} +spring.datasource.connectionTimeout=120000 +spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT} +spring.datasource.connectionTimeout=${?DB_CONNECTION_TIMEOUT_SUBSTANCES} +spring.datasource.maximumPoolSize=50 +spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE} +spring.datasource.maximumPoolSize=${?DB_MAXIMUM_POOL_SIZE_SUBSTANCES} +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.database-platform=${?DB_DIALECT} +spring.jpa.database-platform=${?DB_DIALECT_SUBSTANCES} +spring.jpa.hibernate.ddl-auto=none +spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO} +spring.jpa.hibernate.ddl-auto=${?DB_DDL_AUTO_SUBSTANCES} +spring.jpa.hibernate.use-new-id-generator-mappings=${?DB_USE_NEW_ID_GENERATOR_MAPPINGS} +spring.hibernate.show-sql=false + +################################################################## +# API SETTINGS ## +################################################################## + +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.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.loopback.port=8080 +gsrs.loopback.port=${?APPLICATION_HOST_PORT} +gsrs.loopback.port=${?MS_LOOPBACK_PORT_SUBSTANCES} + +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 ## +################################################################## + +ix.ginas.approvalIdGenerator.generatorClass="ix.ginas.utils.UNIIGenerator" +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 + } +} + +################################################################## +# 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} + +################################################################## +# CUSTOM CONFIGURATION ## +################################################################## + +include "conf/substances.conf" +include "substances.conf" diff --git a/embedded/project/volumes/app-data/substances/conf/fda-extensions.conf b/embedded/project/volumes/app-data/substances/conf/fda-extensions.conf new file mode 100644 index 0000000..c6e6651 --- /dev/null +++ b/embedded/project/volumes/app-data/substances/conf/fda-extensions.conf @@ -0,0 +1,46 @@ + +gsrs.entityProcessors +={ + "entityClassName" = "ix.ginas.models.v1.Substance", + "processor" = "gsrs.module.substance.processors.UniqueCodeGenerator", + "with"= { + "useLegacy"=true, + "codesystem"="BDNUM", + "suffix"="AB", + "length"=9, + # For BDNUM of 9 chars, max has 7 digits, taking into account the length + # of the suffix. Only have max uncommented if useLegacy==false + # "max": 9999999, + "padding"=true + } + } + + +gsrs.entityProcessors += + { + "entityClassName" = "ix.ginas.models.v1.Substance", + "processor" = "gsrs.module.substance.processors.ApprovalIdProcessor", + "parameters" = { + "codeSystem" = "FDA UNII" + } + } + +ix.ginas.export.factories.substances = ${ix.ginas.export.factories.substances}[ + #"gsrs.module.substance.ExtraColumnsSpreadsheetExporterFactory", + "fda.gsrs.substance.exporters.FDANameExporterFactory", + "fda.gsrs.substance.exporters.FDACodeExporterFactory", + "fda.gsrs.substance.exporters.SPLValidatorXMLExporterFactory", + "fda.gsrs.substance.exporters.ExcelSubstanceRelatedApplicationsExporterFactory", + "fda.gsrs.substance.exporters.ExcelSubstanceRelatedProductsExporterFactory", + "fda.gsrs.substance.exporters.ExcelSubstanceRelatedClinicalTrialsUSExporterFactory", + "fda.gsrs.substance.exporters.ExcelSubstanceRelatedClinicalTrialsEuropeExporterFactory", + # "ix.ginas.exporters.SRSLegacyDictionaryExporterFactory" +] + +ix.ginas.approvalIdGenerator.generatorClass=ix.ginas.utils.UNIIGenerator + + +gsrs.validators.substances += { + + "validatorClass" = "fda.gsrs.substance.validators.BdNumModificationValidator", + "newObjClass" = "ix.ginas.models.v1.Substance" + } diff --git a/embedded/project/volumes/app-data/substances/conf/substances-env.conf b/embedded/project/volumes/app-data/substances/conf/substances-env.conf new file mode 100644 index 0000000..b9410d5 --- /dev/null +++ b/embedded/project/volumes/app-data/substances/conf/substances-env.conf @@ -0,0 +1,23 @@ +# Application host url should have no trailing slash +CONFIG_TEST_ENV_CONF="This is substances-env.conf" +# APPLICATION_HOST="http://gateway:9081" +# APPLICATION_HOST=${?GATEWAY_HOST} +# APPLICATION_HOST=${?OVERRIDE_APPLICATION_HOST} +# APPLICATION_HOST_PORT=9081 +# APPLICATION_HOST_PORT=${?GATEWAY_HOST_PORT} +# APPLICATION_HOST_PORT=${?OVERRIDE_APPLICATION_HOST_PORT} +# 8080 +MS_SERVER_PORT_SUBSTANCES=${SERVER_PORT} +MS_LOOPBACK_PORT_SUBSTANCES=${SERVER_PORT} +# IX_HOME=ginas.ix +DB_DDL_AUTO=update + +# API URLs have slash +API_BASE_URL_APPLICATIONS=${APPLICATION_HOST}"/" +API_BASE_URL_CLINICAL_TRIALS_US=${APPLICATION_HOST}"/" +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 diff --git a/embedded/project/volumes/app-data/substances/salt_data_public.tsv b/embedded/project/volumes/app-data/substances/salt_data_public.tsv new file mode 100644 index 0000000..cda7922 --- /dev/null +++ b/embedded/project/volumes/app-data/substances/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