From 92e3d65179880d17a71126e7767fa4cddbe446af Mon Sep 17 00:00:00 2001 From: alx652 Date: Tue, 12 Nov 2024 14:25:50 -0500 Subject: [PATCH 01/11] set new embedded recipe --- embedded/project/blank.env-db.conf.tar.gz | Bin 0 -> 1237 bytes .../docker-source/adverse-events/Dockerfile | 40 +++ .../docker-source/applications/Dockerfile | 40 +++ .../docker-source/clinical-trials/Dockerfile | 39 +++ .../docker-source/discovery/Dockerfile | 16 ++ .../project/docker-source/docker-compose.yml | 204 ++++++++++++++ .../project/docker-source/docker-notes.md | 85 ++++++ .../project/docker-source/frontend/Dockerfile | 21 ++ .../project/docker-source/gateway/Dockerfile | 16 ++ .../docker-source/impurities/Dockerfile | 39 +++ .../invitro-pharmacology/Dockerfile | 37 +++ .../project/docker-source/products/Dockerfile | 37 +++ .../project/docker-source/ssg4m/Dockerfile | 39 +++ .../docker-source/substances/Dockerfile | 45 ++++ .../conf/adverse-events-env.conf | 16 ++ .../adverse-events/conf/application.conf | 227 ++++++++++++++++ .../applications/conf/application.conf | 227 ++++++++++++++++ .../applications/conf/applications-env.conf | 16 ++ .../clinical-trials/conf/application.conf | 186 +++++++++++++ .../conf/clinical-trials-env.conf | 39 +++ .../app-data/discovery/conf/application.conf | 31 +++ .../app-data/frontend/conf/frontend-env.conf | 4 + .../app-data/gateway/conf/application.yml | 249 ++++++++++++++++++ .../app-data/impurities/conf/application.conf | 203 ++++++++++++++ .../impurities/conf/impurities-env.conf | 16 ++ .../conf/application.conf | 224 ++++++++++++++++ .../conf/invitro-pharmacology-env.conf | 16 ++ .../app-data/products/conf/application.conf | 219 +++++++++++++++ .../app-data/products/conf/products-env.conf | 16 ++ .../app-data/ssg4m/conf/application.conf | 157 +++++++++++ .../app-data/ssg4m/conf/ssg4m-env.conf | 15 ++ .../app-data/substances/conf/application.conf | 184 +++++++++++++ .../substances/conf/fda-extensions.conf | 46 ++++ .../substances/conf/substances-env.conf | 23 ++ .../app-data/substances/salt_data_public.tsv | 61 +++++ 35 files changed, 2833 insertions(+) create mode 100644 embedded/project/blank.env-db.conf.tar.gz create mode 100644 embedded/project/docker-source/adverse-events/Dockerfile create mode 100644 embedded/project/docker-source/applications/Dockerfile create mode 100644 embedded/project/docker-source/clinical-trials/Dockerfile create mode 100644 embedded/project/docker-source/discovery/Dockerfile create mode 100644 embedded/project/docker-source/docker-compose.yml create mode 100644 embedded/project/docker-source/docker-notes.md create mode 100644 embedded/project/docker-source/frontend/Dockerfile create mode 100644 embedded/project/docker-source/gateway/Dockerfile create mode 100644 embedded/project/docker-source/impurities/Dockerfile create mode 100644 embedded/project/docker-source/invitro-pharmacology/Dockerfile create mode 100644 embedded/project/docker-source/products/Dockerfile create mode 100644 embedded/project/docker-source/ssg4m/Dockerfile create mode 100644 embedded/project/docker-source/substances/Dockerfile create mode 100644 embedded/project/volumes/app-data/adverse-events/conf/adverse-events-env.conf create mode 100644 embedded/project/volumes/app-data/adverse-events/conf/application.conf create mode 100644 embedded/project/volumes/app-data/applications/conf/application.conf create mode 100644 embedded/project/volumes/app-data/applications/conf/applications-env.conf create mode 100644 embedded/project/volumes/app-data/clinical-trials/conf/application.conf create mode 100644 embedded/project/volumes/app-data/clinical-trials/conf/clinical-trials-env.conf create mode 100644 embedded/project/volumes/app-data/discovery/conf/application.conf create mode 100644 embedded/project/volumes/app-data/frontend/conf/frontend-env.conf create mode 100644 embedded/project/volumes/app-data/gateway/conf/application.yml create mode 100644 embedded/project/volumes/app-data/impurities/conf/application.conf create mode 100644 embedded/project/volumes/app-data/impurities/conf/impurities-env.conf create mode 100644 embedded/project/volumes/app-data/invitro-pharmacology/conf/application.conf create mode 100644 embedded/project/volumes/app-data/invitro-pharmacology/conf/invitro-pharmacology-env.conf create mode 100644 embedded/project/volumes/app-data/products/conf/application.conf create mode 100644 embedded/project/volumes/app-data/products/conf/products-env.conf create mode 100644 embedded/project/volumes/app-data/ssg4m/conf/application.conf create mode 100644 embedded/project/volumes/app-data/ssg4m/conf/ssg4m-env.conf create mode 100644 embedded/project/volumes/app-data/substances/conf/application.conf create mode 100644 embedded/project/volumes/app-data/substances/conf/fda-extensions.conf create mode 100644 embedded/project/volumes/app-data/substances/conf/substances-env.conf create mode 100644 embedded/project/volumes/app-data/substances/salt_data_public.tsv 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 0000000000000000000000000000000000000000..104d032fa4bff8272e55a884ebe73bfd653195a2 GIT binary patch literal 1237 zcmV;`1S1k!WJt=Tt1=d6Xiq`tet;mElxR!Ca}Up4QufB{ zY_^)m%W=3^jHY1`j+e^|HXlb>`pfv6@ai-Ur*S^^ey$de;&eTlo_pn5rz;2{!I3i67{W~9h{;~6+<4nTHefr$} z(cMrkb3ReG@&ox@-O8W;?6%3{v$JQLhvh5&P`59(p7KGn{Ie*Vdur#K#omimn1^YR zq_Oj2jF68Hg`|X{$Ul5|nP>C(@DAQEaFg5h-}rx@IF@uL|AtIg{hPbLUjEzoKO-3Y-v%w?pUfAlJSmd6CHgh%437Ug z_5V;c{s`v(>|j*?h4cdK3rtuLK=~as9rSOg`Ub83U!{MJ5rX<}1;~GUjh6o#)&Z^l zU#)+EVgA<&{rw;E-;n8`|DNuz+5fBb&jhF7|2Amr|E|u}XOc#3`L9`bU-^%cvi?g6 z=YLwksQw4YlU#5l1%~`LY&z)QQ1uO3`LEVLVsQSa9U%YhHCp~}SO>K7U#))?0Kxxl z(BJt8ZB z|I-S+{U74rpxLSa-tMoN|7!iKg97k>8?^O*({)nh*=TVY=JPPhX4%EdmNP+Hp7ox6 zM63UYv5VABAO+Na8yL<1N$L?!i0^Yoq5cjUE&Xe$zCkblRr*H^=Kt&f`ERc=^na~7 zpw<7Y_0I(Z|F=PZ|AzoLWVG~e$(uhc&h1g`(ELd*Dv({-FL<59eh)3z?)zt`Wv z_1`!9e}wVs`fm#TKPwo`|552t$`R(ifa*JJI_lp*^$j}tuhzd%#~4umtpNFNuhI5@ zgF2wo|J(RKCeZ)0LT~?v_%~=e>c5BkYkvPr?f+On|IZ3-8~Q)&9@m`@aDI0PdG}y_ml!0CWHV4F$s; literal 0 HcmV?d00001 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..9021811 --- /dev/null +++ b/embedded/project/docker-source/docker-compose.yml @@ -0,0 +1,204 @@ +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 + - 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 + - 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 + - MS_SERVLET_CONTEXT_PATH_FRONTEND=/ + - APPLICATION_HOST="http://gateway:9081" + - APPLICATION_HOST_PORT=9081 + - EUREKA_SERVICE_URL="http://discovery:8761/eureka" + - MS_FRONTEND_SERVER_PORT=8082 + 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 + - 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 + - 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 + - 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 + - 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 + - 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: root + MARIADB_USER: root + MARIADB_ROOT_PASSWORD: yourpassword + 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: yourpassword + MYSQL_PASSWORD: yourpassword + MYSQL_USER: yourpassword + 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..9676853 --- /dev/null +++ b/embedded/project/docker-source/docker-notes.md @@ -0,0 +1,85 @@ +# Notes for GSRS Docker embedded deployment + +## Terminal Environment + +``` +DOCKER_SOURCE=../../docker-source +HOST_VOLUMES=../../volumes +RELEASE_MODE=public +``` + +## GSRS-CI + +Below gsrs-ci refers to the deployments folder used by FDA. but you may use any similar deployment repository such as gsrs3-main-deployment. + +## Running the containers + +``` +cd gsrs-ci +docker-compose -f ../docker-source/docker-compose.yml up postgresql frontend gateway substances clinical-trials +``` + +## 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) +``` \ No newline at end of file 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/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 From cab4a5fb6da5cfc26fc9e9f5410cbe359346b8c8 Mon Sep 17 00:00:00 2001 From: alx652 Date: Tue, 12 Nov 2024 16:42:17 -0500 Subject: [PATCH 02/11] handle db cred better --- .../project/docker-source/docker-compose.yml | 141 ++++++++++-------- .../project/docker-source/docker-notes.md | 19 ++- embedded/project/mariadb.env-db.conf.tar.gz | Bin 0 -> 4447 bytes embedded/project/mysql.env-db.conf.tar.gz | Bin 0 -> 2184 bytes .../project/postgresql.env-db.conf.tar.gz | Bin 0 -> 2117 bytes 5 files changed, 94 insertions(+), 66 deletions(-) create mode 100644 embedded/project/mariadb.env-db.conf.tar.gz create mode 100644 embedded/project/mysql.env-db.conf.tar.gz create mode 100644 embedded/project/postgresql.env-db.conf.tar.gz diff --git a/embedded/project/docker-source/docker-compose.yml b/embedded/project/docker-source/docker-compose.yml index 9021811..c5f32b1 100644 --- a/embedded/project/docker-source/docker-compose.yml +++ b/embedded/project/docker-source/docker-compose.yml @@ -4,12 +4,12 @@ services: 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 + 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 @@ -19,12 +19,15 @@ services: 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 - - 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 + 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 @@ -35,12 +38,14 @@ services: 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 - - 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 + 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: @@ -49,7 +54,7 @@ services: container_name: discovery-emb entrypoint: ["java", "-cp", "/target/discovery.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] environment: - - SERVER_PORT=8761 + SERVER_PORT: 8761 image: gsrs3/gsrs-emb-docker-discovery:0.0.1-SNAPSHOT ports: - 8761:8761 @@ -58,11 +63,11 @@ services: entrypoint: ["java", "-cp", "/target/frontend.jar:classes:conf", "org.springframework.boot.loader.JarLauncher"] environment: # Servlet context does not work from frontend-env.conf - - MS_SERVLET_CONTEXT_PATH_FRONTEND=/ - - APPLICATION_HOST="http://gateway:9081" - - APPLICATION_HOST_PORT=9081 - - EUREKA_SERVICE_URL="http://discovery:8761/eureka" - - MS_FRONTEND_SERVER_PORT=8082 + 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 @@ -77,21 +82,23 @@ services: 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 + 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 - - 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 + 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 @@ -101,12 +108,14 @@ services: 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 - - 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 + 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 @@ -116,12 +125,14 @@ services: 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 - - 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 + 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 @@ -131,11 +142,13 @@ services: 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 - - EUREKA_SERVICE_URL="http://discovery:8761/eureka" - - IX_HOME=/app/data/ssg4m/ginas.ix - - SERVER_PORT=8088 + 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 @@ -145,11 +158,13 @@ services: 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 - - EUREKA_SERVICE_URL="http://discovery:8761/eureka" - - IX_HOME=/app/data/substances/ginas.ix - - SERVER_PORT=8080 + 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: @@ -163,9 +178,9 @@ services: mariadb: container_name: mariadb-emb environment: - MARIADB_ROOT_USER: root - MARIADB_USER: root - MARIADB_ROOT_PASSWORD: yourpassword + MARIADB_ROOT_USER: $DB_TEST_USERNAME + MARIADB_USER: $DB_TEST_USERNAME + MARIADB_ROOT_PASSWORD: $DB_TEST_PASSWORD image: mariadb:latest ports: - "3306:3306" @@ -179,9 +194,9 @@ services: # "--mysql-native-password=ON", command: ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"] environment: - MYSQL_ROOT_PASSWORD: yourpassword - MYSQL_PASSWORD: yourpassword - MYSQL_USER: yourpassword + 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: diff --git a/embedded/project/docker-source/docker-notes.md b/embedded/project/docker-source/docker-notes.md index 9676853..97fccf4 100644 --- a/embedded/project/docker-source/docker-notes.md +++ b/embedded/project/docker-source/docker-notes.md @@ -3,9 +3,12 @@ ## Terminal Environment ``` -DOCKER_SOURCE=../../docker-source -HOST_VOLUMES=../../volumes -RELEASE_MODE=public +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 ``` ## GSRS-CI @@ -14,11 +17,21 @@ Below gsrs-ci refers to the deployments folder used by FDA. but you may use any ## Running the containers +First you'll need to build your images (see below) + ``` cd gsrs-ci 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` 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 0000000000000000000000000000000000000000..3105c35ef4c2cf83f5e62dfe87e1ea0068a91824 GIT binary patch literal 4447 zcmX|^c|4SB8^>otC`Cu!vShNHXw@-FWf@u&6|LGEEyxn7$dVpQMI=fHX(}X%Nx~7+ zQ(3c(B1;ov3CF&SnK9dQy$`4N{r8^xxjxtDzJAy5`x{cE9Dz|yb|y%Tq%b{uDpV>5 z>I&LDf}9jD-rr5sx?p#U!HGKAk3Bp@%`Xvnd%b(xob@qYPW8R*6cF1(9qlm{obGP-UN{%Szu+5Ut z`W+&9@69S96L0fA9cy!PtPK2n*nnV|yD3vqwFa{J{6-Y|3vUP_Neu2-u6X_m?Mdb` zR=&;o;EV6imG`oR&5G!`_Po~&r>v_D`hh3sjkEJU3^By&lLlkGl7JD>fbB6eb8|Jx z2GefOj-k9=aRHx1c58>S?Z?ih`uX{Fbo_mxpnfL}m;sE7$0%|XQTO{cPaoM750cJXco3(XpI-xo_9d8ePd{oRD3tN)1XZml;H$g+%9VVlIGjAk`C4-DHpU(gr<~YE z^@zwHm-vztKP0N29Y#iHUgqK`{xW=NIgw|`Fb^46=+I{C`cagU!_UgOMxA=nRG8(Q z+G6j$v%A5M?P?pa!dCy_Eg9d9@AF`O9%d-AlhM+4h0GcUSdd%b9cZ(*1{P4>Sfz7| zr(Y?Cv?%Z^`qdaER~{eV>*lb*Q%&OW!$-lc`E3>@#f zoJ=J6%1m&#t<*OTo%A`BBST})uNEm+n$D{}u+L*|@5sxO^9S4UBTK<@eUgmh?|XA? z+}2()Zw^^am(i>~-Wf-a3%Pu7V71g6!;-&NX$p8qWzrBx5l)|L9&J&}U+acBBzwB; zZoaTJgW6B(k?J><`>DQQX-7GXug9CA&-LO!QbNK|Mx7;@?pD=;0=H5dSUgn23gI#*cge59YpiG82Ir9NK)>SU z*FL7OMKy0umI&FtX&ml8%?6i5`^Pp#bMV&BiqXeu=G)D%{vR3`O|=uUjpTV0W3#8D z5cLEcV2PcNND=5&wN;2dw@8Ngy$4x$tqT{jAJ)&kGB$ek#O`rW0&*xOR_vZMG&m=r z=H5w$#OS85f2NUeP@OZ=tPzk6%%1ju7Uq2Wcdsenr^nsRo%wd#b4X}>p|sr_jQc3c zTOrv3frNQy?jGLM%0bUHBm0BJ`24A` zTZXR0T4!-ry;jfZ-wEYnk&Bj0AUY0`mj6v?2z@zp7DH9vvLKxaCwObu7?CF_@j{J4 zLc>wmaWfPb*sgkLWeg|?8QhwLI&4SYcayP{z;v$#-ViOXE<#l;sla+S?AtDb4-7Y^ zJ{_*s%;Yzgiap6QVtas}rOQ5)P%4&IAaybASShSF%oC8#rJ1K1yu@V#{c^yRzJpOY zQ!m<4S9+o6k9LKgph1kp)zuKPrG+AN(@pu73e2;7MFrGY4{mFcP(Gh5gIWT3rdz*( zq5&e_%pVccv_)@O$TYIU$qLIzH&4*VwY*b*rG%h3fz8@mywnX+m5 zaBM2bN^JKxu0O3}Nf;bC|DczhARM-RY9(eqn>pP9%t*PM!eZm045o3~i{P|&sOt?O zw+tb&LblQtA-Z+?cAa#8lU6Hax2DA)dovZaT=+i^ z)LF=wJOL+I+XzLBYR7KH$j6aPNyg9g{UT;jki_^?>5t|wd8zHO6?xeeUfxJR#>B4_ zrX8)YgK>dpQrFl&W`4sIi@egk$6XQX#~Ui@zuxfnbe^0hLA9vUH^b{Xe}FD|753e# zCp9$n`1S7-8KtlCb?o9aQrySGt$df9Is4$(nkO56aSb zXKZUy$MJD{liOdIUa&)+9@U{*kY>*^%QQDJe`IP|*m9Ag!JZiG>hcII9xOb3nW-mp zNtk1ovdxFxe<=Q^V8CfrhbS{tc@#Uu7!Xkc0(&(dZ7JubXY`evK3dSp(5~vk?HK#V zW5FsCJZlsohJ9Ob8`rAikh01~pr%@dwL_Q@q7#b*W-3~nVanB%i5BP)FbUN?l(&27 ze_;o87Z0NaGe(}w+Ak=)SccqpnDR^ ze}R|GB&v?N)Bw!{5t5oI|ryRE+ihktWVzUI*n*y<#xbgTl` zxg%T%nP0t1Lx4o=T_tFFAdG1mLRU;8%OOi^h7b`v>TboVVPp?RS|Whj--eUt8=7Kt;5g?{r_6W!+W<0;lc^_ko<<-sE7Y$@B4O37h_E1(wy^^$il^UEt zY?svnd8>~odV;1M`@eeu%iMJ^&pEd++SNHdu64_n9J&XhL6QJZ3>3_u1Zn#`L*aRo zbbZ`-@fs&9a01RyIMoqUxIvf2$OT6SJPZD7y!bsAN$&&_&?lg^O81~v7GmVs1PHM( zF2206r5WE-8H2n}qn~7Hx@?gJ!ES}jrT0tDGFJ{MezAP;ZjBLrw)eKsOHA+pflKw+wETrgRBOwO|xl!6EU5Zl&yZcKh~QiqY2E z1TeM7qW6V^?4+GO57{VPf!HS*@hDlE_*rx>`xC}=!ea@(MCbcz5Y2ziez|?ko?9FPcd_x|1}^!EFzFV2{$0A*h?B#6=+gL+qWV zC@(CZrvJu-l{RcXiuj3XWD{-p>9rnnlP-e<6`+`Id1=Oq&lZ#BcTTl`FtPWcpIc=! zdbM>;x#;>ehtH=zWRU}-Gw7Mu!^RepDt{%cJtTA13c}_*VJQ%9O~WS0;CBZ1Qvr9GsO5fZg*C=WB0g0D#a}eJU@pn&<22JIwjML^!KiyMWY9qpHq+N#Se&RU zV7ko>+A2oeVe^@AJaYViSX+nb#BaVhBG`+Tf^i5ojqWweb(#Udu3qYi!EHv}u&#U> zoefFzc+?Y$xc(%=lmE|ms+nTv0_?KL(}c`H-e7DcIY^!lXvCd9XAW}mxz$Ll!U;A_#$D~Zy}qoMI1EV{PW z7b9CH^;7Kcr~|##Q7Z;xbnfbb4kidicuYop9|)0E++y&l;GzRPpdnx@ zJTt=#{?^f_FUP3v4}MXSo5FDYsZOGavk|)kUga}i2* zQf@_*@0LQ8V%Zbj$uUsVwuG+z-+Ym@_%%%w*9g~#i0`2TLC8_9KUj(e>6*W!!obx>AIR_sngBz-qT{>3&tmQ)g|akkPR1634tv^tYI5TcWn?=HI=*fjBXJc~Qslnh7bQ8i z7RlXL-7-Eq&e!&^m3Y_mGqcS$jGdsIcU%8kc$S@$eirsjs=vOP&n_|ikld~wKTsp` z*%EO~X8f$7W{1wlbUpOZ?f*(Q#VbB2T5tKxS2Ix{D0IhB?Vc*RvMPQ4q@Cbma ziy{{%lp%N1e$43)>VPz1(khVid=c3Wb54ZOqZS?`HMUjNW?UZq$&7@MEb*L&H_Eu= z<=qL6-fggtnbf5?%_Qtrxrb#CwJ@&}rLMyjCl&uJ;Ne@w4Q_P8Jq(YJohAe=B|>08 z<2+^7W*%u5Ub?d;60MS{AcCES6`b%!W|D?E6Tx$}47Ep^EDmKBRh2-Eqh|$p&4R}C z4eG?glu;y}XT_Bo6xwep+cQm(&7YSTRkySiZ z_~mpIwoEdV5|X8^2(o*MMS*|i{coBO5A9;4c}#Gk%qsFbSd?L@LVGU}d998R46|v) z)@`D_F@N*$aykcdU{`V^ru^;a*J#zS&+lQePdBqf8BG#603tLz8gD&f%0`5}HV10uq;+x0Vl7*pRx7|&1ypt)hP5qV( z#QIS(r|O}!0Iy9wfZg6yd?U{6%NG^1s9**T^Y@8-xDUW==pCdR?O+hzoK1wTltHxy z{|;CbRyAgLUhAg_DhUOiecRA?%9IgWqNm+ay}R2f;ez1BG)Etn-i8&w5A#B_x5r>E zbS#pU*iyl#^%Q@yt>+)*ewrBO@1Svdg6p43Mso-3UP|R(?Ll^vmajncHmGR%16~hi_K@u!1{)RDBE2rIA^=V z3Zlk`W2>>`olv_3hs)HP$2dQpFf=g#OOZ0Kp{mFP`k0gkz~e{3b`qH7(P(oir!we> zO&cy?kNL1eB~^{cl}L4qntJ?h0aq4s)n6jF<;{dd?oRK4sD9t+DaqX3%jt?HhnUCJ zDlv1?Rw5mo^e$p_ner95xP(_?Dt$~_BQ%KzK{-x{k=ElZAW&)>#~wLg*tF&H59l71 z-n4pHVHkba#+LZTMP%Z^S~%o}KQ;mTb}Yi?pqS5)fm?=P0Zj6SCUg2!Lr5-nSXYa? zXCnCBi;62Y17rHWa`Cj0xHDE~f|9keR)*ehAE@&``G_;J&~=$jF=SPhOA;~8V#~>(CDpYxJ?+hL+tNzdl+OZ>vunkoc?Sfkz;j|EN)OaT z#eb8f1tZIQwOEcq>xP|RRB`lvFqT$&AH2mm+$2H>lT^6?w7C)Pi+g_OUmk1STGMM@ z)45@d;=lA-E-NVJ`W$ zo#ILH0`PjcSWdRA4{r z0-_b;NHMwrKhj*j>UTNQaLx9~|7r^Dy1YlpC0G5&vg*;N38PP#$X0%U<7gw@|9KWz zt1Tf$F|!!GTwN>46x}CJjrLzA4X-9gK!<&BUhLSdkolV45L+_^8~LzVt{>XPo=0>u zPU=h}H7U&yA)ap@9?ETF5Hw%j1LNpol#R3u>U0pQl^!2NnKP+(3C^c{dB%aAAp&OO mPkHPk@%s>Y=4Ta;$v8a8{`G1d4wr3;tt-!~Gwu5!I0Z literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1d470df78341cd92044eb26a443193fafe000e2e GIT binary patch literal 2117 zcmW-fc_7q@8^#?KLW6M?rLttA#!(?Le&1R>KjzT6E!QXILcYD){-Wv@Eq0UWf49=raUqm23YCd7 z-5lkG4bpO;7vs0=+v(@*7e9qbd8D7ZA+L-dMeqy-yKPOkTPRj(6qXX+LOETw)ZiD;9pB%h1+zS2FES>)D}*7Q%!XCUcNU zxCo=nSI%U(wk7#kNcmjc2B3J&D6*A;;FF^$x?)4T<7`A~b z=W(NQ1&4V+Q9&}8t|&1$SX5}W;ZU^i1FNDk4;37T&|DDmL*)Tn*OlZL6hoaG6=VlU zvD>@`kPK=l8Ra-;qIP|(Qch)2f1KPGA$|fQWUR(5u`So{R{c)}$>kRo%J8`a9Ubk@ z%ylkP$R@%caaMYNyF#d#q0qqtDmFT{06MK(R_OMe?t5U44pI~)#9AJAG9o|CmG%e? z>#~rQI{YNeRdtJ1dI>918+HREo7FT&P(NJ^d)4xx(B9TGG3~KnSA2PE&qYf_kXNBv zh#E$(c?p?b*d?OE#AkvaLz?~yJu2}Gd+6}8 zS-!GYH-uz{h#9Lp+M!LuDI>+POMQY#=NHz>BuLx~ngm4Uk|m_Nz@~Kkbzyh!6uF;I zG{MMAO=@zWF3bP!Dk1%BCLhTB^;2YxPsqP~9=#aK-Q&d=ZAur3X?)JGS->`z68HgY zYnuxVx~)rAnBl3yn~oV=W^LP#2HnKDb{Tpp%kfsI|K->)wVBpkmvx2Rcb$}UxYpT9 z9OQ{(0H{*@soI6Ou`p@|I-_SHpwsx9eiK7-!ckxuWyy<4*Z$xd?Cl{fkL%4q0)PJF zgZH{i3uDW|Dc{=zDZDQ=-1Z(0>tbEWK->af8u#?&EW9z-S7W+kG=?0_ZzxcKO69LMEBaFaK3dd ziC37~n6tmG?@YhxR02DUHBP&MdI%!(SQA+-c@YA;`xaf>qx{t(&_ImOvl#U$&SLNP+A=dNY5E!v(TtbctxgOf7%_u%l%@oB~DP_;D z(GVbAIO&edzQP?>>B5T)wE+}V(WBEHvS(H+GUKY(uk8&)=41bar=R1&Ab#)F!smDkX>&>L< z)d6WNJsbpcshMRO}`lFQE zEB&efZNm@Pj{5;=-HmmF5Up$5a15~A}c7-C-{ z$+VMT;6}?D&I%qRCnXiaf4^Y}>pEBfgK`JNt{lbG4Rr);@BipaXHsnlyp@m4LGb>gV$4skcb5q0$JRKeq6X?$ znt?;!g|@%Ixb&z>AzC!0^NE49lMQc9#-xZ5HfbG<1l%u zIKVz0qeP*8pVMA}cM^JBIRyQlH;r&QyMk)Q80|S3?ww76F%0e5wToe{r#bbQy?3A8 zcyDJOsaoT={o#30@o3b**%Yl{!S?ySEoD%eZ58L%+R^!1i?s9VPtw5K6sHlsl%{CJ+)LJk=69|7M1ejE6{jYpzYgh4&=m0oidwnIny401zK9~C#82-Ya{YR_-M z?%TW7t+@ns%&PzMz>|!pw^F(se$E^OGlR=#E@2R&Q8KF6EI5qG6M+WS>6AIpV;Y)Z zZWH>#b4hF+{t#|zyRaZ+_PdbP&qKHp0!x1x-ezd>;JVYei2dz~30fZ3sE`dhe+7IM zu@%!LY<>s{QWh_Vo6Rs^7|Y#3;wt+W6+AmC(Pz$)JCV3wt~IkY6_Z5goQH>m2ZN5M XBrP<_$;gmbfxO1} Date: Tue, 12 Nov 2024 16:53:31 -0500 Subject: [PATCH 03/11] another edit --- embedded/project/docker-source/docker-notes.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/embedded/project/docker-source/docker-notes.md b/embedded/project/docker-source/docker-notes.md index 97fccf4..1ce04bc 100644 --- a/embedded/project/docker-source/docker-notes.md +++ b/embedded/project/docker-source/docker-notes.md @@ -11,9 +11,17 @@ export DB_TEST_PASSWORD=yourpassword export RELEASE_MODE=public ``` -## GSRS-CI -Below gsrs-ci refers to the deployments folder used by FDA. but you may use any similar deployment repository such as gsrs3-main-deployment. +## 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 From 5187cbd9819029e00b0e5b1f4878e967a5d5d495 Mon Sep 17 00:00:00 2001 From: alx652 Date: Tue, 12 Nov 2024 17:00:47 -0500 Subject: [PATCH 04/11] edit --- embedded/project/docker-source/docker-notes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/embedded/project/docker-source/docker-notes.md b/embedded/project/docker-source/docker-notes.md index 1ce04bc..5e37e8a 100644 --- a/embedded/project/docker-source/docker-notes.md +++ b/embedded/project/docker-source/docker-notes.md @@ -5,8 +5,10 @@ ``` 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 ``` From 2ae8037b643433fb59aa13be3a1748e78001f879 Mon Sep 17 00:00:00 2001 From: alx652 Date: Tue, 12 Nov 2024 17:10:36 -0500 Subject: [PATCH 05/11] edit --- embedded/project/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 embedded/project/README.md diff --git a/embedded/project/README.md b/embedded/project/README.md new file mode 100644 index 0000000..84221c7 --- /dev/null +++ b/embedded/project/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] From cb6b33accd6034c92423b3a9ba5d9afe6abc0c6a Mon Sep 17 00:00:00 2001 From: alx652 <58182629+alx652@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:12:04 -0500 Subject: [PATCH 06/11] Update README.md --- embedded/project/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/embedded/project/README.md b/embedded/project/README.md index 84221c7..50f4c6e 100644 --- a/embedded/project/README.md +++ b/embedded/project/README.md @@ -5,4 +5,4 @@ This docker recipe is meant to help with testing. For more information: -(project/docker-source/docker-notes.md)[project/docker-source/docker-notes.md] +[project/docker-source/docker-notes.md](project/docker-source/docker-notes.md) From e2db95dda26bda1013ff0e7c8f62d52a0022184b Mon Sep 17 00:00:00 2001 From: alx652 <58182629+alx652@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:13:05 -0500 Subject: [PATCH 07/11] Update README.md --- embedded/project/README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/embedded/project/README.md b/embedded/project/README.md index 50f4c6e..8b13789 100644 --- a/embedded/project/README.md +++ b/embedded/project/README.md @@ -1,8 +1 @@ -# 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) From 2f9875ad253b6fd326a30c597bcd43b2f1d6cf52 Mon Sep 17 00:00:00 2001 From: alx652 <58182629+alx652@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:13:51 -0500 Subject: [PATCH 08/11] Create README.md --- embedded/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 embedded/README.md 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) From 15a73c2165d8da531854505f462904fb9a75e9a9 Mon Sep 17 00:00:00 2001 From: alx652 <58182629+alx652@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:15:55 -0500 Subject: [PATCH 09/11] Update docker-notes.md --- embedded/project/docker-source/docker-notes.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/embedded/project/docker-source/docker-notes.md b/embedded/project/docker-source/docker-notes.md index 5e37e8a..d662f90 100644 --- a/embedded/project/docker-source/docker-notes.md +++ b/embedded/project/docker-source/docker-notes.md @@ -82,18 +82,22 @@ docker build -f $DOCKER_SOURCE/ssg4m/Dockerfile --no-cache --progress=plain --bu 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 @@ -102,7 +106,8 @@ find . -type f | grep -v app-data/db | grep -v 'frontend/classes' | grep -v gs ``` # 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) -``` \ No newline at end of file +``` From 025c38da296f24d72a0f6378a6e40c4d8ef9ee05 Mon Sep 17 00:00:00 2001 From: alx652 <58182629+alx652@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:22:29 -0500 Subject: [PATCH 10/11] Update docker-notes.md --- embedded/project/docker-source/docker-notes.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/embedded/project/docker-source/docker-notes.md b/embedded/project/docker-source/docker-notes.md index d662f90..0f13190 100644 --- a/embedded/project/docker-source/docker-notes.md +++ b/embedded/project/docker-source/docker-notes.md @@ -13,6 +13,10 @@ export DB_TEST_PASSWORD=yourpassword 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 @@ -31,6 +35,8 @@ 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 ``` From 24920f13cda102e02a93360483f15e8b8c52fd61 Mon Sep 17 00:00:00 2001 From: alx652 <58182629+alx652@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:24:17 -0500 Subject: [PATCH 11/11] Update README.md --- embedded/project/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/embedded/project/README.md b/embedded/project/README.md index 8b13789..a151094 100644 --- a/embedded/project/README.md +++ b/embedded/project/README.md @@ -1 +1,5 @@ +# Notes: + +[./docker-source/docker-notes.md](./docker-source/docker-notes.md) +