)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1ff06123ad6e2475364c26ba303e3ab02ef5783c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-08-14 13:03:22 +1200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reparent Projects"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Icad02da278191ab6b5885f2d427e435d512790cf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3fa7e38b_b33cc630","line":8,"updated":"2019-11-13 20:58:54.000000000","message":"Add Related-bug: #1840090","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"faf5b1d8dafaacc6aec56ccc7beaafc6dd0ce54a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"bc7e3041_700b7daf","updated":"2021-10-12 03:40:06.000000000","message":"@adam feel free to submit a new version of the patch yourself (it was your patch originally :P).","commit_id":"157f74d0ce39a93bc9b1a3623570706a0ebe187b"}],"specs/keystone/backlog/reparent-projects.rst":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1ff06123ad6e2475364c26ba303e3ab02ef5783c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3fa7e38b_d32062fb","updated":"2019-11-13 20:58:54.000000000","message":"If someone is ready to take on this work this cycle, please propose it under the ussuri/ directory instead of backlog/.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"93abe765f1d8848f20496651b66f958a55b62a16","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_5fca1e6f","line":43,"range":{"start_line":43,"start_character":36,"end_line":43,"end_character":46},"updated":"2020-01-20 19:00:12.000000000","message":"Can the new parent be a domain?","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1ff06123ad6e2475364c26ba303e3ab02ef5783c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_5315529a","line":43,"updated":"2019-11-13 20:58:54.000000000","message":"This isn\u0027t very RESTful, is there a reason to have this /reparent action instead of allowing a PATCH to update parent_id?\n\nAdam\u0027s original proposal used a keystone-manage command instead of exposing it as an API, could you document the reason not to do it that way in the alternatives section?","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ab39d8bf589871cb84bfc64907aecfa642976ea3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_c5006d02","line":43,"range":{"start_line":43,"start_character":36,"end_line":43,"end_character":46},"in_reply_to":"3fa7e38b_0ac3f407","updated":"2020-01-21 19:01:31.000000000","message":"I want to clarify, this is intended to be system-administrator-specific, right?\n\nI worry about an edge case where users might inject projects into domains they\u0027re not a member of.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f5788f571145f644236054ed04528781840c1f1b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_0ac3f407","line":43,"range":{"start_line":43,"start_character":36,"end_line":43,"end_character":46},"in_reply_to":"3fa7e38b_343f40b3","updated":"2020-01-21 18:47:23.000000000","message":"Since projects can already have a domain as a parent I would also expect another domain to be allowed as a new parent.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"3cfc829f8047f729fc77484a9edaef4b9fd9e049","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_aa79802f","line":43,"in_reply_to":"3fa7e38b_5315529a","updated":"2019-11-18 05:11:46.000000000","message":"A PATCH on the existing API was my original idea, but I thought a new API would allow us a \u0027noop\u0027 style function built into it, and I believe it is also what Morgan and others suggested as safer.\n\nI\u0027ll add a note eventually about why we decided against the cli variant, but the short version is:\nA cli implementation implies operator access and realistically this kind of action is handled by account managers or people who may have admin access to the cloud, but not the hosts. It also was originally proposed as a cli which couldn\u0027t be done live, or with an active project. An API gives us the most sane long term support, in a place a cloud admin (or system scope user) can access, with sane programmitically parsable responses for a noop style check.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"1383fb200884e39e87dcc82185f4b14b1fb83b28","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_343f40b3","line":43,"range":{"start_line":43,"start_character":36,"end_line":43,"end_character":46},"in_reply_to":"3fa7e38b_5fca1e6f","updated":"2020-01-21 05:35:02.000000000","message":"I don\u0027t know. Is there any terrible implication to allowing projects to move domains? I can\u0027t think of one, and I bet there are useful cases to allowing a project to move to another domain provided the name isn\u0027t already taken there.\n\nScoping for any users who used to use that project may break until they update the project_domain, but that\u0027s all I can imagine. Roles work, users don\u0027t change, and resources don\u0027t care about the domain that I know of.\n\nI know in our case, if we could move projects across domains, it would mean we could one day go to giving each new customer their own domain, and in the process migrate any existing customers to that.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"bb0098bcedb0f5cb0bedfb8262c37635ddecf736","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_cfdf2736","line":43,"range":{"start_line":43,"start_character":36,"end_line":43,"end_character":46},"in_reply_to":"3fa7e38b_a5be91fd","updated":"2020-01-22 00:11:51.000000000","message":"Yes, this should only ever be admin/system only. The expectation is a VERY powerful API, with a way to see the effects it may have (role changes), and allow an admin with knowledge to do the changes.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"4b08716969221aba41a718a1d1b4ec42562c97e3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"sub-projects."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A new API at"},{"line_number":43,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":44,"context_line":"which on GET will respond with a full breakdown of what changes will occur."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_a5be91fd","line":43,"range":{"start_line":43,"start_character":36,"end_line":43,"end_character":46},"in_reply_to":"3fa7e38b_c5006d02","updated":"2020-01-21 19:16:21.000000000","message":"++ let\u0027s make sure it\u0027s spelled out that this new API is specific to system-admins.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1ff06123ad6e2475364c26ba303e3ab02ef5783c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                \"id\": \"default\", \"name\": \"Default\""},{"line_number":52,"context_line":"            }"},{"line_number":53,"context_line":"        },"},{"line_number":54,"context_line":"        \"existing_parent\": {"},{"line_number":55,"context_line":"            \"id\": \"51cc68287d524c759f47c811e6463340\", \"name\": \"project1\", \"domain\": {"},{"line_number":56,"context_line":"                \"id\": \"default\", \"name\": \"Default\""},{"line_number":57,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_f380fec1","line":54,"range":{"start_line":54,"start_character":9,"end_line":54,"end_character":24},"updated":"2019-11-13 20:58:54.000000000","message":"maybe nitpicky but I would prefer \"current_parent\" or \"old_parent\"","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"3cfc829f8047f729fc77484a9edaef4b9fd9e049","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                \"id\": \"default\", \"name\": \"Default\""},{"line_number":52,"context_line":"            }"},{"line_number":53,"context_line":"        },"},{"line_number":54,"context_line":"        \"existing_parent\": {"},{"line_number":55,"context_line":"            \"id\": \"51cc68287d524c759f47c811e6463340\", \"name\": \"project1\", \"domain\": {"},{"line_number":56,"context_line":"                \"id\": \"default\", \"name\": \"Default\""},{"line_number":57,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ca939c4d","line":54,"range":{"start_line":54,"start_character":9,"end_line":54,"end_character":24},"in_reply_to":"3fa7e38b_f380fec1","updated":"2019-11-18 05:11:46.000000000","message":"current_parent sounds sane","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1ff06123ad6e2475364c26ba303e3ab02ef5783c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"features of how assignments work in Keystone and the way a reparent is"},{"line_number":124,"context_line":"expected to work."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"It is the responsibility of the admin using this API to be aware of what they"},{"line_number":127,"context_line":"are doing and clean up any assignments they don\u0027t want before or after the"},{"line_number":128,"context_line":"move."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_f3b55e7f","line":126,"range":{"start_line":126,"start_character":53,"end_line":126,"end_character":64},"updated":"2019-11-13 20:58:54.000000000","message":"Did we discuss exposing some kind of noop/dry-run API to help with this?","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"3cfc829f8047f729fc77484a9edaef4b9fd9e049","unresolved":false,"context_lines":[{"line_number":123,"context_line":"features of how assignments work in Keystone and the way a reparent is"},{"line_number":124,"context_line":"expected to work."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"It is the responsibility of the admin using this API to be aware of what they"},{"line_number":127,"context_line":"are doing and clean up any assignments they don\u0027t want before or after the"},{"line_number":128,"context_line":"move."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_4a724c4c","line":126,"range":{"start_line":126,"start_character":53,"end_line":126,"end_character":64},"in_reply_to":"3fa7e38b_f3b55e7f","updated":"2019-11-18 05:11:46.000000000","message":"The GET method for this new API would be the noop/dry-run with a full update of the role changes related to the move.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"93b6323897d1d63def1d556a7f1d73627f8846d5","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"It is the responsibility of the admin using this API to be aware of what they"},{"line_number":127,"context_line":"are doing and clean up any assignments they don\u0027t want before or after the"},{"line_number":128,"context_line":"move."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Notifications Impact"},{"line_number":131,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_e1c72166","line":128,"updated":"2020-01-30 14:16:07.000000000","message":"We should drop the cache (assignment, resource, token?) when we perform a move.\n\nIf a project is cached within a specific domain or parent, and it\u0027s moved to another part of the hierarchy, a user of the project could get stale assignments, couldn\u0027t they?\n\nI guess this is how I\u0027m thinking about it:\n\n - project B has a parent project A\n - user bob has an inherited admin role assignment on project A\n - system admin jane moves project B to domain Bar\n - user bob can still get tokens for project B (?)\n\nShould that be the intended behavior?\n\nActually, that brings up another question. How should this feature handle inherited role assignments? Do they continue to exist?","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1ff06123ad6e2475364c26ba303e3ab02ef5783c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"It is the responsibility of the admin using this API to be aware of what they"},{"line_number":127,"context_line":"are doing and clean up any assignments they don\u0027t want before or after the"},{"line_number":128,"context_line":"move."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Notifications Impact"},{"line_number":131,"context_line":"--------------------"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_73908eee","line":129,"updated":"2019-11-13 20:58:54.000000000","message":"Is there any effect this would have on resources associated with projects? I think not, as the project ID wouldn\u0027t be changing?\n\nWhat effect would this have on recalculating project limits as implemented in the /v3/limits API? What effect would it have on current implementations for flat or hierarchical quota calculations in eg. nova or cinder?","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"3cfc829f8047f729fc77484a9edaef4b9fd9e049","unresolved":false,"context_lines":[{"line_number":126,"context_line":"It is the responsibility of the admin using this API to be aware of what they"},{"line_number":127,"context_line":"are doing and clean up any assignments they don\u0027t want before or after the"},{"line_number":128,"context_line":"move."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Notifications Impact"},{"line_number":131,"context_line":"--------------------"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_2a935051","line":129,"in_reply_to":"3fa7e38b_73908eee","updated":"2019-11-18 05:11:46.000000000","message":"We should do some testing, but other than Keystone, none of the project are really aware of the project tree. Resources are owned by the \u0027current\u0027 project not the parent, so nothing should happen to them.\n\nI\u0027d need to look at the limits implementations and confirm, but there would likely have to be some recalculations. Not to mention if this project\u0027s limits are higher than the tree it is being moved to, that should raise some sort of error upfront. \n\nIf this project has resources which are greater than the limits in the new tree, then we can\u0027t really do much to check that can we? The usage is only known to Nova/Cinder/etc, and we shouldn\u0027t query that. So it can happen that you reparent a project only to then run into a 11/10 used quota situation, and I\u0027d hope in those cases Nova and the like handle it like a quota that is already full (which I think they just do).","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1ff06123ad6e2475364c26ba303e3ab02ef5783c","unresolved":false,"context_lines":[{"line_number":189,"context_line":"References"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"None yet."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_53647221","line":192,"updated":"2019-11-13 20:58:54.000000000","message":"Did we have other PTG/forum discussions on this or mailing list discussions?","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"3cfc829f8047f729fc77484a9edaef4b9fd9e049","unresolved":false,"context_lines":[{"line_number":189,"context_line":"References"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"None yet."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ea98d869","line":192,"in_reply_to":"3fa7e38b_53647221","updated":"2019-11-18 05:11:46.000000000","message":"There are some related to resource ownership, which I don\u0027t particularly think are relevant. Most of this proposal came about from discussions with Morgan and Adam in Berlin, and further IRC chats I think.","commit_id":"324d98acce333454fa0a66dc9df11010daac6995"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"07367f1ffd4882be4d19c744ae4639754626074b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                    \"user\": {\"id\": \"313233\"}"},{"line_number":84,"context_line":"                }"},{"line_number":85,"context_line":"            ],"},{"line_number":86,"context_line":"            \"existing_inherited\": ["},{"line_number":87,"context_line":"                {"},{"line_number":88,"context_line":"                    \"links\": {"},{"line_number":89,"context_line":"                        \"assignment\": \"http://example.com/identity/v3/domains/161718/users/313233/roles/123456\""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1fa4df85_de315ca4","line":86,"updated":"2020-02-27 19:38:05.000000000","message":"Is this a duplicate of \"existing_inherited\" from line 76?","commit_id":"4c9ecf27ab3812c6af99ab40142bb198780a62db"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"edf2f8e293626221895bc5ea676d88329b35401e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                    \"user\": {\"id\": \"313233\"}"},{"line_number":84,"context_line":"                }"},{"line_number":85,"context_line":"            ],"},{"line_number":86,"context_line":"            \"existing_inherited\": ["},{"line_number":87,"context_line":"                {"},{"line_number":88,"context_line":"                    \"links\": {"},{"line_number":89,"context_line":"                        \"assignment\": \"http://example.com/identity/v3/domains/161718/users/313233/roles/123456\""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1fa4df85_23a5f804","line":86,"in_reply_to":"1fa4df85_de315ca4","updated":"2020-02-28 00:56:18.000000000","message":"I don\u0027t think it was meant to be... I think it was meant to be existing_effective minus the \u0027direct\u0027 assignments potentially to showcase assignments coming from inheritance up the tree.\n\nI\u0027m also missing here:\nnew_effective which should be what roles will automatically inherit down to the new location.","commit_id":"4c9ecf27ab3812c6af99ab40142bb198780a62db"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"07367f1ffd4882be4d19c744ae4639754626074b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"It would provide details of what the project or project tree being moved will"},{"line_number":100,"context_line":"be, what inherited roles are no longer applicable, and what assignments will"},{"line_number":101,"context_line":"still apply after the move from direct assignments to the moved projects."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If ``new_parent`` is given will also show which users and roles will be"},{"line_number":104,"context_line":"inherited down into the newly moved project or project tree."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1fa4df85_3ee75015","line":101,"range":{"start_line":100,"start_character":4,"end_line":101,"end_character":11},"updated":"2020-02-27 19:38:05.000000000","message":"It\u0027s not clear to me how that\u0027s represented in \"existing\" and \"existing_inherited\"","commit_id":"4c9ecf27ab3812c6af99ab40142bb198780a62db"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"edf2f8e293626221895bc5ea676d88329b35401e","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"It would provide details of what the project or project tree being moved will"},{"line_number":100,"context_line":"be, what inherited roles are no longer applicable, and what assignments will"},{"line_number":101,"context_line":"still apply after the move from direct assignments to the moved projects."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If ``new_parent`` is given will also show which users and roles will be"},{"line_number":104,"context_line":"inherited down into the newly moved project or project tree."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1fa4df85_6384505f","line":101,"range":{"start_line":100,"start_character":4,"end_line":101,"end_character":11},"in_reply_to":"1fa4df85_3ee75015","updated":"2020-02-28 00:56:18.000000000","message":"I\u0027m gonna restructure this example response. It doesn\u0027t make sense to me anymore.","commit_id":"4c9ecf27ab3812c6af99ab40142bb198780a62db"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"726364bfa4461d334a2237b5a3025ea1752f6262","unresolved":true,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Other contributors:"},{"line_number":230,"context_line":"Adam Young"},{"line_number":231,"context_line":"Morgan Fainberg"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Work Items"},{"line_number":234,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"91099b93_e9a22d7e","line":231,"updated":"2021-02-03 19:17:01.000000000","message":"need to drop both of these since as far as I\u0027m aware neither are still around in OpenStack. :(","commit_id":"6ba0d0f143edb9d2a6f4291aa9a27af853a95dc0"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"111d94cacc012357c0239077a29ddf896bb9be04","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Other contributors:"},{"line_number":230,"context_line":"Adam Young"},{"line_number":231,"context_line":"Morgan Fainberg"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Work Items"},{"line_number":234,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"e84473a9_47889506","line":231,"in_reply_to":"91099b93_e9a22d7e","updated":"2021-02-03 19:18:25.000000000","message":"Done","commit_id":"6ba0d0f143edb9d2a6f4291aa9a27af853a95dc0"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"4327a7cd9a3129b5b5746140d044feeeeb355013","unresolved":true,"context_lines":[{"line_number":43,"context_line":"does the reparent action."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"GET:"},{"line_number":46,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"b378cc42_0052afe8","line":46,"updated":"2021-10-01 13:50:49.000000000","message":"As below, I think it is more consistent with how we perform other operations if the new parent id is in the URL.\n\nv3/projects/{project_id}/reparent/\u003cparent_uuid\u003e\n\nAs that parameter is essential to the query and operations.","commit_id":"157f74d0ce39a93bc9b1a3623570706a0ebe187b"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"faf5b1d8dafaacc6aec56ccc7beaafc6dd0ce54a","unresolved":true,"context_lines":[{"line_number":43,"context_line":"does the reparent action."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"GET:"},{"line_number":46,"context_line":"``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e[\u0026include_names\u003dtrue]``"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Example response (with ``new_parent`` and ``include_names`` given)::"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"487f55c2_66461073","line":46,"in_reply_to":"b378cc42_0052afe8","updated":"2021-10-12 03:40:06.000000000","message":"I think that\u0027s fair, but the reasoning in behind having it be optional was that sometimes you may not know where you plan on moving a project yet, and want to just see what roles will transfer with it. This would give you a preview of what might happen. Having a new parent target be required isn\u0027t entirely a bad thing though.","commit_id":"157f74d0ce39a93bc9b1a3623570706a0ebe187b"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"4327a7cd9a3129b5b5746140d044feeeeb355013","unresolved":true,"context_lines":[{"line_number":163,"context_line":"If ``include_names`` is given will also include names for all projects and"},{"line_number":164,"context_line":"assignments."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"POST: ``v3/projects/{project_id}/reparent``"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"With a ``new_parent`` value in json would make the change::"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"77fc1227_95c8e576","line":166,"updated":"2021-10-01 13:50:49.000000000","message":"Suspect it would make more sense to have the new parent ID here in the URL and make this a PUT.","commit_id":"157f74d0ce39a93bc9b1a3623570706a0ebe187b"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"faf5b1d8dafaacc6aec56ccc7beaafc6dd0ce54a","unresolved":true,"context_lines":[{"line_number":163,"context_line":"If ``include_names`` is given will also include names for all projects and"},{"line_number":164,"context_line":"assignments."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"POST: ``v3/projects/{project_id}/reparent``"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"With a ``new_parent`` value in json would make the change::"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"d8316b9a_ff5f1dc7","line":166,"in_reply_to":"77fc1227_95c8e576","updated":"2021-10-12 03:40:06.000000000","message":"That works too, and PUT probably makes more sense given this is and update to a project rather than a create.","commit_id":"157f74d0ce39a93bc9b1a3623570706a0ebe187b"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"4327a7cd9a3129b5b5746140d044feeeeb355013","unresolved":true,"context_lines":[{"line_number":188,"context_line":"It is the responsibility of the admin using this API to be aware of what they"},{"line_number":189,"context_line":"are doing and clean up any assignments they don\u0027t want before or after the"},{"line_number":190,"context_line":"move."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Notifications Impact"},{"line_number":193,"context_line":"--------------------"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ac864724_f93a68da","line":191,"updated":"2021-10-01 13:50:49.000000000","message":"The user performing the reparent should not need to have the Admin role at a system level, but instead should be allowed to perform the operation if they have admin on both the source and target projects.","commit_id":"157f74d0ce39a93bc9b1a3623570706a0ebe187b"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"faf5b1d8dafaacc6aec56ccc7beaafc6dd0ce54a","unresolved":true,"context_lines":[{"line_number":188,"context_line":"It is the responsibility of the admin using this API to be aware of what they"},{"line_number":189,"context_line":"are doing and clean up any assignments they don\u0027t want before or after the"},{"line_number":190,"context_line":"move."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Notifications Impact"},{"line_number":193,"context_line":"--------------------"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"0e429412_53575f7c","line":191,"in_reply_to":"ac864724_f93a68da","updated":"2021-10-12 03:40:06.000000000","message":"I\u0027m alright with this, but the system level requirement came about because of a fear of this being too powerful or \u0027dangerous\u0027. I think this kind of operation is important to be able to manage projects though, so the having it less \u0027admin\u0027 and more project admin level focused is better in my view, and I feel that the GET API here puts the onus of not screwing up on the person using the API rather than us limiting a useful thing for fear of them shooting themselves in the foot.","commit_id":"157f74d0ce39a93bc9b1a3623570706a0ebe187b"}],"specs/keystone/ongoing/reparent-projects.rst":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a050a84339082b860f318e7047ddc296ae8f79ee","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem Description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Many clpoud users start off with a flat project structure.  As the"},{"line_number":23,"context_line":"number of projects increase, they realize they need to better"},{"line_number":24,"context_line":"organizat their projects. WHen they Move from a flat structure to a"},{"line_number":25,"context_line":"hierarchical structure, they want don\u0027t want to tear down and recreate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_d1cde6b9","line":22,"range":{"start_line":22,"start_character":5,"end_line":22,"end_character":11},"updated":"2018-11-16 19:43:15.000000000","message":"NIT: cloud","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"49973f0c62d3227e99664866669598c5026681a5","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Many clpoud users start off with a flat project structure.  As the"},{"line_number":23,"context_line":"number of projects increase, they realize they need to better"},{"line_number":24,"context_line":"organizat their projects. WHen they Move from a flat structure to a"},{"line_number":25,"context_line":"hierarchical structure, they want don\u0027t want to tear down and recreate"},{"line_number":26,"context_line":"the set of resources in remote services."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_6da7cb52","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":9},"updated":"2018-11-27 10:40:12.000000000","message":"organize*","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a050a84339082b860f318e7047ddc296ae8f79ee","unresolved":false,"context_lines":[{"line_number":40,"context_line":"When executed, this command will reset the parent_project_id of the"},{"line_number":41,"context_line":"project."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"This command will only complete if the project is disabled."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_f14ca241","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":59},"updated":"2018-11-16 19:43:15.000000000","message":"This command will not disable the project, it is expected the project is disabled via the API and re-enabled post move via the API. This is done to limit problems with the caching keystone does.","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"49973f0c62d3227e99664866669598c5026681a5","unresolved":false,"context_lines":[{"line_number":40,"context_line":"When executed, this command will reset the parent_project_id of the"},{"line_number":41,"context_line":"project."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"This command will only complete if the project is disabled."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_2d7233e2","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":59},"in_reply_to":"3f79a3b5_f14ca241","updated":"2018-11-27 10:40:12.000000000","message":"We should include the reason why this is necessary in the spec.","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a050a84339082b860f318e7047ddc296ae8f79ee","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Security Impact"},{"line_number":52,"context_line":"---------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Big."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is in keystone manage to avoid the security issues of doing as an"},{"line_number":57,"context_line":"API.  This should not be done lightly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_71c41295","line":54,"updated":"2018-11-16 19:43:15.000000000","message":"Please be more in depth. This should cover things such as inherited roles and the impact of moving a whole tree under a new location with inherited roles on the new parent.\n\nYes this is big... please add more detail","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"49973f0c62d3227e99664866669598c5026681a5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Security Impact"},{"line_number":52,"context_line":"---------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Big."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is in keystone manage to avoid the security issues of doing as an"},{"line_number":57,"context_line":"API.  This should not be done lightly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_0d50972c","line":54,"in_reply_to":"3f79a3b5_71c41295","updated":"2018-11-27 10:40:12.000000000","message":"++","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a050a84339082b860f318e7047ddc296ae8f79ee","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Big."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is in keystone manage to avoid the security issues of doing as an"},{"line_number":57,"context_line":"API.  This should not be done lightly."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Notifications Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_91c76e98","line":56,"range":{"start_line":56,"start_character":11,"end_line":56,"end_character":26},"updated":"2018-11-16 19:43:15.000000000","message":"keystone-manage","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a050a84339082b860f318e7047ddc296ae8f79ee","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Notifications Impact"},{"line_number":60,"context_line":"--------------------"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Please specify any changes to notifications. Be that an extra notification,"},{"line_number":63,"context_line":"changes to an existing notification, or removing a notification."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Other End User Impact"},{"line_number":66,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_b12f0a56","line":63,"range":{"start_line":62,"start_character":0,"end_line":63,"end_character":64},"updated":"2018-11-16 19:43:15.000000000","message":"Boiler plate, to be removed.","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a050a84339082b860f318e7047ddc296ae8f79ee","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Other End User Impact"},{"line_number":66,"context_line":"---------------------"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Aside from the API, are there other ways a user will interact with this"},{"line_number":69,"context_line":"feature?"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Does this change have an impact on python-keystoneclient? What does the user"},{"line_number":72,"context_line":"  interface there look like?"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Performance Impact"},{"line_number":75,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_51b9d614","line":72,"range":{"start_line":67,"start_character":0,"end_line":72,"end_character":28},"updated":"2018-11-16 19:43:15.000000000","message":"Boiler plate to be removed. This applies to all boiler plate that has not been modified.","commit_id":"a3e3d7515044576f8fbbf0a46aef5ca595a20e80"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"62190f243066991f6f79000089dd4a7c4e7bf432","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7faddb67_4e52aee0","updated":"2019-08-09 19:52:04.000000000","message":"Can you propose this under \u0027backlog\u0027 rather than \u0027ongoing\u0027 - ongoing implies that the work will go on indefinitely, \u0027backlog\u0027 implies it\u0027s waiting for someone to pick it up and can be planned into a cycle (if we had a name for the next cycle I would suggest proposing it directly there)","commit_id":"9ba46d162599fff7487c357ac918433183c24551"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"62190f243066991f6f79000089dd4a7c4e7bf432","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Reparent Projects"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"`bp example \u003chttps://blueprints.launchpad.net/keystone/+spec/reparent-projects\u003e`_"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add the ability to reparent projects via the API."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_ee435a12","line":11,"updated":"2019-08-09 19:52:04.000000000","message":"https://docs.openstack.org/keystone/latest/contributor/proposing-features.html#rfe-bug-reports","commit_id":"9ba46d162599fff7487c357ac918433183c24551"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"62190f243066991f6f79000089dd4a7c4e7bf432","unresolved":false,"context_lines":[{"line_number":47,"context_line":"action should be aware of what reparenting a project means."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternative Implementation"},{"line_number":50,"context_line":"--------------------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"A new API at ``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e`` which"},{"line_number":53,"context_line":"on GET will respond with a full breakdown of what changes will occur."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_2e3ad297","line":50,"updated":"2019-08-09 19:52:04.000000000","message":"Given the security/footgunning concerns this seems like the safer approach.","commit_id":"9ba46d162599fff7487c357ac918433183c24551"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"62190f243066991f6f79000089dd4a7c4e7bf432","unresolved":false,"context_lines":[{"line_number":50,"context_line":"--------------------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"A new API at ``v3/projects/{project_id}/reparent?new_parent\u003d\u003cuuid\u003e`` which"},{"line_number":53,"context_line":"on GET will respond with a full breakdown of what changes will occur."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"It would provide details of what the project or project tree being moved will"},{"line_number":56,"context_line":"be, what inherited roles are no longer applicable, and what assignments will"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_8eac26ef","line":53,"updated":"2019-08-09 19:52:04.000000000","message":"Could you provide an example response?","commit_id":"9ba46d162599fff7487c357ac918433183c24551"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"62190f243066991f6f79000089dd4a7c4e7bf432","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Security Impact"},{"line_number":70,"context_line":"---------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"There is no security impact."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"There is the potential for a cloud admin to reparent a project and unknowingly"},{"line_number":75,"context_line":"have either existing assignments left over during the move, or for new"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_4ebdce00","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":28},"updated":"2019-08-09 19:52:04.000000000","message":"This statement seems like a bit of a reach given the hazards you listed below. Just omit this sentence and let the reader judge the security impact from the footgunning explanation below.","commit_id":"9ba46d162599fff7487c357ac918433183c24551"}]}
