)]}'
{"id":"openstack%2Fkeystone~1002455","triplet_id":"openstack%2Fkeystone~unmaintained%2F2024.1~I0d0c0e1a1d0728655e559fbe12ed3fd117d17d33","project":"openstack/keystone","branch":"unmaintained/2024.1","attention_set":{"16137":{"account":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"last_update":"2026-08-26 09:53:02.000000000","reason":"A robot voted negatively on a label"},"14250":{"account":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"last_update":"2026-08-26 22:32:48.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I0d0c0e1a1d0728655e559fbe12ed3fd117d17d33","subject":"credentials: reject delegated tokens, restrict PATCH to blob only","status":"NEW","created":"2026-08-26 09:02:34.000000000","updated":"2026-08-26 22:32:48.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":29,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"60d4c3615da9b68e1cf08aa3cf5f0a7111b42b11","_number":1002455,"virtual_id_number":1002455,"owner":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-08-26 22:32:48.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-26 09:02:34.000000000","updated_by":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"reviewer":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"state":"CC"},{"updated":"2026-08-26 09:53:02.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"9ad32b71b6f27377b6df93ed3b6554e1e988b3b0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"date":"2026-08-26 09:02:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"5628d797d5885810a03637826d20f1d2fdd82cd1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-26 09:53:02.000000000","message":"Patch Set 1: Verified-1\n\n(22 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/7f0897ea5f4841b5a584773fb37858e3\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/03084777f6dc41c399c4c62df9525180 : FAILURE in 14m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3eb0ca83c25a4bf4bde959eaefac2d24 : FAILURE in 3m 59s (non-voting)\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/42b2b3cddbe1458c833731a2885fd323 : FAILURE in 7m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/36d7a5935bc84bb8a66121cfe8fb6004 : FAILURE in 11m 34s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ba0522af70b4f81b31928986286d2fe : SUCCESS in 8m 01s\n- grenade https://zuul.opendev.org/t/openstack/build/61b7a2897f0b4d099f30b2ff15f8d2b9 : FAILURE in 43m 48s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/213a601f7d7a43c79204862418c5f45d : FAILURE in 44m 35s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0410edb5dce0439ebd6fb496921fe186 : SUCCESS in 5m 50s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/d4e91bb224b440cfb34a17f6ee9ee569 : SUCCESS in 15m 13s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/aa69e042b0264030a54df44ad55aba76 : FAILURE in 44m 23s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/5ef049b05b2c41219d4e03e76cf8f544 : FAILURE in 15m 41s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/07db79ed2cc84f938ee81e55144377bb : SUCCESS in 16m 40s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/bef73462f5994bf6b478a4007608e120 : FAILURE in 10m 28s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/6fa3904c6a8f447ea94921baed5af085 : FAILURE in 12m 12s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/609237b09a9244799d34698b8661813f : FAILURE in 32m 53s\n- keystone-dsvm-functional-oidc-federation https://zuul.opendev.org/t/openstack/build/0e885dea0158479681e5ce9762a39dff : SUCCESS in 24m 16s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job keystone-dsvm-py3-functional-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job keystone-dsvm-py3-functional-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  Comments left for invalid file keystone/api/trusts.py\n  Comments left for invalid file keystone/tests/unit/auth/plugins/test_mapped.py\n  Comments left for invalid file keystone/tests/unit/common/test_rbac_enforcer.py\n  Comments left for invalid file keystone/tests/unit/test_v3_application_credential.py\n  Comments left for invalid file keystone/tests/unit/test_v3_auth.py\n  Comments left for invalid file keystone/tests/unit/test_v3_oauth1.py\n  Comments left for invalid file keystone/tests/unit/test_v3_trust.py","accounts_in_message":[],"_revision_number":1},{"id":"e5c5e1f67fe4473f903bb630fcb3da6c5980a4d2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-08-26 20:48:11.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"60d4c3615da9b68e1cf08aa3cf5f0a7111b42b11","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-26 22:32:48.000000000","message":"Patch Set 2: Verified-1\n\n(7 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/01372be3630049a7b9db14c62a1dd3e7\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/92deaba695a940d68df36ded8a7bcdef : SUCCESS in 16m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/691a4c08256d415188d07d81a5480bf1 : FAILURE in 4m 55s (non-voting)\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/872ad4652d5e4f7a93fca3f0cd84c5e2 : SUCCESS in 8m 53s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/49d6f0893e00442a9471f7dbe2612861 : SUCCESS in 7m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/37db458230c04983b9e3d343cd20cb08 : SUCCESS in 14m 29s\n- grenade https://zuul.opendev.org/t/openstack/build/8531c9b516324521aa7037c95ca929ff : FAILURE in 39m 53s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/17d1b03826034f42ba6b8f050e4ea3c2 : FAILURE in 1h 30m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8ae77a7d256745a1a283420451019ff4 : SUCCESS in 13m 09s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/17f5b5d1bf6d49229e0f283334c78586 : SUCCESS in 21m 21s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/0db85024cb7c4312a96a4cd4491c6833 : FAILURE in 28m 00s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/3c48b7277a2a460ebaf79b54d5d9aafb : FAILURE in 25m 00s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/f4979c2095de462b862be6bb1f83cffe : SUCCESS in 15m 01s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/2844b6921b05485db4a7e089856af641 : FAILURE in 8m 37s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/3bbb6c8f6b224a60955f63be98dd38b3 : FAILURE in 10m 51s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9f146f471af64165ad714443babda923 : FAILURE in 29m 54s\n- keystone-dsvm-functional-oidc-federation https://zuul.opendev.org/t/openstack/build/8cb150d75371453ea8d9305d9b9d3026 : SUCCESS in 30m 34s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job keystone-dsvm-py3-functional-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job keystone-dsvm-py3-functional-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  Comments left for invalid file keystone/api/trusts.py\n  Comments left for invalid file keystone/tests/unit/auth/plugins/test_mapped.py\n  Comments left for invalid file keystone/tests/unit/common/test_rbac_enforcer.py\n  Comments left for invalid file keystone/tests/unit/test_v3_application_credential.py\n  Comments left for invalid file keystone/tests/unit/test_v3_auth.py\n  Comments left for invalid file keystone/tests/unit/test_v3_oauth1.py\n  Comments left for invalid file keystone/tests/unit/test_v3_trust.py","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"64f8ffb5994ed5770b1e9452e0b234d0574b5ab7","revisions":{"0d3b1ea938fbaff0fdabd2292cde94f93a9e893f":{"kind":"REWORK","_number":1,"created":"2026-08-26 09:02:34.000000000","uploader":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"ref":"refs/changes/55/1002455/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/55/1002455/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/55/1002455/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/55/1002455/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/55/1002455/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/55/1002455/1"}}},"commit":{"parents":[{"commit":"cb8558df24842dd18aa13f7351e6e856e411e2c0","subject":"Ban ec2credential tokens from Keystone API","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/cb8558df24842dd18aa13f7351e6e856e411e2c0"}]}],"author":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-07-21 11:06:22.000000000","tz":120},"committer":{"name":"Tobias Urdin","email":"tobias.urdin@binero.com","date":"2026-08-26 09:01:28.000000000","tz":120},"subject":"credentials: reject delegated tokens, restrict PATCH to blob only","message":"credentials: reject delegated tokens, restrict PATCH to blob only\n\nDelegated tokens (application_credential, OAuth1, trust, and\nec2credential) could read, create, modify, or delete credentials\nvia /v3/credentials and the OS-EC2 compat endpoint. The existing\nguards only compared project_id and never treated ec2credential\nas delegated.\n\nReplace those guards with a primary-auth-only gate: any token\nwhose methods aren\u0027t entirely primary auth methods, or that\ncarries a trust_id, is rejected from GET/POST/PATCH/DELETE on\nthose endpoints. This also removes trust/OAuth1 EC2 credential\ncreation, never a deliberate feature (bug 1242597 /\nOSSA-2013-032).\n\nPATCH now only accepts `blob`; `type`, `user_id`, and\n`project_id` are immutable after creation. Delete and recreate\nthe credential to change them.\n\nNarrow the existing, deprecated\nallow_insecure_admin_trust_cross_project_credentials_access\noption (LP#2150089) to ec2-type credentials only, matching its\ndocumented use case: an admin-role trust used to list/sync EC2\ncredentials.\n\nAn empty token.methods list is treated as delegated.\n\nUses keystone.api._shared.delegation from the LP#2153453 change.\n\nCloses-Bug: #2159643\nDepends-On: https://review.opendev.org/c/openstack/tempest/+/1002295\nDepends-On: https://review.opendev.org/c/openstack/keystone-tempest-plugin/+/1002296\nChange-Id: I0d0c0e1a1d0728655e559fbe12ed3fd117d17d33\nAssisted-by: Cursor Grok 4.6 \u003cnoreply@cursor.com\u003e\nSigned-off-by: Grzegorz Grasza \u003cxek@redhat.com\u003e\n(cherry picked from commit 3a1409e4d4ebe0232b72ba2ec52b66bb53ab3b81)\n(cherry picked from commit 937f295a0b1190f13ab5ab26419f8b34c3430138)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/0d3b1ea938fbaff0fdabd2292cde94f93a9e893f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/0d3b1ea938fbaff0fdabd2292cde94f93a9e893f"}]},"branch":"refs/heads/unmaintained/2024.1"},"64f8ffb5994ed5770b1e9452e0b234d0574b5ab7":{"kind":"REWORK","_number":2,"created":"2026-08-26 20:48:11.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/55/1002455/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/55/1002455/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/55/1002455/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/55/1002455/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/55/1002455/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/55/1002455/2"}}},"commit":{"parents":[{"commit":"cb8558df24842dd18aa13f7351e6e856e411e2c0","subject":"Ban ec2credential tokens from Keystone API","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/cb8558df24842dd18aa13f7351e6e856e411e2c0"}]}],"author":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-07-21 11:06:22.000000000","tz":120},"committer":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-08-26 20:48:03.000000000","tz":120},"subject":"credentials: reject delegated tokens, restrict PATCH to blob only","message":"credentials: reject delegated tokens, restrict PATCH to blob only\n\nDelegated tokens (application_credential, OAuth1, trust, and\nec2credential) could read, create, modify, or delete credentials\nvia /v3/credentials and the OS-EC2 compat endpoint. The existing\nguards only compared project_id and never treated ec2credential\nas delegated.\n\nReplace those guards with a primary-auth-only gate: any token\nwhose methods aren\u0027t entirely primary auth methods, or that\ncarries a trust_id, is rejected from GET/POST/PATCH/DELETE on\nthose endpoints. This also removes trust/OAuth1 EC2 credential\ncreation, never a deliberate feature (bug 1242597 /\nOSSA-2013-032).\n\nPATCH now only accepts `blob`; `type`, `user_id`, and\n`project_id` are immutable after creation. Delete and recreate\nthe credential to change them.\n\nNarrow the existing, deprecated\nallow_insecure_admin_trust_cross_project_credentials_access\noption (LP#2150089) to ec2-type credentials only, matching its\ndocumented use case: an admin-role trust used to list/sync EC2\ncredentials.\n\nAn empty token.methods list is treated as delegated.\n\nUses keystone.api._shared.delegation from the LP#2153453 change.\n\nCloses-Bug: #2159643\nDepends-On: https://review.opendev.org/c/openstack/tempest/+/1002295\nDepends-On: https://review.opendev.org/c/openstack/keystone-tempest-plugin/+/1002296\nChange-Id: I0d0c0e1a1d0728655e559fbe12ed3fd117d17d33\nAssisted-by: Cursor Grok 4.6 \u003cnoreply@cursor.com\u003e\nSigned-off-by: Grzegorz Grasza \u003cxek@redhat.com\u003e\n(cherry picked from commit 3a1409e4d4ebe0232b72ba2ec52b66bb53ab3b81)\n(cherry picked from commit 937f295a0b1190f13ab5ab26419f8b34c3430138)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/64f8ffb5994ed5770b1e9452e0b234d0574b5ab7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/64f8ffb5994ed5770b1e9452e0b234d0574b5ab7"}]},"branch":"refs/heads/unmaintained/2024.1"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
