)]}'
{"doc/admin-guide-cloud-rst/source/cross_project.rst":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Cross-Project Features"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Many features are common to all OpenStack services, and are consistent in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_48932efb","line":2,"updated":"2015-07-11 09:19:14.000000000","message":"use sentence style capitalization: Cross-project features","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"7eaac1cab78def92a8337b7ecb7ba4be8f531828","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Cross-project features"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Many features are common to all OpenStack services, and are consistent in"},{"line_number":6,"context_line":"their configuration and deployment patterns. Unless explicitly noted, you can"},{"line_number":7,"context_line":"safely assume that the features in this chapter are supported and configured"},{"line_number":8,"context_line":"in a consistent manner."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_cf74ad69","line":5,"updated":"2015-07-14 14:58:57.000000000","message":"1) all OpenStack -\u003e all the OpenStack\n\n2) I would remove a comma before \u0027and\u0027.","commit_id":"f358a39363bc23f86c8f42243c9e4f555fe0bbf3"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"9bcecc06c26b938505cb0f23d7f7a650e79addfb","unresolved":false,"context_lines":[{"line_number":6,"context_line":"their configuration and deployment patterns. Unless explicitly noted, you can"},{"line_number":7,"context_line":"safely assume that the features in this chapter are supported and configured"},{"line_number":8,"context_line":"in a consistent manner."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":".. toctree::"},{"line_number":11,"context_line":"   :maxdepth: 2"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_1b42c1ae","line":9,"updated":"2015-07-14 20:27:37.000000000","message":"Why do you need a toc tree here?  Or is section going to grow?","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e28395b7e3175f4a7547b21e5b77a002ae521bad","unresolved":false,"context_lines":[{"line_number":6,"context_line":"their configuration and deployment patterns. Unless explicitly noted, you can"},{"line_number":7,"context_line":"safely assume that the features in this chapter are supported and configured"},{"line_number":8,"context_line":"in a consistent manner."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":".. toctree::"},{"line_number":11,"context_line":"   :maxdepth: 2"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_6c4f4634","line":9,"in_reply_to":"9a41bdd9_1b42c1ae","updated":"2015-07-16 06:41:22.000000000","message":"This a top-level \"chapter\" and it might grow.","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"328794b350710e0074423e546e5cc159e7f7e5b6","unresolved":false,"context_lines":[{"line_number":6,"context_line":"their configuration and deployment patterns. Unless explicitly noted, you can"},{"line_number":7,"context_line":"safely assume that the features in this chapter are supported and configured"},{"line_number":8,"context_line":"in a consistent manner."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":".. toctree::"},{"line_number":11,"context_line":"   :maxdepth: 2"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_2a442a72","line":9,"in_reply_to":"9a41bdd9_6c4f4634","updated":"2015-07-27 17:50:18.000000000","message":"Agreed- there are other common features, such as request-id, that could stand to fall under this heading.","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"}],"doc/admin-guide-cloud-rst/source/cross_project_cors.rst":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Cross-Origin Resource Sharing"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OpenStack supports CORS_, or Cross Origin Resource Sharing, a W3C"},{"line_number":8,"context_line":"specification specifying a contract by which a browser\u0027s single-origin policy"},{"line_number":9,"context_line":"may be relaxed. To a layman, it permits a browser\u0027s javascript engine to"},{"line_number":10,"context_line":"access an API that does not reside on the same domain, protocol, or port."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_28c10ae5","line":7,"updated":"2015-07-11 09:19:14.000000000","message":"We have CORS in the glossary, what about linking to it:\n\n:term:`Cross-Origin Resource Sharing (CORS)`","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":15,"context_line":"can, however, also be misused by malicious actors; please review the"},{"line_number":16,"context_line":"security advisory below for more information."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Enabling CORS_ via configuration"},{"line_number":19,"context_line":"--------------------------------"},{"line_number":20,"context_line":"In most cases, CORS support is build directly into the service itself. To"},{"line_number":21,"context_line":"enable it, simply follow the configuration options exposed in the default"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_68a71250","line":18,"updated":"2015-07-11 09:19:14.000000000","message":"Let\u0027s not add links from the title, remove the _","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":16,"context_line":"security advisory below for more information."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Enabling CORS_ via configuration"},{"line_number":19,"context_line":"--------------------------------"},{"line_number":20,"context_line":"In most cases, CORS support is build directly into the service itself. To"},{"line_number":21,"context_line":"enable it, simply follow the configuration options exposed in the default"},{"line_number":22,"context_line":"configuration file, or add it yourself according to the pattern below.::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_e871e2e1","line":19,"updated":"2015-07-11 09:19:14.000000000","message":"We use ~~~~~~~~~~~~~~~~~~~~~ for second level headings, see https://wiki.openstack.org/wiki/Documentation/Markup_conventions#Headings. Please update the headings","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Enabling CORS_ via configuration"},{"line_number":19,"context_line":"--------------------------------"},{"line_number":20,"context_line":"In most cases, CORS support is build directly into the service itself. To"},{"line_number":21,"context_line":"enable it, simply follow the configuration options exposed in the default"},{"line_number":22,"context_line":"configuration file, or add it yourself according to the pattern below.::"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_c86c1e0b","line":20,"updated":"2015-07-11 09:19:14.000000000","message":"Add it here instead","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":21,"context_line":"enable it, simply follow the configuration options exposed in the default"},{"line_number":22,"context_line":"configuration file, or add it yourself according to the pattern below.::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  [cors]"},{"line_number":25,"context_line":"  allowed_origin\u003dhttps://first_ui.example.com"},{"line_number":26,"context_line":"  max_age\u003d3600"},{"line_number":27,"context_line":"  allow_methods\u003dGET,POST,PUT,DELETE"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_c8b5fe7e","line":24,"updated":"2015-07-11 09:19:14.000000000","message":"Use code-block:: ini to nicer layout - and use spaces around the \"\u003d\", so \"max_age \u003d 3600\".","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"(each name must be unique). The purpose of the suffix to `cors.` is"},{"line_number":36,"context_line":"legibility, we recommend using a reasonable human-readable string::"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    [cors.ironic_webclient]"},{"line_number":39,"context_line":"    # CORS Configuration for a hypothetical ironic webclient, which overrides"},{"line_number":40,"context_line":"    # authentication"},{"line_number":41,"context_line":"    allowed_origin\u003dhttps://ironic.example.com:443"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_88b0568d","line":38,"updated":"2015-07-11 09:19:14.000000000","message":"code-block:: ini as above - and spaces around \"\u003d\"\n\nPlease update the other below as well","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    allowed_origin\u003d*"},{"line_number":52,"context_line":"    allow_methods\u003dGET"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Enabling CORS_ via pastedeploy"},{"line_number":55,"context_line":"------------------------------"},{"line_number":56,"context_line":"In the following services, CORS_ is configured via pastedeploy. In this case,"},{"line_number":57,"context_line":"you must first make sure that OpenStack\u0027s `oslo_middleware` package (version"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_48aa4e1b","line":54,"updated":"2015-07-11 09:19:14.000000000","message":"Let\u0027s not add links to CORS from the title, remove the _","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"52f879e21dde92292b5096ae22250a9da874f3f3","unresolved":false,"context_lines":[{"line_number":69,"context_line":".. note:: To add another domain, simply add another filter."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security Concerns"},{"line_number":73,"context_line":"-----------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"CORS_ specifies a wildcard character `*`, which permits access to all user"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a41bdd9_a8ad1a33","line":72,"updated":"2015-07-11 09:19:14.000000000","message":"lower case concerns - use sentence style capitalization","commit_id":"fee82adc8c932dc2a33fefbf3dcab7e27439ebd6"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"7eaac1cab78def92a8337b7ecb7ba4be8f531828","unresolved":false,"context_lines":[{"line_number":8,"context_line":"   This is a new feature in OpenStack Liberty."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"OpenStack supports :term:`Cross-Origin Resource Sharing (CORS)`, a W3C"},{"line_number":11,"context_line":"specification specifying a contract by which a browser\u0027s single-origin policy"},{"line_number":12,"context_line":"may be relaxed. To a layman, it permits a browser\u0027s javascript engine to"},{"line_number":13,"context_line":"access an API that does not reside on the same domain, protocol, or port."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_d57e7c18","line":11,"updated":"2015-07-14 14:58:57.000000000","message":"could we replace \u0027specifying\u0027 to \u0027defining\u0027 (to avoid tautology)?","commit_id":"f358a39363bc23f86c8f42243c9e4f555fe0bbf3"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"7eaac1cab78def92a8337b7ecb7ba4be8f531828","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   expose_headers \u003d Content-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma,X-Custom-Header"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This method also permits you to define multiple permitted origins. To express"},{"line_number":42,"context_line":"this in your configuration file, first begin with a `[cors]` group as above,"},{"line_number":43,"context_line":"into which you place your default configuration values. Then, add as many"},{"line_number":44,"context_line":"additional configuration groups as necessary, naming them `[cors.{something}]`"},{"line_number":45,"context_line":"(each name must be unique). The purpose of the suffix to `cors.` is"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_83a2fefb","line":42,"updated":"2015-07-14 14:58:57.000000000","message":"Did you intend to highlight `[cors]` with one back-tick wrapping? In the current build, it is neither highlighted nor italic. I would wrap it with 2 back-ticks instead -\u003e ``[cors]``. Please check throughout all the patch (lines 44, 46, 74 etc.).","commit_id":"f358a39363bc23f86c8f42243c9e4f555fe0bbf3"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"7eaac1cab78def92a8337b7ecb7ba4be8f531828","unresolved":false,"context_lines":[{"line_number":73,"context_line":"In other services, CORS is configured via pastedeploy. In this case,"},{"line_number":74,"context_line":"you must first make sure that OpenStack\u0027s `oslo_middleware` package (version"},{"line_number":75,"context_line":"2.4.0 or later) is available in the python environment that is running the"},{"line_number":76,"context_line":"service. Then, add the following configuration block to your paste.ini file."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: ini"},{"line_number":79,"context_line":"   :linenos:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_7567704d","line":76,"updated":"2015-07-14 14:58:57.000000000","message":"could we add a tag :file: ( :file:`paste.ini`) here?","commit_id":"f358a39363bc23f86c8f42243c9e4f555fe0bbf3"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"7eaac1cab78def92a8337b7ecb7ba4be8f531828","unresolved":false,"context_lines":[{"line_number":95,"context_line":"agents, regardless of domain, protocol, or host. While there are valid use"},{"line_number":96,"context_line":"cases for this approach, it also permits a malicious actor to create a"},{"line_number":97,"context_line":"convincing facsimile of a user interface, and trick users into revealing"},{"line_number":98,"context_line":"authentication credentials. Please carefully evaluate your use case, and the"},{"line_number":99,"context_line":"relevant documentation, for any risk to your organization."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":".. note:: The CORS specification does not support using this wildcard as"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_981b4973","line":98,"updated":"2015-07-14 14:58:57.000000000","message":"I would not put a comma after \u0027case\u0027 and after \u0027documentation\u0027 on the next line.","commit_id":"f358a39363bc23f86c8f42243c9e4f555fe0bbf3"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"7eaac1cab78def92a8337b7ecb7ba4be8f531828","unresolved":false,"context_lines":[{"line_number":99,"context_line":"relevant documentation, for any risk to your organization."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":".. note:: The CORS specification does not support using this wildcard as"},{"line_number":102,"context_line":"          part of a URI. Setting allowed-origin to `*` would work, while"},{"line_number":103,"context_line":"          `*.openstack.org` would not."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Troubleshooting"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_f83935d8","line":102,"updated":"2015-07-14 14:58:57.000000000","message":"part -\u003e a part","commit_id":"f358a39363bc23f86c8f42243c9e4f555fe0bbf3"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"specification defining a contract by which a browser\u0027s single-origin policy"},{"line_number":12,"context_line":"may be relaxed. To a layman, it permits a browser\u0027s javascript engine to"},{"line_number":13,"context_line":"access an API that does not reside on the same domain, protocol, or port."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This feature is most useful to organizations which maintain one or more"},{"line_number":16,"context_line":"custom user interfaces for OpenStack, as it permits those interfaces to access"},{"line_number":17,"context_line":"the services directly, rather than requiring an intermediate proxy server. It"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_f87930c9","line":14,"updated":"2015-07-14 16:03:50.000000000","message":"In this entry section, please also cross reference CORS support in Object storage, such as http://docs.openstack.org/kilo/config-reference/content/object-storage-cores.html and also in the Security Guide at http://docs.openstack.org/security-guide/content/dashboard.html","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"security advisory below for more information."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Enabling CORS via configuration"},{"line_number":22,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":".. note::"},{"line_number":25,"context_line":"   This configuration method is supported by the following services: None."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_f8d37002","line":22,"updated":"2015-07-14 16:03:50.000000000","message":"The word \"via\" is difficult to translate. Could you rephrase throughout? I suggest \"Enabling CORS with ...\"","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":".. note::"},{"line_number":25,"context_line":"   This configuration method is supported by the following services: None."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"In most cases, CORS support is built directly into the service itself. To"},{"line_number":28,"context_line":"enable it, simply follow the configuration options exposed in the default"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_b89de867","line":25,"updated":"2015-07-14 16:03:50.000000000","message":"This note is a strange way of indicating no services support this config method. How about further explanation why this note is here? Something like:\n\nThis configuration method is documented here so that OpenStack services can provide this type of configuration.\n\n(If that\u0027s what you mean by unsupported.)","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"78cdd9059f2a8e8706fde912d67844fe8e86a4af","unresolved":false,"context_lines":[{"line_number":22,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":".. note::"},{"line_number":25,"context_line":"   This configuration method is supported by the following services: None."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"In most cases, CORS support is built directly into the service itself. To"},{"line_number":28,"context_line":"enable it, simply follow the configuration options exposed in the default"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_ee564a5b","line":25,"in_reply_to":"9a41bdd9_b89de867","updated":"2015-07-27 17:05:57.000000000","message":"Well, previously I had a sentence there that read \"It\u0027s supported in the following services, X, Y, Z, etc\", however since I haven\u0027t landed any of those patches yet, I can\u0027t actually say that\u0027s the case.\n\nFor the time being, I\u0027ll remove this, and once I manage to land the patches I can update this with a followup patch.","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"bbb55793a312404e50edb68801b271fc9312ee70","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   expose_headers \u003d Content-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma,X-Custom-Header"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This method also permits you to define multiple permitted origins. To express"},{"line_number":42,"context_line":"this in your configuration file, first begin with a :code:`[cors]`` group as"},{"line_number":43,"context_line":"above, into which you place your default configuration values. Then, add as"},{"line_number":44,"context_line":"many additional configuration groups as necessary, naming them"},{"line_number":45,"context_line":":code:`[cors.{something}]` (each name must be unique). The purpose of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_b84c08c9","line":42,"updated":"2015-07-14 16:09:47.000000000","message":":code:`[cors]`` - 1 excess back-tick here.","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   allow_methods \u003d GET"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Enabling CORS via pastedeploy"},{"line_number":69,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":".. note::"},{"line_number":72,"context_line":"   This configuration method is supported by the following services: None."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_38fc7871","line":69,"updated":"2015-07-14 16:03:50.000000000","message":"Same edit as above regarding the use of \"via\"","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":".. note::"},{"line_number":72,"context_line":"   This configuration method is supported by the following services: None."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"In other services, CORS is configured via pastedeploy. In this case,"},{"line_number":75,"context_line":"you must first make sure that OpenStack\u0027s :code:`oslo_middleware` package"},{"line_number":76,"context_line":"(version 2.4.0 or later) is available in the python environment that is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_18f8947a","line":73,"updated":"2015-07-14 16:03:50.000000000","message":"Again I\u0027d like the note to make more sense, why document this if no services support this config?","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"In other services, CORS is configured via pastedeploy. In this case,"},{"line_number":75,"context_line":"you must first make sure that OpenStack\u0027s :code:`oslo_middleware` package"},{"line_number":76,"context_line":"(version 2.4.0 or later) is available in the python environment that is"},{"line_number":77,"context_line":"running the service. Then, add the following configuration block to your"},{"line_number":78,"context_line":":file:`paste.ini` file."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_b8f08892","line":76,"updated":"2015-07-14 16:03:50.000000000","message":"Python","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":147,"context_line":"By using :code:`curl` or a similar tool, you can trigger a CORS response with a"},{"line_number":148,"context_line":"properly constructed HTTP request. An example request and response might look"},{"line_number":149,"context_line":"like this::"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  Request:"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"  curl -I -X OPTIONS https://api.example.com/api -H \"Origin: https://ui.example.com\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_3881d8c3","line":150,"updated":"2015-07-14 16:03:50.000000000","message":"Should Request: and Response: also have the \"code\" formatting? That\u0027s what\u0027ll happen with the :: above. \n\nPerhaps use Request:: and Response:: for a better effect.","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"60e7d13a3d94903b34e5e1e4817e132e003658f2","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  Access-Control-Max-Age: 3600"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"If the service does not return any access control headers, check the service"},{"line_number":166,"context_line":"log for an indication on what went wrong."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a41bdd9_1802d43d","line":166,"updated":"2015-07-14 16:03:50.000000000","message":"Perhaps include one example log file name, ironic for example.","commit_id":"ded7985f97d516af76ea4b3010aabb601b2a9623"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"9bcecc06c26b938505cb0f23d7f7a650e79addfb","unresolved":false,"context_lines":[{"line_number":10,"context_line":"OpenStack supports :term:`Cross-Origin Resource Sharing (CORS)`, a W3C"},{"line_number":11,"context_line":"specification defining a contract by which a browser\u0027s single-origin policy"},{"line_number":12,"context_line":"may be relaxed. To a layman, it permits a browser\u0027s javascript engine to"},{"line_number":13,"context_line":"access an API that does not reside on the same domain, protocol, or port."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This feature is most useful to organizations which maintain one or more"},{"line_number":16,"context_line":"custom user interfaces for OpenStack, as it permits those interfaces to access"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_901470a0","line":13,"updated":"2015-07-14 20:27:37.000000000","message":"Can you reword the phrase, \u0027To a layman\u0027, and possibly provide a link to the spec w3c spec?  It is supported by any Web client, not just browsers?","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"9bcecc06c26b938505cb0f23d7f7a650e79addfb","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   expose_headers \u003d Content-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma,X-Custom-Header"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"This method also permits you to define multiple permitted origins. To express"},{"line_number":49,"context_line":"this in your configuration file, first begin with a :code:`[cors]` group as"},{"line_number":50,"context_line":"above, into which you place your default configuration values. Then, add as"},{"line_number":51,"context_line":"many additional configuration groups as necessary, naming them"},{"line_number":52,"context_line":":code:`[cors.{something}]` (each name must be unique). The purpose of the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_fb183d77","line":49,"updated":"2015-07-14 20:27:37.000000000","message":"Re-work the permits to:\nThis method also enables you to define multiple origins [accepted by the service].","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"9bcecc06c26b938505cb0f23d7f7a650e79addfb","unresolved":false,"context_lines":[{"line_number":89,"context_line":"   allowed_origin\u003dhttps://website.example.com:443"},{"line_number":90,"context_line":"   max_age\u003d3600"},{"line_number":91,"context_line":"   allow_methods\u003dGET,POST,PUT,DELETE"},{"line_number":92,"context_line":"   allow_headers\u003dContent-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma,X-Custom-Header"},{"line_number":93,"context_line":"   expose_headers\u003dContent-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma,X-Custom-Header"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":".. note:: To add another domain, simply add another filter."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_fb2fdd85","line":92,"updated":"2015-07-14 20:27:37.000000000","message":"Add spaces between variable equal sign and value?","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"9bcecc06c26b938505cb0f23d7f7a650e79addfb","unresolved":false,"context_lines":[{"line_number":120,"context_line":"The CORS middleware used by OpenStack provides verbose debug logging that"},{"line_number":121,"context_line":"should reveal most configuration problems. Here are some example log"},{"line_number":122,"context_line":"messages, and how to resolve them."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"`CORS request from origin \u0027http://foo.com\u0027 not permitted.`"},{"line_number":125,"context_line":"  A request was received from the origin \u0027http://foo.com\u0027, however this"},{"line_number":126,"context_line":"  origin was not found in the permitted list. The cause may be a superfluous"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_3b96a593","line":123,"updated":"2015-07-14 20:27:37.000000000","message":"If this is log output, should you use the double colon directive?\n::","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"6547492446f2aa6e9b4988bcc06f909d430f7e52","unresolved":false,"context_lines":[{"line_number":120,"context_line":"The CORS middleware used by OpenStack provides verbose debug logging that"},{"line_number":121,"context_line":"should reveal most configuration problems. Here are some example log"},{"line_number":122,"context_line":"messages, and how to resolve them."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"`CORS request from origin \u0027http://foo.com\u0027 not permitted.`"},{"line_number":125,"context_line":"  A request was received from the origin \u0027http://foo.com\u0027, however this"},{"line_number":126,"context_line":"  origin was not found in the permitted list. The cause may be a superfluous"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_bb672ab6","line":123,"in_reply_to":"3a50d1a3_fb35b2da","updated":"2015-07-27 17:55:04.000000000","message":"I guess Karen was looking for \"code\" markup - but this does not work.\n\nI suggest to use double quotes like ``CORS...`` which are used for code samples and verbatim text","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"328794b350710e0074423e546e5cc159e7f7e5b6","unresolved":false,"context_lines":[{"line_number":120,"context_line":"The CORS middleware used by OpenStack provides verbose debug logging that"},{"line_number":121,"context_line":"should reveal most configuration problems. Here are some example log"},{"line_number":122,"context_line":"messages, and how to resolve them."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"`CORS request from origin \u0027http://foo.com\u0027 not permitted.`"},{"line_number":125,"context_line":"  A request was received from the origin \u0027http://foo.com\u0027, however this"},{"line_number":126,"context_line":"  origin was not found in the permitted list. The cause may be a superfluous"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_fb35b2da","line":123,"in_reply_to":"9a41bdd9_3b96a593","updated":"2015-07-27 17:50:18.000000000","message":"Could you be more specific with your comment? What are you looking for exactly, what would the markup look like? I\u0027m having a hard time reading your mind on how to actually address this.","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"9bcecc06c26b938505cb0f23d7f7a650e79addfb","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Manually construct a CORS request"},{"line_number":150,"context_line":"---------------------------------"},{"line_number":151,"context_line":"By using :code:`curl` or a similar tool, you can trigger a CORS response with a"},{"line_number":152,"context_line":"properly constructed HTTP request. An example request and response might look"},{"line_number":153,"context_line":"like this."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Request::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_3b20e547","line":152,"updated":"2015-07-14 20:27:37.000000000","message":"Why use :code: here?  How about two backticks, ``curl``?","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e28395b7e3175f4a7547b21e5b77a002ae521bad","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Request::"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  curl -I -X OPTIONS https://api.example.com/api -H \"Origin: https://ui.example.com\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Response::"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_ec103602","line":157,"updated":"2015-07-16 06:41:22.000000000","message":"Add a \"$\" to mark it as input.","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"9bcecc06c26b938505cb0f23d7f7a650e79addfb","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Request::"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  curl -I -X OPTIONS https://api.example.com/api -H \"Origin: https://ui.example.com\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Response::"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  HTTP/1.1 204 No Content"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_fb9a7d6d","line":158,"updated":"2015-07-14 20:27:37.000000000","message":"Root privilege?\nThis is console output?  I have not looked at the gen\u0027ed files yet.","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"328794b350710e0074423e546e5cc159e7f7e5b6","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Request::"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  curl -I -X OPTIONS https://api.example.com/api -H \"Origin: https://ui.example.com\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Response::"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  HTTP/1.1 204 No Content"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_45a887db","line":158,"in_reply_to":"9a41bdd9_fb9a7d6d","updated":"2015-07-27 17:50:18.000000000","message":"Yes, this is console output, and does not require root.","commit_id":"c6ad2865ad7f6ec309e06960ec450f3dc0b1a196"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ed8b6e553b73d4a71d8d9bf35fcb7efa3539be2a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"   implementations:"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"   * `CORS in Object Storage \u003chttp://docs.openstack.org/kilo/config-reference/content/object-storage-cores.html\u003e`_"},{"line_number":28,"context_line":"   * `CORS in Dashboard \u003chttp://docs.openstack.org/security-guide/content/dashboard.html\u003e`_"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Enabling CORS with configuration"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a50d1a3_b5fdf2b2","line":28,"updated":"2015-07-27 19:43:34.000000000","message":"lowercase dashboard according to our conventions","commit_id":"d7a020ccf6158c20065cc85c8251d11ed64d3f74"}]}
