)]}'
{"specs/mitaka/approved/user-group.rst":[{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"b73a27a9b47187b2761d9afdc4d14b2c7901ad4a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Add the following tables to the RefStack database:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* A table named \"group\"."},{"line_number":27,"context_line":"* A table named \"user_group\"."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Details about these tables are described in the \"Data model impact\" section."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_c6001a04","line":27,"range":{"start_line":27,"start_character":17,"end_line":27,"end_character":27},"updated":"2016-01-20 07:27:29.000000000","message":"I think user_to_group would make it more clear that it is an association table.","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"4bcac0b222859902552aad31a4c0e0609ffa4aed","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Add the following tables to the RefStack database:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* A table named \"group\"."},{"line_number":27,"context_line":"* A table named \"user_group\"."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Details about these tables are described in the \"Data model impact\" section."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_b6b496d1","line":27,"range":{"start_line":27,"start_character":17,"end_line":27,"end_character":27},"in_reply_to":"ba63e191_c6001a04","updated":"2016-01-20 13:29:51.000000000","message":"+1","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"95f3843d95ea765a475992c0bee971dc62d84b53","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(64) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_93ea5f0e","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":7},"updated":"2016-01-20 08:27:23.000000000","message":"I suggest to rename this to \u0027id\u0027.\nGroups can be addresses only by id in the system and we will operate group\u0027s identifier in business logic.","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"63cb24d22dd76fd4e1eaa7a6aba5df6fd7639941","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(64) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_824b3d59","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":7},"in_reply_to":"9a68dd71_5cca1951","updated":"2016-01-20 18:19:37.000000000","message":"Andrey, The current design does not support group management explicitly.  Therefore, this id will not be exposed to users.","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"97b2d501272e9890f1b4cfcb1c4196e3eb7a00ba","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(64) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_5cca1951","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":7},"in_reply_to":"9a68dd71_f693ee4d","updated":"2016-01-20 14:02:16.000000000","message":"I thought that if this id is present in Business Logic then it present in outer world.","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"4bcac0b222859902552aad31a4c0e0609ffa4aed","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(64) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_f693ee4d","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":7},"in_reply_to":"ba63e191_93ea5f0e","updated":"2016-01-20 13:29:51.000000000","message":"Main idea to \u0027_id\u0027 instead of just id is to emphasize that this field should not be exposed into outer world, for example through a REST API. So \u0027_id\u0027 naming is fine there.","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"63cb24d22dd76fd4e1eaa7a6aba5df6fd7639941","unresolved":false,"context_lines":[{"line_number":97,"context_line":"**Note:**"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"A unique index will be created using the combination of group_id and"},{"line_number":100,"context_line":"user_openid."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_a290c1ed","line":100,"range":{"start_line":100,"start_character":11,"end_line":100,"end_character":12},"updated":"2016-01-20 18:19:37.000000000","message":"I also do not think that we need this unique index any more.  This was needed when we have the ROLE column.","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"6563b0d0a208ca71801243efd2338e72fe0b5a81","unresolved":false,"context_lines":[{"line_number":97,"context_line":"**Note:**"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"A unique index will be created using the combination of group_id and"},{"line_number":100,"context_line":"user_openid."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_9b1ac46d","line":100,"range":{"start_line":100,"start_character":11,"end_line":100,"end_character":12},"in_reply_to":"9a68dd71_a290c1ed","updated":"2016-01-20 19:41:48.000000000","message":"we need unique index to prevent many additions of equals associations group-user","commit_id":"c207fc63d895b375b16fc6d417ca5c3c387fc7e4"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"24ff609426a5e16d0448c0c51451460cd5ff21ea","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(64) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a68dd71_1baa54d5","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":7},"updated":"2016-01-20 19:00:39.000000000","message":"but it is a strange for me to use \u0027_id\u0027 in the code","commit_id":"a3d5a7605fb5e03377ffa993ea4dccc30e9b391a"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"e4920c135eb7b37d28db4d61bacd107a78e39355","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(64) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a68dd71_5b09ac94","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":7},"in_reply_to":"9a68dd71_1baa54d5","updated":"2016-01-20 19:11:03.000000000","message":"alright, I will change ti id.  Just because we may want to support group management in the future.","commit_id":"a3d5a7605fb5e03377ffa993ea4dccc30e9b391a"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"f7c174a42fc5c0f173dbca4b3ca6eff30131402b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"},{"line_number":90,"context_line":"  | created_by_user_id     | int(11)     |          |"},{"line_number":91,"context_line":"  +------------------------+-------------+----------+"},{"line_number":92,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":93,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a68dd71_1b87b410","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":22},"updated":"2016-01-20 19:08:52.000000000","message":"but we suggested that audit will be implemented later and in the other way...\nand audit only in this place will be look strange","commit_id":"a3d5a7605fb5e03377ffa993ea4dccc30e9b391a"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"9c0149121191f4f86b99e75df9b46d0a9b095d5d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | id                     | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(64) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_db3cbc31","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":6},"updated":"2016-01-20 19:10:38.000000000","message":"thank you!","commit_id":"d28ff6d38369443f58a8202ee7ada5f5ed3720cc"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"5c76ef7f29901fb12e57ab927ed6ac11cd8d3ae1","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"},{"line_number":90,"context_line":"  | created_by_user_id     | int(11)     |          |"},{"line_number":91,"context_line":"  +------------------------+-------------+----------+"},{"line_number":92,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":93,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_56bbc3c4","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":22},"updated":"2016-01-20 19:26:18.000000000","message":"but we suggested that audit will be implemented later and in the other way...\nand audit only in this place will look strange","commit_id":"d28ff6d38369443f58a8202ee7ada5f5ed3720cc"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"4e62718063d35bd31117aae45cfc743452ae8361","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"},{"line_number":90,"context_line":"  | created_by_user_id     | int(11)     |          |"},{"line_number":91,"context_line":"  +------------------------+-------------+----------+"},{"line_number":92,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":93,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_9148655d","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":22},"in_reply_to":"9a68dd71_56bbc3c4","updated":"2016-01-20 19:36:18.000000000","message":"yes we did and we will implement rich auditing over time and it will be incremental approach.\n\nUntil then, we need some minimum tracking. Especially, the user can be add by different parties (vendor and Foundation).  We need some minimum tracking and accountability at this time.","commit_id":"d28ff6d38369443f58a8202ee7ada5f5ed3720cc"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"072e726dc8af72e163986138f3dd01e042f5479b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"},{"line_number":90,"context_line":"  | created_by_user_id     | int(11)     |          |"},{"line_number":91,"context_line":"  +------------------------+-------------+----------+"},{"line_number":92,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":93,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_d13c9d31","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":22},"in_reply_to":"9a68dd71_9148655d","updated":"2016-01-20 19:50:18.000000000","message":"ok, but here is small trouble for implementation we this id.\nas I said we don\u0027t have user._id in the code and we need to take it before creating record in this table.\n\nalso I don\u0027t think it\u0027s a good pattern to use various ids for same entities reference. If we really need this for auditing, let\u0027s store the same - openid. I suggest storing openid everywhere for the User.","commit_id":"d28ff6d38369443f58a8202ee7ada5f5ed3720cc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"3155e6c9e7ff864f6b16e0a5f1f9fd28a0d83b59","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"},{"line_number":90,"context_line":"  | created_by_user_id     | int(11)     |          |"},{"line_number":91,"context_line":"  +------------------------+-------------+----------+"},{"line_number":92,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":93,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_3de703e6","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":22},"in_reply_to":"9a68dd71_d13c9d31","updated":"2016-01-20 22:41:33.000000000","message":"Yes, let\u0027s use openid since that will be stored in the logged-in user\u0027s session.","commit_id":"d28ff6d38369443f58a8202ee7ada5f5ed3720cc"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"072e726dc8af72e163986138f3dd01e042f5479b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Since more than one users (an interop user or a user in this group) can add"},{"line_number":102,"context_line":"a user to a group, the created_by_user_id field was added for auditing purpose."},{"line_number":103,"context_line":"The created_by_user_id field will store the user_id instead of the user_openid"},{"line_number":104,"context_line":"because we do not anticipate a lot of search or cross referencing operations"},{"line_number":105,"context_line":"will be performed on this field."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_f1d0c1cb","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":28},"updated":"2016-01-20 19:50:18.000000000","message":"(i think that code will never read this field because we don\u0027t have such scenarios. this field may be useful for admin to audit possible issues)","commit_id":"d28ff6d38369443f58a8202ee7ada5f5ed3720cc"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"123c81a15fce6e718997061e7f6d4ed752305647","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  +------------------------+-------------+----------+"},{"line_number":63,"context_line":"  | deleted_at             | datetime    |          |"},{"line_number":64,"context_line":"  +------------------------+-------------+----------+"},{"line_number":65,"context_line":"  | deleted                | tinyint\t |          |"},{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_63e12b9a","line":65,"range":{"start_line":65,"start_character":29,"end_line":65,"end_character":36},"updated":"2016-01-21 19:15:04.000000000","message":"This can be not true because of oslo.db implementation, but it is kind of technical thing.","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"9753ac38895f13856e8dadb9947f111992de475f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  +------------------------+-------------+----------+"},{"line_number":63,"context_line":"  | deleted_at             | datetime    |          |"},{"line_number":64,"context_line":"  +------------------------+-------------+----------+"},{"line_number":65,"context_line":"  | deleted                | tinyint\t |          |"},{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_deb30ae8","line":65,"range":{"start_line":65,"start_character":29,"end_line":65,"end_character":36},"in_reply_to":"9a68dd71_63e12b9a","updated":"2016-01-21 19:30:08.000000000","message":"in migrations it is just \u0027Integer\u0027","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"333d88b8a205b536be1eacbcaab155e92fab8391","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  +------------------------+-------------+----------+"},{"line_number":63,"context_line":"  | deleted_at             | datetime    |          |"},{"line_number":64,"context_line":"  +------------------------+-------------+----------+"},{"line_number":65,"context_line":"  | deleted                | tinyint\t |          |"},{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_5a795d2e","line":65,"range":{"start_line":65,"start_character":29,"end_line":65,"end_character":36},"in_reply_to":"9a68dd71_7f10d301","updated":"2016-01-21 22:49:28.000000000","message":"All we need is a byte here. However, per Oslo\u0027s implementation, I will change it to use integer.","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"1ed8518a292eb8c15dd1b254cff5746c4433a3db","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  +------------------------+-------------+----------+"},{"line_number":63,"context_line":"  | deleted_at             | datetime    |          |"},{"line_number":64,"context_line":"  +------------------------+-------------+----------+"},{"line_number":65,"context_line":"  | deleted                | tinyint\t |          |"},{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_7f10d301","line":65,"range":{"start_line":65,"start_character":29,"end_line":65,"end_character":36},"in_reply_to":"9a68dd71_deb30ae8","updated":"2016-01-21 22:38:10.000000000","message":"Oslo.db seems to be using Integer for the \u0027deleted\u0027 field for their SoftDeleteMixin model.","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"123c81a15fce6e718997061e7f6d4ed752305647","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | id                     | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(80) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_be09762e","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":6},"updated":"2016-01-21 19:15:04.000000000","message":"I really prefer to see _id here if we are not planning to expose it through the API. Otherwise we should put kind of uuid4 here which is varchar(36).\n\nIt looks like second option is more suitable here. Anyway, I\u0027m strongly against of public integer \"id\". It should be hidden integer \"_id\" or public string \"id\"","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"333d88b8a205b536be1eacbcaab155e92fab8391","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | id                     | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(80) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_7ab1c1e0","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":6},"in_reply_to":"9a68dd71_549376a3","updated":"2016-01-21 22:49:28.000000000","message":"Alright, we will use UUID as the value. Let\u0027s keep the name as \u0027id\u0027 and of type varchar(36).","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"9753ac38895f13856e8dadb9947f111992de475f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | id                     | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(80) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_fe128eb3","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":6},"in_reply_to":"9a68dd71_be09762e","updated":"2016-01-21 19:30:08.000000000","message":"in this case I prefer only one column \u0027id\u0027 of type \u0027guid\u0027.\n\nbut it is a little overkill to store guid in association table.\nand using name \u0027_id\u0027 in the contoller\u0027s code will looks strange - someone can think that we access private fields but we access public fileds...","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"1ed8518a292eb8c15dd1b254cff5746c4433a3db","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  +------------------------+-------------+----------+"},{"line_number":67,"context_line":"  | created_at             | datetime    |          |"},{"line_number":68,"context_line":"  +------------------------+-------------+----------+"},{"line_number":69,"context_line":"  | id                     | int(11)     | PK       |"},{"line_number":70,"context_line":"  +------------------------+-------------+----------+"},{"line_number":71,"context_line":"  | name                   | varchar(80) |          |"},{"line_number":72,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_549376a3","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":6},"in_reply_to":"9a68dd71_fe128eb3","updated":"2016-01-21 22:38:10.000000000","message":"I don\u0027t particularly have a strong opinion regarding id vs _id, but I think the group id does have the potential to be exposed in the future if we ever do have group management or even just have a page that lists what groups a user is in, the endpoint might be something like #/group/\u003cid\u003e. \n\nA uuid might be better here if we care about obscuring how many groups we have (assuming auto-incrementing int is the alternative). Seems like right now, pubkeys and tests, whose ids are exposed, currently use uuid4 as the primary key.","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"123c81a15fce6e718997061e7f6d4ed752305647","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  +------------------------+-------------+----------+"},{"line_number":84,"context_line":"  | deleted_at             | datetime    |          |"},{"line_number":85,"context_line":"  +------------------------+-------------+----------+"},{"line_number":86,"context_line":"  | deleted                | tinyint\t |          |"},{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_c3e8177f","line":86,"range":{"start_line":86,"start_character":29,"end_line":86,"end_character":36},"updated":"2016-01-21 19:15:04.000000000","message":"ditto","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"123c81a15fce6e718997061e7f6d4ed752305647","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"},{"line_number":90,"context_line":"  | created_by_user_openid | varchar(128)|          |"},{"line_number":91,"context_line":"  +------------------------+-------------+----------+"},{"line_number":92,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":93,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_9e3d92bd","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":26},"updated":"2016-01-21 19:15:04.000000000","message":"\"created_by_user\" will be enought, I think","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"333d88b8a205b536be1eacbcaab155e92fab8391","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  +------------------------+-------------+----------+"},{"line_number":88,"context_line":"  | created_at             | datetime    |          |"},{"line_number":89,"context_line":"  +------------------------+-------------+----------+"},{"line_number":90,"context_line":"  | created_by_user_openid | varchar(128)|          |"},{"line_number":91,"context_line":"  +------------------------+-------------+----------+"},{"line_number":92,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":93,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_df03ff0b","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":26},"in_reply_to":"9a68dd71_9e3d92bd","updated":"2016-01-21 22:49:28.000000000","message":"OK","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"123c81a15fce6e718997061e7f6d4ed752305647","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  +------------------------+-------------+----------+"},{"line_number":94,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":95,"context_line":"  +------------------------+-------------+----------+"},{"line_number":96,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":97,"context_line":"  +------------------------+-------------+----------+"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"**Note:**"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_3e6346de","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":15},"updated":"2016-01-21 19:15:04.000000000","message":"ditto","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"9753ac38895f13856e8dadb9947f111992de475f","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  +------------------------+-------------+----------+"},{"line_number":94,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":95,"context_line":"  +------------------------+-------------+----------+"},{"line_number":96,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":97,"context_line":"  +------------------------+-------------+----------+"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"**Note:**"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_ded46abe","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":15},"in_reply_to":"9a68dd71_3e6346de","updated":"2016-01-21 19:30:08.000000000","message":"pubkeys table has \u0027openid\u0027 column for this.\nbut if we have \u0027group_id\u0027 then it is logical to name another association as \u0027user_openid\u0027","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"333d88b8a205b536be1eacbcaab155e92fab8391","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  +------------------------+-------------+----------+"},{"line_number":94,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":95,"context_line":"  +------------------------+-------------+----------+"},{"line_number":96,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":97,"context_line":"  +------------------------+-------------+----------+"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"**Note:**"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_da08ed93","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":15},"in_reply_to":"9a68dd71_ded46abe","updated":"2016-01-21 22:49:28.000000000","message":"Let\u0027s keep user_openid as the name here.","commit_id":"28b0a2b785cfa32ade240dde629bec8cb57034d0"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"b4fe833224b7ab38942e4c0ac46e37eec77ffc65","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  +------------------------+-------------+----------+"},{"line_number":95,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":96,"context_line":"  +------------------------+-------------+----------+"},{"line_number":97,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":98,"context_line":"  +------------------------+-------------+----------+"},{"line_number":99,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":100,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a68dd71_f221484e","line":97,"range":{"start_line":97,"start_character":29,"end_line":97,"end_character":32},"updated":"2016-01-22 08:45:06.000000000","message":"varchar(36)","commit_id":"372d6812011bc7624375db108dcc2e1069075ccc"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"3f06a273b008eea43db729cd92e4c18a7d85aab8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  +------------------------+-------------+----------+"},{"line_number":95,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":96,"context_line":"  +------------------------+-------------+----------+"},{"line_number":97,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":98,"context_line":"  +------------------------+-------------+----------+"},{"line_number":99,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":100,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a68dd71_f29dac66","line":97,"range":{"start_line":97,"start_character":29,"end_line":97,"end_character":32},"in_reply_to":"9a68dd71_da60d103","updated":"2016-01-22 17:00:50.000000000","message":"Oops you are absolutely correct.  Thanks for catching it. Yes it should be varchar(36).","commit_id":"372d6812011bc7624375db108dcc2e1069075ccc"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"af25813e8cd174431929dab47e9bf7bef92587a3","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  +------------------------+-------------+----------+"},{"line_number":95,"context_line":"  | _id                    | int(11)     | PK       |"},{"line_number":96,"context_line":"  +------------------------+-------------+----------+"},{"line_number":97,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":98,"context_line":"  +------------------------+-------------+----------+"},{"line_number":99,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":100,"context_line":"  +------------------------+-------------+----------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a68dd71_da60d103","line":97,"range":{"start_line":97,"start_character":29,"end_line":97,"end_character":32},"in_reply_to":"9a68dd71_f221484e","updated":"2016-01-22 12:09:13.000000000","message":"+1","commit_id":"372d6812011bc7624375db108dcc2e1069075ccc"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"af25813e8cd174431929dab47e9bf7bef92587a3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  +------------------------+-------------+----------+"},{"line_number":97,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":98,"context_line":"  +------------------------+-------------+----------+"},{"line_number":99,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":100,"context_line":"  +------------------------+-------------+----------+"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  **Note:**"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a68dd71_fa24b5c5","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":15},"updated":"2016-01-22 12:09:13.000000000","message":"Can be just user_id... But it is up to you","commit_id":"372d6812011bc7624375db108dcc2e1069075ccc"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"3f06a273b008eea43db729cd92e4c18a7d85aab8","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  +------------------------+-------------+----------+"},{"line_number":97,"context_line":"  | group_id               | int(11)     | FK       |"},{"line_number":98,"context_line":"  +------------------------+-------------+----------+"},{"line_number":99,"context_line":"  | user_openid            | varchar(128)| FK       |"},{"line_number":100,"context_line":"  +------------------------+-------------+----------+"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  **Note:**"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a68dd71_527cb81e","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":15},"in_reply_to":"9a68dd71_fa24b5c5","updated":"2016-01-22 17:00:50.000000000","message":"Let\u0027s just keep it as user_openid.","commit_id":"372d6812011bc7624375db108dcc2e1069075ccc"}]}
