)]}'
{"couchbase_utils/cb_server_rest_util/security/encryption_at_rest.py":[{"robot_id":"copilot-infra-review","robot_run_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51","author":{"_account_id":1004304,"name":"Ashwin","email":"ashwin.govindarajulu@couchbase.com","username":"ashwin2002","avatars":[{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"28ccd26e64b8066485f2e0961c5b74ad0b38d746","patch_set":1,"id":"26f77593_e80a05b1","line":8,"updated":"2026-05-14 06:31:06.000000000","message":"[ADVISORY] Unnecessary `__init__` override: the method body only calls `super().__init__()` which Python cooperative MRO already invokes automatically. Sibling classes that carry their own args (e.g. `RbacAuthorization`) need it; a pure-delegation stub adds noise. Either drop the method entirely or document why it must be explicit.","commit_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51"},{"robot_id":"copilot-infra-review","robot_run_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51","author":{"_account_id":1004304,"name":"Ashwin","email":"ashwin.govindarajulu@couchbase.com","username":"ashwin2002","avatars":[{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"28ccd26e64b8066485f2e0961c5b74ad0b38d746","patch_set":1,"id":"4931a17b_a17d4506","line":16,"updated":"2026-05-14 06:31:06.000000000","message":"[WARNING] URL trailing-slash inconsistency: the docstring (line 13) and AGENTS.md both document the canonical path as `/settings/encryptionKeys/` (with trailing slash), but the constructed URL omits it. Some Couchbase REST endpoints treat these differently and may return a redirect (301) that strips the POST/PUT body. Align the URL with the documented canonical form:\nsuggestion\n        api \u003d self.base_url + \"/settings/encryptionKeys/\"\n","commit_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51"},{"robot_id":"copilot-infra-review","robot_run_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51","author":{"_account_id":1004304,"name":"Ashwin","email":"ashwin.govindarajulu@couchbase.com","username":"ashwin2002","avatars":[{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"28ccd26e64b8066485f2e0961c5b74ad0b38d746","patch_set":1,"id":"78de5b9d_b48a6763","line":23,"updated":"2026-05-14 06:31:06.000000000","message":"[ADVISORY] Wrong doc-anchor: `get_encryption_at_rest_key` links to `#list-keys` — the same anchor used by `list_encryption_at_rest_keys`. This should reference the single-key retrieval section (e.g. `#get-key`) to avoid misleading readers who follow the link.\nsuggestion\n        https://docs.couchbase.com/server/current/rest-api/security/encryption-at-rest/manage-encryption-keys.html#get-key\n","commit_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51"},{"robot_id":"copilot-infra-review","robot_run_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51","author":{"_account_id":1004304,"name":"Ashwin","email":"ashwin.govindarajulu@couchbase.com","username":"ashwin2002","avatars":[{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"28ccd26e64b8066485f2e0961c5b74ad0b38d746","patch_set":1,"id":"d6511bac_4b2bd72d","line":41,"updated":"2026-05-14 06:31:06.000000000","message":"[ADVISORY] Wrong doc-anchor: `update_encryption_at_rest_key` links to `#create-key`. The PUT (update) operation has its own anchor — use `#update-key` or the correct fragment from the Couchbase docs to avoid sending developers to the wrong section.","commit_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51"},{"robot_id":"copilot-infra-review","robot_run_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51","author":{"_account_id":1004304,"name":"Ashwin","email":"ashwin.govindarajulu@couchbase.com","username":"ashwin2002","avatars":[{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"28ccd26e64b8066485f2e0961c5b74ad0b38d746","patch_set":1,"id":"8d87be21_9bc62dca","line":111,"updated":"2026-05-14 06:31:06.000000000","message":"[WARNING] Missing input validation for `data_type` in `drop_encryption_deks_for_type`. An invalid value is silently interpolated into the URL, resulting in a confusing HTTP 404 from the server rather than a clear Python error at the call site. Add an early guard:\nsuggestion\n        _VALID_TYPES \u003d {\"audit\", \"config\", \"log\"}\n        if data_type not in _VALID_TYPES:\n            raise ValueError(f\"data_type must be one of {_VALID_TYPES}, got {data_type!r}\")\n        api \u003d self.base_url + f\"/controller/dropEncryptionAtRestDeks/{data_type}\"\n","commit_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51"},{"robot_id":"copilot-infra-review","robot_run_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51","author":{"_account_id":1004304,"name":"Ashwin","email":"ashwin.govindarajulu@couchbase.com","username":"ashwin2002","avatars":[{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/2ee592846162e058ddc8e055dd3f55ce.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"28ccd26e64b8066485f2e0961c5b74ad0b38d746","patch_set":1,"id":"e84fb7df_803418b3","line":141,"updated":"2026-05-14 06:31:06.000000000","message":"[WARNING] Same missing `data_type` validation as `drop_encryption_deks_for_type` (line 111). `force_encryption_at_rest_for_type` accepts `\"audit\" | \"config\" | \"log\"` but passes any string directly into the URL. Apply the same guard:\nsuggestion\n        _VALID_TYPES \u003d {\"audit\", \"config\", \"log\"}\n        if data_type not in _VALID_TYPES:\n            raise ValueError(f\"data_type must be one of {_VALID_TYPES}, got {data_type!r}\")\n        api \u003d self.base_url + f\"/controller/forceEncryptionAtRest/{data_type}\"\n","commit_id":"4c9693c870197306f4f543d9ddeb5b308fab0d51"}]}
