Open Documentation Menu

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)

b404c8f8-8d56-4861-b847-fcfc7eec0ba2

Document management

Administration

Dokumentenmanagement

Verwaltung

81cf6d2c-8991-4ada-ad38-de0974bf3a25

Document management

Import

Dokumentenmanagement

Import

eb30082b-f4bf-4c13-8a5e-84cad916561e

Document management

E-mails

Dokumentenmanagement

E-Mails

147d1539-e6c1-4828-8380-0673f3e59067

Document management

Search

Dokumentenmanagement

Suche

42bae7f1-2cbe-4ff2-a2ce-16d4bc1e4b41

Document management

Export

Dokumentenmanagement

Export

892dd782-7a40-465b-a0eb-6f6e185f34c6

Invoice processing

Invoice processing

0a3c33eb-2f70-45de-a4f1-093f509eea15

Tasks and processes

Aufgaben und Prozesse

4fd6f25d-8ed0-4bc9-9c22-0719b557be22

Cases and contracts

Vorgänge und Verträge

82bd9781-1b0b-4fc3-a546-e1a83f9a5a82

Notifications

Benachrichtigungen

5fa644aa-2600-4f78-b5a9-da3b6b313a57

Integrations and interfaces

Integrationen und Schnittstellen

9061048f-4165-4f12-94a3-606037864d49

Digital signing

Digitales Unterschreiben

ed7ef2a1-f1c0-4896-97a6-db1f693d128a

Infrastructure and security

Infrastruktur und Sicherheit

0f4ffa80-3334-4b14-904e-6d1d13fe2038

Appearance

Erscheinungsbild

9a64b476-dc7c-4c8b-b555-6d03caf64131

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
}