Any progress on updating the PR and withdrawing KIP-212?

On Fri, Oct 27, 2017 at 5:19 PM, Randall Hauch <rha...@gmail.com> wrote:

> Yes, connector names should not be blank or contain just whitespace. In
> fact, I might recommend that we trim whitespace at the front and rear of
> new connector names and then disallowing any zero-length name. Existing
> connectors would remain valid, and this would not break backward
> compatibility. That might require a small kip simply to update the
> documentation and specify what names are valid.
>
> WDYT?
>
> Randall
>
> On Fri, Oct 27, 2017 at 1:08 PM, Colin McCabe <cmcc...@apache.org> wrote:
>
>> On Wed, Oct 25, 2017, at 01:07, Sönke Liebau wrote:
>> > I've spent some time looking at this and testing various characters and
>> > it
>> > would appear that Randall's suspicion was spot on. I think we can
>> support
>> > a
>> > fairly large set of characters with very minor changes.
>> >
>> > I was put of by the exceptions that were thrown when creating connectors
>> > with certain characters and suspected a larger underlying problem when
>> in
>> > fact the only issue is, that the URL in the rest request used to
>> retrieve
>> > the response for the create connector request needs to be percent
>> encoded
>> > [1].
>> >
>> > I've fixed this and done some local testing which worked out quite
>> > nicely,
>> > apart from two special cases, I've not been able to find characters that
>> > created issues, even space and slash work.
>> > The mentioned special cases are:
>> >   \  - if the name contains a backslash that is not the beginning of a
>> > valid escape sequence the request fails before we ever get it in
>> > ConnectorsResource, so a backslash would need to be escaped: \\
>> >   "  - Quotation marks need to be escaped as well to keep the json body
>> >   of
>> > the request legal: \"
>> > In both cases the escape character will be part of the connector name
>> and
>> > need to be specified in the url to retrieve the connector as well, even
>> > though we could URL encode it in a legal way without escaping here. So
>> > they
>> > work, not sure if I'd recommend using those characters, but no real
>> > reason
>> > to prohibit people from using them that I can see either.
>>
>> Good research, Sönke.
>>
>> >
>> >
>> > What I'd do going forward is:
>> > - withdraw the KIP, as I don't see a real need for one, since this is
>> not
>> > changing anything, just fixing things.
>> > - add a section to the documentation around legal characters, specify
>> the
>> > ones I tested explicitly (url encoded %20 - %7F) and mention that most
>> > other characters should work as well but no guarantees are given
>> > - update the pull request for KAFKA-4930 to allow all characters but
>> > still
>> > prohibit creating a connector with an empty name. I'd propose to keep
>> the
>> > validator though as it'll give us a central location to do any checking
>> > that might turn out to be necessary later on.
>>
>> Are empty names currently allowed?  That's unfortunate.
>>
>> > - add some integration tests to check connectors with special characters
>> > in
>> > their names work
>> > - fix the url encoding line in ConnectorsResource
>> >
>> > Does that sound fair to everybody?
>>
>> It sounds good to me, but I will let someone more knowledgeable about
>> connect chime in.
>>
>> best,
>> Colin
>>
>> >
>> > Kind regards,
>> > Sönke
>> >
>> > [1]
>> > https://github.com/apache/kafka/blob/trunk/connect/runtime/
>> src/main/java/org/apache/kafka/connect/runtime/rest/
>> resources/ConnectorsResource.java#L102
>> >
>> > On Tue, Oct 24, 2017 at 8:40 PM, Colin McCabe <cmcc...@apache.org>
>> wrote:
>> >
>> > > On Tue, Oct 24, 2017, at 11:28, Sönke Liebau wrote:
>> > > > Hi,
>> > > >
>> > > > after reading your messages I'll grant that I might have picked a
>> > > > somewhat
>> > > > draconic option to solve these issues.
>> > > >
>> > > > In general I believe that properly encoding the URLs after having
>> created
>> > > > the connectors should solve a lot of the issues already. For some
>> > > > characters the rest api returns an error on creating the connector
>> as
>> > > > well,
>> > > > so for that URL encoding won't help. However the connectors do get
>> > > > created
>> > > > even though an error is returned, I've never investigated if they
>> are in
>> > > > a
>> > > > consistent state tbh - I'll give this another look.
>> > > >
>> > > > @colin: Entity encoding would allow us to encode a lot of
>> characters,
>> > > > however I am unsure whether we should prefer it over url encoding
>> in this
>> > > > case, as mostly the end user would have to encode the characters
>> himself.
>> > > > And due to entity encoding ending every character with a ; which
>> causes
>> > > > the
>> > > > embedded jetty server to cut the connector name at that character
>> we'd
>> > > > probably need to encode that character in URL encoding again for
>> that to
>> > > > work out - which might get a bit too complex tbh.
>> > >
>> > > Sorry, I meant to write percent-encoding, not entity refs.
>> > > https://en.wikipedia.org/wiki/Percent-encoding
>> > >
>> > > best,
>> > > Colin
>> > >
>> > >
>> > > > I will further investigate which characters the url decoding that
>> jetty
>> > > > brings to the table will let us use and if all of these are
>> correctly
>> > > > handled during connector creation and report back with a new list of
>> > > > characters that I think we can support fairly easily.
>> > > >
>> > > > Kind regards,
>> > > > Sönke
>> > > >
>> > > >
>> > > > On Tue, Oct 24, 2017 at 6:42 PM, Colin McCabe <cmcc...@apache.org>
>> > > wrote:
>> > > >
>> > > > > It should be possible to use entity references to encode these
>> > > > > characters in URLs.  See https://dev.w3.org/html5/html-
>> author/charref
>> > > > > Maybe I'm misunderstanding the problem, but can we simply encode
>> the
>> > > > > URLs, rather than restricting the names?
>> > > > >
>> > > > > best,
>> > > > > Colin
>> > > > >
>> > > > >
>> > > > > On Mon, Oct 23, 2017, at 14:12, Randall Hauch wrote:
>> > > > > > Here's the link to KIP-212:
>> > > > > > https://cwiki.apache.org/confluence/pages/viewpage.
>> > > > > action?pageId=74684586
>> > > > > >
>> > > > > > I do think it's worthwhile to define the rules for connector
>> names.
>> > > > > > However, I think it would be better to describe the current
>> > > restrictions
>> > > > > > for names outside of them appearing within URLs. For example,
>> if we
>> > > can
>> > > > > > keep connector names relatively free of constraints but instead
>> > > define
>> > > > > > how
>> > > > > > names should be encoded when used within URLs (e.g., URL
>> encoding),
>> > > then
>> > > > > > we
>> > > > > > may not have (m)any backward compatibility issues other than
>> fixing
>> > > some
>> > > > > > bugs related to proper encoding/decoding.
>> > > > > >
>> > > > > > Thoughts?
>> > > > > >
>> > > > > >
>> > > > > > On Mon, Oct 23, 2017 at 3:44 PM, Sönke Liebau <
>> > > > > > soenke.lie...@opencore.com.invalid> wrote:
>> > > > > >
>> > > > > > > All,
>> > > > > > >
>> > > > > > > I've created a KIP to discuss enforcing of rules on what
>> > > characters are
>> > > > > > > allowed in connector names.
>> > > > > > >
>> > > > > > > Since this may break api calls that are currently working I
>> > > figured a
>> > > > > KIP
>> > > > > > > is the better way to go than to just create a jira.
>> > > > > > >
>> > > > > > > I'd love to hear your input on this!
>> > > > > > >
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > > --
>> > > > Sönke Liebau
>> > > > Partner
>> > > > Tel. +49 179 7940878
>> > > > OpenCore GmbH & Co. KG - Thomas-Mann-Straße 8 - 22880 Wedel -
>> Germany
>> > >
>> >
>> >
>> >
>> > --
>> > Sönke Liebau
>> > Partner
>> > Tel. +49 179 7940878
>> > OpenCore GmbH & Co. KG - Thomas-Mann-Straße 8 - 22880 Wedel - Germany
>>
>
>

Reply via email to