From d1914cc285dc187e95730376a97dce62be0a27e4 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Mon, 27 Mar 2023 15:02:33 +0200 Subject: [PATCH] WIP - Test commit to see if verification works --- fda-authentication-service/Dockerfile | 1 + .../src/test/java/at/tuwien/BaseUnitTest.java | 4 - .../src/test/java/at/tuwien/BaseUnitTest.java | 5 - fda-metadata-db/Dockerfile | 1 + .../tuwien/entities/container/Container.java | 4 +- .../at/tuwien/entities/database/Database.java | 6 +- .../entities/database/DatabaseAccess.java | 2 +- .../at/tuwien/entities/database/View.java | 2 +- .../tuwien/entities/database/table/Table.java | 2 +- .../database/table/columns/TableColumn.java | 2 +- .../tuwien/entities/identifier/Creator.java | 2 +- .../entities/identifier/Identifier.java | 2 +- .../identifier/RelatedIdentifier.java | 2 +- .../java/at/tuwien/entities/user/Gender.java | 5 - .../at/tuwien/entities/user/RoleType.java | 7 - .../at/tuwien/entities/user/TimeSecret.java | 56 ------ .../java/at/tuwien/entities/user/Token.java | 56 ------ .../java/at/tuwien/entities/user/User.java | 13 -- fda-metadata-db/setup-schema.sql | 186 +++++------------- .../src/test/java/at/tuwien/BaseUnitTest.java | 5 - .../src/test/java/at/tuwien/BaseUnitTest.java | 4 - 21 files changed, 62 insertions(+), 305 deletions(-) delete mode 100644 fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Gender.java delete mode 100644 fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleType.java delete mode 100644 fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/TimeSecret.java delete mode 100644 fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Token.java diff --git a/fda-authentication-service/Dockerfile b/fda-authentication-service/Dockerfile index 52ffbfc6fe..2dd80a7493 100644 --- a/fda-authentication-service/Dockerfile +++ b/fda-authentication-service/Dockerfile @@ -1,6 +1,7 @@ ###### FIRST STAGE ###### FROM keycloak/keycloak:21.0 as config MAINTAINER Martin Weise <martin.weise@tuwien.ac.at> +LABEL service=authentication # Enable health and metrics support ENV KC_HEALTH_ENABLED=true diff --git a/fda-database-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-database-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java index 9b95bc1c4d..d19118589c 100644 --- a/fda-database-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java +++ b/fda-database-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java @@ -20,7 +20,6 @@ import at.tuwien.entities.database.table.Table; import at.tuwien.entities.identifier.Identifier; import at.tuwien.entities.identifier.IdentifierType; import at.tuwien.entities.identifier.VisibilityType; -import at.tuwien.entities.user.RoleType; import at.tuwien.entities.user.User; import com.github.dockerjava.api.model.HealthCheck; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -93,7 +92,6 @@ public abstract class BaseUnitTest { .emailVerified(USER_1_VERIFIED) .themeDark(USER_1_THEME) .password(USER_1_PASSWORD) - .roles(List.of(RoleType.ROLE_RESEARCHER)) .databasePassword(USER_1_DATABASE_PASSWORD) .build(); @@ -143,7 +141,6 @@ public abstract class BaseUnitTest { .emailVerified(USER_2_VERIFIED) .themeDark(USER_2_THEME) .password(USER_2_PASSWORD) - .roles(List.of(RoleType.ROLE_DATA_STEWARD)) .databasePassword(USER_2_DATABASE_PASSWORD) .build(); @@ -232,7 +229,6 @@ public abstract class BaseUnitTest { .themeDark(USER_4_THEME_DARK) .password(USER_4_PASSWORD) .databasePassword(USER_4_DATABASE_PASSWORD) - .roles(List.of()) .build(); public final static UserDetails USER_4_DETAILS = UserDetailsDto.builder() diff --git a/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java index 7e471a4206..b02f63c19a 100644 --- a/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java +++ b/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java @@ -13,7 +13,6 @@ import at.tuwien.entities.container.image.ContainerImageEnvironmentItemType; import at.tuwien.entities.database.Database; import at.tuwien.entities.database.table.Table; import at.tuwien.entities.identifier.*; -import at.tuwien.entities.user.RoleType; import at.tuwien.entities.user.User; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.GrantedAuthority; @@ -62,7 +61,6 @@ public abstract class BaseUnitTest { .password(USER_1_PASSWORD) .databasePassword(USER_1_DATABASE_PASSWORD) .email(USER_1_EMAIL) - .roles(List.of(RoleType.ROLE_RESEARCHER)) .emailVerified(USER_1_EMAIL_VERIFIED) .themeDark(USER_1_THEME_DARK) .created(USER_1_CREATED) @@ -107,7 +105,6 @@ public abstract class BaseUnitTest { .password(USER_2_PASSWORD) .databasePassword(USER_2_DATABASE_PASSWORD) .email(USER_2_EMAIL) - .roles(List.of(RoleType.ROLE_RESEARCHER)) .emailVerified(USER_2_EMAIL_VERIFIED) .themeDark(USER_2_THEME_DARK) .created(USER_2_CREATED) @@ -142,7 +139,6 @@ public abstract class BaseUnitTest { public final static Boolean USER_3_THEME_DARK = false; public final static String USER_3_PASSWORD = "p455w0rdh45"; public final static String USER_3_DATABASE_PASSWORD = "*A8C67ABBEAE837AABCF49680A157D85D44A117E9"; - public final static RoleType USER_3_ROLE_TYPE = RoleType.ROLE_DATA_STEWARD; public final static Instant USER_3_CREATED = Instant.now() .minus(1, ChronoUnit.DAYS); public final static Instant USER_3_LAST_MODIFIED = USER_3_CREATED; @@ -153,7 +149,6 @@ public abstract class BaseUnitTest { .password(USER_3_PASSWORD) .databasePassword(USER_3_DATABASE_PASSWORD) .email(USER_3_EMAIL) - .roles(List.of(RoleType.ROLE_DATA_STEWARD)) .emailVerified(USER_3_EMAIL_VERIFIED) .themeDark(USER_3_THEME_DARK) .created(USER_3_CREATED) diff --git a/fda-metadata-db/Dockerfile b/fda-metadata-db/Dockerfile index bb5e1d3e45..9e86f075b2 100644 --- a/fda-metadata-db/Dockerfile +++ b/fda-metadata-db/Dockerfile @@ -1,6 +1,7 @@ ###### FIRST STAGE ###### FROM maven:slim as build MAINTAINER Cornelia Michlits <cornelia.michlits@tuwien.ac.at> +LABEL db=metadata COPY ./pom.xml ./ diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java index 2c5a666c6b..1286cf7ea7 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java @@ -38,13 +38,13 @@ public class Container { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "createdBy", referencedColumnName = "UserID") + @JoinColumn(name = "createdBy", referencedColumnName = "ID") }) private User creator; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "ownedBy", referencedColumnName = "UserID") + @JoinColumn(name = "ownedBy", referencedColumnName = "ID") }) private User owner; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java index a3233d7135..9615cbae1d 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java @@ -36,13 +36,13 @@ public class Database implements Serializable { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "created_by", referencedColumnName = "UserID") + @JoinColumn(name = "created_by", referencedColumnName = "ID") }) private User creator; @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "owned_by", referencedColumnName = "UserID") + @JoinColumn(name = "owned_by", referencedColumnName = "ID") }) private User owner; @@ -68,7 +68,7 @@ public class Database implements Serializable { @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "contact_person", referencedColumnName = "UserID") + @JoinColumn(name = "contact_person", referencedColumnName = "ID") }) private User contact; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java index d1d64f5678..bc5ba2b798 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java @@ -32,7 +32,7 @@ public class DatabaseAccess { @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.DETACH, CascadeType.MERGE}) @JoinColumns({ - @JoinColumn(name = "user_id", referencedColumnName = "userid", updatable = false, insertable = false) + @JoinColumn(name = "user_id", referencedColumnName = "ID", updatable = false, insertable = false) }) private User user; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java index 09e85f03b7..16fd29e30d 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java @@ -42,7 +42,7 @@ public class View { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "createdBy", referencedColumnName = "UserID") + @JoinColumn(name = "createdBy", referencedColumnName = "ID") }) private User creator; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java index cf5645afbd..23bd4c566c 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java @@ -42,7 +42,7 @@ public class Table { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "createdBy", referencedColumnName = "UserID") + @JoinColumn(name = "createdBy", referencedColumnName = "ID") }) private User creator; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java index fe27b494b4..871070728e 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java @@ -60,7 +60,7 @@ public class TableColumn implements Comparable<TableColumn> { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "createdBy", referencedColumnName = "UserID") + @JoinColumn(name = "createdBy", referencedColumnName = "ID") }) private User creator; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java index 64e81c5be3..51492e8ba5 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java @@ -56,7 +56,7 @@ public class Creator { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "createdBy", referencedColumnName = "UserID") + @JoinColumn(name = "createdBy", referencedColumnName = "ID") }) private User creator; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java index 95ffd29e59..857346c056 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java @@ -46,7 +46,7 @@ public class Identifier implements Serializable { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinColumns({ - @JoinColumn(name = "createdBy", referencedColumnName = "UserID") + @JoinColumn(name = "createdBy", referencedColumnName = "ID") }) private User creator; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java index e627a581d6..9cb1c0ad1e 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java @@ -50,7 +50,7 @@ public class RelatedIdentifier { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "created_by", referencedColumnName = "UserID") + @JoinColumn(name = "created_by", referencedColumnName = "ID") }) private User creator; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Gender.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Gender.java deleted file mode 100644 index 8a0d5a9ff8..0000000000 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Gender.java +++ /dev/null @@ -1,5 +0,0 @@ -package at.tuwien.entities.user; - -public enum Gender { - F, M, T -} diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleType.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleType.java deleted file mode 100644 index 3422b921af..0000000000 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleType.java +++ /dev/null @@ -1,7 +0,0 @@ -package at.tuwien.entities.user; - -public enum RoleType { - ROLE_RESEARCHER, - ROLE_DEVELOPER, - ROLE_DATA_STEWARD -} diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/TimeSecret.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/TimeSecret.java deleted file mode 100644 index c7c6dbaadd..0000000000 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/TimeSecret.java +++ /dev/null @@ -1,56 +0,0 @@ -package at.tuwien.entities.user; - -import lombok.*; -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Where; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import javax.persistence.*; -import java.time.Instant; - -@Data -@Entity -@Builder -@AllArgsConstructor -@NoArgsConstructor -@ToString -@Where(clause = "valid_to >= NOW() and processed = false") -@EntityListeners(AuditingEntityListener.class) -@EqualsAndHashCode(onlyExplicitlyIncluded = true) -@Table(name = "mdb_time_secrets") -public class TimeSecret { - - @Id - @EqualsAndHashCode.Include - @GeneratedValue(generator = "time-secrets-sequence") - @GenericGenerator(name = "time-secrets-sequence", strategy = "increment") - @Column(updatable = false, nullable = false) - private Long id; - - @Column(nullable = false) - private String uid; - - @ToString.Exclude - @Column(nullable = false, updatable = false) - private String token; - - @Column(nullable = false) - private Boolean processed; - - @org.springframework.data.annotation.Transient - @ToString.Exclude - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumns({ - @JoinColumn(name = "uid", referencedColumnName = "userid", insertable = false, updatable = false) - }) - private User user; - - @CreatedDate - @Column(nullable = false, updatable = false) - private Instant created; - - @Column(nullable = false) - private Instant validTo; - -} diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Token.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Token.java deleted file mode 100644 index 461f3b466a..0000000000 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/Token.java +++ /dev/null @@ -1,56 +0,0 @@ -package at.tuwien.entities.user; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import org.hibernate.annotations.GenericGenerator; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import javax.persistence.*; -import java.time.Instant; - -@Data -@Entity -@Builder -@AllArgsConstructor -@NoArgsConstructor -@ToString -@EntityListeners(AuditingEntityListener.class) -@EqualsAndHashCode(onlyExplicitlyIncluded = true) -@Table(name = "mdb_tokens") -@NamedNativeQueries({ - @NamedNativeQuery(name = "Token.findByInvalidTokenHash", - query = "SELECT * FROM `mdb_invalid_tokens` WHERE `token_hash` = :hash", - resultClass = Token.class) -}) -public class Token { - - @Id - @EqualsAndHashCode.Include - @GeneratedValue(generator = "tokens-sequence") - @GenericGenerator(name = "tokens-sequence", strategy = "increment") - @Column(updatable = false, nullable = false) - private Long id; - - @Column(nullable = false, updatable = false) - private String creator; - - @Transient - @ToString.Exclude - @Schema(example = "5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03") - private String token; - - @Column(nullable = false, updatable = false) - private String tokenHash; - - @CreatedDate - @Column(nullable = false, updatable = false) - private Instant created; - - @Column(nullable = false, updatable = false) - private Instant expires; - - @Column - private Instant lastUsed; - -} diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java index ac9437853f..aebd5075b6 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java @@ -3,7 +3,6 @@ package at.tuwien.entities.user; import at.tuwien.entities.container.Container; import lombok.*; import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Where; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; @@ -77,18 +76,6 @@ public class User { @Column(nullable = false) private String databasePassword; - @ElementCollection(targetClass = RoleType.class) - @JoinTable(name = "mdb_user_roles", joinColumns = @JoinColumn(name = "uid"), uniqueConstraints = { - @UniqueConstraint(columnNames = {"uid", "role"}) - }) - @Column(name = "role", nullable = false) - @Enumerated(EnumType.STRING) - private List<RoleType> roles; - - @ToString.Exclude - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user") - private List<TimeSecret> tokens; - @Transient @ToString.Exclude @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "creator") diff --git a/fda-metadata-db/setup-schema.sql b/fda-metadata-db/setup-schema.sql index 79772515ae..b2f0309313 100644 --- a/fda-metadata-db/setup-schema.sql +++ b/fda-metadata-db/setup-schema.sql @@ -1,31 +1,8 @@ -CREATE DATABASE IF NOT EXISTS keycloak; +CREATE DATABASE IF NOT EXISTS `keycloak`; BEGIN; -CREATE TABLE IF NOT EXISTS mdb_users -( - UserID character varying(255) not null default uuid(), - username VARCHAR(255) not null, - First_name VARCHAR(50), - Last_name VARCHAR(50), - Gender ENUM ('M', 'F', 'D'), - Preceding_titles VARCHAR(255), - Postpositioned_title VARCHAR(255), - orcid VARCHAR(16), - theme_dark BOOLEAN NOT NULL DEFAULT false, - affiliation VARCHAR(255), - Main_Email VARCHAR(255) not null, - main_email_verified bool not null default false, - password VARCHAR(255) not null, - database_password VARCHAR(255) not null, - created timestamp NOT NULL DEFAULT NOW(), - last_modified timestamp, - PRIMARY KEY (UserID), - UNIQUE (username), - UNIQUE (Main_Email) -) WITH SYSTEM VERSIONING; - -CREATE TABLE IF NOT EXISTS mdb_images +CREATE TABLE IF NOT EXISTS `fda`.`mdb_images` ( id bigint NOT NULL AUTO_INCREMENT, repository character varying(255) NOT NULL, @@ -43,31 +20,7 @@ CREATE TABLE IF NOT EXISTS mdb_images UNIQUE (repository, tag) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_time_secrets -( - id bigint not null AUTO_INCREMENT, - uid character varying(255) not null, - token character varying(255) NOT NULL, - processed boolean NOT NULL default false, - created timestamp NOT NULL DEFAULT NOW(), - valid_to timestamp NOT NULL, - PRIMARY KEY (id), - FOREIGN KEY (uid) REFERENCES mdb_users (UserID) -) WITH SYSTEM VERSIONING; - -CREATE TABLE IF NOT EXISTS mdb_tokens -( - id bigint not null AUTO_INCREMENT, - token_hash varchar(255) NOT NULL, - creator character varying(255) not null, - created timestamp NOT NULL DEFAULT NOW(), - expires timestamp NOT NULL, - last_used timestamp, - PRIMARY KEY (id), - FOREIGN KEY (creator) REFERENCES mdb_users (UserID) -) WITH SYSTEM VERSIONING; - -CREATE TABLE IF NOT EXISTS mdb_images_date +CREATE TABLE IF NOT EXISTS `fda`.`mdb_images_date` ( id bigint NOT NULL AUTO_INCREMENT, iid bigint NOT NULL, @@ -81,7 +34,7 @@ CREATE TABLE IF NOT EXISTS mdb_images_date UNIQUE (database_format, unix_format, example) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_containers +CREATE TABLE IF NOT EXISTS `fda`.`mdb_containers` ( id bigint NOT NULL AUTO_INCREMENT, HASH character varying(255) NOT NULL, @@ -95,12 +48,10 @@ CREATE TABLE IF NOT EXISTS mdb_containers owned_by character varying(255) NOT NULL, LAST_MODIFIED timestamp, PRIMARY KEY (id), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), - FOREIGN KEY (owned_by) REFERENCES mdb_users (UserID), FOREIGN KEY (image_id) REFERENCES mdb_images (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_images_environment_item +CREATE TABLE IF NOT EXISTS `fda`.`mdb_images_environment_item` ( id bigint NOT NULL AUTO_INCREMENT, `key` character varying(255) NOT NULL, @@ -113,7 +64,7 @@ CREATE TABLE IF NOT EXISTS mdb_images_environment_item FOREIGN KEY (iid) REFERENCES mdb_images (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_data +CREATE TABLE IF NOT EXISTS `fda`.`mdb_data` ( ID bigint NOT NULL AUTO_INCREMENT, PROVENANCE TEXT, @@ -124,19 +75,7 @@ CREATE TABLE IF NOT EXISTS mdb_data PRIMARY KEY (ID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_user_roles -( - id bigint NOT NULL AUTO_INCREMENT, - uid character varying(255) not null, - role varchar(255) not null, - created timestamp NOT NULL DEFAULT NOW(), - last_modified timestamp, - PRIMARY KEY (id), - FOREIGN KEY (uid) REFERENCES mdb_users (UserID), - UNIQUE (uid, role) -) WITH SYSTEM VERSIONING; - -CREATE TABLE IF NOT EXISTS mdb_licenses +CREATE TABLE IF NOT EXISTS `fda`.`mdb_licenses` ( identifier character varying(255) NOT NULL, uri TEXT NOT NULL, @@ -144,7 +83,7 @@ CREATE TABLE IF NOT EXISTS mdb_licenses UNIQUE (uri) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_databases +CREATE TABLE IF NOT EXISTS `fda`.`mdb_databases` ( id bigint NOT NULL AUTO_INCREMENT, name character varying(255) NOT NULL, @@ -159,20 +98,17 @@ CREATE TABLE IF NOT EXISTS mdb_databases created timestamp NOT NULL DEFAULT NOW(), last_modified timestamp, PRIMARY KEY (id), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), - FOREIGN KEY (owned_by) REFERENCES mdb_users (UserID), - FOREIGN KEY (contact_person) REFERENCES mdb_users (UserID), FOREIGN KEY (id) REFERENCES mdb_containers (id) /* currently we only support one-to-one */ ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_databases_subjects +CREATE TABLE IF NOT EXISTS `fda`.`mdb_databases_subjects` ( dbid BIGINT NOT NULL, subjects character varying(255) NOT NULL, PRIMARY KEY (dbid, subjects) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_tables +CREATE TABLE IF NOT EXISTS `fda`.`mdb_tables` ( ID bigint NOT NULL AUTO_INCREMENT, tDBID bigint NOT NULL, @@ -194,11 +130,10 @@ CREATE TABLE IF NOT EXISTS mdb_tables created_by character varying(255) NOT NULL, last_modified timestamp, PRIMARY KEY (ID, tDBID), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), FOREIGN KEY (tDBID) REFERENCES mdb_databases (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_columns +CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns` ( ID bigint NOT NULL AUTO_INCREMENT, cDBID bigint NOT NULL, @@ -217,11 +152,10 @@ CREATE TABLE IF NOT EXISTS mdb_columns created timestamp NOT NULL DEFAULT NOW(), last_modified timestamp, FOREIGN KEY (cDBID, tID) REFERENCES mdb_tables (tDBID, ID), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), PRIMARY KEY (ID, cDBID, tID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_columns_enums +CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns_enums` ( ID bigint NOT NULL AUTO_INCREMENT, eDBID bigint NOT NULL, @@ -234,7 +168,7 @@ CREATE TABLE IF NOT EXISTS mdb_columns_enums PRIMARY KEY (ID, eDBID, tID, cID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_columns_nom +CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns_nom` ( cDBID bigint, tID bigint, @@ -246,7 +180,7 @@ CREATE TABLE IF NOT EXISTS mdb_columns_nom PRIMARY KEY (cDBID, tID, cID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_columns_num +CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns_num` ( cDBID bigint, tID bigint, @@ -264,7 +198,7 @@ CREATE TABLE IF NOT EXISTS mdb_columns_num PRIMARY KEY (cDBID, tID, cID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_columns_cat +CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns_cat` ( cDBID bigint, tID bigint, @@ -277,7 +211,7 @@ CREATE TABLE IF NOT EXISTS mdb_columns_cat PRIMARY KEY (cDBID, tID, cID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_constraints_foreign_key +CREATE TABLE IF NOT EXISTS `fda`.`mdb_constraints_foreign_key` ( fkid BIGINT NOT NULL AUTO_INCREMENT, tid BIGINT NOT NULL, @@ -292,7 +226,7 @@ CREATE TABLE IF NOT EXISTS mdb_constraints_foreign_key FOREIGN KEY (rtid, rtdbid) REFERENCES mdb_tables (id, tdbid) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_constraints_foreign_key_reference +CREATE TABLE IF NOT EXISTS `fda`.`mdb_constraints_foreign_key_reference` ( id BIGINT NOT NULL AUTO_INCREMENT, fkid BIGINT NOT NULL, @@ -308,7 +242,7 @@ CREATE TABLE IF NOT EXISTS mdb_constraints_foreign_key_reference FOREIGN KEY (rcid, rctdbid, rctid) REFERENCES mdb_columns (id, cdbid, tid) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_constraints_unique +CREATE TABLE IF NOT EXISTS `fda`.`mdb_constraints_unique` ( uid BIGINT NOT NULL AUTO_INCREMENT, tid BIGINT NOT NULL, @@ -318,7 +252,7 @@ CREATE TABLE IF NOT EXISTS mdb_constraints_unique FOREIGN KEY (tid, tdbid) REFERENCES mdb_tables (id, tdbid) ); -CREATE TABLE IF NOT EXISTS mdb_constraints_unique_columns +CREATE TABLE IF NOT EXISTS `fda`.`mdb_constraints_unique_columns` ( id BIGINT NOT NULL AUTO_INCREMENT, uid BIGINT NOT NULL, @@ -330,7 +264,7 @@ CREATE TABLE IF NOT EXISTS mdb_constraints_unique_columns FOREIGN KEY (cid, ctdbid, ctid) REFERENCES mdb_columns (id, cdbid, tid) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_constraints_checks +CREATE TABLE IF NOT EXISTS `fda`.`mdb_constraints_checks` ( id BIGINT NOT NULL AUTO_INCREMENT, tid BIGINT NOT NULL, @@ -340,51 +274,47 @@ CREATE TABLE IF NOT EXISTS mdb_constraints_checks FOREIGN KEY (tid, tdbid) REFERENCES mdb_tables (id, tdbid) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_concepts +CREATE TABLE IF NOT EXISTS `fda`.`mdb_concepts` ( uri text not null, name VARCHAR(255), created timestamp NOT NULL DEFAULT NOW(), created_by character varying(255), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), PRIMARY KEY (uri(200)) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_units +CREATE TABLE IF NOT EXISTS `fda`.`mdb_units` ( uri text not null, name VARCHAR(255), created timestamp NOT NULL DEFAULT NOW(), created_by character varying(255), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), PRIMARY KEY (uri(200)) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_columns_concepts +CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns_concepts` ( cDBID bigint NOT NULL, tID bigint NOT NULL, cID bigint NOT NULL, uri text NOT NULL, created timestamp NOT NULL DEFAULT NOW(), - FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID), - #FOREIGN KEY (uri) REFERENCES mdb_concepts (uri), -- does not work in MariaDB as of 10.5+ - PRIMARY KEY (cDBID, tID, cID) + PRIMARY KEY (cDBID, tID, cID), + FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_columns_units +CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns_units` ( cDBID bigint NOT NULL, tID bigint NOT NULL, cID bigint NOT NULL, uri text NOT NULL, created timestamp NOT NULL DEFAULT NOW(), - FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID), - #FOREIGN KEY (uri) REFERENCES mdb_concepts (uri), -- does not work in MariaDB as of 10.5+ - PRIMARY KEY (cDBID, tID, cID) + PRIMARY KEY (cDBID, tID, cID), + FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_view +CREATE TABLE IF NOT EXISTS `fda`.`mdb_view` ( id bigint NOT NULL AUTO_INCREMENT, vcid bigint NOT NULL, @@ -399,12 +329,11 @@ CREATE TABLE IF NOT EXISTS mdb_view created timestamp NOT NULL DEFAULT NOW(), last_modified timestamp, created_by character varying(255) NOT NULL, - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), - FOREIGN KEY (vdbid) REFERENCES mdb_databases (id), - PRIMARY KEY (id, vcid, vdbid) + PRIMARY KEY (id, vcid, vdbid), + FOREIGN KEY (vdbid) REFERENCES mdb_databases (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_view_columns +CREATE TABLE IF NOT EXISTS `fda`.`mdb_view_columns` ( id BIGINT NOT NULL AUTO_INCREMENT, cid BIGINT NOT NULL, @@ -419,7 +348,7 @@ CREATE TABLE IF NOT EXISTS mdb_view_columns FOREIGN KEY (cid, cdbid, ctid) REFERENCES mdb_columns (ID, cDBID, tID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_identifiers +CREATE TABLE IF NOT EXISTS `fda`.`mdb_identifiers` ( id bigint NOT NULL AUTO_INCREMENT, cid bigint NOT NULL, @@ -448,11 +377,10 @@ CREATE TABLE IF NOT EXISTS mdb_identifiers PRIMARY KEY (id), /* must be a single id from persistent identifier concept */ FOREIGN KEY (cid) REFERENCES mdb_containers (id), FOREIGN KEY (dbid) REFERENCES mdb_databases (id), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), UNIQUE (cid, dbid, qid) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_related_identifiers +CREATE TABLE IF NOT EXISTS `fda`.`mdb_related_identifiers` ( id bigint NOT NULL AUTO_INCREMENT, iid bigint NOT NULL, @@ -463,11 +391,10 @@ CREATE TABLE IF NOT EXISTS mdb_related_identifiers created_by character varying(255) NOT NULL, last_modified timestamp, PRIMARY KEY (id, iid), /* must be a single id from persistent identifier concept */ - FOREIGN KEY (iid) REFERENCES mdb_identifiers (id), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID) + FOREIGN KEY (iid) REFERENCES mdb_identifiers (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_creators +CREATE TABLE IF NOT EXISTS `fda`.`mdb_creators` ( id bigint NOT NULL AUTO_INCREMENT, pid bigint NOT NULL, @@ -479,11 +406,10 @@ CREATE TABLE IF NOT EXISTS mdb_creators created_by character varying(255) NOT NULL, last_modified timestamp NOT NULL, PRIMARY KEY (id, pid), - FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), FOREIGN KEY (pid) REFERENCES mdb_identifiers (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_feed +CREATE TABLE IF NOT EXISTS `fda`.`mdb_feed` ( fDBID bigint, fID bigint, @@ -491,57 +417,41 @@ CREATE TABLE IF NOT EXISTS mdb_feed fDataID bigint REFERENCES mdb_data (ID), created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (fDBID, fID, fUserId, fDataID), - FOREIGN KEY (fDBID, fID) REFERENCES mdb_tables (tDBID, ID), - FOREIGN KEY (fUserId) REFERENCES mdb_users (UserID) + FOREIGN KEY (fDBID, fID) REFERENCES mdb_tables (tDBID, ID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_update +CREATE TABLE IF NOT EXISTS `fda`.`mdb_update` ( uUserID character varying(255) NOT NULL, uDBID bigint NOT NULL, created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (uUserID, uDBID), - FOREIGN KEY (uUserID) REFERENCES mdb_users (UserID), FOREIGN KEY (uDBID) REFERENCES mdb_databases (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_access +CREATE TABLE IF NOT EXISTS `fda`.`mdb_access` ( - aUserID character varying(255) REFERENCES mdb_users (UserID), + aUserID character varying(255) NOT NULL, aDBID bigint REFERENCES mdb_databases (id), attime TIMESTAMP, download BOOLEAN, - created timestamp NOT NULL DEFAULT NOW(), + created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (aUserID, aDBID) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS mdb_have_access +CREATE TABLE IF NOT EXISTS `fda`.`mdb_have_access` ( - user_id character varying(255) REFERENCES mdb_users (UserID), + user_id character varying(255) NOT NULL, database_id bigint REFERENCES mdb_databases (id), access_type ENUM ('READ', 'WRITE_OWN', 'WRITE_ALL') NOT NULL, created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (user_id, database_id) ) WITH SYSTEM VERSIONING; -CREATE VIEW IF NOT EXISTS mdb_invalid_tokens AS -( -SELECT `id`, `token_hash`, `creator`, `created`, `expires`, `last_used` -FROM (SELECT `id`, `token_hash`, `creator`, `created`, `expires`, `last_used` - FROM `mdb_tokens` FOR SYSTEM_TIME ALL) as t -WHERE NOT EXISTS(SELECT `token_hash` - FROM mdb_tokens AS tt - WHERE ROW_END > NOW() - AND tt.`token_hash` = t.`token_hash`) -GROUP BY `id`); - COMMIT; BEGIN; -INSERT INTO mdb_users (username, Main_Email, password, database_password) -VALUES ('system', 'system@example.com', SHA1(RAND(512)), '*A8C67ABBEAE837AABCF49680A157D85D44A117E9'); - -INSERT INTO mdb_licenses (identifier, uri) +INSERT INTO `fda`.`mdb_licenses` (identifier, uri) VALUES ('MIT', 'https://opensource.org/licenses/MIT'), ('GPL-3.0-only', 'https://www.gnu.org/licenses/gpl-3.0-standalone.html'), ('BSD-3-Clause', 'https://opensource.org/licenses/BSD-3-Clause'), @@ -550,16 +460,16 @@ VALUES ('MIT', 'https://opensource.org/licenses/MIT'), ('CC0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/legalcode'), ('CC-BY-4.0', 'https://creativecommons.org/licenses/by/4.0/legalcode'); -INSERT INTO mdb_images (repository, tag, default_port, dialect, driver_class, jdbc_method) +INSERT INTO `fda`.`mdb_images` (repository, tag, default_port, dialect, driver_class, jdbc_method) VALUES ('mariadb', '10.5', 3306, 'org.hibernate.dialect.MariaDBDialect', 'org.mariadb.jdbc.Driver', 'mariadb'); -INSERT INTO mdb_images_environment_item (`key`, value, etype, iid) +INSERT INTO `fda`.`mdb_images_environment_item` (`key`, value, etype, iid) VALUES ('ROOT', 'root', 'PRIVILEGED_USERNAME', 1), ('MARIADB_ROOT_PASSWORD', 'mariadb', 'PRIVILEGED_PASSWORD', 1), ('MARIADB_USER', 'mariadb', 'USERNAME', 1), ('MARIADB_PASSWORD', 'mariadb', 'PASSWORD', 1); -INSERT INTO mdb_images_date (iid, database_format, unix_format, example, has_time) +INSERT INTO `fda`.`mdb_images_date` (iid, database_format, unix_format, example, has_time) VALUES (1, '%Y-%c-%d %H:%i:%S.%f', 'yyyy-MM-dd HH:mm:ss.SSSSSS', '2022-01-30 13:44:25.499', true), (1, '%Y-%c-%d %H:%i:%S', 'yyyy-MM-dd HH:mm:ss', '2022-01-30 13:44:25', true); diff --git a/fda-query-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-query-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java index 637d376336..43ed8c4414 100644 --- a/fda-query-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java +++ b/fda-query-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java @@ -21,7 +21,6 @@ import at.tuwien.entities.database.table.constraints.unique.Unique; import at.tuwien.entities.identifier.Identifier; import at.tuwien.entities.identifier.IdentifierType; import at.tuwien.entities.identifier.VisibilityType; -import at.tuwien.entities.user.RoleType; import at.tuwien.entities.user.User; import at.tuwien.querystore.Query; import at.tuwien.entities.container.Container; @@ -81,7 +80,6 @@ public abstract class BaseUnitTest { .themeDark(false) .password(USER_1_PASSWORD) .databasePassword(USER_1_DATABASE_PASSWORD) - .roles(Collections.singletonList(RoleType.ROLE_RESEARCHER)) .created(USER_1_CREATED) .lastModified(USER_1_CREATED) .build(); @@ -120,7 +118,6 @@ public abstract class BaseUnitTest { .themeDark(false) .password(USER_2_PASSWORD) .databasePassword(USER_2_DATABASE_PASSWORD) - .roles(Collections.singletonList(RoleType.ROLE_RESEARCHER)) .created(USER_2_CREATED) .lastModified(USER_2_CREATED) .build(); @@ -150,7 +147,6 @@ public abstract class BaseUnitTest { .themeDark(false) .password(USER_3_PASSWORD) .databasePassword(USER_3_DATABASE_PASSWORD) - .roles(Collections.singletonList(RoleType.ROLE_RESEARCHER)) .created(USER_3_CREATED) .lastModified(USER_3_CREATED) .build(); @@ -181,7 +177,6 @@ public abstract class BaseUnitTest { .themeDark(USER_4_THEME_DARK) .password(USER_4_PASSWORD) .databasePassword(USER_4_DATABASE_PASSWORD) - .roles(List.of()) .build(); public final static String USER_5_ID = "d2f3a8f4-c7fe-49e8-9d14-6dad0f6b9406"; diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java index f452224926..522047601a 100644 --- a/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java +++ b/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java @@ -10,7 +10,6 @@ import at.tuwien.api.database.table.constraints.foreignKey.ForeignKeyCreateDto; import at.tuwien.api.user.UserDto; import at.tuwien.entities.container.image.*; import at.tuwien.entities.database.table.columns.TableColumnConcept; -import at.tuwien.entities.user.RoleType; import at.tuwien.entities.user.User; import at.tuwien.querystore.Query; import at.tuwien.entities.container.Container; @@ -21,7 +20,6 @@ import at.tuwien.entities.database.table.columns.TableColumnType; import org.springframework.test.context.TestPropertySource; import java.time.Instant; -import java.util.Collections; import java.util.List; import static java.time.temporal.ChronoUnit.*; @@ -43,7 +41,6 @@ public abstract class BaseUnitTest { .themeDark(false) .password(USER_1_PASSWORD) .databasePassword(USER_1_DATABASE_PASSWORD) - .roles(Collections.singletonList(RoleType.ROLE_RESEARCHER)) .created(USER_1_CREATED) .lastModified(USER_1_CREATED) .build(); @@ -70,7 +67,6 @@ public abstract class BaseUnitTest { .themeDark(false) .password(USER_2_PASSWORD) .databasePassword(USER_2_DATABASE_PASSWORD) - .roles(Collections.singletonList(RoleType.ROLE_RESEARCHER)) .created(USER_2_CREATED) .lastModified(USER_2_CREATED) .build(); -- GitLab