Skip to main content

Adding an OpenAPI Connection

Prerequisites

  • A user with sufficient permissions is required to establish a connection with OpenAPI.
  • Zeenea traffic flows towards the data source must be open.
note

A link to the configuration template can be found here: Zeenea Connector Downloads.

Supported Versions

The OpenAPI connector was developed and tested with OpenAPI requirements 3.0.0 and 3.0.1 and should be compatible later.

The OpenAPI connector accepts JSON and YAML formats.

Installing the Plugin

The OpenAPI plugin can be downloaded here: Zeenea Connector Downloads

For more information on how to install a plugin, please refer to the following article: Installing and Configuring Connectors as a Plugin.

Declaring the Connection

Creating and configuring connectors is done through a dedicated configuration file located in the /connections folder of the relevant scanner. The scanner frequently checks for any change and resynchronises automatically.

Read more: Managing Connections

In order to establish a connection with a OpenAPI interface, specifying the following parameters in the dedicated file is required:

ParameterExpected value
nameThe name that will be displayed to catalog users for this connection.
codeThe unique identifier of the connection on the Zeenea platform. Once registered on the platform, this code must not be modified or the connection will be considered as new and the old one removed from the scanner.
connector_idThe type of connector to be used for the connection. Here, the value must be openapi and this value must not be modified.
connection.url

Path to the swagger.json local file or an URL to a remote server.

Examples:

connection.url = "file:///var/path/to/my/swagger.json"

or

connection.url = "https://my-api.my-domain.com:8443"

connection.swagger.endpoint

Optional when the connection.url contains a local file path.
Mandatory when the connection.url is a URL to a server.

Example:

# Given this URL: "https://my-api.my-domain.com:8443/api/v1/swagger.json""
# The connector must be configured like :
connection.url = "https://my-api.my-domain.com:8443""
connection.swagger.endpoint = "/api/v1/swagger.json"

From a basic auth protocol
connection.usernameUsername
connection.passwordUser password
From an OAuth2 protocol
connection.oauth.endpointAPI endpoint
connection.oauth.client_idApplication ID (client)
connection.oauth.client_secretApplication password (client)
tls.truststore.pathThe Trust Store file path. This file must be provided in case TLS encryption is activated (protocol https) and when certificates of servers are delivered by a specific authority. It must contain the certification chain.
tls.truststore.passwordPassword of the trust store file
tls.truststore.typeType of the trust store file (PKCS12 or JKS). Default value is discovered from the file extension.
proxy.schemeDepending on the proxy, http or https
proxy.hostnameProxy address
proxy.portProxy port
proxy.usernameProxy username
proxy.passwordProxy account password
note

A template of the configuration file is available in this repository.

User Permissions

In order to collect metadata, the running user's permissions must allow them to access and read datasets that need cataloging.

Here, the user must have read access to the specification API file.

Data Extraction

To extract information, the connector identifies the datasets exposed by the API from each GET endpoint defined in the specification file. Then, it defined the object's data model as described in the file.

Collected Metadata

Inventory

The inventory collects the list of unique GET endpoints described in the JSON specification file.

Dataset

  • Name
  • Source Description
  • Technical Data:
    • Endpoint
    • Swagger Name
    • Specification Version

Field

Dataset attribute.

  • Name
  • Source Description: Not supported
  • Type
  • Can be null: Depending on field settings
  • Multivalued: Depending on field settings
  • Primary key: Not supported. Default value false.
  • Technical Data:
    • Technical Name
    • Native type

Unique Identification Keys

A key is associated with each item of the catalog. When the object comes from an external system, the key is built and provided by the connector.

More information about unique identification keys in this documentation: Identification Keys.

ObjectIdentification KeyDescription
Datasetcode/component name
  • code: Unique identifier of the connection noted in the configuration file
  • component name: Exposed object's name
Fieldcode/component name/field name
  • code: Unique identifier of the connection noted in the configuration file
  • component name: Exposed object's name
  • field name: Complete path of the attribute