diff --git a/fda-authentication-service/Dockerfile b/fda-authentication-service/Dockerfile index 42dece92fa455e366583286303ed1a3349b68b54..3011726fb1b2c5e4045a1c20466b63f9a274ef6c 100644 --- a/fda-authentication-service/Dockerfile +++ b/fda-authentication-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV WEBSITE=http://example.com diff --git a/fda-authentication-service/pom.xml b/fda-authentication-service/pom.xml index 2d96e04186a08e8093c1aa7b48ae432cdbdd898c..4fd2e72422157d3d1640a9b256c358348b23df71 100644 --- a/fda-authentication-service/pom.xml +++ b/fda-authentication-service/pom.xml @@ -117,6 +117,11 @@ <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> + <dependency> + <groupId>org.mariadb.jdbc</groupId> + <artifactId>mariadb-java-client</artifactId> + <version>${mariadb.version}</version> + </dependency> <!-- IDE --> <dependency> <groupId>org.projectlombok</groupId> diff --git a/fda-container-service/Dockerfile b/fda-container-service/Dockerfile index 3bea5887a324f63858bde43bceb1b4c7b48e7627..9fbaa3dc9496448b608a0ee33365db44b48a4166 100644 --- a/fda-container-service/Dockerfile +++ b/fda-container-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV SHARED_FILESYSTEM=/tmp diff --git a/fda-database-service/Dockerfile b/fda-database-service/Dockerfile index a6f4b9a8f9d5a0576502feb69b024c0812a574f7..4da92d5f6aae387e690c8c86bae3dda253814a03 100644 --- a/fda-database-service/Dockerfile +++ b/fda-database-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV SEARCH_ENDPOINT=search-service diff --git a/fda-identifier-service/Dockerfile b/fda-identifier-service/Dockerfile index 3db7b8b6f7ed57059a2f478185cb9526ce100a78..7a05fc285615d14a0a9c22c569adee933d88524e 100644 --- a/fda-identifier-service/Dockerfile +++ b/fda-identifier-service/Dockerfile @@ -23,8 +23,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV GATEWAY_ENDPOINT=http://gateway-service:9095 ENV WEBSITE=http://localhost:3000 ENV LOG_LEVEL=debug diff --git a/fda-metadata-db/Dockerfile b/fda-metadata-db/Dockerfile index 5cb120f95a3cc37d159c60117ec3bb3b2dfbbb77..bc6ee915761b20048b822f17b96ae98c56301a26 100644 --- a/fda-metadata-db/Dockerfile +++ b/fda-metadata-db/Dockerfile @@ -18,14 +18,20 @@ RUN mvn -q clean package -DskipTests > /dev/null RUN mvn -q clean install > /dev/null ###### SECOND STAGE ###### -FROM postgres:14-alpine as runtime +FROM mariadb:10.5 as runtime +ENV METADATA_DB=fda ENV METADATA_USERNAME=dbrepo ENV METADATA_PASSWORD=dbrepo +ENV MARIADB_DATABASE="${METADATA_DB}" +ENV MARIADB_ROOT_PASSWORD="${METADATA_PASSWORD}" +ENV MARIADB_USERNAME="${METADATA_USERNAME}" +ENV MARIADB_PASSWORD="${METADATA_PASSWORD}" # Scripts are copied to /docker-entrypoint-initdb.d/ in docker-compose from analyze service -HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD pg_isready +HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD mysqladmin ping --user="$METADATA_USERNAME" --password="$METADATA_PASSWORD" --silent -COPY ./setup-schema.sql /docker-entrypoint-initdb.d/ +COPY ./setup-schema.sql /docker-entrypoint-initdb.d/1.sql +COPY ./setup-user.sh /docker-entrypoint-initdb.d/2.sh COPY --from=build /root/.m2/repository/at/tuwien /root/.m2/repository/at/tuwien \ No newline at end of file diff --git a/fda-metadata-db/setup-schema.sql b/fda-metadata-db/setup-schema.sql index 1e18e92dc340b79a317bcbbf461543486ab6a146..fd2dd014a26803981b6dcc12f3bc7e51dcf84bf9 100644 --- a/fda-metadata-db/setup-schema.sql +++ b/fda-metadata-db/setup-schema.sql @@ -126,6 +126,13 @@ CREATE SEQUENCE mdb_tokens_seq NO MAXVALUE CACHE 1; +CREATE SEQUENCE mdb_concepts_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + CREATE TABLE IF NOT EXISTS mdb_users ( UserID bigint not null DEFAULT nextval(mdb_user_seq), @@ -306,7 +313,7 @@ CREATE TABLE IF NOT EXISTS mdb_tables tDescription TEXT, NumCols INTEGER, NumRows INTEGER, - separator CHAR(1), + `separator` CHAR(1), quote CHAR(1), element_null VARCHAR(50), skip_lines BIGINT, @@ -404,21 +411,22 @@ CREATE TABLE IF NOT EXISTS mdb_COLUMNS_cat CREATE TABLE IF NOT EXISTS mdb_concepts ( + id bigint not null default nextval(mdb_concepts_seq), URI TEXT, name TEXT, created timestamp NOT NULL DEFAULT NOW(), created_by bigint, FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), - PRIMARY KEY (URI) + PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS mdb_columns_concepts ( - cDBID bigint NOT NULL, - tID bigint NOT NULL, - cID bigint NOT NULL, - URI TEXT REFERENCES mdb_concepts (URI), - created timestamp NOT NULL DEFAULT NOW(), + cDBID bigint NOT NULL, + tID bigint NOT NULL, + cID bigint NOT NULL, + concept_id bigint REFERENCES mdb_concepts (id), /* mysql does not allow text primary keys */ + created timestamp NOT NULL DEFAULT NOW(), FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_COLUMNS (cDBID, tID, ID), PRIMARY KEY (cDBID, tID, cID) ); @@ -509,21 +517,12 @@ CREATE TABLE IF NOT EXISTS mdb_creators FOREIGN KEY (pid) REFERENCES mdb_identifiers (id) ); -CREATE TABLE IF NOT EXISTS mdb_views_databases -( - mdb_view_id bigint, - databases_id bigint REFERENCES mdb_databases (id), - created timestamp NOT NULL DEFAULT NOW(), - FOREIGN KEY (mdb_view_id, databases_id) REFERENCES mdb_VIEW (id, vdbid), - PRIMARY KEY (mdb_view_id, databases_id) -); - CREATE TABLE IF NOT EXISTS mdb_feed ( fDBID bigint, fID bigint, - fUserId INTEGER REFERENCES mdb_users (UserID), - fDataID INTEGER REFERENCES mdb_data (ID), + fUserId bigint REFERENCES mdb_users (UserID), + fDataID bigint REFERENCES mdb_data (ID), created timestamp NOT NULL DEFAULT NOW(), FOREIGN KEY (fDBID, fID) REFERENCES mdb_tables (tDBID, ID), PRIMARY KEY (fDBID, fID, fUserId, fDataID) @@ -531,7 +530,7 @@ CREATE TABLE IF NOT EXISTS mdb_feed CREATE TABLE IF NOT EXISTS mdb_update ( - uUserID INTEGER REFERENCES mdb_users (UserID), + uUserID bigint REFERENCES mdb_users (UserID), uDBID bigint REFERENCES mdb_databases (id), created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (uUserID, uDBID) @@ -539,7 +538,7 @@ CREATE TABLE IF NOT EXISTS mdb_update CREATE TABLE IF NOT EXISTS mdb_access ( - aUserID INTEGER REFERENCES mdb_users (UserID), + aUserID bigint REFERENCES mdb_users (UserID), aDBID bigint REFERENCES mdb_databases (id), attime TIMESTAMP, download BOOLEAN, @@ -551,14 +550,14 @@ CREATE TABLE IF NOT EXISTS mdb_have_access ( hUserID bigint REFERENCES mdb_users (UserID), hDBID bigint REFERENCES mdb_databases (id), - hType ENUM('R', 'W'), + hType ENUM ('R', 'W'), created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (hUserID, hDBID) ); CREATE TABLE IF NOT EXISTS mdb_owns ( - oUserID INTEGER REFERENCES mdb_users (UserID), + oUserID bigint REFERENCES mdb_users (UserID), oDBID bigint REFERENCES mdb_databases (ID), created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (oUserID, oDBID) diff --git a/fda-metadata-db/setup-user.sh b/fda-metadata-db/setup-user.sh new file mode 100644 index 0000000000000000000000000000000000000000..63c5e77afe03d5b111a836b3a3b3e71922c3e40c --- /dev/null +++ b/fda-metadata-db/setup-user.sh @@ -0,0 +1,5 @@ +#!/bin/sh +mysql --user="root" --password="${METADATA_PASSWORD}" --database="${METADATA_DB}" << EOF +CREATE USER '${MARIADB_USERNAME}' IDENTIFIED BY '${MARIADB_PASSWORD}'; +GRANT ALL PRIVILEGES ON '${METADATA_DB}' TO '${MARIADB_USERNAME}'; +EOF \ No newline at end of file diff --git a/fda-metadata-service/Dockerfile b/fda-metadata-service/Dockerfile index a727f81379c3113dbca4ab6d5dc2662547d2bc71..9b486066e95f7daae4cf970f88624c789947f4dd 100644 --- a/fda-metadata-service/Dockerfile +++ b/fda-metadata-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV GATEWAY_ENDPOINT=http://gateway-service:9095 ENV PID_BASE="https://example.com/pid/" ENV REPOSITORY_NAME="Example Repository" diff --git a/fda-metadata-service/pom.xml b/fda-metadata-service/pom.xml index d54686f8c38ae7683d122b0656e1a89239c87c04..43a00dab90ca052c94062fe71ed3f4889475a462 100644 --- a/fda-metadata-service/pom.xml +++ b/fda-metadata-service/pom.xml @@ -60,6 +60,12 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> + <!-- Datasource --> + <dependency> + <groupId>org.mariadb.jdbc</groupId> + <artifactId>mariadb-java-client</artifactId> + <version>${mariadb.version}</version> + </dependency> <!-- Monitoring --> <dependency> <groupId>io.micrometer</groupId> diff --git a/fda-query-service/Dockerfile b/fda-query-service/Dockerfile index b2dac0fa1813fdca86d8cf4ee3e9bcf86008fb80..dab9e245a7b1a092da384e89894bd5597c8fc869 100644 --- a/fda-query-service/Dockerfile +++ b/fda-query-service/Dockerfile @@ -23,8 +23,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV GATEWAY_ENDPOINT=http://gateway-service:9095 diff --git a/fda-table-service/Dockerfile b/fda-table-service/Dockerfile index e0849c308f65985f0200a36e9151fd8735242ee5..837ca53a56b118039e289c77627bb89382af32e0 100644 --- a/fda-table-service/Dockerfile +++ b/fda-table-service/Dockerfile @@ -24,8 +24,8 @@ FROM openjdk:11-jre-slim as runtime ENV multipart.location=/tmp ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV SEARCH_ENDPOINT=search-service