diff --git a/.env.unix.example b/.env.unix.example index 4e388f92928dcb7da1ed2de91c63966c591cc5d6..7fe5abde878006e4d3e08c56db1e74bab8501400 100644 --- a/.env.unix.example +++ b/.env.unix.example @@ -1,8 +1,7 @@ -DBREPO_CLIENT_SECRET=MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG -RABBITMQ_CLIENT_SECRET=JEC2FexxrX4N65fLeDGukAl6R3Lc9y0u -JWT_ISSUER=http://localhost/realms/dbrepo -JWT_PUBKEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB -JWT_CERT=MIICmzCCAYMCBgGG3GWyBTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqqcdDYFZZb28M0tEJzEP77FmD/Xqioyj9zWX6VwUSOMAgmMmn8eqs9hT9T0a+q4YTo9tUW1PNbUpwprA5b4Uk04DcIajxDVMUR/PjcHytmkqwVskq9AZW/Vngdoo+8tSbuIybwe/3Vwt266hbHpDcM97a+DXcYooRl7tQWCEX7RP27wQrMD9epDQ6IgKayZg9vC9/03dsIqwH9jXQRiZlFvwiEKhX2aY7lPGBaCK414JO00K/Z49iov9TRa/IYVbSt5qwgrx6DcqsBSPwOnI6A85UGfeUEZ/7coVJiL7RvBlsllapsL9eWTbQajVh94k9Ei3sibEPbtH+U2OAM78zAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAASnN1Cuif1sdfEK2kWAURSXGJCohCROLWdKFjaeHPRaEfpbFJsgxW0Yj3nwX5O3bUlOWoTyENwnXSsXMQsqnNi+At32CKaKO8+AkhAbgQL9F0B+KeJwmYv3cUj5N/LYkJjBvZBzUZ4Ugu5dcxH0k7AktLAIwimkyEnxTNolOA3UyrGGpREr8MCKWVr10RFuOpF/0CsJNNwbHXzalO9D756EUcRWZ9VSg6QVNso0YYRKTnILWDn9hcTRnqGy3SHo3anFTqQZ+BB57YbgFWy6udC0LYRB3zdp6zNti87eu/VEymiDY/mmo1AB8Tm0b6vxFz4AKcL3ax5qS6YnZ9efSzk= +DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" +JWT_ISSUER="http://localhost/realms/dbrepo" +JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" +JWT_CERT="MIICmzCCAYMCBgGG3GWyBTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqqcdDYFZZb28M0tEJzEP77FmD/Xqioyj9zWX6VwUSOMAgmMmn8eqs9hT9T0a+q4YTo9tUW1PNbUpwprA5b4Uk04DcIajxDVMUR/PjcHytmkqwVskq9AZW/Vngdoo+8tSbuIybwe/3Vwt266hbHpDcM97a+DXcYooRl7tQWCEX7RP27wQrMD9epDQ6IgKayZg9vC9/03dsIqwH9jXQRiZlFvwiEKhX2aY7lPGBaCK414JO00K/Z49iov9TRa/IYVbSt5qwgrx6DcqsBSPwOnI6A85UGfeUEZ/7coVJiL7RvBlsllapsL9eWTbQajVh94k9Ei3sibEPbtH+U2OAM78zAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAASnN1Cuif1sdfEK2kWAURSXGJCohCROLWdKFjaeHPRaEfpbFJsgxW0Yj3nwX5O3bUlOWoTyENwnXSsXMQsqnNi+At32CKaKO8+AkhAbgQL9F0B+KeJwmYv3cUj5N/LYkJjBvZBzUZ4Ugu5dcxH0k7AktLAIwimkyEnxTNolOA3UyrGGpREr8MCKWVr10RFuOpF/0CsJNNwbHXzalO9D756EUcRWZ9VSg6QVNso0YYRKTnILWDn9hcTRnqGy3SHo3anFTqQZ+BB57YbgFWy6udC0LYRB3zdp6zNti87eu/VEymiDY/mmo1AB8Tm0b6vxFz4AKcL3ax5qS6YnZ9efSzk=" SHARED_FILESYSTEM=/tmp LOG_LEVEL=trace ELASTIC_PASSWORD=elastic diff --git a/dbrepo-broker-service/Dockerfile b/dbrepo-broker-service/Dockerfile index 8dcb22970b3c2cb5cbd4379b4316995e79e38252..0813cf4a38450ca2fa09fca4bd1c0f2b112b66df 100644 --- a/dbrepo-broker-service/Dockerfile +++ b/dbrepo-broker-service/Dockerfile @@ -13,8 +13,8 @@ COPY ./rabbitmq.conf /etc/rabbitmq/rabbitmq.conf WORKDIR /app -ENV JWT_PUBKEY=public-key -ENV JWT_CERT=cert +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" +ENV JWT_CERT="MIICmzCCAYMCBgGG3GWyBTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqqcdDYFZZb28M0tEJzEP77FmD/Xqioyj9zWX6VwUSOMAgmMmn8eqs9hT9T0a+q4YTo9tUW1PNbUpwprA5b4Uk04DcIajxDVMUR/PjcHytmkqwVskq9AZW/Vngdoo+8tSbuIybwe/3Vwt266hbHpDcM97a+DXcYooRl7tQWCEX7RP27wQrMD9epDQ6IgKayZg9vC9/03dsIqwH9jXQRiZlFvwiEKhX2aY7lPGBaCK414JO00K/Z49iov9TRa/IYVbSt5qwgrx6DcqsBSPwOnI6A85UGfeUEZ/7coVJiL7RvBlsllapsL9eWTbQajVh94k9Ei3sibEPbtH+U2OAM78zAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAASnN1Cuif1sdfEK2kWAURSXGJCohCROLWdKFjaeHPRaEfpbFJsgxW0Yj3nwX5O3bUlOWoTyENwnXSsXMQsqnNi+At32CKaKO8+AkhAbgQL9F0B+KeJwmYv3cUj5N/LYkJjBvZBzUZ4Ugu5dcxH0k7AktLAIwimkyEnxTNolOA3UyrGGpREr8MCKWVr10RFuOpF/0CsJNNwbHXzalO9D756EUcRWZ9VSg6QVNso0YYRKTnILWDn9hcTRnqGy3SHo3anFTqQZ+BB57YbgFWy6udC0LYRB3zdp6zNti87eu/VEymiDY/mmo1AB8Tm0b6vxFz4AKcL3ax5qS6YnZ9efSzk=" COPY ./init.sh ./init.sh COPY ./service_ready /usr/bin/service_ready diff --git a/dbrepo-broker-service/register.py b/dbrepo-broker-service/register.py deleted file mode 100644 index 0f84efc21c1e5cf0539f4144898d36dd98ddc75c..0000000000000000000000000000000000000000 --- a/dbrepo-broker-service/register.py +++ /dev/null @@ -1,17 +0,0 @@ -from py_eureka_client import eureka_client -import py_eureka_client.logger as logger -import datetime - -logger.set_level("ERROR") - - -def register(): - eureka_client.init(eureka_server="http://discovery-service:9090/eureka/", - app_name="broker-service", - instance_ip="broker-service", - instance_host="broker-service", - instance_port=15672) - - -if __name__ == "__main__": - register() diff --git a/dbrepo-container-service/Dockerfile b/dbrepo-container-service/Dockerfile index 2ddbfd3f85a3fc34da1ecc6503d2f3314377f2b4..3495a8bfbb6ef1d20acf3597e3879ecd494240d3 100644 --- a/dbrepo-container-service/Dockerfile +++ b/dbrepo-container-service/Dockerfile @@ -33,10 +33,10 @@ ENV BROKER_PASSWORD=fda ENV SHARED_FILESYSTEM=/tmp ENV USER_NETWORK=userdb ENV LOG_LEVEL=debug -ENV DBREPO_CLIENT_SECRET=client-secret -ENV CLIENT_ID=dbrepo-client -ENV JWT_ISSUER=http://localhost/realms/dbrepo -ENV JWT_PUBKEY=public-key +ENV CLIENT_ID="dbrepo-client" +ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" +ENV JWT_ISSUER="http://localhost/realms/dbrepo" +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" WORKDIR /app diff --git a/dbrepo-container-service/README.md b/dbrepo-container-service/README.md index a5ae3e58a15a826ac6d96403e5ff21bc420ef114..ab86845542517a662ed2ddc02c33c544a24128f9 100644 --- a/dbrepo-container-service/README.md +++ b/dbrepo-container-service/README.md @@ -1,6 +1,6 @@ # Container Service -## Actuator +## Actuator Endpoints - Actuator Info: http://localhost:9091/actuator/info - Actuator Health: http://localhost:9091/actuator/health diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java index 328f77a6fc2ad0dbdc8a74336e908725e4b53e17..0854b2b98e1e30ac4827ed3783c71d22467df885 100644 --- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java +++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java @@ -65,10 +65,10 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { DockerConfig.createAllNetworks(); /* metadata database */ realmRepository.save(REALM_DBREPO); - userRepository.save(USER_1_SIMPLE); - userRepository.save(USER_2_SIMPLE); - userRepository.save(USER_3_SIMPLE); imageRepository.save(IMAGE_1); + userRepository.save(USER_1); + userRepository.save(USER_2); + userRepository.save(USER_3); } @AfterEach diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java index 066294a208391c94bdd9b8f0a2a9aad4c29ca4ef..6c0bf962b36c494c0158413026e1563c30b83d50 100644 --- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java +++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java @@ -268,6 +268,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { @WithMockUser(username = USER_2_USERNAME, authorities = {"modify-image"}) public void modify_hasRole_succeeds() throws ImageNotFoundException { final ImageChangeDto request = ImageChangeDto.builder() + .registry(IMAGE_1_REGISTRY) .defaultPort(IMAGE_1_PORT) .dialect(IMAGE_1_DIALECT) .jdbcMethod(IMAGE_1_JDBC) diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java index 9c6cd35a83a32be64c353145a053fb9e2539efd1..cdbcd6b052bf3918c8c4ff44e5904529288d92de 100644 --- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java +++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java @@ -9,7 +9,9 @@ import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.jpa.UserRepository; import at.tuwien.service.impl.ImageServiceImpl; import lombok.extern.log4j.Log4j2; +import org.apache.commons.lang3.RandomUtils; import org.apache.http.auth.BasicUserPrincipal; +import org.apache.tomcat.util.buf.HexUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -54,6 +56,7 @@ public class ImageServiceIntegrationTest extends BaseUnitTest { public void create_succeeds() throws ImageAlreadyExistsException, DockerClientException, ImageNotFoundException, UserNotFoundException { final ImageCreateDto request = ImageCreateDto.builder() + .registry(IMAGE_2_REGISTRY) .repository(IMAGE_2_REPOSITORY) .tag(IMAGE_2_TAG) .jdbcMethod(IMAGE_2_JDBC) @@ -134,10 +137,12 @@ public class ImageServiceIntegrationTest extends BaseUnitTest { @Test public void pull_fails() { + final String repository = HexUtils.toHexString(RandomUtils.nextBytes(16)); + final String tag = HexUtils.toHexString(RandomUtils.nextBytes(16)); /* test */ assertThrows(ImageNotFoundException.class, () -> { - imageService.pull("un1c0rn", "v420.420"); + imageService.pull("docker.io/library", repository, tag); }); } diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java index 8da465bcabe2b9d873932887b67e8bb287ee22fb..c75bfe2f6eda6923c4ef9819388e489d185e9f4a 100644 --- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java +++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java @@ -102,6 +102,7 @@ public class ImageServiceUnitTest extends BaseUnitTest { @Test public void update_succeeds() throws ImageNotFoundException { final ImageChangeDto request = ImageChangeDto.builder() + .registry(IMAGE_1_REGISTRY) .environment(IMAGE_1_ENV_DTO) .defaultPort(IMAGE_1_PORT) .build(); @@ -121,6 +122,7 @@ public class ImageServiceUnitTest extends BaseUnitTest { @Test public void update_port_succeeds() throws ImageNotFoundException { final ImageChangeDto request = ImageChangeDto.builder() + .registry(IMAGE_1_REGISTRY) .environment(IMAGE_1_ENV_DTO) .defaultPort(9999) .build(); diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java b/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java index 37617f6ccf2abcfe03e994bfa44e3c445532951a..07dd871683a1e5ba8cc992cd81bd8d1a803c5402 100644 --- a/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java +++ b/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java @@ -18,6 +18,7 @@ import java.io.IOException; public class ReadyConfig { private final ImageService imageService; + private final static String registry = "docker.io/library"; private final static String imageRepository = "mariadb"; private final static String imageTag = "10.5"; @@ -32,12 +33,12 @@ public class ReadyConfig { @EventListener(ApplicationReadyEvent.class) public void init() throws IOException, ImageNotFoundException { if (!imageService.exists(imageRepository, imageTag)) { - log.debug("image {}:{} is not present on the host", imageRepository, imageTag); - log.debug("pulling image {}:{}", imageRepository, imageTag); - imageService.pull(imageRepository, imageTag); + log.debug("image {}/{}:{} is not present on the host", registry, imageRepository, imageTag); + log.debug("pulling image {}/{}:{}", registry, imageRepository, imageTag); + imageService.pull(registry, imageRepository, imageTag); } else { - log.debug("image {}:{} is present on the host", imageRepository, imageTag); - log.trace("skip pulling image {}:{}", imageRepository, imageTag); + log.debug("image {}/{}:{} is present on the host", registry, imageRepository, imageTag); + log.trace("skip pulling image {}/{}:{}", registry, imageRepository, imageTag); } Files.touch(new File(readyPath)); log.info("Service is ready"); diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java b/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java index 9c3fb46ca1cbf9e2d4d02d60c2fbb2dbab29e630..e95c86e6eb7874b3390a0e86ea7a16cf14377d0c 100644 --- a/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java +++ b/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java @@ -71,11 +71,12 @@ public interface ImageService { boolean exists(String repository, String tag); /** - * Pulls a container image by given repository and tag. + * Pulls a container image by given registry, repository and tag. * + * @param registry The registry. * @param repository The repository. * @param tag The tag. * @throws ImageNotFoundException The image was not found. */ - void pull(String repository, String tag) throws ImageNotFoundException; + void pull(String registry, String repository, String tag) throws ImageNotFoundException; } diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java index d1cf69056a02d8e04e980c8b8d3cea90294f8cd0..c7e16a398dff015c0da0131759bf635163591d6a 100644 --- a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java +++ b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java @@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import jakarta.persistence.EntityNotFoundException; import jakarta.validation.ConstraintViolationException; + import java.security.Principal; import java.time.Duration; import java.time.Instant; @@ -73,8 +74,9 @@ public class ImageServiceImpl implements ImageService { if (imageRepository.findByRepositoryAndTag(createDto.getRepository(), createDto.getTag()).isPresent()) { log.error("Failed to create image {}:{}, it already exists in the metadata database", createDto.getRepository(), createDto.getTag()); - throw new ImageAlreadyExistsException("Failed to create image"); + throw new ImageAlreadyExistsException("Failed to create image " + createDto.getRepository() + ":" + createDto.getTag()); } + image.setRegistry(createDto.getRegistry()); image.setEnvironment(imageMapper.imageEnvironmentItemDtoToEnvironmentItemList(createDto.getEnvironment())); image.setDefaultPort(createDto.getDefaultPort()); image.setDialect(createDto.getDialect()); @@ -96,8 +98,6 @@ public class ImageServiceImpl implements ImageService { @Transactional public ContainerImage update(Long imageId, ImageChangeDto changeDto) throws ImageNotFoundException { final ContainerImage image = find(imageId); - /* pull changes */ - pull(image.getRepository(), image.getTag()); /* get new infos */ final ContainerImage dockerImage = inspect(image.getRepository(), image.getTag()); if (!changeDto.getDefaultPort().equals(image.getDefaultPort())) { @@ -111,12 +111,15 @@ public class ImageServiceImpl implements ImageService { log.debug("environment changed for image with id {}", imageId); log.trace("environment changed from {} to {} for image with id {}", env, image.getEnvironment(), imageId); } + image.setRegistry(changeDto.getRegistry()); image.setCompiled(dockerImage.getCompiled()); image.setHash(dockerImage.getHash()); image.setSize(dockerImage.getSize()); image.setDialect(changeDto.getDialect()); image.setDriverClass(changeDto.getDriverClass()); image.setJdbcMethod(changeDto.getJdbcMethod()); + /* pull changes */ + pull(image.getRegistry(), image.getRepository(), image.getTag()); /* update metadata db */ final ContainerImage out = imageRepository.save(image); log.info("Updated image with id {}", out.getId()); @@ -171,21 +174,21 @@ public class ImageServiceImpl implements ImageService { } @Override - public void pull(String repository, String tag) throws ImageNotFoundException { - log.debug("pulling image {}:{}", repository, tag); + public void pull(String registry, String repository, String tag) throws ImageNotFoundException { + log.debug("pulling image {}/{}:{}", registry, repository, tag); final ResultCallback.Adapter<PullResponseItem> response; try { response = dockerClient.pullImageCmd(repository) + .withRegistry(registry) .withTag(tag) .start(); - log.trace("pulled image {}", response); final Instant now = Instant.now(); response.awaitCompletion(); - log.info("Pulled image {}:{}", repository, tag); - log.debug("pulled image {}:{} in {} seconds", repository, tag, Duration.between(now, Instant.now()).getSeconds()); + log.info("Pulled image {}/{}:{}", registry, repository, tag); + log.debug("pulled image {}/{}:{} in {} seconds", registry, repository, tag, Duration.between(now, Instant.now()).getSeconds()); } catch (NotFoundException | InternalServerErrorException | InterruptedException e) { - log.warn("Failed to pull image {}:{}, reason: {}", repository, tag, e.getMessage()); - throw new ImageNotFoundException("Failed to pull image", e); + log.warn("Failed to pull image {}/{}:{}, reason: {}", registry, repository, tag, e.getMessage()); + throw new ImageNotFoundException("Failed to pull image " + registry + "/" + repository + ":" + tag, e); } } diff --git a/dbrepo-database-service/Dockerfile b/dbrepo-database-service/Dockerfile index 0b19effac9546e50027dff3db4486dd5975b19a7..bf79827ee7dd87c0b008b564516ac582764a3c5e 100644 --- a/dbrepo-database-service/Dockerfile +++ b/dbrepo-database-service/Dockerfile @@ -30,15 +30,14 @@ ENV METADATA_USERNAME=root ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda -ENV SEARCH_ENDPOINT=search-service -ENV SEARCH_USERNAME=elastic -ENV SEARCH_PASSWORD=elastic +ENV ELASTIC_USERNAME=elastic +ENV ELASTIC_PASSWORD=elastic ENV GATEWAY_ENDPOINT=http://gateway-service ENV LOG_LEVEL=debug -ENV DBREPO_CLIENT_SECRET=client-secret -ENV CLIENT_ID=dbrepo-client -ENV JWT_ISSUER=http://localhost/realms/dbrepo -ENV JWT_PUBKEY=public-key +ENV CLIENT_ID="dbrepo-client" +ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" +ENV JWT_ISSUER="http://localhost/realms/dbrepo" +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" WORKDIR /app diff --git a/dbrepo-database-service/rest-service/src/main/resources/application.yml b/dbrepo-database-service/rest-service/src/main/resources/application.yml index f3bbe67a229ca7e98b6c58647c2a50baea698eb0..3c555dd20b32f8925acff0121346f9c1452deeca 100644 --- a/dbrepo-database-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-database-service/rest-service/src/main/resources/application.yml @@ -29,7 +29,7 @@ spring: password: "${BROKER_PASSWORD}" elasticsearch: password: "${ELASTIC_PASSWORD}" - username: elastic + username: "${ELASTIC_USERNAME}" uris: http://search-service:9200 management.endpoints.web.exposure.include: health,info,prometheus server: diff --git a/dbrepo-identifier-service/Dockerfile b/dbrepo-identifier-service/Dockerfile index e4f562d63e1be114846dc139a4c8b249502c44af..dc830d8b754b07732789ecafc3e42df63f0b8215 100644 --- a/dbrepo-identifier-service/Dockerfile +++ b/dbrepo-identifier-service/Dockerfile @@ -32,10 +32,10 @@ ENV METADATA_PASSWORD=dbrepo ENV GATEWAY_ENDPOINT=http://gateway-service ENV WEBSITE=http://localhost ENV LOG_LEVEL=debug -ENV DBREPO_CLIENT_SECRET=client-secret -ENV CLIENT_ID=dbrepo-client -ENV JWT_ISSUER=http://localhost/realms/dbrepo -ENV JWT_PUBKEY=public-key +ENV CLIENT_ID="dbrepo-client" +ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" +ENV JWT_ISSUER="http://localhost/realms/dbrepo" +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" WORKDIR /app diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java index 3c4c5e1a21b262b8f7051059db7b06e5b9a24125..d982c237368dd138223913ea7db1295401941e70 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java @@ -19,6 +19,10 @@ public class ImageBriefDto { @NotNull private Long id; + @NotBlank + @Schema(example = "docker.io/library") + private String registry; + @NotBlank @Schema(example = "mariadb") private String repository; diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java index 3e7f14ac5448a6b7e5f064e338de38c38e32d144..dc19e4e0e22f3683dcec0e0f5f3308df60ec1fd8 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java @@ -20,6 +20,10 @@ import java.util.List; @ToString public class ImageChangeDto { + @NotBlank + @Schema(example = "docker.io/library") + private String registry; + @Min(value = 1024, message = "only user ports are allowed 1024-65535") @Max(value = 65535, message = "only user ports are allowed 1024-65535") @Schema(example = "5432") diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java index 7da9a9cdeb0e62f83ce87db238b33717cea897bd..64676aa01b9d3cdf42446f549950b10ab9ea7261 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java @@ -3,6 +3,8 @@ package at.tuwien.api.container.image; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; import lombok.*; import jakarta.validation.constraints.NotBlank; @@ -20,6 +22,10 @@ import java.util.List; @ToString public class ImageCreateDto { + @NotBlank + @Schema(example = "docker.io/library") + private String registry; + @NotBlank @Schema(example = "mariadb") private String repository; @@ -44,6 +50,8 @@ public class ImageCreateDto { @NotNull @JsonProperty("default_port") + @Min(value = 1024, message = "only user ports are allowed 1024-65535") + @Max(value = 65535, message = "only user ports are allowed 1024-65535") @Parameter(required = true, example = "3006") private Integer defaultPort; diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java index b1606bdd277615c8f837894c27a7cb311bab84ec..8dfb917afd39c20e906587dc00fb5d3155d57537 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java @@ -26,6 +26,10 @@ public class ImageDto { @NotNull private Long id; + @NotBlank + @Schema(example = "docker.io/library") + private String registry; + @NotBlank @Schema(example = "mariadb") private String repository; diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java index 9f0b8842782ab9b658e4fc253dd5d8e95cc05714..440ef8627d18d2033dda9a5683f9602b4dae8169 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java @@ -32,6 +32,9 @@ public class ContainerImage { @Column(nullable = false) private String repository; + @Column(nullable = false, columnDefinition = "TEXT default 'docker.io/library'") + private String registry; + @Column(nullable = false) private String tag; diff --git a/dbrepo-metadata-db/setup-schema.sql b/dbrepo-metadata-db/setup-schema.sql index 737ef8e464c454a171e53150f19bd98ed9cff20a..db145811a11093d65a2961ac508371bfead606eb 100644 --- a/dbrepo-metadata-db/setup-schema.sql +++ b/dbrepo-metadata-db/setup-schema.sql @@ -3,6 +3,7 @@ BEGIN; CREATE TABLE IF NOT EXISTS `fda`.`mdb_images` ( id bigint NOT NULL AUTO_INCREMENT, + registry text NOT NULL DEFAULT 'docker.io/library', repository character varying(255) NOT NULL, tag character varying(255) NOT NULL, default_port integer NOT NULL, diff --git a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java index 13c1cee40c5eded82ceec8d0e3ea84ca25e421e7..363c82a0e197384dd199f6d0f00c72c90ada7321 100644 --- a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java +++ b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java @@ -662,6 +662,7 @@ public abstract class BaseTest { USER_5_PASSWORD, USER_5_DETAILS.getAuthorities()); public final static Long IMAGE_1_ID = 1L; + public final static String IMAGE_1_REGISTRY = "docker.io/library"; public final static String IMAGE_1_REPOSITORY = "mariadb"; public final static String IMAGE_1_TAG = "10.5"; public final static String IMAGE_1_HASH = "d6a5e003eae42397f7ee4589e9f21e231d3721ac131970d2286bd616e7f55bb4"; @@ -736,6 +737,7 @@ public abstract class BaseTest { .build(); public final static ImageCreateDto IMAGE_1_CREATE_DTO = ImageCreateDto.builder() + .registry(IMAGE_1_REGISTRY) .repository(IMAGE_1_REPOSITORY) .tag(IMAGE_1_TAG) .dialect(IMAGE_1_DIALECT) @@ -795,6 +797,7 @@ public abstract class BaseTest { public final static ContainerImage IMAGE_1 = ContainerImage.builder() .id(IMAGE_1_ID) + .registry(IMAGE_1_REGISTRY) .repository(IMAGE_1_REPOSITORY) .tag(IMAGE_1_TAG) .hash(IMAGE_1_HASH) @@ -810,6 +813,7 @@ public abstract class BaseTest { public final static ContainerImage IMAGE_1_SIMPLE = ContainerImage.builder() .id(IMAGE_1_ID) + .registry(IMAGE_1_REGISTRY) .repository(IMAGE_1_REPOSITORY) .tag(IMAGE_1_TAG) .hash(IMAGE_1_HASH) @@ -825,6 +829,7 @@ public abstract class BaseTest { public final static ImageDto IMAGE_1_DTO = ImageDto.builder() .id(IMAGE_1_ID) + .registry(IMAGE_1_REGISTRY) .repository(IMAGE_1_REPOSITORY) .tag(IMAGE_1_TAG) .hash(IMAGE_1_HASH) @@ -840,11 +845,13 @@ public abstract class BaseTest { public final static ImageBriefDto IMAGE_1_BRIEF_DTO = ImageBriefDto.builder() .id(IMAGE_1_ID) + .registry(IMAGE_1_REGISTRY) .repository(IMAGE_1_REPOSITORY) .tag(IMAGE_1_TAG) .build(); public final static Long IMAGE_2_ID = 2L; + public final static String IMAGE_2_REGISTRY = "docker.io/library"; public final static String IMAGE_2_REPOSITORY = "mysql"; public final static String IMAGE_2_TAG = "8.0"; public final static String IMAGE_2_HASH = "83b40f2726e5"; diff --git a/dbrepo-metadata-service/Dockerfile b/dbrepo-metadata-service/Dockerfile index 813cdbc04fe85788e1689ca3167876c3d96bb714..01074e28f09122b7a3945f6f5a0581d18e43f3a4 100644 --- a/dbrepo-metadata-service/Dockerfile +++ b/dbrepo-metadata-service/Dockerfile @@ -29,10 +29,10 @@ ENV METADATA_DB=fda ENV METADATA_USERNAME=root ENV METADATA_PASSWORD=dbrepo ENV GATEWAY_ENDPOINT=http://gateway-service -ENV PID_BASE="http://example.com/pid/" +ENV PID_BASE="http://localhost/pid/" ENV REPOSITORY_NAME="Example Repository" -ENV BASE_URL="http://example.com" -ENV ADMIN_MAIL="noreply@example.com" +ENV BASE_URL="http://localhost" +ENV ADMIN_MAIL="noreply@localhost" ENV EARLIEST_DATESTAMP="2022-09-17T18:23:00Z" ENV DELETED_RECORD=persistent ENV GRANULARITY="YYYY-MM-DDThh:mm:ssZ" diff --git a/dbrepo-query-service/Dockerfile b/dbrepo-query-service/Dockerfile index df2847401afee2797b5e4a3311fc11ce9993f51e..ae991534fba48ef396dea2594e7426d085cc97f1 100644 --- a/dbrepo-query-service/Dockerfile +++ b/dbrepo-query-service/Dockerfile @@ -35,10 +35,10 @@ ENV GATEWAY_ENDPOINT=http://gateway-service ENV SHARED_FILESYSTEM=/tmp ENV BROKER_CONSUMERS=2 ENV LOG_LEVEL=debug -ENV DBREPO_CLIENT_SECRET=client-secret -ENV CLIENT_ID=dbrepo-client -ENV JWT_ISSUER=http://localhost/realms/dbrepo -ENV JWT_PUBKEY=public-key +ENV CLIENT_ID="dbrepo-client" +ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" +ENV JWT_ISSUER="http://localhost/realms/dbrepo" +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" ENV NOT_SUPPORTED_KEYWORDS=\\*,AVG,BIT_AND,BIT_OR,BIT_XOR,COUNT,COUNTDISTINCT,GROUP_CONCAT,JSON_ARRAYAGG,JSON_OBJECTAGG,MAX,MIN,STD,STDDEV,STDDEV_POP,STDDEV_SAMP,SUM,VARIANCE,VAR_POP,VAR_SAMP,-- WORKDIR /app diff --git a/dbrepo-semantics-service/Dockerfile b/dbrepo-semantics-service/Dockerfile index f87e006d6ba7b1e4c743577513ef3abf1213d93d..b75bb73f04b4d0745e5c8ee1018b7644d380a4fd 100644 --- a/dbrepo-semantics-service/Dockerfile +++ b/dbrepo-semantics-service/Dockerfile @@ -29,8 +29,8 @@ ENV METADATA_DB=fda ENV METADATA_USERNAME=root ENV METADATA_PASSWORD=dbrepo ENV LOG_LEVEL=debug -ENV JWT_ISSUER=http://localhost/realms/dbrepo -ENV JWT_PUBKEY=public-key +ENV JWT_ISSUER="http://localhost/realms/dbrepo" +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" WORKDIR /app diff --git a/dbrepo-table-service/Dockerfile b/dbrepo-table-service/Dockerfile index 03486d1abf34320ddef700dc2588cb230668920e..4e26c7ceb5b646e39eea7f7527a3c78fb540c062 100644 --- a/dbrepo-table-service/Dockerfile +++ b/dbrepo-table-service/Dockerfile @@ -33,10 +33,10 @@ ENV BROKER_PASSWORD=fda ENV SHARED_FILESYSTEM=/tmp ENV USER_NETWORK=userdb ENV LOG_LEVEL=debug -ENV DBREPO_CLIENT_SECRET=client-secret -ENV CLIENT_ID=dbrepo-client -ENV JWT_ISSUER=http://localhost/realms/dbrepo -ENV JWT_PUBKEY=public-key +ENV CLIENT_ID="dbrepo-client" +ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" +ENV JWT_ISSUER="http://localhost/realms/dbrepo" +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" WORKDIR /app diff --git a/dbrepo-ui/Dockerfile b/dbrepo-ui/Dockerfile index f3b107c8d845d63d085fc96dcf04e85be47e8dfe..c286e5a6db94b9405ab76bd662c133946e2274ad 100644 --- a/dbrepo-ui/Dockerfile +++ b/dbrepo-ui/Dockerfile @@ -50,13 +50,13 @@ ENV SANDBOX=false ENV SEARCH="http://search-service:9200" ENV SHARED_FILESYSTEM="/tmp" ENV LOGO="/logo.png" -ENV MAIL_VERIFY=false ENV ELASTIC_USERNAME="elastic" ENV ELASTIC_PASSWORD="elastic" -ENV VERSION="${TAG}" +ENV VERSION="${TAG:-latest}" ENV TITLE="Database Repository" ENV ICON="/favicon.ico" -ENV DBREPO_CLIENT_SECRET="client-secret" +ENV DBREPO_CLIENT_ID="dbrepo-client" +ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" ENV GIT_HASH="deadbeef" WORKDIR /app diff --git a/dbrepo-ui/api/authentication.service.js b/dbrepo-ui/api/authentication.service.js index 5c86f9cd95a9a6a005934ed7908af719e6a10a06..edff0edaa9d88dfae47662d78aeaf7b5fcb6a08b 100644 --- a/dbrepo-ui/api/authentication.service.js +++ b/dbrepo-ui/api/authentication.service.js @@ -3,7 +3,7 @@ import store from '@/store' import qs from 'qs' import UserMapper from '@/api/user.mapper' import axios from 'axios' -import { baseURL, clientSecret } from '../config' +import { baseURL, clientSecret, clientId } from '../config' /** * Service class for interaction with Authentication Service in the back end. @@ -20,7 +20,7 @@ class AuthenticationService { */ authenticatePlain (username, password) { const payload = { - client_id: 'dbrepo-client', + client_id: clientId, username, password, grant_type: 'password', @@ -50,7 +50,7 @@ class AuthenticationService { authenticateToken (refreshToken) { const payload = { - client_id: 'dbrepo-client', + client_id: clientId, grant_type: 'refresh_token', client_secret: clientSecret, refresh_token: refreshToken diff --git a/dbrepo-ui/config.js b/dbrepo-ui/config.js index bc199503b7207296f1a4828012d5cf9417329da6..b7ad7a38e54e96150c74353410fe787adfa46fe6 100644 --- a/dbrepo-ui/config.js +++ b/dbrepo-ui/config.js @@ -14,6 +14,7 @@ config.logo = process.env.LOGO || '/logo.png' config.mailVerify = process.env.MAIL_VERIFY || false config.tokenMax = process.env.TOKEN_MAX || 5 config.elasticPassword = process.env.ELASTIC_PASSWORD || 'elastic' +config.clientId = process.env.DBREPO_CLIENT_ID || 'dbrepo-client' config.clientSecret = process.env.DBREPO_CLIENT_SECRET || 'MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG' config.defaultPublisher = process.env.DEFAULT_PID_PUBLISHER || 'Technische Universität Wien' config.doiUrl = process.env.DOI_URL || 'https://doi.org' diff --git a/dbrepo-ui/nuxt.config.js b/dbrepo-ui/nuxt.config.js index fee9bcc80148bcbb1f04974a4875c88d56762c6f..77cc36bb2a9ed4a7dbc5dfb7548882452034e9cb 100644 --- a/dbrepo-ui/nuxt.config.js +++ b/dbrepo-ui/nuxt.config.js @@ -1,6 +1,6 @@ import path from 'path' import colors from 'vuetify/es5/util/colors' -import { api, icon, search, clientSecret, title, sandbox, logo, version, defaultPublisher, doiUrl, baseUrl, gitHash } from './config' +import { api, icon, search, clientSecret, title, sandbox, logo, version, defaultPublisher, doiUrl, baseUrl, gitHash, clientId } from './config' const proxy = {} @@ -91,6 +91,7 @@ export default { sandbox, version, logo, + clientId, clientSecret, defaultPublisher, doiUrl, diff --git a/dbrepo-user-service/Dockerfile b/dbrepo-user-service/Dockerfile index 4255e803ee5c8f0c4a1f39b1890027a8a716a5df..fb50823d3c479dacb13530a0b9efed658d521c59 100644 --- a/dbrepo-user-service/Dockerfile +++ b/dbrepo-user-service/Dockerfile @@ -29,10 +29,10 @@ ENV METADATA_DB=fda ENV METADATA_USERNAME=root ENV METADATA_PASSWORD=dbrepo ENV GATEWAY_ENDPOINT=http://gateway-service -ENV JWT_ISSUER=http://localhost/realms/dbrepo -ENV JWT_PUBKEY=public-key +ENV JWT_ISSUER="http://localhost/realms/dbrepo" +ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" ENV LOG_LEVEL=debug -ENV DEFAULT_ROLE=default-researcher-roles +ENV DEFAULT_ROLE="default-researcher-roles" ENV ELASTIC_PASSWORD=elastic WORKDIR /app @@ -44,6 +44,6 @@ HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready COPY --from=build ./rest-service/target/rest-service-*.jar ./user-service.jar -EXPOSE 9093 +EXPOSE 9098 ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./user-service.jar"] diff --git a/docker-compose.yml b/docker-compose.yml index c3a776b09e398d3921ff7fc4d7eb6cee1a083a6b..d921ef70ef3826540d2ab87199b3b52452a5dc1d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,6 +31,7 @@ networks: - subnet: 172.32.0.0/16 services: + dbrepo-metadata-db: restart: "no" container_name: dbrepo-metadata-db @@ -154,7 +155,7 @@ services: env_file: - .env volumes: - - /var/run/docker.sock:/var/run/docker.sock + - "/var/run/docker.sock:/var/run/docker.sock" - "/tmp:/tmp" depends_on: dbrepo-authentication-service: @@ -261,7 +262,7 @@ services: - .env volumes: - "/tmp:/tmp" - - /var/run/docker.sock:/var/run/docker.sock + - "/var/run/docker.sock:/var/run/docker.sock" depends_on: dbrepo-metadata-db: condition: service_healthy