Groups
Groups organize workspace members into logical teams for easier permission and data access management. Instead of managing access filters for each member individually, you create groups, assign access filters to groups, and add members to groups. All members of a group automatically inherit the group’s access filter assignments.
What Groups Do
Groups serve one primary purpose: they are the assignment target for access filters. When an access filter is assigned to a group, every member of that group has their queries automatically filtered by the access filter’s SQL condition.
Groups do not grant additional permissions. A member’s permissions are determined solely by their role. Groups control what data a member can see, while roles control what actions a member can perform.
Creating a Group
Via the UI
- Navigate to Govern > RBAC > Groups
- Click Create Group
- Fill in the group details:
| Field | Description | Example |
|---|---|---|
| Name | Descriptive name for the group | ”EMEA Marketing Team” |
| Description | Explanation of the group’s purpose | ”Members of the marketing team in EMEA region” |
- Click Create
Via the API
curl -X POST https://your-workspace.signalsmith.dev/api/v1/groups \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "EMEA Marketing Team",
"description": "Members of the marketing team in EMEA region"
}'Response:
{
"id": "grp_abc123",
"name": "EMEA Marketing Team",
"description": "Members of the marketing team in EMEA region",
"member_count": 0,
"subset_count": 0,
"created_at": "2025-01-15T10:00:00Z"
}Managing Group Members
Adding Members
Via the UI
- Navigate to Govern > RBAC > Groups
- Click on the group
- In the Members tab, click Add Members
- Select workspace members from the list (search by name or email)
- Click Add
Via the API
curl -X POST https://your-workspace.signalsmith.dev/api/v1/groups/{group_id}/members \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"member_ids": ["mem_abc123", "mem_def456"]
}'Removing Members
Via the UI
- Navigate to the group detail page
- In the Members tab, find the member
- Click Remove next to their name
- Confirm the removal
Via the API
curl -X DELETE https://your-workspace.signalsmith.dev/api/v1/groups/{group_id}/members/{member_id} \
-H "Authorization: Bearer $API_TOKEN"Member Limitations
- A member can belong to multiple groups. Their effective data access is the combination of all access filters from all their groups.
- Adding or removing a member from a group takes effect immediately. Their next query will reflect the updated access filters.
- Only Owners and Admins (users with
governance.managepermission) can modify group membership.
Assigning Access Filters to Groups
Access Filters provide the row-level filtering that groups enforce. See Access Filters for how to create access filters.
Via the UI
- Navigate to the group detail page
- In the Access Filters tab, click Add Access Filter
- Select one or more access filters from the list (grouped by category)
- Click Save
Via the API
curl -X PUT https://your-workspace.signalsmith.dev/api/v1/groups/{group_id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"subset_ids": ["sub_abc123", "sub_def456"]
}'How Multiple Access Filters Interact
When a group has multiple access filters:
- Access filters in the same category are combined with
OR(the member sees data matching any of them) - Access filters in different categories are combined with
AND(the member sees data matching all categories)
See Access Filters for detailed examples.
Viewing Group Details
The group detail page shows:
| Section | Information |
|---|---|
| Overview | Group name, description, creation date |
| Members | List of members with their name, email, role, and date added |
| Access Filters | List of assigned access filters with their category, filter condition, and status |
| Activity | Recent actions by group members (queries, sync triggers, resource changes) |
Editing a Group
To update a group’s name or description:
- Navigate to the group detail page
- Click Edit in the header
- Modify the name or description
- Click Save
Changing a group’s name or description does not affect its members or access filter assignments.
Deleting a Group
To delete a group:
- Navigate to the group detail page
- Click Delete
- Confirm the deletion
Deleting a group:
- Removes all members from the group (their workspace access is not affected)
- Removes all access filter assignments from the group
- Members who were in the group will no longer have those access filters applied to their queries
This action cannot be undone.
Common Group Patterns
| Pattern | Groups | Access Filters |
|---|---|---|
| Regional teams | ”North America Team”, “EMEA Team”, “APAC Team” | One access filter per region: region = 'NA', region = 'EMEA', region = 'APAC' |
| Department isolation | ”Marketing”, “Sales”, “Support” | One access filter per department: department = 'marketing', department = 'sales' |
| Partner access | ”Partner A Team”, “Partner B Team” | One access filter per partner: partner_id = 'A', partner_id = 'B' |
| Environment separation | ”Production Users”, “Staging Users” | One access filter per environment: environment = 'production', environment = 'staging' |
| Cross-functional | ”Product Launch Team” | Multiple access filters from different categories, combining product line and region filters |
API Reference
# List all groups
GET /api/v1/groups
# Get a single group
GET /api/v1/groups/{id}
# Create a group
POST /api/v1/groups
# Update a group
PUT /api/v1/groups/{id}
# Delete a group
DELETE /api/v1/groups/{id}
# Add members to a group
POST /api/v1/groups/{id}/members
# Remove a member from a group
DELETE /api/v1/groups/{id}/members/{member_id}
# List group members
GET /api/v1/groups/{id}/membersBest Practices
- Name groups by team and function — Use descriptive names like “EMEA Marketing” or “Partner Support - Acme” so membership is self-explanatory.
- Keep groups focused — Each group should represent a single access pattern. If members need different data access for different use cases, use separate groups.
- A member can belong to multiple groups — Use this to build composite access. For example, a member in both “EMEA Team” and “Marketing Team” sees EMEA marketing data.
- Review membership regularly — As team composition changes, update group membership to ensure data access stays current.
- Prefer groups over direct management — Even for a single member who needs a unique access filter, create a group. It makes the access model consistent and easier to audit.
Next Steps
- Create access filters to assign to your groups
- Manage workspace members
- Review the permission model to understand role-based access