)]}'
{"v3/src/markdown/identity-api-v3.md":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"079d9ccd74ffdfc76013985eafdeecf93b36a93f","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"  user for the given token. It is up to the client to look for specific methods"},{"line_number":1024,"context_line":"  to determine the total number of factors."},{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"- `audit_ids` (list)"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_03d4c81e","line":1026,"updated":"2014-08-18 23:17:36.000000000","message":"change \"list\" to \"array\". JSON calls it an array.","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"ae1071752fb8e201056999264d3358d4365b78b1","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"  user for the given token. It is up to the client to look for specific methods"},{"line_number":1024,"context_line":"  to determine the total number of factors."},{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"- `audit_ids` (list)"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_63b65cdb","line":1026,"in_reply_to":"1abeadc6_03d4c81e","updated":"2014-08-18 23:20:23.000000000","message":"done in next patch.","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"079d9ccd74ffdfc76013985eafdeecf93b36a93f","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"  Each token will always have it\u0027s own unique audit identifier as the first"},{"line_number":1033,"context_line":"  element of the list. In the case of a token that was rescoped (exchanged for"},{"line_number":1034,"context_line":"  another token of the same or different scope), there will be a second audit"},{"line_number":1035,"context_line":"  identifier as the second element of the list. This conditional second"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_a3e4f40d","line":1032,"updated":"2014-08-18 23:17:36.000000000","message":"change \"it\u0027s\" to \"its\"","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"ae1071752fb8e201056999264d3358d4365b78b1","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"  Each token will always have it\u0027s own unique audit identifier as the first"},{"line_number":1033,"context_line":"  element of the list. In the case of a token that was rescoped (exchanged for"},{"line_number":1034,"context_line":"  another token of the same or different scope), there will be a second audit"},{"line_number":1035,"context_line":"  identifier as the second element of the list. This conditional second"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_43b160e0","line":1032,"in_reply_to":"1abeadc6_a3e4f40d","updated":"2014-08-18 23:20:23.000000000","message":"done in next patch","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"079d9ccd74ffdfc76013985eafdeecf93b36a93f","unresolved":false,"context_lines":[{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"  These audit identifiers can be used to track a specific token in a manner"},{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"},{"line_number":1041,"context_line":"  other applications that should not expose the token-id value (which can be"},{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_63badcdf","line":1041,"updated":"2014-08-18 23:17:36.000000000","message":"use \"token id\" consistently. change \"token-id\" to \"token id\"","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"ae1071752fb8e201056999264d3358d4365b78b1","unresolved":false,"context_lines":[{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"  These audit identifiers can be used to track a specific token in a manner"},{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"},{"line_number":1041,"context_line":"  other applications that should not expose the token-id value (which can be"},{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_23bc64bb","line":1041,"in_reply_to":"1abeadc6_63badcdf","updated":"2014-08-18 23:20:23.000000000","message":"Done in next patch","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"079d9ccd74ffdfc76013985eafdeecf93b36a93f","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"  other applications that should not expose the token-id value (which can be"},{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"},{"line_number":1045,"context_line":"  uuid)."},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"Optional attributes:"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_63b1fcf7","line":1044,"updated":"2014-08-18 23:17:36.000000000","message":"I thought we were going with a shorter string?","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"ae1071752fb8e201056999264d3358d4365b78b1","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"  other applications that should not expose the token-id value (which can be"},{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"},{"line_number":1045,"context_line":"  uuid)."},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"Optional attributes:"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"1abeadc6_a3a07491","line":1044,"in_reply_to":"1abeadc6_63b1fcf7","updated":"2014-08-18 23:20:23.000000000","message":"We are, 22 characters is the uuid.uuid4().bytes.encode(\u0027base64\u0027)[:-3]\n\n32 characters would be uuid.uuid4().hex.","commit_id":"274f61f1b0d4e53624d4b3416fd9806796664d4f"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"b30af7bd7b2e673dd75ceff76d047030d18b0ec7","unresolved":false,"context_lines":[{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"  Each token will always have its own unique audit identifier as the first"},{"line_number":1033,"context_line":"  element of the list. In the case of a token that was rescoped (exchanged for"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_cb9ca26c","line":1030,"updated":"2014-08-19 02:25:13.000000000","message":"How does a user get the list? \n\nCan only admins see the list?","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a902162c72853d23bb37eed6a1196335f9c02f91","unresolved":false,"context_lines":[{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"  Each token will always have its own unique audit identifier as the first"},{"line_number":1033,"context_line":"  element of the list. In the case of a token that was rescoped (exchanged for"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_dca1c6aa","line":1030,"in_reply_to":"1abeadc6_cb9ca26c","updated":"2014-08-19 05:51:53.000000000","message":"This is a list that exists in the token data, as are all the elements listed here (methods, user, etc). This part of the document are the attributes of the token.","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"b30af7bd7b2e673dd75ceff76d047030d18b0ec7","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"  another token of the same or different scope), there will be a second audit"},{"line_number":1035,"context_line":"  identifier as the second element of the list. This conditional second"},{"line_number":1036,"context_line":"  identifier is the audit id string from the original token (i.e. the first"},{"line_number":1037,"context_line":"  token issued that was not a rescoped token)."},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"  These audit identifiers can be used to track a specific token in a manner"},{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_0bd93a57","line":1037,"updated":"2014-08-19 02:25:13.000000000","message":"This makes not much sense as I read it -- can you provide an example o three elements in this list?","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a902162c72853d23bb37eed6a1196335f9c02f91","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"  another token of the same or different scope), there will be a second audit"},{"line_number":1035,"context_line":"  identifier as the second element of the list. This conditional second"},{"line_number":1036,"context_line":"  identifier is the audit id string from the original token (i.e. the first"},{"line_number":1037,"context_line":"  token issued that was not a rescoped token)."},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"  These audit identifiers can be used to track a specific token in a manner"},{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_1c833e05","line":1037,"in_reply_to":"1abeadc6_0bd93a57","updated":"2014-08-19 05:51:53.000000000","message":"Sure, in the next patch, but essentially the list is either 1 or 2 elements (never three).\n\n[\u003ctoken_audit_id\u003e, \u003ctoken_audit_chain_id\u003e] \n\nThe chain id only exists if there has been a rescope (e.g. exchange of one token for another).\n\nOld tokens (if an upgrade was done) may not have this attribute (the code supports this case).","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"3e7c6437fa63ed2df8d95e8de896df3987086692","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"  identifier as the second element of the list. This conditional second"},{"line_number":1036,"context_line":"  identifier is the audit id string from the original token (i.e. the first"},{"line_number":1037,"context_line":"  token issued that was not a rescoped token)."},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"  These audit identifiers can be used to track a specific token in a manner"},{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"},{"line_number":1041,"context_line":"  other applications that should not expose the token id value (which can be"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_c6ef39af","line":1038,"updated":"2014-08-19 03:34:01.000000000","message":"Do we really need it?  Why do we need original token id?  In case of rescope, original token is  equivalent to credential.","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a902162c72853d23bb37eed6a1196335f9c02f91","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"  identifier as the second element of the list. This conditional second"},{"line_number":1036,"context_line":"  identifier is the audit id string from the original token (i.e. the first"},{"line_number":1037,"context_line":"  token issued that was not a rescoped token)."},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"  These audit identifiers can be used to track a specific token in a manner"},{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"},{"line_number":1041,"context_line":"  other applications that should not expose the token id value (which can be"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_7cc7d245","line":1038,"in_reply_to":"1abeadc6_c6ef39af","updated":"2014-08-19 05:51:53.000000000","message":"This is specifically for the audit_ids. This means we can utilize the ids in the revocation events as a non-priviledged REST call. If the actual token Id was in the revocation event the delay between the event being issued and the auth_token middleware receiving it could open us up for abuse (it is the same reason the token revocation list (pre-revocation events) is a priviledged (requires admin) call).\n\nThe Chain ID is so that it is possible to revoke an entire chain and/or find the token that originated (was rescoped) from for auditability purposes / correlation of requests.","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"b30af7bd7b2e673dd75ceff76d047030d18b0ec7","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"},{"line_number":1041,"context_line":"  other applications that should not expose the token id value (which can be"},{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"},{"line_number":1045,"context_line":"  uuid with padding removed)."},{"line_number":1046,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_8be46a0e","line":1043,"updated":"2014-08-19 02:25:13.000000000","message":"How would you track this? Look at each item in the list and?","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a902162c72853d23bb37eed6a1196335f9c02f91","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"  that does not expose the token id, making it safe to use in logging and"},{"line_number":1041,"context_line":"  other applications that should not expose the token id value (which can be"},{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"},{"line_number":1045,"context_line":"  uuid with padding removed)."},{"line_number":1046,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_bcefaaaf","line":1043,"in_reply_to":"1abeadc6_8be46a0e","updated":"2014-08-19 05:51:53.000000000","message":"You would be able to look at the identifiers in the list. This data exists in each token, so you can look at a token\u0027s data at any point and see the unique ID (might be useful for logging) and/or the original token id in the list.","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"3e7c6437fa63ed2df8d95e8de896df3987086692","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"  other applications that should not expose the token id value (which can be"},{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"},{"line_number":1045,"context_line":"  uuid with padding removed)."},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"Optional attributes:"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_e62b55e9","line":1044,"updated":"2014-08-19 03:34:01.000000000","message":"+1","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"b30af7bd7b2e673dd75ceff76d047030d18b0ec7","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"},{"line_number":1045,"context_line":"  uuid with padding removed)."},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"Optional attributes:"},{"line_number":1048,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_8b92aa55","line":1045,"updated":"2014-08-19 02:25:13.000000000","message":"\"should be\" makes it sound like you\u0027ve never seen one in the wild. An example will help greatly. \n\nEach identifier is 22 characters in length and based on ...","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a902162c72853d23bb37eed6a1196335f9c02f91","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"  used to act upon endpoints within the OpenStack deployment)."},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"  Each identifier should be 22 characters in length (based on a base64 encoded"},{"line_number":1045,"context_line":"  uuid with padding removed)."},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"Optional attributes:"},{"line_number":1048,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_3c3b9a3b","line":1045,"in_reply_to":"1abeadc6_8b92aa55","updated":"2014-08-19 05:51:53.000000000","message":"I\u0027ll correct and show an example in the next patch:\n\n  \u003e\u003e\u003e uuid.uuid4().bytes.encode(\u0027base64\u0027)[:-3]\n  \u0027+xoi2RpZT3a7bNS42/GjWA\u0027\n  \u003e\u003e\u003e","commit_id":"253fd3135386a8e6e10e4d6c328cfd7255e94956"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"36347efe72957111c3d0c02680f5fee77a8e274d","unresolved":false,"context_lines":[{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"- `audit_ids` (array)"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1abeadc6_8e428f3c","line":1028,"updated":"2014-08-19 20:32:39.000000000","message":"Is there any way that this would need to be larger than a list of 2 elements? What if a token is re-scoped and then that token is re-scoped?","commit_id":"ba34b82cea79b367e2cbc09983ada6fe141f4806"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"676a0f61cfedfe50827a4bad7a26a9f1abb904d4","unresolved":false,"context_lines":[{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"- `audit_ids` (array)"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1abeadc6_45d031f6","line":1028,"in_reply_to":"1abeadc6_14976eed","updated":"2014-08-20 17:42:12.000000000","message":"make them arbitrary length, and then we can limit what we pass around in practice.","commit_id":"ba34b82cea79b367e2cbc09983ada6fe141f4806"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"8d4ced41003831e549c68cba85a30090aaddceb3","unresolved":false,"context_lines":[{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"- `audit_ids` (array)"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1abeadc6_e5105d5b","line":1028,"in_reply_to":"1abeadc6_45d031f6","updated":"2014-08-20 17:59:25.000000000","message":"I am going to stand my ground here. No, It should not be arbitrary, it opens us up to token size explosion, and it doesn\u0027t add benefit. if we want to change the content, we should update the spec to explicitly say what is in there.","commit_id":"ba34b82cea79b367e2cbc09983ada6fe141f4806"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"867af87f9dc7cf85b695fd9676c5aa1db7100a66","unresolved":false,"context_lines":[{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"- `audit_ids` (array)"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"  The `audit_ids` attribute is a list that contains either one or two elements."},{"line_number":1029,"context_line":"  Each id in the `audit_ids` attribute is a randomly (unique) generated"},{"line_number":1030,"context_line":"  string that can be used to track the token."},{"line_number":1031,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1abeadc6_14976eed","line":1028,"in_reply_to":"1abeadc6_8e428f3c","updated":"2014-08-19 21:48:52.000000000","message":"We don\u0027t track the intermediary tokens, the idea is that we want to solve a couple cases (but not introduce DOS potential):\n\n  1. Unique Id for the token (that can\u0027t be used for auth)\n  2. Able to act on/track all associated tokens (currently done with expiry)\n\nIf we tracked all intermediary tokens we could have token size explosion and/or DOS potential because of an unbounded dataset. Today we only track associated tokens not the complete chain with expires, so I kept the same functionality.","commit_id":"ba34b82cea79b367e2cbc09983ada6fe141f4806"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"654e4cce080faee4df4b77a09dbfe16034bbe9af","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"  chain of tokens) across multiple requests and endpoints without exposing the"},{"line_number":1041,"context_line":"  token id to non-privileged users (e.g. via logs)."},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"  Each identifier is 22 characters in length (based on a base64 encoded"},{"line_number":1044,"context_line":"  uuid with padding removed)."},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"  Example token with `audit_ids` attribute (first element is the token\u0027s"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1abeadc6_e28053f9","line":1043,"updated":"2014-08-20 17:13:42.000000000","message":"Just curious -- why 22 char?  Are all our IDS 22 chars?","commit_id":"ba34b82cea79b367e2cbc09983ada6fe141f4806"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"8d4ced41003831e549c68cba85a30090aaddceb3","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"  chain of tokens) across multiple requests and endpoints without exposing the"},{"line_number":1041,"context_line":"  token id to non-privileged users (e.g. via logs)."},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"  Each identifier is 22 characters in length (based on a base64 encoded"},{"line_number":1044,"context_line":"  uuid with padding removed)."},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"  Example token with `audit_ids` attribute (first element is the token\u0027s"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1abeadc6_c0b8afca","line":1043,"in_reply_to":"1abeadc6_45c91158","updated":"2014-08-20 17:59:25.000000000","message":"I am not convinced these need to be urlsafe, but it is a trivial change to make them urlsafe.\n\nAs to the reason for 22 characters, (it\u0027s base64 version of a uuid), I was explicitly asked to make it shorter than the .hex version of uuid.","commit_id":"ba34b82cea79b367e2cbc09983ada6fe141f4806"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"676a0f61cfedfe50827a4bad7a26a9f1abb904d4","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"  chain of tokens) across multiple requests and endpoints without exposing the"},{"line_number":1041,"context_line":"  token id to non-privileged users (e.g. via logs)."},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"  Each identifier is 22 characters in length (based on a base64 encoded"},{"line_number":1044,"context_line":"  uuid with padding removed)."},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"  Example token with `audit_ids` attribute (first element is the token\u0027s"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1abeadc6_45c91158","line":1043,"in_reply_to":"1abeadc6_e28053f9","updated":"2014-08-20 17:42:12.000000000","message":"Make this \"an url safe string no longer than 32 characters\" and use urlsafe base64 encoding.","commit_id":"ba34b82cea79b367e2cbc09983ada6fe141f4806"}]}
