# Groups and subgroups workspace

The Groups and tags page uses an expandable hierarchy on the left and a paginated, searchable compact device grid on the right. Selecting a group shows direct membership; the separate Devices page retains descendant-inclusive group filters. Ungrouped shows devices without a group.

Root and subgroup buttons open the same named-group dialog. Edit permits renaming or choosing another parent; the group and its descendants cannot be selected as parents. The data service independently validates customer scope, cycles and maximum depth. Empty groups can be deleted with a styled confirmation. Groups with children or assigned devices cannot be deleted.

Add devices opens a paginated serial search. Assigning a device moves it from its prior group, preserving its tags atomically. Remove from group leaves the device registered and preserves tags. Group changes save immediately. Tags remain available in a collapsible section below.

Desktop uses two columns; phones stack the tree above the grid. English and Spanish labels are provided.

Deployment requires the updated Portal, DataService and their TMS.Contracts / TMS.DBAccess dependencies together. No database migration or Android update is required. The gRPC additions are direct_group_only on DeviceSearch and preserve_tags on OrganizationAssignment; existing callers retain their original behavior.
