|
|
|
|
|
## EOSC Zammad Helpdesk Relayer
|
|
|
|
|
|
- The EOSC Zammad Helpdesk Relayer is a backend service running within the KIT network. Its main function is to connect [Zammad Helpdesk Instances](https://zammad.org/) among them
|
|
|
|
|
|
### Architecture
|
|
|
|
|
|
- It consists of a [Nest.js application](https://nestjs.com/) and a [MongoDB](https://www.mongodb.com/) database
|
|
|
|
|
|

|
|
|
|
|
|
#### Synchronization configuration
|
|
|
|
|
|
- It connects two Zammad instances and replicates the tickets among them every **10 seconds** using a polling mechanism. The connection could be _bidirectional_ "ZammadA <=> ZammadB" or _unidirectional_ "ZammadA" => "ZammadB" which means that if an instance "ZammadA" is connected to a "ZammadB" instance, every 10 seconds all the tickets new or updated on an instance will be available on the other instance.
|
|
|
|
|
|
- Note that only the tickets within the `syncGroup` defined will be synced. This means that for the connection between two instances to work properly a `syncGroup` should be defined and created in both instances with the same name.
|
|
|
|
|
|
#### This is an example of the configuration object of two instances:
|
|
|
```
|
|
|
[
|
|
|
{
|
|
|
"_id": "640622e5f7ff32d559425a7d",
|
|
|
"instanceID": "eosc-test",
|
|
|
"zammadURL": "https://eosc-helpdesk-dev.scc.kit.edu/api",
|
|
|
"apiToken": "sAuZzwK...dbatyI8",
|
|
|
"maxResultsPerPage": 100,
|
|
|
"connectedWith": [
|
|
|
{
|
|
|
"targetInstance": "openAire",
|
|
|
"syncGroup": "EOSC Portal & Catalogue sync",
|
|
|
"lastNewTicketsSyncDateCheck": "2023-03-29T19:28:22.771Z",
|
|
|
"lastUpdatedTicketsSyncDateCheck": "2023-03-29T19:28:22.771Z"
|
|
|
}
|
|
|
],
|
|
|
"updatedAt": "2023-03-29T19:28:22.784Z"
|
|
|
},
|
|
|
{
|
|
|
"_id": "640622e5f7ff32d559425a7e",
|
|
|
"instanceID": "openAire",
|
|
|
"zammadURL": "https://helpdesk.openaire.eu/api",
|
|
|
"apiToken": "29c3k.....0PJ",
|
|
|
"maxResultsPerPage": 100,
|
|
|
"connectedWith": [
|
|
|
{
|
|
|
"targetInstance": "eosc-test",
|
|
|
"syncGroup": "EOSC Portal & Catalogue sync",
|
|
|
"lastNewTicketsSyncDateCheck": "2023-03-29T19:28:23.674Z",
|
|
|
"lastUpdatedTicketsSyncDateCheck": "2023-03-29T19:28:23.674Z"
|
|
|
}
|
|
|
],
|
|
|
"updatedAt": "2023-03-29T19:28:23.684Z"
|
|
|
}
|
|
|
]
|
|
|
```
|
|
|
|
|
|
- The `syncGroup` in these two instances is called `EOSC Portal & Catalogue sync`. This means that in the **eosc** and in the **eosc-test** instance the group should be available and all the tickets in these two instances are being updated.
|
|
|
|
|
|
|
|
|
|