Skip to main content

User Management

About 4 min

User Management

This section describes the full lifecycle of a user account: how an employee appears in the system, how they obtain permissions, what happens when their role changes, and how access is terminated. This is the artifact requested during architectural reviews under the name "user management process."

Process diagram β€” DFD-3.

Where the Account Resides

In an enterprise scenario, the source of truth for employee data remains the corporate directory: accounts are created, blocked, and deleted there, while Stormbpmn receives confirmed attributes upon login.

WhatWhere StoredWho Manages
Employee existence, password, second factorsCorporate IdP (Keycloak, ADFS, Azure AD, etc.)HR department, IdP owner
System profile: email, full name, position, interface languageStormbpmnPopulated from IdP upon login, edited by the user
Team membership and team rightsStormbpmnTeam administrator
Permission groups and privilegesStormbpmnTeam administrator
Access restrictions to folders and wikiStormbpmnTeam administrator, folder owner
Occupied license seatStormbpmnCalculated by the system

The system does not maintain a separate user directory

Stormbpmn does not replace the corporate directory and does not store employee passwords if corporate authentication is enabled. Built-in authentication by login and password is disabled in a production installation using the variable STORM_DISABLE_SIMPLE_AUTH.

Authentication Methods

MethodWhen AppliedConfiguration
OAuth2 / OIDC, PKCE modeRecommended for corporate installationsAuthorization System
OAuth2, implicit mode (legacy)Provider does not support PKCE or issues an opaque tokenSame as above
Microsoft ADFSInstallations with ADFSSame as above
Built-in authenticationPilots and test environments without directory integrationDisabled in the product
LDAPDeprecated method, not recommended for new installationsInstructions β€” via the manager

The session lifetime is set by the variable SESSION_EXPIRATION. By default, after login, the system issues its own token and operates independently of the provider. If the security policy requires that a session revocation in the provider immediately logs the user out, session binding to SSO is enabled: the token is refreshed via refresh_token, and revocation in the IdP stops operation in StormBPMN.

Account Lifecycle

StageEventWhat Happens in the SystemWho Initiates
1. Employee OnboardingEmployee is added to the corporate directoryNothing happens in StormBPMN: the system does not poll the directoryHR Department
2. First LoginEmployee opens the system URL and authenticates via the IdPA profile is created based on verified attributes: email, full name. A license seat is occupiedEmployee
3. Team InvitationTeam administrator adds the employee by email addressA participant is created with the status "Invited," and an email is sent. Upon acceptance, the status changes to "Member"Team Administrator
4. Permission AssignmentAdministrator sets permissions within the team and adds the participant to permission groupsPermissions take effect immediatelyTeam Administrator
5. Role ChangeEmployee transfer, change of dutiesPermissions within the team or group membership are changed; folder access rules are updated if necessaryTeam Administrator
6. Access SuspensionEmployee is on extended leave, incident investigationBlocking in the IdP prevents login. Additionally, the account can be disabled in the administrative panelIdP Owner, System Administrator
7. Access TerminationEmployee terminationThe account is blocked in the IdP; the team administrator removes the participant from teams, releasing permissionsIdP Owner, Team Administrator
8. Profile DeletionData retention policy requirementThe account is deleted, and the license seat is releasedSystem Administrator

Blocking in the IdP does not remove team membership

If an employee is blocked only in the directory, they will not be able to log in, but they will remain in team participant lists and assigned permission groups. To properly revoke access, remove them from teams; otherwise, access will be automatically restored when the account is unblocked in the directory.

How an employee joins the system

Three methods are supported; the first two are typically used in corporate deployments.

  1. Self-service login via the corporate directory. The profile is created upon the first successful login based on attributes from the provider (email is required; full name is included if the provider supplies it). No separate request is needed: the right to log in is determined by the employee being present in the directory and having access to the application granted on the IdP side.
  2. Team invitation. The team administrator specifies email addresses. Individuals not yet in the system receive an invitation email; the account is created when the person logs in.
  3. Built-in registration. A self-service registration form; disabled in production deployments via the showRegistration parameter.

Limiting the user base

Access to the application is restricted on the IdP side by assigning the application to specific directory groups. Additionally, the team administrator controls who joins workspaces and with what permissions.

What is stored in the profile

AttributeSourceRequired
Email addressIdP or registrationYes, serves as the identifier
Full name, first name, last nameIdP (synchronized on every login) or user inputNo
Job titleUser inputNo
Interface languageUser selectionNo
AvatarUser uploadNo
Creation date and last login dateSystemYes
Account enabled flagSystem administratorYes

The composition of personal data and its classification for the application card is described in the section Processed data.

License Seats

A named license is occupied by an active user account, while a concurrent license is occupied by a simultaneous session. If no seats are available upon first login, the account is created in the β€œPending Activation” state: the person exists in the system but cannot work until an administrator frees or adds a seat. For details, see How Licenses Work.

For the user management process, this means: revoking access for terminated employees must be completed β€” only freeing a seat allows onboarding a new employee without expanding the license.

Terminating Access

Procedure for termination or transfer:

  1. Block or delete the account in the corporate directory β€” access is terminated immediately.
  2. Remove the participant from all teams β€” permissions are revoked and the workspace slot is freed.
  3. Check personal access rights granted to this person for specific process models and folders.
  4. Transfer models where the terminated employee was the author to another employee, if required by the procedure.
  5. Delete the account if necessary to free up a license slot.

Models remain in the system

Deleting an account does not delete the models, process cards, and comments created by it β€” these are the organization's working materials. Authorship is preserved in the version history.

User Operations Audit

All actions are processed through the REST API and logged in the action log. The log records logins and logouts, data access requests, and changes to permissions and settings; each entry includes the timestamp, user identifier, session, request method and path, response code, and client address.

The log is directed to one of the following channels: output to the container console, transmission to a SIEM via the syslog protocol, or writing to a separate TimescaleDB database for long-term storage and incident analysis. The activation order and entry structure are described in Audit Logging.

Information Security Checklist