MATIH Platform is in active MVP development. Documentation reflects current implementation status.
15. Workbench Architecture
Control Plane UI
User Management

User Management

The User Management page provides administrative tools for managing platform users, assigning roles, organizing teams, and controlling access permissions. It integrates with the IAM Service for all user operations and supports bulk actions, filtering, and detailed user profile editing.


Features

FeatureDescription
User listingSearchable, sortable table of all users
User creationInvite new users via email
Role assignmentAssign platform and tenant-level roles
Team managementOrganize users into teams
Bulk actionsActivate, deactivate, or reassign multiple users
Activity historyView user login and action history

User Table

The main user listing displays:

ColumnSortableFilterableDescription
NameYesYes (search)User display name
EmailYesYes (search)Email address
RoleYesYes (dropdown)Primary role
TeamsNoYes (dropdown)Team memberships
StatusYesYes (dropdown)Active, Inactive, Pending
Last LoginYesYes (date range)Last authentication timestamp
CreatedYesYes (date range)Account creation date

Role Definitions

RoleScopePermissions
Platform AdminGlobalFull platform access, user management, billing
Tenant AdminTenantTenant configuration, user management within tenant
Data EngineerTenantData pipeline, catalog, quality management
Data AnalystTenantBI workbench, dashboards, SQL queries
ML EngineerTenantML workbench, model training, serving
ViewerTenantRead-only access to dashboards and reports

Invite User

New users are invited via email with an invitation code:

interface InviteUserRequest {
  email: string;
  role: string;
  teams: string[];
  message?: string;
}
 
// Component usage
const handleInvite = async (data: InviteUserRequest) => {
  await apiClient.post('/api/v1/users/invite', data);
  toast.success('Invitation sent successfully');
};

Edit User Profile

Administrators can edit user details and role assignments:

interface UpdateUserRequest {
  name?: string;
  role?: string;
  teams?: string[];
  status?: 'active' | 'inactive';
  mfa_required?: boolean;
}

Bulk Operations

The user table supports multi-select for bulk operations:

ActionDescriptionConfirmation
ActivateEnable selected user accountsSingle click
DeactivateDisable selected user accountsConfirmation dialog
Change RoleAssign new role to selected usersRole selection dialog
Add to TeamAdd selected users to a teamTeam selection dialog
RemoveRemove selected users from platformDouble confirmation

Team Management

Teams provide organizational grouping for users:

interface Team {
  id: string;
  name: string;
  description: string;
  members: string[];
  created_at: string;
}
OperationEndpointMethod
List teams/api/v1/teamsGET
Create team/api/v1/teamsPOST
Update team/api/v1/teams/:idPUT
Delete team/api/v1/teams/:idDELETE
Add member/api/v1/teams/:id/membersPOST

Activity Audit

Each user profile includes a tab showing recent activity sourced from the Audit Service:

EventRecorded Data
LoginTimestamp, IP address, device
Password changeTimestamp
Role changeOld role, new role, changed by
API key creationKey name, scopes
Resource accessResource type, action, timestamp