User settings management subsystem

🌐 This document is available in both English and Ukrainian. Use the language toggle in the top right corner to switch between versions.

1. Overview

The subsystem provides user settings management capabilities via user portal.

2. Subsystem functions

  • Receiving user settings

  • Communication channel activation via entering/updating channel attribute data (for example: email address)

  • Communication channel confirmation via sending messages with OTP codes

  • Communication channel deactivation

  • Validation of the entered user settings (by email pattern, non-presence in blacklists, etc.)

3. Subsystem technical design

user settings overview.drawio

To receive user settings from a business process, the subsystem provides the following method:

  • Receiving user settings by ID: used for the ability to send messages to the users via their selected communication channels.

This method is only available inside the Registry operational zone for Business process execution subsystem.

To manage user settings via user portal, the following methods are provided:

  • Settings receiving: returns user settings of the user that is currently logged in.

  • Email validation: validates the email entered as the communication channel address, using a set of rules, like validation by regexp, uniqueness, blacklist check, etc.

  • Communication channel verification: generates the OTP confirmation code and initiates sending it by the user notification subsystem via the selected communication channel.

  • Communication channel activation: checks the OTP code entered by the user, and activates the user’s communication channel, or creates new configuration for the channel, if it doesn’t exist.

  • Communication channel deactivation: deactivates a communication channel.

These settings management methods are available via the external traffic management subsystem, and require user authentication. Settings management is performed only for the current user that is logged into the system. Changing settings for another user is not available by design.

3.1. Audit and event logging

Communication channel activation/deactivation events are recorded in the audit log with full context. The following event names are used:

*USER_NOTIFICATION_CHANNEL_ACTIVATION: Communication channel activation * USER_NOTIFICATION_CHANNEL_DEACTIVATION: Communication channel deactivation

You can learn more about audit events logging subsystem here

4. Subsystem components

Component name Representation in Registry Source Repository Function

User settings management service

user-settings-service-api-deployment

origin

github:/epam/edp-ddm-user-settings-service-api

Provides API for user settings management

User settings operational DB

operational:settings

origin

github:/epam/edp-ddm-registry-postgres/tree/main/platform-db/changesets/settings

Stores user settings

OTP temporary storage

redis:channel-verification-codes

origin

-

Stores OTP codes

5. Technology stack

The following technologies were used in system design and development:

6. Subsystem quality attributes

6.1. Observability

User settings management subsystem supports performance metrics logging for further analysis via the corresponding Platform subsystems web-interfaces.

You can learn more about subsystems design in the corresponding sections:

6.2. Auditability

User settings management subsystem records important technical and business events, concerning system operation by end user via Audit event logging subsystem.

6.3. Security

User settings management subsystem is accessible exclusively via External traffic management subsystem or business process, and requires user authentication. Settings management is performed only for the current user that is logged into the system. Changing settings for another user is not available by design.