You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.

Status

Current state: Under Discussion

Discussion thread: here

JIRA: here [Change the link from KAFKA-1 to your own ticket]

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

In order to start a connector, users must provide the connector configuration. Connect does not provide a way to see what configurations a connector requires. Instead users have to go look at the connector documentation or in the worst case, look directly at the connector source code. The proposal is to add an endpoint to the Connect REST API that exposes the configuration definitions of connectors.

This new endpoint will allow 2 things:

  • users will be able to discover the required configurations for connectors installed in a Connect cluster
  • tools will be able to generate wizards for configuring and starting connectors

Public Interfaces

A new Connect REST API endpoint: /connector-plugins/{connector}/configdef available via GET that returns the configuration definitions of the specified connector.

For example, for GET /connector-plugins/FileStreamSinkConnector/configdef the response would be:

[{
	"name": "file",
	"type": "STRING",
	"required": false,
	"default_value": null,
	"importance": "HIGH",
	"documentation": "Destination filename. If not specified, the standard output will be used",
	"group": null,
	"width": "NONE",
	"display_name": "file",
	"dependents": [],
	"order": -1
}]

This will reuse the ConfigKeyInfo entity which is already exposed via PUT /connector-plugins/{connector-type}/config/validate.

Proposed Changes

A new endpoint will be defined in ConnectorPluginsResource.java

@GET
@Path("/{connectorType}/configdef")
public List<ConfigKeyInfo> getConnectorPluginConfigDef(final @PathParam("connectorType") String connType) {
    
return herder.connectorPluginConfigDef(connType);
}

A new method will be added to Herder.java to provide the functionnality.

List<ConfigKeyInfo> connectorPluginConfigDef(String connType);


Compatibility, Deprecation, and Migration Plan

This is a new endpoint, existing endpoints are not changed.

Rejected Alternatives


None


  • No labels