systemHookConfiguration.json

Configuration of system hooks, split in AMQP hooks and webhooks.

Characteristics

Profile NamesystemHookConfiguration.json
Referenced by Servicesauthentication,api,commander
Storage LocationGit system directory 

Parameters

Parameter SectionParameterTypeDescription
amqpList of mappings in JSON format.

List of single AMQP Hook configurations each of them defined via following parameters. Read by API gateway and COMMANDER service.


bulkSizeintegerMaximum bulk size for a message.
enablebooleanSpecified whether this configuration is active/enabled (true) or inactive/disabled (false).
passwordstring

Password for the AMQP server.

predicatestringCondition that specifies when the AMQP hook is used.
supported scripting languages: SpEL (Spring Expression Language) and Javascript.
queuestring

Name of the queue to which the messages are written.

Only one messaging queue can be used. The messaging queue specified for the first defined AMQP hook will apply to all following AMQP hook definitions as well. The messaging system needs to support AMQP 1.0.

typestringDefines the processing step during which the AMQP hook will be trigger.
urlstringAMQP server endpoint, e.g. 127.0.0.1:5672
userstringUsername for the AMQP server.
webhooksList of mappings in JSON format.

List of single Webhook configurations each of them defined via following parameters. Read by AUTHENTICATION service and API gateway.

If multiple Webhooks are registered for the same Webhook type, the predicate is applied to the original predicate target for each of them and in the order of definition.


enablebooleanSpecified whether this configuration is active/enabled (true) or inactive/disabled (false).
predicatestringCondition that specifies when the webhook is used.
supported scripting languages: SpEL (Spring Expression Language) and Javascript.
typestringDefines the processing step during which the webhook will be trigger.
urlstringEndpoint to be called by the webhook if the predicate matches.

Example

The following example configures both an AMQP hook and a webhook.

  • The AMQP hook applies to object imports and checks the contentStreams for the presence of a range attribute. If the range attribute is detected, the AMQP hook recognizes the imported content to be a compound document and initiates asynchronous text extraction of all parts of the content.
  • This concrete example webhook triggers at every login and retrieves the roles of the user trying to authenticate.

To activate this configuration, both the API-gateway and the Authentication service need to be restarted. 

Example System Hook Configuration
{
    "systemhooks": {
        "amqp": [
            {
                "bulkSize": 10,
                "enable": true,
                "password": "secret",
                "predicate": "spel:(contentStreams != null && contentStreams.size() > 0 && contentStreams[0]['range'] != null && contentStreams[0]['range'].length() > 0) ? true : false",
                "queue": "lc.textextraction",
                "type": "object.insert.document",
                "url": "10.10.6.242:5672",
                "user": "clouduser"
            }
        ],
        "webhooks": [
            {
                "enable": true,
                "predicate": "spel:true",
                "type": "user.info",
                "url": "http://organization/api/userinfo/${tenant}/${userId}"
            }
        ]
    }
}