)]}'
{"keystone/server/flask/common.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4b015d0a4caaba88e3b861f3617ed48f33239773","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(morgan): Keystone only has a V3 API, this is here for future"},{"line_number":79,"context_line":"        # proofing and exceptional cases such as root discovery API object(s)"},{"line_number":80,"context_line":"        parts \u003d [\u0027/v3\u0027]"},{"line_number":81,"context_line":"        if prefix:"},{"line_number":82,"context_line":"            parts.append(prefix)"},{"line_number":83,"context_line":"        return \u0027/\u0027.join(parts)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_2add3e40","line":81,"range":{"start_line":81,"start_character":11,"end_line":81,"end_character":17},"updated":"2018-06-12 19:29:15.000000000","message":"Can people really pass in None here? We should make this optional so that\u0027s more apparent. Also, is it appending a prefix after the /v3 part? It\u0027s kinda confusing to have something named \"prefix\" then appended to something else.","commit_id":"18b2bc9124f5974b9efbf07c532fdfe1153ed43e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5f3e6bac7504a329c3447f95496523d778a737a8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(morgan): Keystone only has a V3 API, this is here for future"},{"line_number":79,"context_line":"        # proofing and exceptional cases such as root discovery API object(s)"},{"line_number":80,"context_line":"        parts \u003d [\u0027/v3\u0027]"},{"line_number":81,"context_line":"        if prefix:"},{"line_number":82,"context_line":"            parts.append(prefix)"},{"line_number":83,"context_line":"        return \u0027/\u0027.join(parts)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_8518051e","line":81,"range":{"start_line":81,"start_character":11,"end_line":81,"end_character":17},"in_reply_to":"5f7c97a3_2a469e7c","updated":"2018-06-12 20:15:24.000000000","message":"So this is the blueprint prefix?","commit_id":"18b2bc9124f5974b9efbf07c532fdfe1153ed43e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0fc11093fc1814edf32c476bdc4983488318e4f6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(morgan): Keystone only has a V3 API, this is here for future"},{"line_number":79,"context_line":"        # proofing and exceptional cases such as root discovery API object(s)"},{"line_number":80,"context_line":"        parts \u003d [\u0027/v3\u0027]"},{"line_number":81,"context_line":"        if prefix:"},{"line_number":82,"context_line":"            parts.append(prefix)"},{"line_number":83,"context_line":"        return \u0027/\u0027.join(parts)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_2a469e7c","line":81,"range":{"start_line":81,"start_character":11,"end_line":81,"end_character":17},"in_reply_to":"5f7c97a3_2add3e40","updated":"2018-06-12 19:53:27.000000000","message":"The order is BAE:\n\nBlueprint Prefix,\nAPI Prefix,\nEndpoint Prefix \n\nThis really is internal/private, look at the bp_url_prefix default on line 90.\n\nThat is where it is sourced from.","commit_id":"18b2bc9124f5974b9efbf07c532fdfe1153ed43e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"7f4a9acad594bf7e59b3a1cfac415d7ba861de74","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(morgan): Keystone only has a V3 API, this is here for future"},{"line_number":79,"context_line":"        # proofing and exceptional cases such as root discovery API object(s)"},{"line_number":80,"context_line":"        parts \u003d [\u0027/v3\u0027]"},{"line_number":81,"context_line":"        if prefix:"},{"line_number":82,"context_line":"            parts.append(prefix)"},{"line_number":83,"context_line":"        return \u0027/\u0027.join(parts)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_0032a35e","line":81,"range":{"start_line":81,"start_character":11,"end_line":81,"end_character":17},"in_reply_to":"5f7c97a3_8518051e","updated":"2018-06-12 21:08:45.000000000","message":"Yes.\n\nWe wont really be leveraging this too much, but I exposed it because I didn\u0027t want a massive refactor in some special one-off cases.\n\nBlueprint prefix is primarily where we will be working, but the structure is designed so you can do:\n\nBlueprint owns /users\nAPI owns /users/API\nand Endpoint can own /users/API/credentials\n\nI expect we will not use this, but exposing it allows for some of the potential future things such as splitting auth and catalog to /auth /catalog instead of version-specific lead but maintaining v3/auth leaning on the same code. There will always be some restructuring to implement, but this limits it.\n\nThis also lets me lean on the bp-prefix for the /v3 addition for now behind the scenes without needing to encode it in the dispatch route definition(s)","commit_id":"18b2bc9124f5974b9efbf07c532fdfe1153ed43e"}]}
