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
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 |
|
origin |
Provides API for user settings management |
|
|
origin |
github:/epam/edp-ddm-registry-postgres/tree/main/platform-db/changesets/settings |
Stores user settings |
|
|
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.