6.2.2.8 UserGroup
6.2.2.8.1 Purpose¶
A set of users of one Organization that receives roles as a whole, like a group in Google Workspace. Instead of giving the same role to every technician one by one, the Organization creates a group, adds its people and gives the role to the group: a member holds every role of the group on top of their own memberships, and loses them when they leave it. Groups hold users only, never other groups, so effective access stays one join with no cycles.
6.2.2.8.2 Questions it answers¶
- Which groups does this Organization have, and who belongs to each?
- Which roles does a user hold because of a group, and since when?
- Who created or archived a group?
6.2.2.8.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
organization |
Organization | 1..1 |
|
name |
string |
1..1 |
(organization, name) is unique among active groups, e.g. Technicians, Milking staff, Veterinarians. |
description |
string |
0..1 |
|
created_by |
User | 1..1 |
|
archived_at |
datetime |
0..1 |
Archiving ends every membership and every role of the group at the same time; rows are never deleted, so who could act through a group, and when, stays answerable for any past write number. |
archived_by |
User | 0..1 |
|
system_version |
SystemVersion | 1..1 |
|
created_at |
datetime |
1..1 |
|
updated_at |
datetime |
1..1 |
6.2.2.8.4 Relationships¶
References
UserGroup.organization→ Organization (1..1)UserGroup.created_by→ User (1..1)UserGroup.archived_by→ User (0..1)
Referenced by
UserGroupMembership.group(1..1)UserGroupRoleAssignment.group(1..1)OrganizationInvitation.groups(0..*)OrganizationJoinLink.groups(0..*)
Uses types
6.2.2.8.5 Rules & constraints¶
- A set of users of one Organization that receives roles as a whole, like a Google Workspace group.
- A member holds every role of the group in addition to their own memberships (OrganizationAccessControlMembership); leaving the group removes them.
- Groups hold users only, never other groups: effective access stays one join, with no cycles.