Federation
This section explains all configuration items related to federation, which refers to the
functionality of connecting multiple Kadi4Mat instances. Currently, this mainly
facilitates federated search of different resources stored in one or more “external”
Kadi4Mat instances from within another instance of Kadi4Mat. The central configuration is
done via the FEDERATED_INSTANCES
configuration item, as explained below.
Note
Using federation requires an account in all Kadi4Mat instances that should be connected. This is the case for both the system administrator, initially configuring the connection, and the users of this functionality.
- FEDERATED_INSTANCES
A dictionary specifying one or more external Kadi4Mat instances to enable for federated search in the following form:
{ "example": { "title": "Kadi4Mat Example", "url": "https://kadi4mat.example.edu", "client_id": "<client_id>", "client_secret": "<client_secret>", }, }
Each dictionary key specifies a unique
name
(here:example
) of the external Kadi4Mat instance, mapping to the instance-specific configuration. The respective configuration items are described in the next section.Defaults to
{}
.
Instance configuration
The following configuration options have to be specified for each external Kadi4Mat instance:
- title
The title of the external Kadi4Mat instance which will be displayed to users within the GUI of Kadi4Mat.
Defaults to the unique
name
of the corresponding instance.
- url
The full URL of the external Kadi4Mat instance.
Defaults to
None
.
- client_id
The client ID required to perform the OAuth2 authorization flow with the external Kadi4Mat instance. It can be obtained (together with the client secret) directly via the GUI of the respective external Kadi4Mat instance by navigating to Settings > Applications and creating a new application. Besides specifying some general application metadata, the following settings are necessary for the integration to work correctly:
Redirect URIs: Must be in the form of
https://<server_name>/settings/services/authorize/<name>
, where the<server_name>
placeholder corresponds to the configuredSERVER_NAME
of Kadi4Mat, while the<name>
placeholder corresponds to the uniquename
of the respective and configured external Kadi4Mat instance.Scopes: It is recommended to limit the scopes to the ones necessary to perform searching of all supported resources, which corresponds to
collection.read
,record.read
andtemplate.read
. In addition, theuser.read
scope is required if information about the creators of resources should be shown.
Defaults to
None
.
- client_secret
The client secret required to perform the OAuth2 authorization flow with the external Kadi4Mat instance. See the
client_id
configuration option on how to obtain it.Defaults to
None
.