Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

ReadMe.md

Event Handler

Alt text

The Event Handler provides the following services:

The Event Handler consumes the following services:

  • CheckAuthorizationSubscription private service from the Authorization core system
  • Notification service from the subscriber client system

The Event Handler has the following use cases:

Function URL subpath Method Input Output
Echo /echo GET - OK
Subscribe /subscribe POST - OK
Unsubscribe /unsubscribe DELETE - OK
Publish /publish POST - OK
Function URL subpath Method Input Output
Get subscriptions /mgmt/subscriptions GET direction && item_per_page && page && sort_field Subscription list response
Get subscription by id /mgmt/subscriptions/{id} GET id Subscription response
Update subscription /mgmt/subscriptions/{id} PUT id && Subscription request Subscription response
Delete subscription /mgmt/subscriptions/{id} DELETE id OK
Function URL subpath Method Input Output
AuthorizationUpdate /publish/authupdate POST - OK
GET /eventhandler/echo

Returns a "Got it!" message with the purpose of testing the core service availability.

POST /eventhandler/subscribe

Creates a subscription record specified by parameters.

SubscriptionRequest is the input.

{
  "eventType": "string",
  "filterMetaData": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "matchMetaData": true,
  "notifyUri": "string",
  "sources": [
    {
      "systemName": "string",
      "address": "string",
      "authenticationInfo": "string",
      "port": 0
    }
  ],
  "startDate": "string",
  "endDate": "string",
  "subscriberSystem": {
    "systemName": "string",
    "address": "string",
    "authenticationInfo": "string",
    "port": 0
  }
}
SubscriptionRequest fields
Field Description Necessity Format/Limitations
eventType Type of event to subscribe to mandatory max. length = 255
filterMetaData The received event has to contain all the "key - value" pairs defined here optional max.length = 65535
matchMetaData A flag to turn on/off metadata filtering mandatory true or false
notifyUri Url subpath of the subscriber system's notification endpoint mandatory max.length = 65535
sources List of publisher systems optional (if not defined or empty, all publishers will be able to send requests which are authorized and allowed by the other filtering options ) not defined
startDate If startDate is defined, the subscriber system will only receive events when the event's timestamp is after startDate. optional ( StartDate must be after the current date/time. ) UTC time in yyyy-MM-dd HH:mm:ss format
endDate If endDate is defined, the subscriber system will only receive events when the event's timestamp is before endDate. optional ( EndDate must be after the current date/time. If startDate is defined endDate must be after startDate. ) UTC time in yyyy-MM-dd HH:mm:ss format
subscriberSystem Details of subscriber system mandatory as in system
System fields
Field Description Necessity Format/Limitations
systemName The name of the system. mandatory max. length = 255
address Domain name or IP of the system. mandatory max. length = 255
authenticationInfo Public key of the system. optional single line string without the "-----BEGIN PUBLIC KEY-----" prefix and the "-----END PUBLIC KEY-----" suffix
port The port where the system provides services mandatory max.length = defined by local cloud operator ( default valid range: 1-65535 )

SubscriptionRequest output:

{
        "id": 0,
        "eventType": {
        "eventTypeName": "string",
        "createdAt": "string",
        "updatedAt": "string"
      },
      "filterMetaData": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "id": 0,
      "matchMetaData": true,
      "notifyUri": "string",
      "sources": [
        {
          "id": 0,
          "systemName": "string",
          "address": "string",
          "authenticationInfo": "string",
          "port": 0,
          "createdAt": "string",
          "updatedAt": "string"
        }
      ],
      "startDate": "string",
      "endDate": "string",
      "subscriberSystem": {
        "id": 0,
        "systemName": "string",
        "address": "string",
        "authenticationInfo": "string",
        "port": 0,
        "createdAt": "string",
        "updatedAt": "string"
      },
      "createdAt": "string",
      "updatedAt": "string"
    }
DELETE /eventhandler/unsubscribe

Removes the subscription record specified by parameters.

Unsubscribe query parameters are the input : https://eventhandler_ip:unsubscribe_port/eventhandler/unsubscribe?address=192.168.0.1&event_type=EVENT_TYPE_1&port=9009&system_name=test_consumer`

Unsubscribe query parameters
Parameter Description Necessity Format/Limitations
address Domain name or IP of the system. mandatory max. length = 255
event_type Type of event to subscribe to mandatory max. length = 255
port The port where the system provides services mandatory max.length = defined by local cloud operator ( default valid range: 1-65535 )
system_name The name of the system. mandatory max. length = 255
POST /eventhandler/publish

Start the publishing process to deliver the event to the subscribers.

PublishRequest is the input:

{
  "eventType": "string",
  "metaData": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "payload": "string",
  "source": {
    "address": "string",
    "authenticationInfo": "string",
    "port": 0,
    "systemName": "string"
  },
  "timeStamp": "string"
}
PublishRequest fields
Field Description Necessity Format/Limitations
eventType Type of event. mandatory max. length = 255
metaData The "key - value" pairs for event filtering. optional max.length = 65535
payload String representation of the event. mandatory not defined
source Details of the publisher system. mandatory as in system
timestamp The time of publishing mandatory UTC time in yyyy-MM-dd HH:mm:ss format
System fields
Field Description Necessity Format/Limitations
systemName The name of the system. mandatory max. length = 255
address Domain name or IP of the system. mandatory max. length = 255
authenticationInfo Public key of the system. optional single line string without the "-----BEGIN PUBLIC KEY-----" prefix and the "-----END PUBLIC KEY-----" suffix
port The port where the system provides services mandatory max.length = defined by local cloud operator ( default valid range: 1-65535 )
GET /mgmt/eventhandler/subscriptions

