Building Blocks Integration Requirements

Documentation for Modules

User Management — Building Blocks Integration Requirements

Requirements specification for integrating 3 building blocks into the user-management module.

Overview

# Integration Scope Complexity
1 Workflow Engine → User Status UserDetailComponent, new workflow definition Medium
2 Media System → Avatar Management UserFormComponent, UserDetailComponent Low-Medium
3 Entity Lookup → Role Assignment UserFormComponent (replaces UserRoleManagerComponent) Medium

1. Workflow Engine — User Status Transitions

Goal

Replace the static status badge in UserDetailComponent with <lib-status-transition>, enabling formal workflow-based status transitions with permission checks, confirmations, and history tracking.

Functional Requirements

FR-1.1: Workflow Definition

Define a WorkflowDefinition for user status with entity type 'user':

States:

State ID Label Color/Variant Is Initial Is Final
pending Pending warning Yes No
active Active success No No
inactive Inactive neutral No Yes
suspended Suspended error No No

Transitions:

ID From → To Label Permission Confirm? Destructive?
approve pending → active Approve users:status No No
suspend active → suspended Suspend users:status Yes Yes
deactivate active → inactive Deactivate users:status Yes Yes
reactivate_from_suspended suspended → active Reactivate users:status No No
reactivate_from_inactive inactive → active Reactivate users:status No No

FR-1.2: Workflow Registration

FR-1.3: Status Transition Component

FR-1.4: Post-Transition Hooks

FR-1.5: Transition History

Non-Functional Requirements

User Stories

Acceptance Criteria


2. Media System — Avatar Management

Goal

Replace the text URL input for avatar with a proper image upload experience using <lib-entity-media-section>, allowing users to upload/change profile photos in both the form and detail views.

Functional Requirements

FR-2.1: Avatar Upload in UserFormComponent

FR-2.2: Avatar Change in UserDetailComponent

FR-2.3: File Validation

Non-Functional Requirements

User Stories

Acceptance Criteria


3. Entity Lookup — Role Assignment

Goal

Replace the checkbox-based role selection in UserFormComponent with a searchable <ggs-entity-lookup> in a multi-select "tag input" pattern, providing a more scalable role assignment experience.

Functional Requirements

FR-3.1: Multi-Role Lookup Component

Since GgsEntityLookupComponent is single-select, implement a multi-select wrapper pattern:

FR-3.2: Replace in UserFormComponent

FR-3.3: Selected Roles Display

FR-3.4: Role Data Flow

FR-3.5: Removal of UserRoleManagerComponent from Form

Non-Functional Requirements

User Stories

Acceptance Criteria


Dependencies

Integration Depends On
Workflow Engine @libs-core/workflow-engine (WorkflowEngineService, GgsStatusTransitionComponent, WorkflowHistoryService)
Media System @libs-core/media (MediaApiService, GgsEntityMediaSectionComponent)
Entity Lookup @libs-core/ui-framework (GgsEntityLookupComponent), @libs-core/ui-framework (GgsFilterChipsComponent for tag display)

Out of Scope


Status: Implemented Implementation Date: 2026-02-25 Validated: 2026-02-26 — 301 tests passing (257 user-management, 32 workflow-engine, 12 media), build green Commit: feat(user-management): integrate workflow engine, media system, and entity lookup building blocks Component Usage Guide: COMPONENT_USAGE.md