diff --git a/dbrepo-analyse-service/Pipfile.lock b/dbrepo-analyse-service/Pipfile.lock index 04e43bc573ecbdd0e6734d12ecab71042530b06a..1ed1c862bed2c5f27d9b2cdc48d3c08259f2fa66 100644 --- a/dbrepo-analyse-service/Pipfile.lock +++ b/dbrepo-analyse-service/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "5fbd87c094d93565d64444fc1734d9183e7095d47447d30d6493dfc6bb7e8201" + "sha256": "9cc4c161729b642069bbf4ab379c0f4a9122035afcb3ac7b5b1bfc13281f76aa" }, "pipfile-spec": 6, "requires": { @@ -412,7 +412,7 @@ }, "dbrepo": { "hashes": [ - "sha256:181e3da705d8f61ef26a743e0a445c5363b68c671c63f655791d340efdd7aac0" + "sha256:844ff70a81f0c3f2514f76a2d34b7661ea86b153b8f766e6aa6992e1990c7f36" ], "path": "./lib/dbrepo-1.6.3.tar.gz" }, @@ -1612,7 +1612,7 @@ "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d" ], - "markers": "python_version >= '3.9'", + "markers": "python_version >= '3.10'", "version": "==2.3.0" }, "werkzeug": { @@ -2236,7 +2236,7 @@ "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d" ], - "markers": "python_version >= '3.9'", + "markers": "python_version >= '3.10'", "version": "==2.3.0" }, "wrapt": { diff --git a/dbrepo-analyse-service/lib/dbrepo-1.6.3-py3-none-any.whl b/dbrepo-analyse-service/lib/dbrepo-1.6.3-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..cb9912e0a0ede152ac0b272f981f1cb88a35916b Binary files /dev/null and b/dbrepo-analyse-service/lib/dbrepo-1.6.3-py3-none-any.whl differ diff --git a/dbrepo-analyse-service/lib/dbrepo-1.6.3.tar.gz b/dbrepo-analyse-service/lib/dbrepo-1.6.3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c11c350b23c65818060a5529e324d2bdec574ac2 Binary files /dev/null and b/dbrepo-analyse-service/lib/dbrepo-1.6.3.tar.gz differ diff --git a/dbrepo-auth-service/listeners/target/create-event-listener.jar b/dbrepo-auth-service/listeners/target/create-event-listener.jar new file mode 100644 index 0000000000000000000000000000000000000000..221bdd325f056ff953e0a44a46773470eb08e91e Binary files /dev/null and b/dbrepo-auth-service/listeners/target/create-event-listener.jar differ diff --git a/dbrepo-data-service/Dockerfile b/dbrepo-data-service/Dockerfile index 4b45e9429050c08bcf4c3fd42b3d0ab259801657..d7ab1558c244f795313f5bebbbd46bfbf636aa26 100644 --- a/dbrepo-data-service/Dockerfile +++ b/dbrepo-data-service/Dockerfile @@ -16,12 +16,13 @@ COPY ./querystore ./querystore COPY ./report ./report COPY ./rest-service ./rest-service COPY ./services ./services +COPY ./pom.xml ./ # Make sure it compiles RUN mvn -fn -B -q clean package -DskipTests ###### THIRD STAGE ###### -FROM amazoncorretto:17-alpine3.19 AS runtime +FROM amazoncorretto:17-alpine3.21 AS runtime LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk add --no-cache curl bash jq @@ -32,7 +33,7 @@ RUN adduser -S -u 1001 data-service USER 1001 -COPY --from=build --chown=1001 ./rest-service/target/rest-service-*.jar ./data-service.jar +COPY --from=build --chown=1001 ./rest-service/target/data-service.jar ./data-service.jar # non-root port EXPOSE 8080 diff --git a/dbrepo-data-service/pom.xml b/dbrepo-data-service/pom.xml index e2bfa739618b3a518aeabd623ea49718b9a06d5b..9a062dea02cbbde7e69895cf76b228d29ffc2c2d 100644 --- a/dbrepo-data-service/pom.xml +++ b/dbrepo-data-service/pom.xml @@ -292,6 +292,7 @@ </dependencies> <build> + <finalName>data-service</finalName> <resources> <resource> <directory>${basedir}/src/main/resources</directory> diff --git a/dbrepo-metadata-service/Dockerfile b/dbrepo-metadata-service/Dockerfile index ddc20cb420764196c3a4b423294200e26eaa5bce..d3e7dc815566d9c24fabdb168c482ebf4b65c141 100644 --- a/dbrepo-metadata-service/Dockerfile +++ b/dbrepo-metadata-service/Dockerfile @@ -2,18 +2,6 @@ FROM maven:3-amazoncorretto-17 AS build LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" -COPY ./pom.xml ./ -COPY ./api/pom.xml ./api/ -COPY ./entities/pom.xml ./entities/ -COPY ./oai/pom.xml ./oai/ -COPY ./report/pom.xml ./report/ -COPY ./repositories/pom.xml ./repositories/ -COPY ./rest-service/pom.xml ./rest-service/ -COPY ./services/pom.xml ./services/ -COPY ./test/pom.xml ./test/ - -RUN mvn -fn -B dependency:go-offline - COPY ./api ./api COPY ./entities ./entities COPY ./oai ./oai @@ -22,9 +10,10 @@ COPY ./repositories ./repositories COPY ./rest-service ./rest-service COPY ./services ./services COPY ./test ./test +COPY ./pom.xml ./pom.xml # Make sure it compiles -RUN mvn -fn -B clean install -DskipTests +RUN mvn clean install -DskipTests ###### SECOND STAGE ###### FROM amazoncorretto:17-alpine3.19 AS runtime @@ -36,7 +25,7 @@ WORKDIR /app USER 1001 -COPY --from=build --chown=1001 ./rest-service/target/dbrepo-metadata-service-rest-service-*.jar ./metadata-service.jar +COPY --from=build --chown=1001 ./rest-service/target/metadata-service.jar ./metadata-service.jar # non-root port EXPOSE 8080 diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java index 913ab26d9d4469fb3335d5dc1da8463c9afc0bd6..25361de6a5bb8f5ff92e651514dc2ce4b53e609f 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java @@ -1,6 +1,5 @@ package at.tuwien.api.container; -import at.tuwien.api.CacheableDto; import at.tuwien.api.container.image.ImageDto; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; @@ -14,12 +13,12 @@ import java.time.Instant; @Getter @Setter @Builder -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @NoArgsConstructor @AllArgsConstructor @Jacksonized @ToString -public class ContainerDto extends CacheableDto { +public class ContainerDto { @NotNull @Schema(example = "4") @@ -31,7 +30,7 @@ public class ContainerDto extends CacheableDto { @NotBlank @JsonProperty("internal_name") - @Schema(example = "air_quality") + @Schema(example = "data-db") private String internalName; @Schema(example = "data-db") diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java index d6ea2bff9e2203439891e3a1a6aec6f17afc86a6..3057166539a007e664b2a3f4cec72a6b38eb4e12 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java @@ -1,6 +1,5 @@ package at.tuwien.api.database; -import at.tuwien.api.CacheableDto; import at.tuwien.api.container.ContainerDto; import at.tuwien.api.database.table.TableDto; import at.tuwien.api.identifier.IdentifierDto; @@ -18,12 +17,12 @@ import java.util.List; @Getter @Setter @Builder -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @NoArgsConstructor @AllArgsConstructor @Jacksonized @ToString -public class DatabaseDto extends CacheableDto { +public class DatabaseDto { @NotNull @Schema(example = "3") diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java index 82a7081e16f08a2cc2c3a7c02a28760adc7ef9d1..f7ad98514a09a0a3fc788a09f5a6192f6b92b8fb 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java @@ -16,12 +16,12 @@ import java.util.List; @Getter @Setter @Builder -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @NoArgsConstructor @AllArgsConstructor @Jacksonized @ToString -public class ViewDto extends CacheableDto { +public class ViewDto { @NotNull @Schema(example = "4") @@ -66,7 +66,6 @@ public class ViewDto extends CacheableDto { private String queryHash; @ToString.Exclude - @EqualsAndHashCode.Exclude private DatabaseDto database; @NotNull diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java index 1021d167ca1364eb63b06d321040e708c4f7d6e2..57b161309fcb480a0ca3aeaf720d4a07a763c3a8 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java @@ -22,12 +22,12 @@ import java.util.List; @Getter @Setter @Builder -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @NoArgsConstructor @AllArgsConstructor @Jacksonized @ToString -public class TableDto extends CacheableDto { +public class TableDto { @NotNull @Schema(example = "3") @@ -108,7 +108,6 @@ public class TableDto extends CacheableDto { private List<ColumnDto> columns; @ToString.Exclude - @EqualsAndHashCode.Exclude private DatabaseDto database; @NotNull diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java index e7367e2fb4e513a9681783dfdec89b55e57519e0..5931b07a730de886356e2d49ca5cdf5fdd135c9f 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java @@ -13,12 +13,12 @@ import java.util.UUID; @Getter @Setter @Builder -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @NoArgsConstructor @AllArgsConstructor @Jacksonized @ToString -public class UserDto extends CacheableDto { +public class UserDto { @NotNull @Schema(example = "1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java index a2fb1264cc360f0de0d5502306b215d79a442a70..85391d31d420922af21b899f9deefae981886c00 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java @@ -54,7 +54,6 @@ public class Container { @Column private String uiAdditionalFlags; - @EqualsAndHashCode.Exclude @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinColumns({ @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false) @@ -67,13 +66,11 @@ public class Container { }) private ContainerImage image; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP default NOW()") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java index 7e04ce2086c3b4e9e677548b106cc28ddc9756ee..2bbd65be6c87bd19fbd3af449e04f1b7a08f412a 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java @@ -60,13 +60,11 @@ public class ContainerImage { @OneToMany(fetch = FetchType.LAZY, mappedBy = "image") private List<Container> containers; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP default NOW()") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java index 5f4ddbfb8c6dd8a657a88432d4606fa6f9c56f7e..d94b39ec259a5c04ff44f5f4477b3aa482121e6e 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java @@ -68,7 +68,6 @@ public class DataType { private Boolean buildable; @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumns({ @JoinColumn(name = "image_id", referencedColumnName = "id") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java index 1ecedc5e16cef533008a28db7d022acab336c8d7..8ec4763ba292db50af6d10aa5adf8b9fe073782f 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java @@ -32,7 +32,6 @@ public class Operator { private String documentation; @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumns({ @JoinColumn(name = "image_id", referencedColumnName = "id") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java index d90a702db33c759a511480fa0e89c37efc2773fc..699f50b79ba16def84366f73e117cce1948168b2 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java @@ -120,13 +120,11 @@ public class Database implements Serializable { @Column(columnDefinition = "LONGBLOB") private byte[] image; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP default NOW()") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java index 6a2622be3e7137c97b68ab9ad91e24edd4fae293..6df3aa5129eb51cc66ea32341ae8bcfc924ee3f1 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java @@ -33,7 +33,6 @@ public class DatabaseAccess { private UUID huserid; @ToString.Exclude - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @@ -46,7 +45,6 @@ public class DatabaseAccess { private Long hdbid; @ToString.Exclude - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java index 67e6d6d18ac26a1cb2641ed45ae9e969c7393164..3835c0188bb03682becd113a6df4ce6bd5dcd615 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java @@ -89,7 +89,6 @@ public class View { private List<Identifier> identifiers; @ToString.Exclude - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @@ -103,13 +102,11 @@ public class View { @OrderBy("ordinalPosition") private List<ViewColumn> columns; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP default NOW()") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java index 7ef6e8b9d63c30e05313514c78ad562306318185..752f784e9031492951b1e732e2302b76fa017208 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java @@ -26,7 +26,6 @@ public class ViewColumn implements Comparable<ViewColumn> { private Long id; @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumns({ @JoinColumn(name = "view_id", referencedColumnName = "id", nullable = false) diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java index 3cdb01d7d38477cc8a77b4e12ed9af61d04ecfba..088f0b7a8c47e1b44faa67c425eaa5e093d4a312 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java @@ -25,7 +25,7 @@ import static jakarta.persistence.GenerationType.IDENTITY; @Data @Entity -@Builder +@Builder(toBuilder = true) @Log4j2 @ToString @AllArgsConstructor @@ -69,7 +69,6 @@ public class Table { private String description; @ToString.Exclude - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @@ -117,13 +116,11 @@ public class Table { @OrderBy("ordinalPosition") private List<TableColumn> columns; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java index 9f4c4e0606802a475e5873e3d0ebc57455a6a0e2..459cb69f4bc5c00d04e021301a460b6ba25d6dc4 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java @@ -36,7 +36,6 @@ public class TableColumn implements Comparable<TableColumn> { private Long id; @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumns({ @JoinColumn(name = "tID", referencedColumnName = "id", nullable = false) @@ -114,13 +113,11 @@ public class TableColumn implements Comparable<TableColumn> { @Column(name = "std_dev") private BigDecimal stdDev; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP default NOW()") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java index 5a9e8292be0af3e99050bc87be1ba7b8b9756bf7..2bea4c61129a2dfde120539c6647632931ea7ff3 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java @@ -42,7 +42,6 @@ public class TableColumnConcept { @Column(columnDefinition = "TEXT") private String description; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP default NOW()") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java index 7e8fe915b3b9de49e53eb0806da1f5ed03608a1d..e58cbed6599e5c7b8e74fa13097446ce40195766 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java @@ -42,7 +42,6 @@ public class TableColumnUnit { @Column(columnDefinition = "TEXT") private String description; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java index 76de9463cfa37048fb45d2b091b472190124ff1b..a24cffcd2aed92ec71d1a1ea7b1bcb559806ad95 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java @@ -29,7 +29,6 @@ public class ForeignKey { private String name; @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinColumns({ @JoinColumn(name = "tid", referencedColumnName = "id", nullable = false) @@ -37,7 +36,6 @@ public class ForeignKey { private Table table; @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinColumns({ @JoinColumn(name = "rtid", referencedColumnName = "id", nullable = false) diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java index ed2691fc524a3de33788ed977b1ba213b18b5bfe..5d6c2043aebf7836aced4a16a429ab55e88bb0d4 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java @@ -26,7 +26,6 @@ public class ForeignKeyReference { private Long id; @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumn(name = "fkid", referencedColumnName = "fkid", nullable = false) private ForeignKey foreignKey; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java index 407e2fb7f3f98b6a8b65d28636c92afaceb3e69c..40452ce0205802880c96fb3d7689ed1e40c59012 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java @@ -25,7 +25,6 @@ public class PrimaryKey { private Long id; @ToString.Exclude - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumns({ @@ -34,7 +33,6 @@ public class PrimaryKey { private Table table; @ToString.Exclude - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumns({ diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java index c0dfc467109cf794dda89925393b442286254da5..fb10dad8ad8ba71584d015d7e8e09990f2d6f5aa 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java @@ -30,7 +30,6 @@ public class Unique { private String name; @ToString.Exclude - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumns({ @@ -38,7 +37,6 @@ public class Unique { }) private Table table; - @EqualsAndHashCode.Exclude @org.springframework.data.annotation.Transient @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinTable( diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java index b98a1b8c6b7509ef0772f69e2af343b1b63d386e..49d4df1b35b6d7b7f937121e57c6e9e278630467 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java @@ -138,7 +138,6 @@ public class Identifier implements Serializable { * Databases are never created/updated/deleted by the Identifier entity. */ @ToString.Exclude - @EqualsAndHashCode.Exclude @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @JoinColumn(name = "dbid", referencedColumnName = "id", nullable = false, updatable = false) @@ -166,12 +165,10 @@ public class Identifier implements Serializable { }) private User owner; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP default NOW()") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java index 576aab1e375028a9a776ae96cb0ea983f84e7274..2e796c859a1fba23d605f55f81ecf0e9be991f26 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java @@ -46,12 +46,10 @@ public class Ontology { @Column private String rdfPath; - @EqualsAndHashCode.Exclude @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP") private Instant created; - @EqualsAndHashCode.Exclude @LastModifiedDate @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java index de3111e5c833204cdba781345ffb1e9c3790b8a7..4577658ed88d03a934fdf46d5e56c9987e4e4d28 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java @@ -49,7 +49,6 @@ public class User { private String language; @OneToMany(fetch = FetchType.LAZY) - @EqualsAndHashCode.Exclude @JoinColumns({ @JoinColumn(name = "user_id", referencedColumnName = "ID", insertable = false, updatable = false) }) diff --git a/dbrepo-metadata-service/pom.xml b/dbrepo-metadata-service/pom.xml index c165efdc3de50b9fe01f3e4715809bfe2dee852d..1e22b69fa998e8d642a5a16a22b03c362f05ad9f 100644 --- a/dbrepo-metadata-service/pom.xml +++ b/dbrepo-metadata-service/pom.xml @@ -99,6 +99,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-webflux</artifactId> + </dependency> <!-- Open API --> <dependency> <groupId>org.springdoc</groupId> @@ -271,6 +275,7 @@ </dependencies> <build> + <finalName>metadata-service</finalName> <resources> <resource> <directory>${basedir}/src/main/resources</directory> diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceConnectionException.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceConnectionException.java index d68185102a00e33419ae8cf2c4250c0775082a23..2cf18262d3069f6369026e64508a687f3d2e419a 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceConnectionException.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceConnectionException.java @@ -4,7 +4,7 @@ import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(code = HttpStatus.BAD_GATEWAY, reason = "error.search.connection") -public class SearchServiceConnectionException extends Exception { +public class SearchServiceConnectionException extends RuntimeException { public SearchServiceConnectionException(String msg) { super(msg); diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceException.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceException.java index aef3ae7f7cd75db6ec7ed59f95980f2c8e021c2b..528b3aadd1e0cdd0ea9ef6c19374f29b8d62ab15 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceException.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/exception/SearchServiceException.java @@ -4,7 +4,7 @@ import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(code = HttpStatus.SERVICE_UNAVAILABLE, reason = "error.search.invalid") -public class SearchServiceException extends Exception { +public class SearchServiceException extends RuntimeException { public SearchServiceException(String message) { super(message); diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java index 36caa7e9f6163913d5dd7fb5fb18ec31114bcf48..f66121c0edf4358f189f3f94507c7b3184ece51c 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java @@ -534,8 +534,6 @@ public interface MetadataMapper { } default TableDto tableToTableDto(Table data) { - data.getDatabase() - .setTables(null); final TableDto table = TableDto.builder() .id(data.getId()) .name(data.getName()) diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java index 08535fde69a20f162ea3d4478110d9360db55f99..b680e874683e46736417978d1467823a6d50aa45 100644 --- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java +++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java @@ -1,7 +1,7 @@ package at.tuwien.endpoints; -import at.tuwien.api.database.table.TableBriefDto; import at.tuwien.api.database.table.CreateTableDto; +import at.tuwien.api.database.table.TableBriefDto; import at.tuwien.api.database.table.TableDto; import at.tuwien.api.database.table.TableUpdateDto; import at.tuwien.api.database.table.columns.ColumnDto; @@ -369,9 +369,9 @@ public class TableEndpoint extends AbstractEndpoint { final Database database = databaseService.findById(databaseId); endpointValidator.validateOnlyAccess(database, principal, true); endpointValidator.validateColumnCreateConstraints(data); + final Table table = tableService.createTable(database, data, principal); return ResponseEntity.status(HttpStatus.CREATED) - .body(metadataMapper.tableToTableBriefDto( - tableService.createTable(database, data, principal))); + .body(metadataMapper.tableToTableBriefDto(table)); } @PutMapping("/{tableId}") @@ -495,18 +495,15 @@ public class TableEndpoint extends AbstractEndpoint { table.setColumns(List.of()); table.setConstraints(null); } - final TableDto dto = metadataMapper.tableToTableDto(table); final HttpHeaders headers = new HttpHeaders(); if (isSystem(principal)) { headers.set("X-Username", table.getDatabase().getContainer().getPrivilegedUsername()); headers.set("X-Password", table.getDatabase().getContainer().getPrivilegedPassword()); headers.set("Access-Control-Expose-Headers", "X-Username X-Password"); - } else { - removeInternalData(dto.getDatabase().getContainer()); } return ResponseEntity.ok() .headers(headers) - .body(dto); + .body(metadataMapper.tableToTableDto(table)); } @DeleteMapping("/{tableId}") diff --git a/dbrepo-metadata-service/rest-service/src/main/resources/datatypes.json b/dbrepo-metadata-service/rest-service/src/main/resources/datatypes.json deleted file mode 100644 index 3779d12cbe32b67fa163cf6b0285b9e01f7dc681..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-service/rest-service/src/main/resources/datatypes.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "name": "", - "size": { - "min": 0, - "required": true - }, - "d": { - "required": false - }, - "documentation": "https://mariadb.com/kb/en/bigint/", - "quoted": false, - "buildable": true - } -] \ No newline at end of file diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java index b77bc30d3811ed30c7994129ae2110e12903d0f9..8cf56879d0a6ed2a3f51c898c294a1e4ca4349ec 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java @@ -141,7 +141,7 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest { when(restTemplate.exchange(anyString(), eq(HttpMethod.POST), any(HttpEntity.class), eq(dataCiteBodyParameterizedTypeReference))) .thenReturn(mock); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ dataCiteIdentifierService.save(DATABASE_1, USER_1, IDENTIFIER_1_SAVE_DTO); @@ -156,7 +156,7 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest { .when(restTemplate) .exchange(anyString(), eq(HttpMethod.POST), any(HttpEntity.class), eq(dataCiteBodyParameterizedTypeReference)); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ assertThrows(MalformedException.class, () -> { @@ -173,7 +173,7 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest { .when(restTemplate) .exchange(anyString(), eq(HttpMethod.POST), any(HttpEntity.class), eq(dataCiteBodyParameterizedTypeReference)); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ assertThrows(DataServiceConnectionException.class, () -> { @@ -332,7 +332,7 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest { /* mock */ when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ dataCiteIdentifierService.delete(IDENTIFIER_1); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java index 9c91084f77cdac6c554cb11ea847bbb447185283..172385d4a0d5309f014e1d0bba2007da5a964dfa 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java @@ -1,6 +1,5 @@ package at.tuwien.service; -import at.tuwien.entities.container.Container; import at.tuwien.entities.database.Database; import at.tuwien.exception.DatabaseNotFoundException; import at.tuwien.repository.ContainerRepository; @@ -21,7 +20,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; @Log4j2 @SpringBootTest diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java index 18d037fe452cb6cdab5b4d0f0fe68b5ed6142cf0..1b6570abd821337fe032bead021cf9d5a4b9fc8c 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java @@ -110,7 +110,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ final Database response = databaseService.modifyImage(DATABASE_1, image); @@ -164,7 +164,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ final Database response = databaseService.updateViewMetadata(DATABASE_1); @@ -222,7 +222,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ final Database response = databaseService.updateViewMetadata(DATABASE_1); @@ -240,7 +240,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ final Database response = databaseService.updateViewMetadata(DATABASE_1); @@ -258,7 +258,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ final Database response = databaseService.updateTableMetadata(DATABASE_1); @@ -276,7 +276,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ final Database response = databaseService.updateTableMetadata(DATABASE_1); @@ -294,7 +294,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ final Database response = databaseService.updateTableMetadata(DATABASE_1); @@ -517,7 +517,7 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest { /* mock */ when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java index 40fc28fe4d89524a928d474e0d3328853bee5df7..aa465aa61ab086697541b78d19cb87a5eb5f9f3e 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java @@ -35,6 +35,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.when; @Log4j2 @@ -176,7 +177,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest { when(dataServiceGateway.findQuery(IDENTIFIER_5_DATABASE_ID, IDENTIFIER_5_QUERY_ID)) .thenReturn(QUERY_2_DTO); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_2_BRIEF_DTO); + .thenReturn(DATABASE_2_DTO); /* test */ identifierService.save(DATABASE_2, USER_2, IDENTIFIER_5_SAVE_DTO); @@ -286,7 +287,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest { /* mock */ when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); /* test */ identifierService.delete(IDENTIFIER_1); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java index b0efccab9ac856f727ee3377554e7cf8a01bb2c7..18e2c3090acdda33dcd246e6aee1ee2623dac263 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java @@ -112,7 +112,10 @@ public class TableServicePersistenceTest extends AbstractUnitTest { .when(dataServiceGateway) .createTable(DATABASE_1_ID, request); when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + .thenReturn(DATABASE_1_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ final Table response = tableService.createTable(DATABASE_1, request, USER_1_PRINCIPAL); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java index 8cb5081f6d98b68971f71f2da5538ab72bd772a8..8533ce390db6f376b1ed1273c2ba3cae5129738a 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java @@ -134,8 +134,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { .thenReturn(TABLE_8_STATISTIC_DTO); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ tableService.updateStatistics(TABLE_8); @@ -223,8 +224,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { .thenReturn(CONCEPT_1); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ final TableColumn response = tableService.update(TABLE_1_COLUMNS.get(0), request); @@ -255,8 +257,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { .thenReturn(CONCEPT_1_ENTITY_DTO); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ final TableColumn response = tableService.update(TABLE_1_COLUMNS.get(0), request); @@ -278,8 +281,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { .createTable(eq(DATABASE_1_ID), any(CreateTableDto.class)); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ final Table response = tableService.createTable(DATABASE_1, TABLE_3_CREATE_DTO, USER_1_PRINCIPAL); @@ -315,8 +319,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { .createTable(eq(DATABASE_1_ID), any(CreateTableDto.class)); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ final Table response = tableService.createTable(DATABASE_1, request, USER_1_PRINCIPAL); @@ -368,8 +373,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { .createTable(eq(DATABASE_1_ID), any(CreateTableDto.class)); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ assertThrows(MalformedException.class, () -> { @@ -391,8 +397,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { doNothing() .when(dataServiceGateway) .createTable(DATABASE_1_ID, TABLE_3_CREATE_DTO); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ final Table response = tableService.createTable(DATABASE_1, TABLE_3_CREATE_DTO, USER_1_PRINCIPAL); @@ -412,8 +419,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { doThrow(DataServiceException.class) .when(dataServiceGateway) .createTable(DATABASE_1_ID, TABLE_5_CREATE_DTO); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ assertThrows(DataServiceException.class, () -> { @@ -510,8 +518,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { doNothing() .when(dataServiceGateway) .deleteTable(DATABASE_1_ID, TABLE_1_ID); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ tableService.deleteTable(TABLE_1); @@ -526,8 +535,9 @@ public class TableServiceUnitTest extends AbstractUnitTest { doNothing() .when(dataServiceGateway) .deleteTable(DATABASE_1_ID, TABLE_4_ID); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ tableService.deleteTable(TABLE_4); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java index 57a84965dc81615613f201e6aee4e771582ac090..22be514d267323f39d2b86dcc920d762da27f5dd 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceTest.java @@ -88,8 +88,9 @@ public class ViewServicePersistenceTest extends AbstractUnitTest { doNothing() .when(dataServiceGateway) .deleteView(DATABASE_1_ID, VIEW_1_ID); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ viewService.delete(VIEW_1); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java index 4ba217a60c0b5a520e7fcd1c59a610769530760e..cbea0004d9ac838dee8db540af8d26119a35fb57 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java @@ -61,8 +61,9 @@ public class ViewServiceUnitTest extends AbstractUnitTest { .thenReturn(VIEW_1_DTO); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ final View response = viewService.create(DATABASE_1, USER_1, request); @@ -116,8 +117,9 @@ public class ViewServiceUnitTest extends AbstractUnitTest { .deleteView(DATABASE_1_ID, VIEW_1_ID); when(databaseRepository.save(any(Database.class))) .thenReturn(DATABASE_1); - when(searchServiceGateway.update(any(Database.class))) - .thenReturn(DATABASE_1_BRIEF_DTO); + doNothing() + .when(searchServiceGateway) + .update(any(Database.class)); /* test */ viewService.delete(VIEW_1); diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java index 0bcace730e7753b1dd21d2e1d4a91f47bda6b9f3..1559281af3462181248e492b5facb2bc89429388 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/GatewayConfig.java @@ -1,15 +1,27 @@ package at.tuwien.config; +import at.tuwien.api.keycloak.TokenDto; import at.tuwien.auth.InternalRequestInterceptor; +import at.tuwien.exception.AccountNotSetupException; +import at.tuwien.exception.AuthServiceConnectionException; +import at.tuwien.exception.CredentialsInvalidException; import at.tuwien.gateway.KeycloakGateway; import lombok.Getter; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.*; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.web.client.RestTemplate; +import org.springframework.web.reactive.function.client.ExchangeFilterFunction; +import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.util.DefaultUriBuilderFactory; +import java.util.List; + @Log4j2 @Getter @Configuration @@ -89,4 +101,27 @@ public class GatewayConfig { return restTemplate; } + @Bean + public WebClient webClient() { + return WebClient.builder() + .baseUrl(searchEndpoint) + .filter(internalFilter()) + .build(); + } + + private ExchangeFilterFunction internalFilter() { + return (request, next) -> { + final HttpHeaders headers = request.headers(); + headers.setAccept(List.of(MediaType.APPLICATION_JSON)); + try { + final TokenDto token = keycloakGateway.obtainUserToken(getSystemUsername(), getSystemPassword()); + headers.setBearerAuth(token.getAccessToken()); + return next.exchange(request); + } catch (AuthServiceConnectionException | CredentialsInvalidException | AccountNotSetupException e) { + log.error("Failed to obtain token for internal user: {}", e.getMessage()); + } + return next.exchange(request); + }; + } + } diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java index 6632a08194411f74d5b4d22d4f1e0de6eda91a47..f739f7cd17e27909eec7a3f529389fada8669c7d 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java @@ -1,12 +1,14 @@ package at.tuwien.gateway; -import at.tuwien.api.database.DatabaseBriefDto; +import at.tuwien.api.database.DatabaseDto; import at.tuwien.entities.database.Database; -import at.tuwien.exception.*; +import at.tuwien.exception.DatabaseNotFoundException; +import at.tuwien.exception.SearchServiceConnectionException; +import at.tuwien.exception.SearchServiceException; public interface SearchServiceGateway { - DatabaseBriefDto update(Database database) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException; + DatabaseDto update(Database database) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException; void delete(Long databaseId) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException; } diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java index 503cad47ec5d2a8abd7ec4e76757b2f8ddb48ecd..541de4aa7ec87583921de6635bc49505ae5b4cea 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java @@ -1,6 +1,6 @@ package at.tuwien.gateway.impl; -import at.tuwien.api.database.DatabaseBriefDto; +import at.tuwien.api.database.DatabaseDto; import at.tuwien.config.GatewayConfig; import at.tuwien.entities.database.Database; import at.tuwien.exception.DatabaseNotFoundException; @@ -35,8 +35,8 @@ public class SearchServiceGatewayImpl implements SearchServiceGateway { } @Override - public DatabaseBriefDto update(Database database) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException { - final ResponseEntity<DatabaseBriefDto> response; + public DatabaseDto update(Database database) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException { + final ResponseEntity<DatabaseDto> response; final HttpHeaders headers = new HttpHeaders(); headers.set("Accept", "application/json"); headers.set("Content-Type", "application/json"); @@ -44,7 +44,7 @@ public class SearchServiceGatewayImpl implements SearchServiceGateway { log.trace("update database at endpoint {} with path {}", gatewayConfig.getSearchEndpoint(), path); try { response = restTemplate.exchange(path, HttpMethod.PUT, new HttpEntity<>( - metadataMapper.databaseToDatabaseDto(database), headers), DatabaseBriefDto.class); + metadataMapper.databaseToDatabaseDto(database), headers), DatabaseDto.class); } catch (ResourceAccessException | HttpServerErrorException.ServiceUnavailable | HttpServerErrorException.InternalServerError e) { log.error("Failed to update database: {}", e.getMessage()); diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java index da92fb7ef59eac9af0df3cf1f779da150c2d437f..81a6d5ace7358c0380464668fa76573ebaa4fb2b 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java @@ -22,6 +22,7 @@ import at.tuwien.service.*; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.security.Principal; @@ -92,8 +93,7 @@ public class TableServiceImpl implements TableService { @Transactional public Table createTable(Database database, CreateTableDto data, Principal principal) throws DataServiceException, DataServiceConnectionException, UserNotFoundException, TableNotFoundException, DatabaseNotFoundException, - TableExistsException, SearchServiceException, SearchServiceConnectionException, MalformedException, - OntologyNotFoundException, SemanticEntityNotFoundException { + TableExistsException, MalformedException, OntologyNotFoundException, SemanticEntityNotFoundException { final User owner = userService.findByUsername(principal.getName()); /* map table */ final Table table = Table.builder() @@ -279,9 +279,8 @@ public class TableServiceImpl implements TableService { @Override @Transactional - public void updateStatistics(Table table) throws SearchServiceException, - DatabaseNotFoundException, SearchServiceConnectionException, MalformedException, TableNotFoundException, - DataServiceException, DataServiceConnectionException { + public void updateStatistics(Table table) throws MalformedException, TableNotFoundException, DataServiceException, + DataServiceConnectionException, DatabaseNotFoundException { final TableStatisticDto statistic = dataServiceGateway.getTableStatistics(table.getTdbid(), table.getId()); if (statistic == null) { return; @@ -312,7 +311,6 @@ public class TableServiceImpl implements TableService { /* update in open search service */ searchServiceGateway.update(database); log.info("Updated statistics for the table and {} column(s)", table.getColumns().size()); - log.trace("updated statistics: {}", table); } } diff --git a/dbrepo-search-service/Pipfile.lock b/dbrepo-search-service/Pipfile.lock index ded9023e433ea6654c4630c37e17ff5077b267b6..25b924f36453ac9e55fd120b98480f16ec0a00cc 100644 --- a/dbrepo-search-service/Pipfile.lock +++ b/dbrepo-search-service/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "729017f537f9f8fb6dcc15703392c7fd79aec494feba4c107e7a1888e8ea955d" + "sha256": "2ff9fc673f1fb1e5dc272aa711f4e730088fa0188b44449db042abf99b6c4db7" }, "pipfile-spec": 6, "requires": { @@ -360,9 +360,9 @@ }, "dbrepo": { "hashes": [ - "sha256:181e3da705d8f61ef26a743e0a445c5363b68c671c63f655791d340efdd7aac0" + "sha256:844ff70a81f0c3f2514f76a2d34b7661ea86b153b8f766e6aa6992e1990c7f36" ], - "path": "./lib/dbrepo-1.6.2.tar.gz" + "path": "./lib/dbrepo-1.6.3.tar.gz" }, "docker": { "hashes": [ diff --git a/dbrepo-search-service/init/lib/dbrepo-1.6.1.tar.gz b/dbrepo-search-service/init/lib/dbrepo-1.6.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..acc051ca3d2c3ef4efe7a04e405a6f49aca151d8 Binary files /dev/null and b/dbrepo-search-service/init/lib/dbrepo-1.6.1.tar.gz differ diff --git a/dbrepo-search-service/init/lib/dbrepo-1.6.3-py3-none-any.whl b/dbrepo-search-service/init/lib/dbrepo-1.6.3-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..cb9912e0a0ede152ac0b272f981f1cb88a35916b Binary files /dev/null and b/dbrepo-search-service/init/lib/dbrepo-1.6.3-py3-none-any.whl differ diff --git a/dbrepo-search-service/init/lib/dbrepo-1.6.3.tar.gz b/dbrepo-search-service/init/lib/dbrepo-1.6.3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c11c350b23c65818060a5529e324d2bdec574ac2 Binary files /dev/null and b/dbrepo-search-service/init/lib/dbrepo-1.6.3.tar.gz differ diff --git a/dbrepo-search-service/lib/dbrepo-1.6.1.tar.gz b/dbrepo-search-service/lib/dbrepo-1.6.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..acc051ca3d2c3ef4efe7a04e405a6f49aca151d8 Binary files /dev/null and b/dbrepo-search-service/lib/dbrepo-1.6.1.tar.gz differ diff --git a/dbrepo-search-service/lib/dbrepo-1.6.3-py3-none-any.whl b/dbrepo-search-service/lib/dbrepo-1.6.3-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..cb9912e0a0ede152ac0b272f981f1cb88a35916b Binary files /dev/null and b/dbrepo-search-service/lib/dbrepo-1.6.3-py3-none-any.whl differ diff --git a/dbrepo-search-service/lib/dbrepo-1.6.3.tar.gz b/dbrepo-search-service/lib/dbrepo-1.6.3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c11c350b23c65818060a5529e324d2bdec574ac2 Binary files /dev/null and b/dbrepo-search-service/lib/dbrepo-1.6.3.tar.gz differ diff --git a/dbrepo-ui/composables/table-service.ts b/dbrepo-ui/composables/table-service.ts index 45268d6295fc0ba55fdf268936a1614b350033e3..2597dc251a676f8f9d63da018d0e14ffad0f9869 100644 --- a/dbrepo-ui/composables/table-service.ts +++ b/dbrepo-ui/composables/table-service.ts @@ -251,13 +251,6 @@ export const useTableService = (): any => { } } - function isOwner(table: TableDto, user: UserDto) { - if (!table || !user) { - return false - } - return table.owner.id === user.id - } - function tableNameToInternalName(name: string) { return name.normalize('NFKD') .toLowerCase() @@ -293,7 +286,6 @@ export const useTableService = (): any => { suggest, prepareColumns, prepareConstraints, - isOwner, tableNameToInternalName } } diff --git a/dbrepo-ui/pages/database/[database_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/info.vue index 8340dfe955f4dc21f19f1af70c23d19d1ed9b1ef..7789d74298c88a55fcdcea18cd1e20542322ec63 100644 --- a/dbrepo-ui/pages/database/[database_id]/info.vue +++ b/dbrepo-ui/pages/database/[database_id]/info.vue @@ -94,7 +94,7 @@ <div> <UserBadge :user="database.owner" - :other-user="user" /> + :other-user="cacheUser" /> </div> </v-list-item> <v-list-item @@ -104,7 +104,7 @@ <div> <UserBadge :user="database.contact" - :other-user="user" /> + :other-user="cacheUser" /> </div> </v-list-item> </v-list> diff --git a/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue b/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue index f4007569a21e134abb26f4f5176776ab09da82ce..50eb6305d77b39ff8e0e60ea32dda2ef6bf3e5b9 100644 --- a/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue +++ b/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue @@ -219,12 +219,6 @@ </div> </template> -<script setup> -const { refresh, user } = useOidcAuth() -if (user.value?.canRefresh) { - await refresh() -} -</script> <script> import TableSchema from '@/components/table/TableSchema.vue' import { notEmpty } from '@/utils' diff --git a/dbrepo-ui/pages/user/index.vue b/dbrepo-ui/pages/user/index.vue index be3fe8cf673afb38ba7beffc22b5ca8a28d9388d..f0e9e2083beae166a9702f10dec1f5e4a0f370da 100644 --- a/dbrepo-ui/pages/user/index.vue +++ b/dbrepo-ui/pages/user/index.vue @@ -2,6 +2,9 @@ <div /> </template> +<script setup> +const { loggedIn } = useOidcAuth() +</script> <script> export default { mounted () { diff --git a/helm/dbrepo/files/create-event-listener.jar b/helm/dbrepo/files/create-event-listener.jar new file mode 100644 index 0000000000000000000000000000000000000000..221bdd325f056ff953e0a44a46773470eb08e91e Binary files /dev/null and b/helm/dbrepo/files/create-event-listener.jar differ diff --git a/helm/dbrepo/templates/auth-configmap.yaml b/helm/dbrepo/templates/auth-configmap.yaml index ffd14c4b1765cab2f20af5888c746fbf47a71a45..208971bfa23933cc3b8156514dde25ff37a6d944 100644 --- a/helm/dbrepo/templates/auth-configmap.yaml +++ b/helm/dbrepo/templates/auth-configmap.yaml @@ -4,6 +4,9 @@ kind: ConfigMap metadata: name: auth-service-config namespace: {{ include "common.names.namespace" . | quote }} +binaryData: + create-event-listener.jar: | + {{ .Files.Get "files/create-event-listener.jar" | b64enc | nindent 4 }} data: dbrepo-realm.json: | { diff --git a/helm/dbrepo/values.yaml b/helm/dbrepo/values.yaml index 626aea471be61721f0106f0e3595829a936e6dde..9bc35763ae7fb574f943791d212136d4738d0a94 100644 --- a/helm/dbrepo/values.yaml +++ b/helm/dbrepo/values.yaml @@ -140,7 +140,14 @@ authservice: ## @skip authservice.extraVolumeMounts extraVolumeMounts: - name: config-map - mountPath: /opt/keycloak/data/import + mountPath: /opt/keycloak/data/import/dbrepo-realm.json + subPath: dbrepo-realm.json + - name: config-map + mountPath: /opt/keycloak/data/import/master-realm.json + subPath: master-realm.json + - name: config-map + mountPath: /opt/bitnami/keycloak/providers/create-event-listener.jar + subPath: create-event-listener.jar - name: cache mountPath: /bitnami/keycloak/ ## @skip authservice.replicaCount The number of replicas. @@ -176,6 +183,16 @@ datadb: enabled: true ## @param datadb.replicaCount The number of cluster nodes, should be uneven i.e. 2n+1 replicaCount: 3 + resources: + resources: + limits: + cpu: 750m + ephemeral-storage: 2Gi + memory: 1536Mi + requests: + cpu: 500m + ephemeral-storage: 50Mi + memory: 1000Mi persistence: ## @param datadb.persistence.enabled Enable persistent storage. enabled: true diff --git a/make/dev.mk b/make/dev.mk index 0282dbbce287356e207822fdc9dbf1be7e26e0b8..c20b4dd22910b76e02979fb9be710ea4e67cd565 100644 --- a/make/dev.mk +++ b/make/dev.mk @@ -31,6 +31,7 @@ package-config: ## Package the config files cp ./dbrepo-metric-db/prometheus.yml ./.docker/config cp ./dbrepo-storage-service/s3_config.json ./.docker/config cp ./dbrepo-upload-service/pre-create.sh ./.docker/config + cp ./dbrepo-auth-service/listeners/target/create-event-listener.jar ./.docker/config cd ./.docker && tar czf ./dist.tar.gz ./docker-compose.yml ./.env ./config .PHONY: install-staging