Get subscriptions query parameters the input :

https://eventhandler_ip:eventhandler_port/eventhandler/mgmt/subscriptions?dirction=ASC&item_per_page=100&page=0&sort_field=id

Get subscriptions query parameters
Parameter Description Necessity Format/Limitations
direction Direction of sorting. optional valid values: "ASC", "DESC" - default: "ASC"
item_per_page Maximum number of items returned. optional (mandatory, if page is defined) integer
page Zero based page index. optional (mandatory, if item_per_page is defined) integer
sort_field The field to sort the results by. optional valid values: "id", "updatedAt", "createdAt" - default: "id"

Get subscriptions query parameters the output :

{
  "count": 0,
  "data": [
    {
        "id": 0,
        "eventType": {
        "eventTypeName": "string",
        "createdAt": "string",
        "updatedAt": "string"
      },
      "filterMetaData": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "id": 0,
      "matchMetaData": true,
      "notifyUri": "string",
      "sources": [
        {
          "id": 0,
          "systemName": "string",
          "address": "string",
          "authenticationInfo": "string",
          "port": 0,
          "createdAt": "string",
          "updatedAt": "string"
        }
      ],
      "startDate": "string",
      "endDate": "string",
      "subscriberSystem": {
        "id": 0,
        "systemName": "string",
        "address": "string",
        "authenticationInfo": "string",
        "port": 0,
        "createdAt": "string",
        "updatedAt": "string"
      },
      "createdAt": "string",
      "updatedAt": "string"
    }
  ]
}
GET /mgmt/eventhandler/subscriptions/{id}

Get subscriptions query parameters the input :

https://eventhandler_ip:eventhandler_port/eventhandler/mgmt/subscriptions/1

Get subscription by id path parameter
Parameter Description Necessity Format/Limitations
id Id of subscription mandatory integer

Get subscription by id the output :

    {
        "id": 0,
        "eventType": {
        "eventTypeName": "string",
        "createdAt": "string",
        "updatedAt": "string"
      },
      "filterMetaData": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "id": 0,
      "matchMetaData": true,
      "notifyUri": "string",
      "sources": [
        {
          "id": 0,
          "systemName": "string",
          "address": "string",
          "authenticationInfo": "string",
          "port": 0,
          "createdAt": "string",
          "updatedAt": "string"
        }
      ],
      "startDate": "string",
      "endDate": "string",
      "subscriberSystem": {
        "id": 0,
        "systemName": "string",
        "address": "string",
        "authenticationInfo": "string",
        "port": 0,
        "createdAt": "string",
        "updatedAt": "string"
      },
      "createdAt": "string",
      "updatedAt": "string"
    }
PUT /mgmt/eventhandler/subscriptions/{id}

Update subscription request the input :

https://eventhandler_ip:eventhandler_port/eventhandler/mgmt/subscriptions/1

Update subscription path parameter
Parameter Description Necessity Format/Limitations
id Id of subscription mandatory integer
{
  "eventType": "string",
  "filterMetaData": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "matchMetaData": true,
  "notifyUri": "string",
  "sources": [
    {
      "systemName": "string",
      "address": "string",
      "authenticationInfo": "string",
      "port": 0
    }
  ],
  "startDate": "string",
  "endDate": "string",
  "subscriberSystem": {
    "systemName": "string",
    "address": "string",
    "authenticationInfo": "string",
    "port": 0
  }
}
SubscriptionRequest fields
Field Description Necessity Format/Limitations
eventType Type of event to subscribe to mandatory max. length = 255
filterMetaData The received event has to contain all the "key - value" pairs defined here optional max.length = 65535
matchMetaData A flag to turn on/off metadata filtering mandatory true or false
notifyUri Url subpath of the subscriber system's notification endpoint mandatory max.length = 65535
sources List of publisher systems optional (if not defined or empty, all publishers will be able to send requests which are authorized and allowed by the other filtering options ) not defined
startDate If startDate is defined, the subscriber system will only receive events when the event's timestamp is after startDate. optional ( StartDate must be after the current date/time. ) UTC time in yyyy-MM-dd HH:mm:ss format
endDate If endDate is defined, the subscriber system will only receive events when the event's timestamp is before endDate. optional ( EndDate must be after the current date/time. If startDate is defined endDate must be after startDate. ) UTC time in yyyy-MM-dd HH:mm:ss format
subscriberSystem Details of subscriber system mandatory as in system
DELETE /mgmt/eventhandler/subscriptions/{id}

Delete subscription parameters the input :

https://eventhandler_ip:eventhandler_port/eventhandler/mgmt/subscriptions/1

Get subscription by id path parameter
Parameter Description Necessity Format/Limitations
id Id of subscription mandatory integer

This service can only be used by other core services, therefore this is not part of the public API.