# Integration Service

The Integration Service is an off-chain service which allows for device aggregators and utilities to integrate to the OpenVPP platform. This integration happens on a one time basis for each device aggregator and utility, unlocking the entire world of device connectivity. The Integration Service has multiple capabilities triggered when onboarding a new device or utility partner, and is referenced continuously as long as devices are connecting and the OpenVPP routing and registry services are being utilized. Its key functions include:

**Certificate Authority & Routing**

Standardized APIs allow for the exchange of device and manufacturer level certificates to the Registry Service which are used in routing of devices each time a connection is formed. These certificates form the basis for the authentication and trust in the secure connection, but the connection is formed at the device to utility level and not in the Integration Service itself.

**Capability Check**

A set of standardized unit tests are created for each device type in each protocol. These standardized unit tests are run against every new device aggregator or utility connection to confirm at onboarding that a range of acceptable, standardized, and consistent responses are returned from every device and utility server. This ensures that devices and utilities behave in the way expected, utilizing the same unit tests, therefore greatly reducing the chance of an integration error between device and utility servers. Not all capabilities need to pass for every device and every utility, only the overlap between that specific device and utility pairing need to pass to permit a connection.

This capability check service ensures that any device can be routed to any utility with a single integration from each side with minimum ongoing maintenance. Checks can be re-run in an automated fashion as capabilities are updated or protocols are changed.

**Registry Update**

The Integration Service continuously updates the Registry Service with the correct certificate, capability, and attribute data needed to facilitate the Routing Service for connecting devices.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://openvpp.gitbook.io/openvpp-docs/technology-overview/integration-service.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
