)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34228582873f75112aadfca7dac3544433f55c36","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Add Barbican secret store migrate helper"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Expose Secret.migrate_store and Proxy.migrate_secret_store for"},{"line_number":10,"context_line":"key-manager microversion 1.3 (OSPRH-35261)."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #2164792"},{"line_number":13,"context_line":"Assisted-by: Cursor Grok 4.6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7dc21519_57d33c46","line":10,"updated":"2026-08-26 10:08:05.000000000","message":"This is a downstream tracker and doesn\u0027t belong in an upstream change. Let\u0027s drop this","commit_id":"fa6650d915340f47b802179502ceb7157229add2"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"1e9e952fa94cb29c593654a08e648c99abcef026","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"856edfb7_4994a2c9","updated":"2026-08-27 16:31:04.000000000","message":"Agree with Stephen\u0027s comments, especially on the store identifier design.  Let\u0027s settle that on the barbican side (1002398) first since it defines the wire contract, then this can follow.","commit_id":"fa6650d915340f47b802179502ceb7157229add2"}],"openstack/key_manager/v1/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34228582873f75112aadfca7dac3544433f55c36","unresolved":true,"context_lines":[{"line_number":353,"context_line":"        self,"},{"line_number":354,"context_line":"        secret: str | _secret.Secret,"},{"line_number":355,"context_line":"        secret_store: str | _secret_store.SecretStore | None \u003d None,"},{"line_number":356,"context_line":"        *,"},{"line_number":357,"context_line":"        secret_store_id: str | None \u003d None,"},{"line_number":358,"context_line":"        secret_store_ref: str | None \u003d None,"},{"line_number":359,"context_line":"    ) -\u003e None:"},{"line_number":360,"context_line":"        \"\"\"Migrate a secret to another secret store."},{"line_number":361,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"280df021_27bf357c","line":358,"range":{"start_line":356,"start_character":10,"end_line":358,"end_character":44},"updated":"2026-08-26 10:08:05.000000000","message":"These feels redundant. From the [API ref](https://docs.openstack.org/barbican/latest/api/reference/store_backends.html) and [SecretStore implementation](https://github.com/openstack/openstacksdk/blob/d8c5453619f9212aa3579d6ba9ef978967a072d2/openstack/key_manager/v1/secret_store.py#L47-L52), it seems secret stores responses don\u0027t have an explicit `id` field and are identified by their href via the `secret_store_ref` field.\n\nThis being the case, shouldn\u0027t the `secret_store` argument cover both cases: either a user provides a `SecretStore` instance with the `secret_store_id` field populated (which is a href) or the `id` field artificially populated (since it will never be populated from an API response, given the lack of an `id` field), *or* they provide a string which would have to be either a href or a UUID. It should be pretty simple to disambiguate between a UUID and href, so can we drop these arguments, make `secret_store` non-nullable and update the docstring to indicate what we accept?","commit_id":"fa6650d915340f47b802179502ceb7157229add2"}],"openstack/key_manager/v1/secret.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34228582873f75112aadfca7dac3544433f55c36","unresolved":true,"context_lines":[{"line_number":158,"context_line":"            body[\u0027secret_store_id\u0027] \u003d secret_store_id"},{"line_number":159,"context_line":"        if secret_store_ref is not None:"},{"line_number":160,"context_line":"            body[\u0027secret_store_ref\u0027] \u003d secret_store_ref"},{"line_number":161,"context_line":"        session.put(url, json\u003dbody, microversion\u003d\u00271.3\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"10c1c201_3883246c","line":161,"updated":"2026-08-26 10:08:05.000000000","message":"I\u0027m not able to find any docs on this in either the [secret stores](https://docs.openstack.org/barbican/latest/api/reference/store_backends.html) or [secrets](https://docs.openstack.org/barbican/latest/api/reference/secret_types.html) API refs. Is that a gap in the barbican docs or have I missed something?\n\nAlso, as an API consumer, it\u0027s weird that this API takes an `secret_store_id` field and `GET /v1/secret-stores/{uuid}` expects an UUID despite neither `GET /v1/secret-stores` not `GET /v1/secret-stores/{uuid}` exposing said ID. Might be one to address for a future API microversion?","commit_id":"fa6650d915340f47b802179502ceb7157229add2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"55c666d6a378c03b8e45a16a2b62b32ebb380900","unresolved":true,"context_lines":[{"line_number":158,"context_line":"            body[\u0027secret_store_id\u0027] \u003d secret_store_id"},{"line_number":159,"context_line":"        if secret_store_ref is not None:"},{"line_number":160,"context_line":"            body[\u0027secret_store_ref\u0027] \u003d secret_store_ref"},{"line_number":161,"context_line":"        session.put(url, json\u003dbody, microversion\u003d\u00271.3\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ac8ef86_3cc8961b","line":161,"in_reply_to":"10c1c201_3883246c","updated":"2026-08-26 10:09:06.000000000","message":"Later: I now realise this is WIP and [dependent on a barbican change](https://review.opendev.org/c/openstack/barbican/+/1002398).","commit_id":"fa6650d915340f47b802179502ceb7157229add2"}]}
