Skip to content

Feature request. Links for external integrations. #2671

Description

@AntonAndreevichMoroz

I hope my idea will not be too difficult to implement, but it will give many opportunities that everyone can do for themselves. I thought a lot about the fact that I would like to integrate MeshCentral with any other systems and make it dynamic and versatile.
I see this as the ability to create links similar to Extralinks, but with the URL and the transfer of device parameters.
For example, have some set of device variables such as name, nodeid, IP address, and others. Which we can use when creating integration links.
And if the includedeviceinfo and includedevicedetails parameter is selected in the request body, send all available device data in JSON format. You already have such JSON when exporting device information.
And then on the receiving side, everyone will be able to come up with their own logic and carry out any actions that are necessary, even using meshctrl.js.
By default, the link opens in a new window, but if you specify the "Request only" parameter, then the link does not follow, but only the data is sent + a message that the sending was successful (received a response code of 200 from the server).
Also, for security, add an event to the device that some user has used an integration link.
In a configuration like this:

        "integrationlinks": [
          {
            "name": "One Action",
            "url": "https://api.service.com/oneaction?name=$DeviceName&id=$NodeID",
            "method": "POST",
            "filter": [ "tag:OneAction" ]
          },
          {
            "name": "Two Action",
            "url": "https://api.service.com/twoaction?name=$DeviceName&ip=$DeviceIP&otherparam1=staticparameter&otherparam2=staticparameter",
            "method": "GET",
            "includedeviceinfo": true,
            "includedevicedetails": true,
            "filter": [ "mesh//xxxx" ]
          }
          {
            "name": "SendInfo",
            "url": "https://api.service.com/sendinfo",
            "method": "POST",
            "includedeviceinfo": true,
            "includedevicedetails": true,
            "requestonly": true,
            "_filter": [ "mesh//xxxx" ]
          },
	]

image

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions