Groups
This guide assumes familiarity with the Spring Framework.
If you are new to Spring, we recommend starting with their official guides to get up to speed.
Groups allow fine-grained control on which information each user is allowed to see.
You can learn more on how to secure endpoints by requiring a group membership here.
A Group is uniquely identified by a key.
You can save a name and a description in multiple translations to the database.
Managing groups and their members can only be done by users with the ADMIN role.
Managing Groups
:::info Group Keys
The group's key cannot be changed once created.
This is necessary to maintain consistency in the database.
:::
:::info contributor
The contributor group will always be included by default.
This group is necessary for managing content.
You can learn more here.
:::
Creating Groups
You can create a new group with a key, and translations of name and descriptions through the endpoint
POST /api/groups.
Getting Groups
You can retrieve all configured groups through the endpoint GET /api/groups.
If you need one specific group,
you can retrieve information about it using the group's key through the endpoint GET /api/groups/{key}.
Updating Groups
You can update a group through the endpoint PUT /api/groups/{key}.
Deleting Groups
You can delete a group through the endpoint DELETE /api/groups/{key}.
Managing Members
Adding Members to Groups
You can add a member to a group through the endpoint POST /api/groups/{key}/members.
This will invalidate all AccessTokens for the new member.
This way, before performing a new request for the new member, a new token needs to be requested from POST /api/auth/refresh.
The new token will contain the new group membership.
Removing Members from Groups
You can remove a member from a group through the endpoint DELETE /api/groups/{key}/members.
This will invalidate all AccessTokens for the removed member.
This way, before performing a new request for the new member, a new token needs to be requested from POST /api/auth/refresh.
The new token will contain the revoke the group membership.
Configuration
You can configure groups to be available after the first application startup.
| Property | Type | Description | Default |
|---|---|---|---|
| singularity.app.groups | List<CreateGroupRequest> | Groups that will be created on application startup. |
singularity:
app:
groups:
- key: pilots # the unique key
translations: # translations containing name and description
- en:
name: Pilots
description: The pilots of our mission.
- de:
name: Piloten
description: Die Piloten unserer Mission.
- key: passenger
translations:
- en:
name: Passenger
description: The passengers of our mission.
- de:
name: Passagiere
description: Die passagiere unserer Mission.