Thanks for updating the KIP to reflect the current process. However, I still question whether it is necessary to have a KIP - it depends on whether it was possible with prior versions to have connectors with zero-length or blank names. Have you tried both of these cases?
On Fri, Nov 10, 2017 at 3:52 AM, Sönke Liebau < soenke.lie...@opencore.com.invalid> wrote: > Hi Randall, > > I have set aside some time to work on this next week. The fix itself is > quite simple, but I've yet to write tests to properly catch this, which > turns out to be a bit more complex, as it needs a running restserver which > is mocked in the tests I've looked at so far. > > Should I withdraw the KIP or update it to reflect the documentation changes > and enforced rules around trimming and zero length connector names? This is > a change to existing behavior, even if it is quite small and probably won't > even be noticed by many people.. > > best regards, > Sönke > > On Thu, Nov 9, 2017 at 9:10 PM, Randall Hauch <rha...@gmail.com> wrote: > > > 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 > > >> > > > > > > > > > > > > -- > Sönke Liebau > Partner > Tel. +49 179 7940878 > OpenCore GmbH & Co. KG - Thomas-Mann-Straße 8 - 22880 Wedel - Germany >