)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"5a99a9dc083d953a59cc7bb2adfb2ac1d610a0b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6751f383_fc6caf0c","updated":"2026-08-17 09:29:37.000000000","message":"LGTM","commit_id":"59c0ce0f4e91ff3a564f61fc1656034d366126cc"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"182a1ed0af1894ab141715c465aac9ffd9464d1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"5743c278_c0207cdf","updated":"2026-08-17 08:03:09.000000000","message":"recheck","commit_id":"59c0ce0f4e91ff3a564f61fc1656034d366126cc"}],"api-ref/source/databases.inc":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"c2faa0fad02f346a766d6c0a0bdd6ea05b2ae234","unresolved":true,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"List instance databases for a user"},{"line_number":188,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":".. rest_method::  POST /v1.0/{project_id}/instances/{instanceId}/users/access/action"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":3,"id":"436bd2d5_1f0c9c69","line":188,"updated":"2026-08-11 14:42:30.000000000","message":"```suggestion\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```","commit_id":"aebbb4055875d3c8e660cd78053d3a8c39b456e4"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"636b138acfee719b9f37fd960a57604d4c803b05","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"List instance databases for a user"},{"line_number":188,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":".. rest_method::  POST /v1.0/{project_id}/instances/{instanceId}/users/access/action"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":3,"id":"765cd019_e561739a","line":188,"in_reply_to":"436bd2d5_1f0c9c69","updated":"2026-08-11 14:45:32.000000000","message":"Done, thnx","commit_id":"aebbb4055875d3c8e660cd78053d3a8c39b456e4"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"23e07dbdaf1b33e38bc3527d3b3d332a13f1184b","unresolved":true,"context_lines":[{"line_number":310,"context_line":"  type: string"},{"line_number":311,"context_line":"database_action_object:"},{"line_number":312,"context_line":"  description: |"},{"line_number":313,"context_line":"    Object containing database_name paremeter."},{"line_number":314,"context_line":"  in: body"},{"line_number":315,"context_line":"  required: true"},{"line_number":316,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"ef10cfb7_3ed5801e","line":313,"updated":"2026-08-14 13:55:14.000000000","message":"A tiny typo: parameter","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"e73281235c4679a17de887ca798a0af12bb70e9c","unresolved":false,"context_lines":[{"line_number":310,"context_line":"  type: string"},{"line_number":311,"context_line":"database_action_object:"},{"line_number":312,"context_line":"  description: |"},{"line_number":313,"context_line":"    Object containing database_name paremeter."},{"line_number":314,"context_line":"  in: body"},{"line_number":315,"context_line":"  required: true"},{"line_number":316,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"ad6e70f7_a288ee0f","line":313,"in_reply_to":"ef10cfb7_3ed5801e","updated":"2026-08-15 12:18:27.000000000","message":"Done","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"}],"api-ref/source/users.inc":[{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"23e07dbdaf1b33e38bc3527d3b3d332a13f1184b","unresolved":true,"context_lines":[{"line_number":176,"context_line":"   - instanceId: instanceId"},{"line_number":177,"context_line":"   - show: user_action_object"},{"line_number":178,"context_line":"   - show.user_name: user_name1"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Request Example"},{"line_number":182,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"64f0398e_290e7468","line":179,"updated":"2026-08-14 13:55:14.000000000","message":"Seems like `show.user_host: user_host` is missing","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"e73281235c4679a17de887ca798a0af12bb70e9c","unresolved":false,"context_lines":[{"line_number":176,"context_line":"   - instanceId: instanceId"},{"line_number":177,"context_line":"   - show: user_action_object"},{"line_number":178,"context_line":"   - show.user_name: user_name1"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Request Example"},{"line_number":182,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"de648728_a13c2c9b","line":179,"in_reply_to":"64f0398e_290e7468","updated":"2026-08-15 12:18:27.000000000","message":"Done","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"},{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"23e07dbdaf1b33e38bc3527d3b3d332a13f1184b","unresolved":true,"context_lines":[{"line_number":247,"context_line":"   - update: user_action_object"},{"line_number":248,"context_line":"   - update.user_name: user_name1"},{"line_number":249,"context_line":"   - update.user_host: user_host"},{"line_number":250,"context_line":"   - update.user: users"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"Request Example"},{"line_number":253,"context_line":"---------------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"0d41a585_d0bbd35a","line":250,"updated":"2026-08-14 13:55:14.000000000","message":"In `parameters.yaml`, `users` is defined as an array, while `update.user` is an object. Shouldn\u0027t a separate object parameter be added here?","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"e73281235c4679a17de887ca798a0af12bb70e9c","unresolved":false,"context_lines":[{"line_number":247,"context_line":"   - update: user_action_object"},{"line_number":248,"context_line":"   - update.user_name: user_name1"},{"line_number":249,"context_line":"   - update.user_host: user_host"},{"line_number":250,"context_line":"   - update.user: users"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"Request Example"},{"line_number":253,"context_line":"---------------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"5e9df03d_c527fd3e","line":250,"in_reply_to":"0d41a585_d0bbd35a","updated":"2026-08-15 12:18:27.000000000","message":"Done","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"}],"trove/common/apischema.py":[{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"23e07dbdaf1b33e38bc3527d3b3d332a13f1184b","unresolved":true,"context_lines":[{"line_number":744,"context_line":"    }"},{"line_number":745,"context_line":"}"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"database \u003d {"},{"line_number":748,"context_line":"    \"action\": {"},{"line_number":749,"context_line":"        \"oneOf\": ["},{"line_number":750,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"26ea45c4_50583be3","line":747,"updated":"2026-08-14 13:55:14.000000000","message":"Looks like this new database `delete` action schema isn\u0027t wired into `SchemaController`, it still uses `apischema.dbschema`","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"e73281235c4679a17de887ca798a0af12bb70e9c","unresolved":false,"context_lines":[{"line_number":744,"context_line":"    }"},{"line_number":745,"context_line":"}"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"database \u003d {"},{"line_number":748,"context_line":"    \"action\": {"},{"line_number":749,"context_line":"        \"oneOf\": ["},{"line_number":750,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"0982a282_237cc1fb","line":747,"in_reply_to":"26ea45c4_50583be3","updated":"2026-08-15 12:18:27.000000000","message":"Done","commit_id":"114391a7c80e60d89267c0a4524d9bf79f6dcf59"}],"trove/common/db/mysql/models.py":[{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"23e07dbdaf1b33e38bc3527d3b3d332a13f1184b","unresolved":true,"context_lines":[{"line_number":134,"context_line":"    def _is_valid_user_name(self, value):"},{"line_number":135,"context_line":"        return self._is_valid_string(value)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _is_valid_password(self, value):"},{"line_number":138,"context_line":"        return self._is_valid_string(value)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _is_valid_host_name(self, value):"}],"source_content_type":"text/x-python","patch_set":8,"id":"4b1f96d4_88c3d924","side":"PARENT","line":137,"updated":"2026-08-14 13:55:14.000000000","message":"This removes validation not only for usernames but also for passwords, is that intentional?","commit_id":"af8ebb3604d092b522d9376afe50ac01e58f1e31"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"e73281235c4679a17de887ca798a0af12bb70e9c","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    def _is_valid_user_name(self, value):"},{"line_number":135,"context_line":"        return self._is_valid_string(value)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _is_valid_password(self, value):"},{"line_number":138,"context_line":"        return self._is_valid_string(value)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _is_valid_host_name(self, value):"}],"source_content_type":"text/x-python","patch_set":8,"id":"646e3085_109de637","side":"PARENT","line":137,"in_reply_to":"4b1f96d4_88c3d924","updated":"2026-08-15 12:18:27.000000000","message":"IMO, the password should be an arbitrary value and not be limited by some internal Trove logic. In addition, the restrictions on passwords aren\u0027t documented anywhere, so I think it is legitimate to introduce these changes in the current MR.\n\nBTW, thank you for the review; all your points hit the mark.","commit_id":"af8ebb3604d092b522d9376afe50ac01e58f1e31"}]}
