USERSERVICE

A service allowing users to manage profile-specific content files (such as the user avatar) and settings (such as language preferences) after successful authentication.

Characteristics

Service Nameuserservice
Port Range8080
Profiles-
Helm Chartclient
Public APIUser Settings Endpoints

Function

The USERSERVICE manages user-related data and provides CRUD (create, read, update, delete) operations on it.

Its endpoints are provided in an own API.

>> User Settings Endpoints

Requirements

In addition to the yuuvis® Momentum core services, USERSERVICE has further requirements.

>> USERSERVICE Requirements

Configuration

The following parameters are part of the service configuration:

  • app.security.admin-role: References the role (by name) that provides administrative rights and may be used in USERSERVICE, e.g. to access or manage data of other users.
  • app.userdata.content.max-data-per-user: Defines the maximum storage space available for all contents of one user.
  • app.userdata.content.max-file-size: Defines the maximum storage space for one single content item.
  • app.userdata.setting.max-data-per-user: Defines the maximum storage space available for all settings of one user.
  • app.userdata.setting.max-file-size: Defines the maximum storage space for one single setting item.

The following spring properties are ready configured for the installation and should be left unchanged to ensure that the USERSERVICE parameters are effective. Otherwise, it would cause unintended behavior.

  • spring.servlet.multipart.max-file-size
  • spring.servlet.multipart.max-request-size

As of product version 2022 Autumn: If you use Microsoft SQL Server as database for the USERSERVICE, the corresponding JDBC driver requires an SSL connection. For a connection without SSL, append encrypt=false to the connection string in your configuration:

 Option 1: Set environment variable

You can change the USERSERVICE configuration via environment variable in the deployment, e.g.:

- name: SPRING_DATASOURCE_URL
  value: jdbc:sqlserver://sqlserver2019-mssql-latest.sqlserver2019:1433;databaseName=erebus;encrypt=false
 Option 2: Use YML configuration file and profile
  • Create an application-userservicedb.yml configuration file with following parameter:

    spring.datasource.url: 'jdbc:sqlserver://${db.host:localhost}:${db.port:1433};databaseName=${db.name:yuuvis};encrypt=false'
  • Start the USERSERVICE with the additional userservicedb profile:

    - name: SPRING_PROFILES_ACTIVE
      value: userservicedb,mssql,swagger

Docker Deployment

Within the docker environment, the USERSERVICE will run in two separate docker containers.

Instead of deploying docker containers manually, we strongly recommend to use docker-compose. With docker-compose you can easily manage one or several deployments on your docker host, without copy-pasting docker commands manually. You will find pre-defined service stacks for connecting to different databases in our repository.

Running USERSERVICE for Testing

Depending on the database you want to connect to the USERSERVICE, choose the correct deployment commands.

Deployment via docker-compose for PostgreSQL

Start the service with a PostgreSQL database for testing purposes with following steps:

  • In a console supporting docker, go to project docker directory.
  • Build a docker-compose image with docker-compose -f docker-compose-postgres.yml build.
  • Start this image with docker-compose -f docker-compose-postgres.yml up.

Deployment via docker-compose for Microsoft SQL Server

Start the service with a Microsoft SQL Server database for testing purposes with following steps:

  • In a console supporting docker, go to project docker directory.
  • Build a docker-compose image with docker-compose -f docker-compose-mssql.yml build.
  • Start this image with docker-compose -f docker-compose-mssql.yml up.

Deployment via docker-compose for CockroachDB

Start the service with a CockroachDB for testing purposes with following steps:

  • In a console supporting docker, go to project docker directory.
  • Build a docker-compose image with docker-compose -f docker-compose-cockroach.yml build.
  • Start this image with docker-compose -f docker-compose-cockroach.yml up.