I will move to vote On Mon, Jun 7, 2021 at 10:44 AM Cyrus Vafadari <cvafad...@gmail.com> wrote:
> Thanks for the feedback, > > I added an example request/response for SMTs, and I thought about your > suggestion re:deprecation and am now explicitly proposing to mark the > existing endpoint as deprecated, though I don't anticipate the need to > remove it will arise any time soon! > > Cyrus > > On Fri, Jun 4, 2021 at 7:35 PM Konstantine Karantasis > <konstant...@confluent.io.invalid> wrote: > >> Hi Cyrus. >> >> The proposal looks good and I like the API spec definition the way it's >> presented. >> >> Having said that, a few examples that would list the request type and >> body, >> the returned status and the json response would be nice too, following the >> tradition of other KIPs. >> >> See >> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-745%3A+Connect+API+to+restart+connector+and+tasks >> for a recent example. >> >> I also see there's no mention regarding the future of the current >> `/connector-plugins` endpoint or any deprecation plans. >> >> I think we should make our intentions clear in the KIP itself >> which introduces the new endpoint as a superset of the old one, beyond the >> discussion in this thread, for future readers. >> Also, I think it's useful to keep in mind that deprecation doesn't >> necessarily mean imminent removal. The next opportunity to remove this end >> point would be the next major release at the earliest. >> >> Regards, >> Konstantine >> >> >> On Mon, Apr 19, 2021 at 10:13 AM Cyrus Vafadari <cvafad...@gmail.com> >> wrote: >> >> > Thanks! Anyone else from the community with final thoughts before going >> to >> > vote? >> > >> > On Mon, Apr 19, 2021 at 4:16 AM Tom Bentley <tbent...@redhat.com> >> wrote: >> > >> > > Hi Cyrus, >> > > >> > > That seems reasonable to me. >> > > >> > > On Thu, Apr 15, 2021 at 6:44 PM Cyrus Vafadari <cvafad...@gmail.com> >> > > wrote: >> > > >> > > > What do you think of "type" field remaining in, and returning >> > > > "transformation", "converter" or whatever type it is. This way the >> > schema >> > > > remains consistent, and you can programmatically understand what >> > plugins >> > > > are returned on the holistic "GET /plugins" endpoint? It will be >> > slightly >> > > > redundant in the case where you specify the plugin-type as a path >> > > > parameter. >> > > > >> > > > On Thu, Apr 15, 2021 at 1:13 PM Tom Bentley <tbent...@redhat.com> >> > wrote: >> > > > >> > > > > Hi Cyrus, >> > > > > >> > > > > Re 2: A very minor thing but while type=source|sink for a >> connector, >> > it >> > > > > doesn't makes sense for the other plugin types, but so the json >> for >> > > those >> > > > > plugins should omit that property rather than have type=null. >> > > > > >> > > > > Apart from that it seems reasonable to me. Thanks again, >> > > > > >> > > > > Tom >> > > > > >> > > > > On Thu, Apr 15, 2021 at 3:49 PM Cyrus Vafadari < >> cvafad...@gmail.com> >> > > > > wrote: >> > > > > >> > > > > > Hi Tom, >> > > > > > >> > > > > > Thanks for taking the time to respond with thoughtful questions: >> > > > > > >> > > > > > 1. I propose HTTP-400, will update the KIP to reflect this >> proposal >> > > > > > 2. I think the schema should be of the same format. It is quite >> > > > minimal, >> > > > > so >> > > > > > there is room to add fields in the future without breaking >> > > > compatibility. >> > > > > > I will update the KIP to specify. >> > > > > > 3. Yes, that's right. >> > > > > > 4. I personally don't see the value in deprecating since it's a >> > > simple >> > > > > > alias (interface and impl will both be simple changes). I would >> be >> > > > > > comfortable kicking that can down the road if/when there is a >> need >> > > for >> > > > an >> > > > > > actual breaking change. That way we can keep the scope and diff >> > here >> > > > > tight. >> > > > > > But iff the community feels strongly that deprecating is the >> right >> > > > thing >> > > > > to >> > > > > > do, I'm happy to update the KIP to propose deprecating. >> > > > > > >> > > > > > Thanks again! >> > > > > > >> > > > > > On Wed, Apr 14, 2021 at 9:38 AM Tom Bentley < >> tbent...@redhat.com> >> > > > wrote: >> > > > > > >> > > > > > > Hi Cyrus, >> > > > > > > >> > > > > > > Thanks for the KIP. A few questions: >> > > > > > > >> > > > > > > 1. What status code does the /plugins/{plugin-type} endpoint >> > return >> > > > > when >> > > > > > an >> > > > > > > unknown type is given? >> > > > > > > 2. The result of /connector-plugins is a list of objects with >> > > > 'class', >> > > > > > > 'type' and 'version' properties. Presumably >> /plugins/connector is >> > > the >> > > > > > same, >> > > > > > > but what is the schema for the other plugin types? >> > > > > > > 3. You're not proposing an equivalent of the >> > > > > > > /connector-plugins/{connectorType}/config/validate endpoint >> for >> > > > > > > non-connector types, which I think makes sense, because you >> would >> > > > > > validate >> > > > > > > an SMT's config via its used by a connector, so the existing >> > > endpoint >> > > > > > > suffices, right? >> > > > > > > 4. Would /connector-plugins eventually be deprecated in >> favour of >> > > > > > > /plugins/connector, or do we expect it to remain in the API >> > > > > indefinitely >> > > > > > > and accept that /connector-plugins and /plugins/connector >> provide >> > > > > > identical >> > > > > > > responses? If we had the intention to deprecate in the future >> > maybe >> > > > we >> > > > > > > should add a /plugins/connector/config/validate endpoint now? >> > > > > > > >> > > > > > > Many thanks, >> > > > > > > >> > > > > > > Tom >> > > > > > > >> > > > > > > On Tue, Apr 13, 2021 at 6:46 PM Cyrus Vafadari < >> > > cvafad...@gmail.com> >> > > > > > > wrote: >> > > > > > > >> > > > > > > > Hello all, >> > > > > > > > >> > > > > > > > As the number of connect plugins, SMT's, etc have grown, I >> > wanted >> > > > to >> > > > > > bump >> > > > > > > > this thread to see if there is more interest in adding a >> > Connect >> > > > REST >> > > > > > > > endpoint to get the current plugins in the worker. >> > > > > > > > >> > > > > > > > Thanks all, and thanks Chris for the initial feedback on >> this. >> > > > > > > > >> > > > > > > > On Mon, Feb 17, 2020 at 12:56 PM Cyrus Vafadari < >> > > > cvafad...@gmail.com >> > > > > > >> > > > > > > > wrote: >> > > > > > > > >> > > > > > > > > Thanks for the feedback, Chris. >> > > > > > > > > >> > > > > > > > > WRT Worker-plugins, I see your point that they aren't very >> > > useful >> > > > > for >> > > > > > > > > people trying to create connectors to see what exists >> > already, >> > > > but >> > > > > I >> > > > > > > > would >> > > > > > > > > find them useful for things like making assertions >> against a >> > > > docker >> > > > > > > image >> > > > > > > > > to confirm the pluginpaths/classpaths are configured >> > correctly. >> > > > It >> > > > > is >> > > > > > > > more >> > > > > > > > > useful for "sanity check" kinds of things than >> > > > exploring/browsing. >> > > > > > That >> > > > > > > > > said, I don't feel too strongly and if more feedback from >> the >> > > > > > community >> > > > > > > > > thinks they are better excluded then we can remove them. >> > > > > > > > > >> > > > > > > > > WRT camelCase vs hyphens, I see your point here, will >> update >> > > the >> > > > > KIP. >> > > > > > > > > >> > > > > > > > > WRT compatibility -- Good question -- I would expect that >> > yes, >> > > > new >> > > > > > > > plugins >> > > > > > > > > would match this format. I will add this explicitly in the >> > KIP >> > > > for >> > > > > > > > clarity. >> > > > > > > > > I do think it's a valuable, simple feature to have the >> worker >> > > > able >> > > > > to >> > > > > > > > > report new plugins. >> > > > > > > > > >> > > > > > > > > Thanks again! >> > > > > > > > > >> > > > > > > > > On Wed, Feb 12, 2020 at 4:44 PM Christopher Egerton < >> > > > > > > chr...@confluent.io >> > > > > > > > > >> > > > > > > > > wrote: >> > > > > > > > > >> > > > > > > > >> Hi Cyrus, >> > > > > > > > >> >> > > > > > > > >> Thanks for the KIP! >> > > > > > > > >> >> > > > > > > > >> One quick question--I see the use case for being able to >> > list >> > > > > > > > >> per-connector >> > > > > > > > >> plugins (SMTs, converters, and header converters) via >> REST >> > > API, >> > > > > but >> > > > > > > I'm >> > > > > > > > >> not >> > > > > > > > >> so sure about worker plugins (REST extensions and config >> > > > > providers). >> > > > > > > > Since >> > > > > > > > >> those are configured at startup for the worker, is there >> any >> > > > > > advantage >> > > > > > > > to >> > > > > > > > >> being able to see the worker plugins available on a >> running >> > > > > worker? >> > > > > > > It's >> > > > > > > > >> not like they can be added during the lifetime of that >> > worker, >> > > > and >> > > > > > > that >> > > > > > > > >> information wouldn't be useful to anyone trying to >> create a >> > > > > > connector >> > > > > > > as >> > > > > > > > >> they wouldn't be able to include worker plugins in a >> > connector >> > > > > > config >> > > > > > > > >> anyways. >> > > > > > > > >> >> > > > > > > > >> And a small nit--it seems like the precedent set >> > > > ever-so-slightly >> > > > > by >> > > > > > > the >> > > > > > > > >> /connector-plugins resource is to use a hyphen to >> separate a >> > > > > series >> > > > > > of >> > > > > > > > >> lowercase words in an endpoint path as opposed to camel >> case >> > > > with >> > > > > > > > >> capitalization. What do you think about changing the >> > possible >> > > > > plugin >> > > > > > > > types >> > > > > > > > >> to "connector", "converter", "header-converter", etc.? >> > > > > > > > >> >> > > > > > > > >> One final question about forwards compatibility--the >> > > description >> > > > > for >> > > > > > > the >> > > > > > > > >> /plugins endpoint indicates that it "Returns plugin >> > > descriptions >> > > > > of >> > > > > > > all >> > > > > > > > >> types". If another type of pluggable component is added >> to >> > the >> > > > > > > > framework, >> > > > > > > > >> should we expect this endpoint to be updated to include >> that >> > > > type >> > > > > of >> > > > > > > > >> plugin >> > > > > > > > >> as well? And if so, should we also expect a matching >> > > > > > > > /plugins/{pluginType} >> > > > > > > > >> endpoint to be added? >> > > > > > > > >> >> > > > > > > > >> Cheers, >> > > > > > > > >> >> > > > > > > > >> Chris >> > > > > > > > >> >> > > > > > > > >> On Fri, Sep 6, 2019 at 11:48 AM Cyrus Vafadari < >> > > > > cy...@confluent.io> >> > > > > > > > >> wrote: >> > > > > > > > >> >> > > > > > > > >> > I've updated the KIP here to simplify and clarify the >> goal >> > > -- >> > > > > > it's a >> > > > > > > > >> pretty >> > > > > > > > >> > simple KIP to add a REST endpoint for SMTs and other >> > > plugins. >> > > > > This >> > > > > > > > will >> > > > > > > > >> > make it easier to see what SMTs you've loaded. >> > > > > > > > >> > >> > > > > > > > >> > Hoping for some good discussion! >> > > > > > > > >> > >> > > > > > > > >> > Thanks, all >> > > > > > > > >> > >> > > > > > > > >> > On Sat, Jul 20, 2019 at 9:07 PM Cyrus Vafadari < >> > > > > > cy...@confluent.io> >> > > > > > > > >> wrote: >> > > > > > > > >> > >> > > > > > > > >> > > Hello, all, >> > > > > > > > >> > > >> > > > > > > > >> > > I'd like to start discussion on a new KIP I'm >> proposing >> > to >> > > > add >> > > > > > > HTTP >> > > > > > > > >> > > endpoints to Kafka Connect to give us some more >> insight >> > > into >> > > > > > other >> > > > > > > > >> > > non-connector plugins, like Simple Message >> > Transformations >> > > > > > (SMTs). >> > > > > > > > The >> > > > > > > > >> > KIP >> > > > > > > > >> > > would not change how Connect works in any meaningful >> way >> > > > > except >> > > > > > to >> > > > > > > > >> expose >> > > > > > > > >> > > some more data by the endpoint, analogous to existing >> > > > > > > > >> > > "ConnectorPluginsResource" class. >> > > > > > > > >> > > >> > > > > > > > >> > > Looking forward to getting some feedback. >> > > > > > > > >> > > >> > > > > > > > >> > > Cyrus >> > > > > > > > >> > > >> > > > > > > > >> > > >> > > > > > > > >> > > >> > > > > > > > >> > >> > > > > > > > >> >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-494%3A+Connect+REST+Endpoint+for+Transformations+%28SMTs%29+and+other+Plugins >> > > > > > > > >> > > >> > > > > > > > >> > >> > > > > > > > >> >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >