)]}'
{"api/v3/identity-api-v3.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9618e18439539a6e77e14b44638ff097214d3001","unresolved":false,"context_lines":[{"line_number":6403,"context_line":"New if version 3.7:  A user can merge multiple existing policy files into a"},{"line_number":6404,"context_line":"single policy file."},{"line_number":6405,"context_line":""},{"line_number":6406,"context_line":"The \"conflict_strategy\"parameter on each file included indicates how"},{"line_number":6407,"context_line":"to treat conflicts between existing rules. The strategies are:"},{"line_number":6408,"context_line":""},{"line_number":6409,"context_line":"* \"FAIL\": If two rules have the same key, the API will return an error code."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_507ed7e4","line":6406,"range":{"start_line":6406,"start_character":4,"end_line":6406,"end_character":32},"updated":"2016-03-22 01:20:58.000000000","message":"add a space after the quote","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"4e2db0b00e645ce9feef1435fcb9c6dedd99bbe8","unresolved":false,"context_lines":[{"line_number":6407,"context_line":"to treat conflicts between existing rules. The strategies are:"},{"line_number":6408,"context_line":""},{"line_number":6409,"context_line":"* \"FAIL\": If two rules have the same key, the API will return an error code."},{"line_number":6410,"context_line":"* \"OVERRIDE\": If two rules have the same key, the rule from the later file in"},{"line_number":6411,"context_line":"  the list will over-write the rule specified by the earlier file."},{"line_number":6412,"context_line":"* \"MAINTAIN\": The first specification of a rule will be maintained,"},{"line_number":6413,"context_line":"  and conflicting definitions will be discarded."},{"line_number":6414,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a9d85d2_435f260e","line":6411,"range":{"start_line":6410,"start_character":0,"end_line":6411,"end_character":66},"updated":"2016-06-21 15:36:02.000000000","message":"this seems to be the current behavior of oslo policy in the case of having multiple policy files","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9618e18439539a6e77e14b44638ff097214d3001","unresolved":false,"context_lines":[{"line_number":6450,"context_line":"    }"},{"line_number":6451,"context_line":""},{"line_number":6452,"context_line":""},{"line_number":6453,"context_line":"Create merged policy"},{"line_number":6454,"context_line":"^^^^^^^^^^^^^^^^^^^^"},{"line_number":6455,"context_line":"::"},{"line_number":6456,"context_line":""},{"line_number":6457,"context_line":"    POST /policies/merge"},{"line_number":6458,"context_line":""},{"line_number":6459,"context_line":"Relationship:"},{"line_number":6460,"context_line":"``http://docs.openstack.org/api/openstack-identity/3/rel/policies``"},{"line_number":6461,"context_line":""},{"line_number":6462,"context_line":"Request:"},{"line_number":6463,"context_line":""},{"line_number":6464,"context_line":"::"},{"line_number":6465,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_50f37773","line":6462,"range":{"start_line":6453,"start_character":0,"end_line":6462,"end_character":8},"updated":"2016-03-22 01:20:58.000000000","message":"definitely need more details about the operation here... \n\nwill a new policy be created?\n\nwhat is the default conflict_strategy if none is specified? (i guess this may be an implementation details)","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9618e18439539a6e77e14b44638ff097214d3001","unresolved":false,"context_lines":[{"line_number":6465,"context_line":""},{"line_number":6466,"context_line":"   {"},{"line_number":6467,"context_line":"       \"policy_merge:{"},{"line_number":6468,"context_line":"           \"conflict_strategy\": \"FAIL\","},{"line_number":6469,"context_line":"           policies: ["},{"line_number":6470,"context_line":"                {\u0027id\u0027: \"--policy-id--\"},"},{"line_number":6471,"context_line":"                {\u0027id\u0027:\u0027\"--policy-id--\", \"conflict_strategy\": \"MAINTAIN\"},"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_50653743","line":6468,"range":{"start_line":6468,"start_character":12,"end_line":6468,"end_character":29},"updated":"2016-03-22 01:20:58.000000000","message":"should this be at a different level?","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9618e18439539a6e77e14b44638ff097214d3001","unresolved":false,"context_lines":[{"line_number":6466,"context_line":"   {"},{"line_number":6467,"context_line":"       \"policy_merge:{"},{"line_number":6468,"context_line":"           \"conflict_strategy\": \"FAIL\","},{"line_number":6469,"context_line":"           policies: ["},{"line_number":6470,"context_line":"                {\u0027id\u0027: \"--policy-id--\"},"},{"line_number":6471,"context_line":"                {\u0027id\u0027:\u0027\"--policy-id--\", \"conflict_strategy\": \"MAINTAIN\"},"},{"line_number":6472,"context_line":"                {\u0027id\u0027:\u0027\"--policy-id--\", \"conflict_strategy\": \"OVERRIDE\"},"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_101e1fba","line":6469,"range":{"start_line":6469,"start_character":11,"end_line":6469,"end_character":19},"updated":"2016-03-22 01:20:58.000000000","message":"needs quotes to make it valid JSON","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"}],"specs/backlog/policy-merge.rst":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5380ae1418baae78b61cc5e6ff1f23871a82956c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"With the various APIs for associating policy files with endpoints and"},{"line_number":33,"context_line":"services, Keystone now has a way to act as a system of record for"},{"line_number":34,"context_line":"policy. However, the policy files themselves are still opaque blobs,"},{"line_number":35,"context_line":"disjoint between services."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed Change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_c149d732","line":35,"updated":"2016-06-01 16:22:17.000000000","message":"It sounds like this is changing with alaski\u0027s work treat policy like configuration in oslo.policy. Maybe this spec needs to take that approach into account once that work lands in oslo.policy?","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"4e2db0b00e645ce9feef1435fcb9c6dedd99bbe8","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Proposed Change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Add a new API for creating a new policy file by merging a set of existing"},{"line_number":41,"context_line":"policy files."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For an initial implementation, Keystone will assume all of the policy files"},{"line_number":44,"context_line":"are JSON files.  They will be parsed, and the set of rules merged into a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a9d85d2_e3de123e","line":41,"range":{"start_line":40,"start_character":0,"end_line":41,"end_character":13},"updated":"2016-06-21 15:36:02.000000000","message":"Policies are blobs, adding to keystone the capability to handle and make operations on blobs seems odd to me. Why can\u0027t deployers do this locally before uploading policies to keystone ?\n\nThis seems to be the work for a tool to do rather than keystone server","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9618e18439539a6e77e14b44638ff097214d3001","unresolved":false,"context_lines":[{"line_number":48,"context_line":"between existing rules. The strategies are"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"*  FAIL: If two rules have the same key, the API will return an error code."},{"line_number":51,"context_line":"*  OVERRIDE: If two rules have the same key, the rule from the later"},{"line_number":52,"context_line":"   file in the list will over-write the rule specified by the earlier file."},{"line_number":53,"context_line":"*  MAINTAIN: The first specification of a rule will be maintained,"},{"line_number":54,"context_line":"   and conflicting definitions will be discarded."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_d0ff8732","line":51,"range":{"start_line":51,"start_character":63,"end_line":51,"end_character":68},"updated":"2016-03-22 01:20:58.000000000","message":"how is \"later\" determined?","commit_id":"f95c41f49e0fe5d673352289e4fb76014a92173b"}]}
