Providing a configuration option
This function allows you to provide configuration options which can be displayed by the config app in a unified interface.
To provide configuration options, you must provide a configfeatures link relation.
Determining the configuration options:
The config app queries all registered apps. Afterwards, every registered app is queried with the request /<app name>/ on the base address (i.e.: https://<your base address>/<app name>/) and the request header "Accept: application/hal+json". This searches for the configfeatures link relation. In order for the link relation to be found, the JSON must be structured as follows:
JSON Response
{ "_links" : { ... "configfeatures" : { "href" : "/<app name>/configfeatures" }, ... }, ... }
If such a link relation exists, the URI specified in the user context under it is invoked with the request method GET and the request header “Accept: application/hal+json“ and the included JSON is interpreted. The JSON that apps must provide in order to offer one or more configuration options must be structured according to the following schema:
JSON Response
{ "appName": "<app name>", "customHeadlines":[ { "caption": "<caption of your configuration option>", "description": "<description of your configuration option>", "menuItems":[ { "caption": "<caption of your first menu item>", "description": "<description of your first menu item>", "href": "<link to your configuration>", "keywords":["<first key word>", "<second key word>", ...], "configurationState": <state of your configuration> }, <second menu item>, ... ], "categories":[{ "id": "<id of your category>" } ] }, <second configuration option>, ... ] }
Parameter | Description |
---|---|
appName | Name of the app that provides the configuration options. |
customHeadlines | List of all configuration options provided by an app Parameters and description caption: Caption of the configuration option under which the menu options are listed. This option describes what the configuration affects. As a rule, this corresponds to the subject matter of the app as a noun, i.e. "Document", "Inbox message", "Outlook Mail", etc. description: Description of the configuration option. This text is currently not displayed, but it is used for the search. menuItems: List of all menu items under a configuration option. caption: Caption of the menu item. This caption describes what is configured, i.e. "Database", "Users and Groups", "Filter rules", etc. description: Description of the menu item. href: Link to the configuration behind the menu item. Keywords: List of keywords describing the menu item to enable searching for the menu item. configurationState: Status of the configuration. 0: The configuration is complete. 1: The configuration is incomplete and should be completed. categories: List of all categories of the configuration option. The category is used for filtering the apps. You can choose categories from the following table. id: ID of the category. Enter the ID of the category from the table below. |
The following table describes the categories that can be assigned to an app.
ID | Category - First level (EN) | Category - Second level (EN) | Category - First level (DE) | Category - Second level (DE) |
---|---|---|---|---|
| Document management | Administration | Dokumentenmanagement | Verwaltung |
| Document management | Import | Dokumentenmanagement | Import |
| Document management | E-mails | Dokumentenmanagement | E-Mails |
| Document management | Search | Dokumentenmanagement | Suche |
| Document management | Export | Dokumentenmanagement | Export |
| Invoice processing | Invoice processing | ||
| Tasks and processes | Aufgaben und Prozesse | ||
| Cases and contracts | Vorgänge und Verträge | ||
| Notifications | Benachrichtigungen | ||
| Integrations and interfaces | Integrationen und Schnittstellen | ||
| Digital signing | Digitales Unterschreiben | ||
| Infrastructure and security | Infrastruktur und Sicherheit | ||
| Appearance | Erscheinungsbild | ||
| Miscellaneous | Sonstiges |
The code below lists examples for the different DTOs, describing the structure of a configfeature. The examples are written in C#.
ConfigFeatureDtos
public class ConfigFeatureDto { public string AppName { get; set; } public IList<CustomHeadlineDto> CustomHeadlines { get; set; } public ConfigFeatureDto() { CustomHeadlines = new List<CustomHeadlineDto>(); } } public class CustomHeadlineDto { public string Caption { get; set; } public string Description { get; set; } public IList<MenuItemDto> MenuItems { get; set; } public IList<CategoryDto> Categories { get; set; } public CustomHeadlineDto() { MenuItems = new List<MenuItemDto>(); Categories = new List<CategoryDto>(); } } public class MenuItemDto { public string Caption { get; set; } public string Description { get; set; } public string Href { get; set; } public IList<string> Keywords { get; set; } public ConfigurationStateDto ConfigurationState { get; set; } public MenuItemDto() { Keywords = new List<string>(); } } public class CategoryDto { public string Id { get; set; } public string Caption { get; set; } } public enum ConfigurationStateDto { Complete = 0, Incomplete = 1 }