Common group properties#
Some properties are common and may be used across all groups.
Data types#
The basic types are inherited from SCIM
The data types that are currently used are:
In Feide, multivalued attributes are listed as JSON arrays
["one", "two", "three"]
.
An additional data type, translatable string is defined in VOOT
Translatable String The content may be an untranslated basic string, in an undefined language. Alternatively, the content is an object with the property keys being ISO 639-1 Language Codes. The values are the translated values into that language. Example of a translatable string:
{
"en": "Group",
"nb": "Gruppe"
}
Group#
Required properties#
id
A unique string identifier representing this group. This identifier should not be used by humans, only systems.
Datatype: SCIM String
Example:
"fc:org:uninett.no"
displayName
A translatable string giving the group a human friendly name. The name is supposed to give a clear meaning for users setting up access control.
Datatype: Translatable String
Example:
"Trondheim Kommune"
The simplest example of a group containing only required parameters:
{
"id": "8878ae43-965a-412a-87b5-38c398a76569",
"displayName": "Project on group APIs"
}
Optional properties#
description
A textual description of the group. It may be translated as well.
Datatype: SCIM String
Example:
"Kunnskapssektorens tjenesteleverand\u0058r"
type
A pointer to a group type. Default is
voot:default
.Datatype: SCIM String
Example:
"fc:org"
parent
A pointer to another group. The linking does not imply any specific semantics on the relationship between the two groups, but it allows for building up hierarchical visual representation of the list of groups a user is a member of.
Datatype: SCIM String
Example:
"fc:org:oslo-kommune.no"
notBefore
The group did not exist before this date.
Datatype: SCIM DateTime
Example:
"2021-07-31T22:00:00Z"
notAfter
The group is deleted or not valid after this date.
Datatype: SCIM DateTime
Example:
"2022-07-31T22:00:00Z"
public
A boolean flag indicating whether the existence of this group and the basic group information is publicly available.
Datatype: SCIM Boolean
Example:
false
active
A boolean flag indicating whether the group is currently active. When set to
false
it will cause the group to not show up on compact group lists.Datatype: SCIM Boolean
Example:
false
membership
The user’s relationship to the group is expressed in an embedded membership object. See below for more details about the membership object.
Membership#
The simplest representation of a group membership is an empty object, which tells that the user is a member of the group, but does not give any more details than that:
{}
An optional property basic
is recommended to indicate the most basic
level of roles. For each group type, it should be described how the more
complex role model within that group type is projected into basic
.
There are three legal values of basic
:
member
is for regular members. This is the default role if no explicit value is provided.admin
is an abstract role of super members, having some kind of additional permissions. For example, the admin may invite or add other members, moderate content in a group or anything else.owner
is given a special meaning in the ad hoc scenario, where groups are created by a person, who then is the owner of the group.
The following properties are optional:
basic
The basic membership role of the current user (optional). Default value is
member
.Datatype: SCIM String
Example:
"admin"
displayName
A human readable description of the membership role.
Example:
"L\u00e6rer"
active
May be set to
false
to indicate that the user is a passive member of the group.Datatype: SCIM Boolean
Example:
false
notBefore
The group did not exist before this date.
Datatype: SCIM DateTime
Example:
"2021-07-31T22:00:00Z"
notAfter
The group is deleted or not valid after this date.
Datatype: SCIM DateTime
Example:
"2022-07-31T22:00:00Z"
may
An object of permissions that a user may or may not have related to the group. For example, a user may be allowed to edit, manage, invite or delete a group. No group types in Feide currently implement this
Example:
{"listMembers": true}
groupID
If the membership object is used stand alone, and there is no implicit relation to a given group, the group may be referred to by using this property.
Datatype: SCIM String
Example:
"fc:org:uninett.no"
Specific group types may define additional properties on the membership object.
An example of a membership may look like this:
{
"basic": "admin",
"affiliation": [
"member",
"faculty",
"employee"
],
"primaryAffiliation": "faculty",
"displayName": "L\u00e6rer"
}