)]}'
{"guidelines/tags.rst":[{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"c197601e78c9044b9fa73c7c82fba52541d93c27","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Tags are case sensitive."},{"line_number":59,"context_line":"* Letters and numbers are allowed to be in a tag name."},{"line_number":60,"context_line":"* The following characters are allowed to be in a tag name: + - \u003d . _ : @"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Character Encoding for Tags"},{"line_number":63,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_9671bfaa","line":60,"updated":"2016-02-05 15:08:30.000000000","message":"considering the removal of the language about \",\" not being acceptable, i think we should list the characters that are *not* allowed as well.","commit_id":"4b21a5d985af0d812f367ee77b858efcd627d68a"},{"author":{"_account_id":18675,"name":"Sharath Rao","email":"sharath.rao@ericsson.com","username":"sharath.rao"},"change_message_id":"2dc50305fdc15f4246510b3fa5dbebe12e3cdc32","unresolved":false,"context_lines":[{"line_number":58,"context_line":"* Tags are case sensitive."},{"line_number":59,"context_line":"* Letters and numbers are allowed to be in a tag name."},{"line_number":60,"context_line":"* The following characters are allowed to be in a tag name: + - \u003d . _ : @"},{"line_number":61,"context_line":"* All other characters (like , / ? etc) are **not** allowed to be in a tag name"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Character Encoding for Tags"},{"line_number":64,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a5ae5dd_adda61e6","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":79},"updated":"2016-02-05 17:11:06.000000000","message":"Misplaced Brackets.. Should it be \"All other characters like (,..) instead of (like , ??","commit_id":"c96f06aa2cc17ce7851565d9c43f414024fb5d63"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"07f1c45214a751b8adec68a0aa195195680c8260","unresolved":false,"context_lines":[{"line_number":58,"context_line":"* Tags are case sensitive."},{"line_number":59,"context_line":"* Letters and numbers are allowed to be in a tag name."},{"line_number":60,"context_line":"* The following characters are allowed to be in a tag name: + - \u003d . _ : @"},{"line_number":61,"context_line":"* All other characters (like , / ? etc) are **not** allowed to be in a tag name"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Character Encoding for Tags"},{"line_number":64,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a5ae5dd_a26a6beb","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":79},"in_reply_to":"5a5ae5dd_adda61e6","updated":"2016-02-05 18:53:15.000000000","message":"ok, but I think \"All other characters like ( , / ? )\" is confusing. It may mean that brackets are not allowed too","commit_id":"c96f06aa2cc17ce7851565d9c43f414024fb5d63"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"fb3be1206bd9bfd117dfeed7f7f700e2a2ed836b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"* Tags are case sensitive."},{"line_number":59,"context_line":"* Letters and numbers are allowed to be in a tag name."},{"line_number":60,"context_line":"* The following characters are allowed to be in a tag name: + - \u003d . _ : @"},{"line_number":61,"context_line":"* All other characters are **not** allowed to be in a tag name"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Character Encoding for Tags"},{"line_number":64,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_66bc7506","line":61,"updated":"2016-02-06 09:12:11.000000000","message":"While this proposal sounds interesting, I don\u0027t agree to such a restriction. The main reason behind this proposal is that some characters are making  it difficult to parse the urls. However, there many many other cases where users may want to use unicode characters for tags.\n\nA better way to solve this problem could be just use urlencode to encode tag strings.","commit_id":"74d97c50464587193acfac57eb52b50faa7a9ff6"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"724c336a6e9016aff09e1b5a247e0c937fd5b355","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    encoding this character. The problem is that server will handle \u0027%2F\u0027 as"},{"line_number":68,"context_line":"    \u0027/\u0027 even though \u0027/\u0027 is encoded. It\u0027s a problem of poor server"},{"line_number":69,"context_line":"    implementation. To escape problems with handling URLs character \u0027/\u0027 is"},{"line_number":70,"context_line":"    forbidden in tag names."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Character Encoding for Tags"},{"line_number":73,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dae33548_19ba6d0a","line":70,"updated":"2016-02-17 11:23:45.000000000","message":"Chris, thank you for comments!\n\n\"many servers and frameworks fail to work with it correctly. I think this is an important point to make clear in the guideline so that people understand why the guideline exists.\"\n\nI pointed why \u0027/\u0027 is forbidden here. Do you think it is not enough?","commit_id":"dc8e8af493b7bd16b3e8c4fc39d8bc649dfda9b1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"60eaaa64494eac2f17cb97bf7f2f5f08a9c20757","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    encoding this character. The problem is that server will handle \u0027%2F\u0027 as"},{"line_number":68,"context_line":"    \u0027/\u0027 even though \u0027/\u0027 is encoded. It\u0027s a problem of poor server"},{"line_number":69,"context_line":"    implementation. To escape problems with handling URLs character \u0027/\u0027 is"},{"line_number":70,"context_line":"    forbidden in tag names."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Character Encoding for Tags"},{"line_number":73,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dae33548_59519535","line":70,"in_reply_to":"dae33548_19ba6d0a","updated":"2016-02-17 11:33:44.000000000","message":"No, that\u0027s good, I had missed this. My previous comment was just in response to the thing I was quoting, trying to clarify that it was neither a Nova nor OpenStack problem.","commit_id":"dc8e8af493b7bd16b3e8c4fc39d8bc649dfda9b1"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"556c2dc1e41cdd4a48aaf33a6ceb5c2c2085c610","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    Character \u0027/\u0027 was forbidden because some servers have a problem with"},{"line_number":67,"context_line":"    encoding this character. The problem is that server will handle \u0027%2F\u0027 as"},{"line_number":68,"context_line":"    \u0027/\u0027 even though \u0027/\u0027 is encoded. It\u0027s a problem of poor server"},{"line_number":69,"context_line":"    implementation. To escape problems with handling URLs character \u0027/\u0027 is"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dae33548_7a98a6c0","line":66,"updated":"2016-02-17 21:26:21.000000000","message":"i think the beginning of this sentence should be changed to:\n\n    \"The \u0027/\u0027 character is forbidden ....\"","commit_id":"5fd332295981189bf8f375c5762d336eafd947f9"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"556c2dc1e41cdd4a48aaf33a6ceb5c2c2085c610","unresolved":false,"context_lines":[{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    Character \u0027/\u0027 was forbidden because some servers have a problem with"},{"line_number":67,"context_line":"    encoding this character. The problem is that server will handle \u0027%2F\u0027 as"},{"line_number":68,"context_line":"    \u0027/\u0027 even though \u0027/\u0027 is encoded. It\u0027s a problem of poor server"},{"line_number":69,"context_line":"    implementation. To escape problems with handling URLs character \u0027/\u0027 is"},{"line_number":70,"context_line":"    forbidden in tag names."}],"source_content_type":"text/x-rst","patch_set":11,"id":"dae33548_faeaf60d","line":67,"updated":"2016-02-17 21:26:21.000000000","message":"s/that server/that the server/","commit_id":"5fd332295981189bf8f375c5762d336eafd947f9"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"9ef8b81dae83d9f6d9c0359f20785158eeaf82eb","unresolved":false,"context_lines":[{"line_number":59,"context_line":"* \u0027/\u0027 is **not** allowed to be in a tag name"},{"line_number":60,"context_line":"* Comma is **not** allowed to be in a tag name in order to simplify requests"},{"line_number":61,"context_line":"  that specify lists of tags"},{"line_number":62,"context_line":"* All other characters are allowed to be in a tag name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bae84128_59532e6b","line":62,"updated":"2016-02-23 19:10:28.000000000","message":"I still feel that a reference and restriction to RFC 3986 is necessary here. Given that we already have one decoding issue identified, what happens if someone includes %3F (?), %26 (\u0026), %23 (#), or any of the other URI delimiters? They might work now, but without explicit test coverage ensuring that these encoded characters work, it could break at any time.","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"53f9a76b5a60b617b690e137d5685a821172339e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"* \u0027/\u0027 is **not** allowed to be in a tag name"},{"line_number":60,"context_line":"* Comma is **not** allowed to be in a tag name in order to simplify requests"},{"line_number":61,"context_line":"  that specify lists of tags"},{"line_number":62,"context_line":"* All other characters are allowed to be in a tag name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bae84128_2716c34b","line":62,"updated":"2016-02-24 17:07:14.000000000","message":"The specific issue with %2F is that because servers decode it when creating PATH_INFO, any routing which is done on PATH_INFO (it usually is) will break. With %3F and %26 and %23 this isn\u0027t an issue. They will decode to the originals but still be in PATH_INFO correctly. where they are used in their decoded form they will be treated correctly. For example a raw \u0027?\u0027 will introduce the QUERY_STRING and signal the end of the PATH_INFO and the url and expectations of what the url should be will be aligned.\n\nSo we have a problem (with %2f) in requests like \u0027PUT /servers/1234567890/tags/qux%2fmoo\u0027. That will result in a 404.\n\nI agree with you that we probably need to be more specific about the reasons for why these restrictions and we ought to also explore whether %2f, %26 and %23 impact those situations where tags are used as query parameters, not path segments.","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"4731828929659e801a629aaa7f1fa56b1124725e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"* \u0027/\u0027 is **not** allowed to be in a tag name"},{"line_number":60,"context_line":"* Comma is **not** allowed to be in a tag name in order to simplify requests"},{"line_number":61,"context_line":"  that specify lists of tags"},{"line_number":62,"context_line":"* All other characters are allowed to be in a tag name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"3afc51ec_3562e23e","line":62,"in_reply_to":"3afc51ec_c4d207d2","updated":"2016-03-15 07:16:47.000000000","message":"Yes, these cases works as expected","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"1697038c3e6d3f52ec2c98bc702d776b6c39fd54","unresolved":false,"context_lines":[{"line_number":59,"context_line":"* \u0027/\u0027 is **not** allowed to be in a tag name"},{"line_number":60,"context_line":"* Comma is **not** allowed to be in a tag name in order to simplify requests"},{"line_number":61,"context_line":"  that specify lists of tags"},{"line_number":62,"context_line":"* All other characters are allowed to be in a tag name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bae84128_3c623c17","line":62,"in_reply_to":"bae84128_2716c34b","updated":"2016-02-25 02:03:50.000000000","message":"Chris, good point about situations where tags are used as query parameters. It can happen is a search requests. I need to check it","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"7e3791dcab83c719a6ab08fe6514d5c04f2da90b","unresolved":false,"context_lines":[{"line_number":59,"context_line":"* \u0027/\u0027 is **not** allowed to be in a tag name"},{"line_number":60,"context_line":"* Comma is **not** allowed to be in a tag name in order to simplify requests"},{"line_number":61,"context_line":"  that specify lists of tags"},{"line_number":62,"context_line":"* All other characters are allowed to be in a tag name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bae84128_c85b712d","line":62,"in_reply_to":"bae84128_3c623c17","updated":"2016-02-25 13:11:48.000000000","message":"Request with %3F (?), %26 (\u0026), %23 (#) works fine:\n\n curl -g -i ***** http://127.0.0.1:8774/v2.1/7388a229770e432caedf3bd28c625772/servers?tags\u003dta%3Fg1,ta%26g1,ta%23g1\u0026ta%26g1\n\n {\"servers\": [{\"id\": \"fee2ee50-059d-4690-b639-cc2e0e68a418\", ******}","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"247f2a2158be3510e6c7ac469f20a9756faad1eb","unresolved":false,"context_lines":[{"line_number":59,"context_line":"* \u0027/\u0027 is **not** allowed to be in a tag name"},{"line_number":60,"context_line":"* Comma is **not** allowed to be in a tag name in order to simplify requests"},{"line_number":61,"context_line":"  that specify lists of tags"},{"line_number":62,"context_line":"* All other characters are allowed to be in a tag name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. note::"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"3afc51ec_c4d207d2","line":62,"in_reply_to":"bae84128_c85b712d","updated":"2016-03-14 19:05:54.000000000","message":"Just for clarity- The following also work as expected?\n\n/servers/1234567890/tags/qux%3Fmoo (qux?moo)\n/servers/1234567890/tags/qux%23moo (qux#moo)","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8aa9f7d3f04dbe03d1a17f0dc9cbbeb98af9e406","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    The \u0027/\u0027 character is forbidden because some servers have a problem with"},{"line_number":67,"context_line":"    encoding this character. The problem is that the server will handle \u0027%2F\u0027"},{"line_number":68,"context_line":"    as \u0027/\u0027 even though \u0027/\u0027 is encoded. It\u0027s a problem of poor server"},{"line_number":69,"context_line":"    implementation. To escape problems with handling URLs character \u0027/\u0027 is"},{"line_number":70,"context_line":"    forbidden in tag names."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Character Encoding for Tags"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7af24918_21aa3685","line":69,"updated":"2016-03-04 14:06:46.000000000","message":"s/escape/avoid/","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"7e3791dcab83c719a6ab08fe6514d5c04f2da90b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    encoding this character. The problem is that the server will handle \u0027%2F\u0027"},{"line_number":68,"context_line":"    as \u0027/\u0027 even though \u0027/\u0027 is encoded. It\u0027s a problem of poor server"},{"line_number":69,"context_line":"    implementation. To escape problems with handling URLs character \u0027/\u0027 is"},{"line_number":70,"context_line":"    forbidden in tag names."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Character Encoding for Tags"},{"line_number":73,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bae84128_2872dd7c","line":70,"updated":"2016-02-25 13:11:48.000000000","message":"Chris, about the reasons of restrictions: do you mean that we should mention here that \u0027/\u0027 was forbidden because \"servers decode it when creating PATH_INFO, any routing which is done on PATH_INFO (it usually is) will break... \" ? Or something else?","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8aa9f7d3f04dbe03d1a17f0dc9cbbeb98af9e406","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    encoding this character. The problem is that the server will handle \u0027%2F\u0027"},{"line_number":68,"context_line":"    as \u0027/\u0027 even though \u0027/\u0027 is encoded. It\u0027s a problem of poor server"},{"line_number":69,"context_line":"    implementation. To escape problems with handling URLs character \u0027/\u0027 is"},{"line_number":70,"context_line":"    forbidden in tag names."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Character Encoding for Tags"},{"line_number":73,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7af24918_c1943238","line":70,"in_reply_to":"bae84128_2872dd7c","updated":"2016-03-04 14:06:46.000000000","message":"I think what\u0027s in the note now, with the \"avoid\" fix is good enough for explaining the situation with \u0027/\u0027","commit_id":"23e6485deb41b36f94f0dda54c9fff45eda2f0dd"}]}
