diff --git a/dbrepo-auth-service/listeners/target/create-event-listener.jar b/dbrepo-auth-service/listeners/target/create-event-listener.jar index f31503187e5d377ac51672c2f92594a89c7b5844..56d571a6d093a8c8a56d0f7a480a7b385777127c 100644 Binary files a/dbrepo-auth-service/listeners/target/create-event-listener.jar and b/dbrepo-auth-service/listeners/target/create-event-listener.jar differ diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..327aea40d4019a535cb12ef6863391c4f18f463e Binary files /dev/null and b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar differ diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.md5 b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.md5 new file mode 100644 index 0000000000000000000000000000000000000000..d77c490d73796e8cab7794f4f19176c471031c7a --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.md5 @@ -0,0 +1 @@ +1f0abb6d4b828ea9c241004072d83083 \ No newline at end of file diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.sha1 b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.sha1 new file mode 100644 index 0000000000000000000000000000000000000000..f955485209172d1102ddd4199ee4e3cdc1551c75 --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.sha1 @@ -0,0 +1 @@ +d4a7723db256f848bf0556ea46ff5847a65cb22c \ No newline at end of file diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom new file mode 100644 index 0000000000000000000000000000000000000000..a8bd30c879b5935d7b4201a3fe2a4ec33b0cffc1 --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>at.ac.tuwien.ifs.dbrepo</groupId> + <artifactId>dbrepo-core</artifactId> + <version>1.8.2</version> +</project> diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.md5 b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.md5 new file mode 100644 index 0000000000000000000000000000000000000000..d828a569a04f9d085270a5cdc373351534c6c436 --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.md5 @@ -0,0 +1 @@ +01c7678165b6cd9e3d791aa5e8a4079f \ No newline at end of file diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.sha1 b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.sha1 new file mode 100644 index 0000000000000000000000000000000000000000..1d022eb4d41507444e31c9979242e9ff2ce4230c --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.sha1 @@ -0,0 +1 @@ +269ba05d98dda236edf0fd3fd7dddb485499001e \ No newline at end of file diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..23bb4cb32581c82c96fdf2ef8fb270ca5d4a0264 --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadata> + <groupId>at.ac.tuwien.ifs.dbrepo</groupId> + <artifactId>dbrepo-core</artifactId> + <versioning> + <release>1.8.2</release> + <versions> + <version>1.8.2</version> + </versions> + <lastUpdated>20250425072339</lastUpdated> + </versioning> +</metadata> diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.md5 b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.md5 new file mode 100644 index 0000000000000000000000000000000000000000..ccd2ab6f7b27ca3960ace8f71612acb35a7150c4 --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.md5 @@ -0,0 +1 @@ +161a9b9c161aaee7fbf472830b9f4bb3 \ No newline at end of file diff --git a/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.sha1 b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.sha1 new file mode 100644 index 0000000000000000000000000000000000000000..c64b554313dfde1448ebed878cc81d4c629b7a6a --- /dev/null +++ b/dbrepo-data-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +4af0ca239d68580b51236fc65e499978e57576d0 \ No newline at end of file diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java index 24da7bc82a2cfbfd5346abd87bcfc66e6cf9dd27..db8a6908a1f9822a3b6c976575eef15f7cd4f299 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java @@ -26,6 +26,9 @@ public class DataCiteCreateDoi implements Serializable { private DataCiteDoiEvent event; + @NotBlank + private String schemaVersion; + private List<DataCiteDoiTitle> titles; @NotBlank diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelationType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelationType.java index 65fc23fddbdbe3dca3dedf0669ad4bdb9a2feb7e..40bbfae9c2e3018404775d40cd8197882f4561dc 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelationType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelationType.java @@ -80,4 +80,5 @@ public enum RelationType { public String toString() { return this.name; } + } diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..327aea40d4019a535cb12ef6863391c4f18f463e Binary files /dev/null and b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar differ diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.md5 b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.md5 new file mode 100644 index 0000000000000000000000000000000000000000..d77c490d73796e8cab7794f4f19176c471031c7a --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.md5 @@ -0,0 +1 @@ +1f0abb6d4b828ea9c241004072d83083 \ No newline at end of file diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.sha1 b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.sha1 new file mode 100644 index 0000000000000000000000000000000000000000..f955485209172d1102ddd4199ee4e3cdc1551c75 --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.jar.sha1 @@ -0,0 +1 @@ +d4a7723db256f848bf0556ea46ff5847a65cb22c \ No newline at end of file diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom new file mode 100644 index 0000000000000000000000000000000000000000..a8bd30c879b5935d7b4201a3fe2a4ec33b0cffc1 --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>at.ac.tuwien.ifs.dbrepo</groupId> + <artifactId>dbrepo-core</artifactId> + <version>1.8.2</version> +</project> diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.md5 b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.md5 new file mode 100644 index 0000000000000000000000000000000000000000..d828a569a04f9d085270a5cdc373351534c6c436 --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.md5 @@ -0,0 +1 @@ +01c7678165b6cd9e3d791aa5e8a4079f \ No newline at end of file diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.sha1 b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.sha1 new file mode 100644 index 0000000000000000000000000000000000000000..1d022eb4d41507444e31c9979242e9ff2ce4230c --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/1.8.2/dbrepo-core-1.8.2.pom.sha1 @@ -0,0 +1 @@ +269ba05d98dda236edf0fd3fd7dddb485499001e \ No newline at end of file diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..8c7262d8a7611d2002ef4c7b1f58b6083f13cbfe --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadata> + <groupId>at.ac.tuwien.ifs.dbrepo</groupId> + <artifactId>dbrepo-core</artifactId> + <versioning> + <release>1.8.2</release> + <versions> + <version>1.8.2</version> + </versions> + <lastUpdated>20250425072401</lastUpdated> + </versioning> +</metadata> diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.md5 b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.md5 new file mode 100644 index 0000000000000000000000000000000000000000..6f7fcabb4123d8977e9c55aca89b651f40268654 --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.md5 @@ -0,0 +1 @@ +aadd7311a5b9e6287b5a23d5e032ca68 \ No newline at end of file diff --git a/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.sha1 b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.sha1 new file mode 100644 index 0000000000000000000000000000000000000000..334cc124f8fe7aa847dc3d4ace8f7914f1f4d5f7 --- /dev/null +++ b/dbrepo-metadata-service/lib/at/ac/tuwien/ifs/dbrepo/dbrepo-core/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +86f1788b81b862f2fd0311bf84f0d9509dc5e3f4 \ No newline at end of file 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 eaef36188bf5d5c832ba30d91b8b62e91b10c646..63514bed71a32aba4a82f37f86acbe5c56b95574 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 @@ -258,7 +258,7 @@ public interface MetadataMapper { @Mappings({ @Mapping(target = "relatedIdentifier", source = "value"), @Mapping(target = "relatedIdentifierType", source = "type"), - @Mapping(target = "relationType", source = "relation"), + @Mapping(target = "relationType", expression = "java(relatedIdentifier.getRelation().toString())"), }) DataCiteDoiRelatedIdentifier relatedIdentifierToDoiRelatedIdentifier(RelatedIdentifier relatedIdentifier); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java index ac1103d2e5ad0a4c9a12b781c575ddff9aa39bcf..2e76bcde75d0ced9544b931954f13c8fc5ab4608 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java @@ -1,6 +1,7 @@ package at.tuwien.mapper; import at.tuwien.api.database.ViewDto; +import at.tuwien.api.datacite.doi.DataCiteDoiRelatedIdentifier; import at.tuwien.api.identifier.IdentifierTypeDto; import at.tuwien.api.user.UserBriefDto; import at.tuwien.entities.database.View; @@ -58,6 +59,13 @@ public class MetadataMapperUnitTest extends AbstractUnitTest { assertNotEquals(CONTAINER_1, CONTAINER_2); } + @Test + public void relatedIdentifierToDoiRelatedIdentifier_succeeds() { + + /* test */ + assertEquals("Cites", metadataMapper.relatedIdentifierToDoiRelatedIdentifier(IDENTIFIER_1_RELATED_IDENTIFIER_1).getRelationType()); + } + @Test public void identifierTypeDtoToIdentifierType_succeeds() { diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java index 5ab9cc26a226374d817966e880a684393c36cf08..9c99d3bede251684c6bf6ea8f561c6cbebde2e1c 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java @@ -19,6 +19,8 @@ import at.tuwien.exception.*; import at.tuwien.mapper.MetadataMapper; import at.tuwien.repository.IdentifierRepository; import at.tuwien.service.IdentifierService; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Primary; @@ -32,6 +34,9 @@ import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.util.List; import java.util.UUID; @@ -100,6 +105,7 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService { DataServiceConnectionException, MalformedException, DatabaseNotFoundException, IdentifierNotFoundException, ViewNotFoundException, QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException { + log.debug("save identifier, {}", data.getId()); data.setDoi(remoteSave(identifierService.save(database, user, data), DataCiteDoiEvent.REGISTER)); return identifierService.save(database, user, data); } @@ -110,6 +116,7 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService { DataServiceConnectionException, IdentifierNotFoundException, MalformedException, ViewNotFoundException, DatabaseNotFoundException, QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException { + log.debug("create identifier"); data.setDoi(remoteSave(identifierService.create(database, user, data), DataCiteDoiEvent.REGISTER)); return identifierService.create(database, user, data); } @@ -129,19 +136,17 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService { final HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.setBasicAuth(dataCiteConfig.getUsername(), dataCiteConfig.getPassword()); - final HttpEntity<DataCiteBody<DataCiteCreateDoi>> request = new HttpEntity<>( - DataCiteBody.<DataCiteCreateDoi>builder() - .data(DataCiteData.<DataCiteCreateDoi>builder() - .type("dois") - .attributes(metadataMapper.identifierToDataCiteCreateDoi(identifier, - endpointConfig.getWebsiteUrl() + "/pid/" + identifier.getId(), - dataCiteConfig.getPrefix(), event)) - .build()) - .build(), - headers - ); + final DataCiteBody<DataCiteCreateDoi> body = DataCiteBody.<DataCiteCreateDoi>builder() + .data(DataCiteData.<DataCiteCreateDoi>builder() + .type("dois") + .attributes(metadataMapper.identifierToDataCiteCreateDoi(identifier, + endpointConfig.getWebsiteUrl() + "/pid/" + identifier.getId(), + dataCiteConfig.getPrefix(), event)) + .build()) + .build(); + final HttpEntity<DataCiteBody<DataCiteCreateDoi>> request = new HttpEntity<>(body, headers); final String url = dataCiteConfig.getUrl() + "/dois"; - log.trace("request doi from url {}", url); + log.trace("request doi from url={}", url); try { final ResponseEntity<DataCiteBody<DataCiteDoi>> response = restTemplate.exchange(url, HttpMethod.POST, request, dataCiteBodyParameterizedTypeReference); diff --git a/dbrepo-ui/components/ResourceStatus.vue b/dbrepo-ui/components/ResourceStatus.vue index e594883328234bf005e3e689a945fd11b45ac60b..b49c0112d5ff86e4cc870ccf4624d9d717ead5a6 100644 --- a/dbrepo-ui/components/ResourceStatus.vue +++ b/dbrepo-ui/components/ResourceStatus.vue @@ -65,13 +65,13 @@ export default { return this.cacheStore.getUser }, hasIdentifier () { - if (!this.resource.identifiers || this.resource.identifiers.length === 0) { + if (!this.resource.identifiers?.length === 0) { return false } if (!this.cacheUser) { - return this.resource.identifiers.filter(i => i.status === 'published').length + return this.resource.identifiers.filter(i => i.status === 'published').length > 0 } - return this.resource.identifiers.filter(i => i.status === 'published' || i.owner.id === this.cacheUser.uid) + return this.resource.identifiers.filter(i => i.status === 'published' || i?.owned_by === this.cacheUser.uid || i?.owner.id === this.cacheUser.uid).length > 0 }, color () { if (this.hasIdentifier) { diff --git a/dbrepo-ui/components/table/TableSchema.vue b/dbrepo-ui/components/table/TableSchema.vue index 62d88647e4c1ee39a51be16ef2e6f50a6c739e86..f7cb3b3eb09a7d708a4cef5dce9d9e402ad7fc0b 100644 --- a/dbrepo-ui/components/table/TableSchema.vue +++ b/dbrepo-ui/components/table/TableSchema.vue @@ -152,7 +152,6 @@ <v-checkbox v-model="c.unique" :disabled="disabled || c.type === 'serial'" - :hidden="c.primary_key" :label="$t('pages.table.subpages.schema.unique.label')" /> </v-col> <v-col @@ -250,6 +249,9 @@ export default { return this.$vuetify.theme.global.name.toLowerCase().endsWith('contrast') ? runtimeConfig.public.variant.button.contrast : runtimeConfig.public.variant.button.normal }, showPrimaryKeyWarning () { + if (this.disabled) { + return false + } return this.columns.filter(c => c.primary_key).length === 0 } }, diff --git a/dbrepo-ui/locales/en-US.json b/dbrepo-ui/locales/en-US.json index 55a9692c2d4650d2fb3970322aafe026e2da8d10..2616ea1128bb0c4d7404f264d1985f367a98aa03 100644 --- a/dbrepo-ui/locales/en-US.json +++ b/dbrepo-ui/locales/en-US.json @@ -631,6 +631,9 @@ "created": { "title": "Created" }, + "id": { + "title": "ID" + }, "connection": { "title": "Connection", "username": "username", diff --git a/dbrepo-ui/pages/database/[database_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/info.vue index fc149bede3ded53660a058205536ba560acae83b..27faaee6f71ed21e4679190a53c0758060a8131a 100644 --- a/dbrepo-ui/pages/database/[database_id]/info.vue +++ b/dbrepo-ui/pages/database/[database_id]/info.vue @@ -45,6 +45,13 @@ :max-width="maxWidth" :max-height="maxHeight" /> </v-list-item> + <v-list-item + :title="$t('pages.database.id.title')" + density="compact"> + <div> + {{ database.id }} + </div> + </v-list-item> <v-list-item :title="$t('pages.database.name.title')" density="compact"> diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue index 18662f55ddf87daafb6d055a17d67f93fb2be737..84b06bd348b0818f95c73b877df2ab230a55d18a 100644 --- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue +++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue @@ -24,6 +24,10 @@ <v-card-text> <v-list dense> + <v-list-item + :title="$t('pages.table.id.title')"> + {{ table.id }} + </v-list-item> <v-list-item :title="$t('pages.table.name.title')"> {{ table.internal_name }} 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 56db5fdc374cdfd683eb00328f86534cd9fd81bf..54d539ed17154c4235d7db9121463d1aab5ebd5e 100644 --- a/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue +++ b/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue @@ -155,12 +155,11 @@ </v-stepper-header> <v-stepper-window direction="vertical"> - <v-container - v-if="step >= 4"> + <v-container> <TableSchema ref="schema" :back="false" - :disabled="step > 4" + :disabled="step !== 4" :loading="loading" :submit-text="$t('navigation.continue')" :columns="tableCreate.columns" diff --git a/docker-compose.yml b/docker-compose.yml index e3c665faeb6ebc37990a97c68706fdeb78117262..c462bcc375fa7af8b9239e6d50764e8075cb9c50 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -172,7 +172,7 @@ services: DELETED_RECORD: "${DELETED_RECORD:-persistent}" GRANULARITY: "${GRANULARITY:-YYYY-MM-DDThh:mm:ssZ}" JWT_PUBKEY: "${JWT_PUBKEY:-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB}" - LOG_LEVEL: ${LOG_LEVEL:-info} + LOG_LEVEL: ${LOG_LEVEL:-trace} METADATA_DB: "${METADATA_DB:-dbrepo}" METADATA_DB_PASSWORD: "${METADATA_DB_PASSWORD:-dbrepo}" METADATA_HOST: "${METADATA_HOST:-metadata-db}" @@ -187,6 +187,11 @@ services: S3_ENDPOINT: "${S3_ENDPOINT:-http://storage-service:9000}" S3_SECRET_ACCESS_KEY: "${S3_SECRET_ACCESS_KEY:-seaweedfsadmin}" SPARQL_CONNECTION_TIMEOUT: "${SPARQL_CONNECTION_TIMEOUT:-10000}" + DATACITE_URL: "https://api.test.datacite.org" + DATACITE_PREFIX: "10.82556" + DATACITE_USERNAME: "TUWIEN.DBREPO-TEST" + DATACITE_PASSWORD: "hDb$LR@zn2JUqCmJ7Egi" + SPRING_PROFILES_ACTIVE: "doi" SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}" SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: diff --git a/helm/dbrepo/files/create-event-listener.jar b/helm/dbrepo/files/create-event-listener.jar index f31503187e5d377ac51672c2f92594a89c7b5844..56d571a6d093a8c8a56d0f7a480a7b385777127c 100644 Binary files a/helm/dbrepo/files/create-event-listener.jar and b/helm/dbrepo/files/create-event-listener.jar differ diff --git a/lib/java/dbrepo-core/dependency-reduced-pom.xml b/lib/java/dbrepo-core/dependency-reduced-pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..b0e56184cf7914b3e18a4d177d855f7746ba98bc --- /dev/null +++ b/lib/java/dbrepo-core/dependency-reduced-pom.xml @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <parent> + <artifactId>spring-boot-starter-parent</artifactId> + <groupId>org.springframework.boot</groupId> + <version>3.4.0</version> + <relativePath>../pom.xml/pom.xml</relativePath> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>at.ac.tuwien.ifs.dbrepo</groupId> + <artifactId>dbrepo-core</artifactId> + <name>dbrepo-core</name> + <version>1.8.2</version> + <description>Core library for DBRepo</description> + <url>https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/</url> + <developers> + <developer> + <name>Martin Weise</name> + <email>martin.weise@tuwien.ac.at</email> + <organization>TU Wien</organization> + </developer> + </developers> + <licenses> + <license> + <name>Apache-2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> + <distribution>repo</distribution> + </license> + </licenses> + <organization> + <name>TU Wien</name> + <url>https://www.tuwien.ac.at</url> + </organization> + <build> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + <annotationProcessorPaths> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + </path> + <path> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct-processor</artifactId> + <version>${mapstruct.version}</version> + </path> + </annotationProcessorPaths> + </configuration> + </plugin> + <plugin> + <artifactId>maven-shade-plugin</artifactId> + <version>3.6.0</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-validation</artifactId> + <version>3.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <version>3.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-security</artifactId> + <version>3.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-test</artifactId> + <version>6.4.1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-bootstrap</artifactId> + <version>4.2.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-thymeleaf</artifactId> + <version>3.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-jpa</artifactId> + <version>3.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + <version>3.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.keycloak</groupId> + <artifactId>keycloak-common</artifactId> + <version>26.0.4</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.keycloak</groupId> + <artifactId>keycloak-admin-client</artifactId> + <version>26.0.4</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct-processor</artifactId> + <version>1.6.3</version> + <scope>provided</scope> + <optional>true</optional> + </dependency> + <dependency> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct</artifactId> + <version>1.6.3</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.18.36</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.datatype</groupId> + <artifactId>jackson-datatype-jsr310</artifactId> + <version>2.15.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.datatype</groupId> + <artifactId>jackson-datatype-hibernate6</artifactId> + <version>2.15.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springdoc</groupId> + <artifactId>springdoc-openapi-starter-webmvc-api</artifactId> + <version>2.8.5</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>6.2.0</version> + <scope>provided</scope> + </dependency> + </dependencies> + <properties> + <maven.compiler.source>17</maven.compiler.source> + <keycloak.version>26.0.4</keycloak.version> + <spring-cloud.version>4.2.1</spring-cloud.version> + <maven.compiler.target>17</maven.compiler.target> + <jackson-datatype.version>2.15.0</jackson-datatype.version> + <mapstruct.version>1.6.3</mapstruct.version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <springdoc-openapi.version>2.8.5</springdoc-openapi.version> + </properties> +</project>