Release v5.1.0

May 2, 2024 in Releases2 minutes

Version 5.1.0 released.

  • NEW: Introduce new REST interfaces:
    • /entitylist/psn-service/$pseudonymize for pseudonymizing identifiers via FHIR Parameters
    • /entitylist/psn-service/pseudonym/exists for testing whether a pseudonym for a given identity exists without creating it
  • NEW: Introduce mail service for sending automatic error reports per email.
    • New env parameters:
      • MAIL_SERVICE_ENABLED in order to enable or disable mail service globally
      • MAIL_SERVICE_FROM_EMAIL: email address of the sender
      • MAIL_SERVICE_TO_EMAIL: a list of recipient email addresses
      • MAIL_SERVICE_HOST: the name of the used mail server
      • MAIL_SERVICE_PORT: the port of the used mail server
      • MAIL_SERVICE_USERNAME: the username of the account used for sending mails via the specified mail server
      • MAIL_SERVICE_PASSWORD: the password of the account used for sending mails via the specified mail server
      • KEYCLOAK_SERVER_NAME: the (domain) name of the keycloak server (this information will be part of each error message)
  • Docker container:
    • Introduce own config server implementation service-trustcenter-config-server in favor of spring-cloud-config-server
      • Replace SPRING_CLOUD_CONFIG_URI with SPRING_CONFIG_IMPORT
      • Rename application names:
        • entitylist-psn-service instead of entitylist-backend
        • psns-psn-service instead of psns-backend
    • Introduce service-trustcenter-webapp-home in favor of static HTML sites for the landing page
    • Use keycloak v22.0.1 instead of latest
  • Upgrade dependencies:
    • Spring Boot from 2.2.8-RELEASE to 3.2.1, this includes
      • Spring Security from 5.2.5 to 6.2.1
      • Hibernate from 5.4.17 to 6.4.1
      • JUnit4 has been replaced with JUnit5, hence all remaining tests have been upgraded
    • Java from 11 to 17
    • log4j2 from 2.17.1 to 2.22.1
    • Spring Cloud from Hoxton.SR4 to 2023.0.0
  • Due to the Spring Boot upgrade, (usage of) parameters changed:
    • Replace spring.datasource.platform with spring.sql.init.platform
    • Remove parameter spring.jpa.properites.hibernate.metadata_builder_contributor (due to removal of custom postgres function ilike in favor of hibernate built-in function
    • Remove parameter spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults
    • Use spring.security.oauth2.resourceserver.jwt.issuer-uri for validating jwt tokens
    • Remove security.oauth2.resource.token-info-uri
    • Remove security.oauth2.resource.user-info-uri
    • Remove security.oauth2.resource.realm-info-uri
    • Remove security.oauth2.resource.jwt.key-value
    • Remove rest.security.issuer-uri
    • Remove rest.security.realm
    • Replace management.endpoints.web.cors.allowed-origins with management.endpoints.web.cors.allowedOriginPatterns
    • Replace management.prometheus.metrics.export.enabled with management.endpoints.web.exposure.include
  • Remove deprecated parameters
    • server.http2 (never used)
    • server.ssl.enabled (never used)
    • spring.profiles (usage removed from tests)
    • security.oauth.client.* (in order to avoid confusion, hardcoded in tests instead)
    • security.enabled (security will always be enabled going forward)
    • server.activationhandler.enabled (activation functionality has been deprecated)
  • Introduce springdoc-openapi-ui in favor of springfox-swagger
    • Remove parameters swagger.*
    • Introduce parameters
      • springdoc.swagger-ui.config-url
      • springdoc.swagger-ui.url
      • springdoc.swagger-ui.disable-swagger-default-url
  • NEW: Introduce framework for proper testing of Spring Security
    • Use Java testcontainers for automatically spinning up required Docker containers during JUnit testing
    • For each test, spin up a Keycloak docker container including an actual configuration representing the current status
  • NEW: Introduce automatic integration tests for REST interfaces
  • Some minor bug fixes & refactoring.