Reference verification
Review that the targeted function matches what the text describes.
| Report file | Line | Reference | Status | Targeted function |
|---|---|---|---|---|
| 00-summary_stable-2026.2.md | 58 | keystone/wsgi/api.py | OK | |
| 00-summary_stable-2026.2.md | 58 | keystone/server/flask/core.py:145-186 | OK | initialize_application |
| 00-summary_stable-2026.2.md | 59 | pyproject.toml | OK | |
| 00-summary_stable-2026.2.md | 59 | keystone/cmd/cli.py | OK | |
| 00-summary_stable-2026.2.md | 90 | keystone/federation/utils.py | OK | |
| 00-summary_stable-2026.2.md | 91 | keystone/identity/backends/ldap/common.py | OK | |
| 01-rest-api_stable-2026.2.md | 10 | keystone/server/flask/core.py:39-70 | OK | <module> |
| 01-rest-api_stable-2026.2.md | 10 | keystone/server/flask/core.py:93-142 | OK | setup_app_middleware |
| 01-rest-api_stable-2026.2.md | 17 | keystone/server/flask/request_processing/middleware/url_normalize.py:16 | OK | URLNormalizingMiddleware |
| 01-rest-api_stable-2026.2.md | 18 | keystone/server/flask/request_processing/middleware/auth_context.py | OK | |
| 01-rest-api_stable-2026.2.md | 20 | keystone/server/flask/application.py:211-212 | OK | application_factory |
| 01-rest-api_stable-2026.2.md | 21 | keystone/server/flask/application.py:228-237 | OK | application_factory |
| 01-rest-api_stable-2026.2.md | 22 | keystone/server/flask/request_processing/json_body.py:23 | OK | json_body_before_request |
| 01-rest-api_stable-2026.2.md | 23 | keystone/server/flask/application.py:106-110 | OK | _add_vary_x_auth_token_header |
| 01-rest-api_stable-2026.2.md | 23 | keystone/server/flask/common.py:182 | OK | _remove_content_type_on_204 |
| 01-rest-api_stable-2026.2.md | 24 | keystone/api/discovery.py:44-65 | OK | MimeTypes |
| 01-rest-api_stable-2026.2.md | 27 | keystone/server/flask/common.py:160 | OK | _assert_rbac_enforcement_called |
| 01-rest-api_stable-2026.2.md | 28 | keystone/common/rbac_enforcer/enforcer.py:300-320 | OK | _assert_is_authenticated |
| 01-rest-api_stable-2026.2.md | 28 | keystone/common/rbac_enforcer/enforcer.py:102-136 | OK | _enforce |
| 01-rest-api_stable-2026.2.md | 29 | keystone/common/policies/base.py:47-76 | OK | <module> |
| 01-rest-api_stable-2026.2.md | 35 | keystone/server/flask/common.py:903-972 | OK | build_driver_hints |
| 01-rest-api_stable-2026.2.md | 36 | keystone/server/flask/common.py:701-764 | OK | wrap_collection |
| 01-rest-api_stable-2026.2.md | 40 | keystone/server/flask/application.py:176-183 | OK | _handle_unknown_keystone_exception |
| 01-rest-api_stable-2026.2.md | 48 | keystone/api/auth.py:320-336 | OK | post |
| 01-rest-api_stable-2026.2.md | 48 | keystone/api/_shared/authentication.py:208-282 | OK | authenticate_for_token |
| 01-rest-api_stable-2026.2.md | 51 | keystone/conf/constants.py:19-27 | OK | <module> |
| 01-rest-api_stable-2026.2.md | 52 | keystone/api/_shared/authentication.py:34-117 | OK | _check_and_set_default_scoping |
| 01-rest-api_stable-2026.2.md | 54 | keystone/token/provider.py:276-390 | OK | issue_token |
| 01-rest-api_stable-2026.2.md | 57 | keystone/auth/plugins/password.py:24-44 | OK | <module> |
| 01-rest-api_stable-2026.2.md | 57 | keystone/identity/backends/sql.py:63-123 | OK | authenticate |
| 01-rest-api_stable-2026.2.md | 64 | keystone/receipt/handlers.py | OK | |
| 01-rest-api_stable-2026.2.md | 64 | keystone/server/flask/application.py:128-129 | OK | _handle_keystone_exception |
| 01-rest-api_stable-2026.2.md | 66 | keystone/api/auth.py:279-317 | OK | get |
| 01-rest-api_stable-2026.2.md | 69 | keystone/token/provider.py:139-275 | OK | validate_token |
| 01-rest-api_stable-2026.2.md | 76 | keystone/token/provider.py:218-229 | OK | _is_valid_token |
| 01-rest-api_stable-2026.2.md | 78 | keystone/api/auth.py:338-357 | OK | delete |
| 01-rest-api_stable-2026.2.md | 78 | keystone/token/provider.py:406-434 | OK | revoke_token |
| 01-rest-api_stable-2026.2.md | 82 | keystone/api/auth.py:119-260 | OK | AuthProjectsResource |
| 01-rest-api_stable-2026.2.md | 82 | keystone/api/auth.py:262-276 | OK | AuthTokenOSPKIResource |
| 01-rest-api_stable-2026.2.md | 85 | keystone/api/users.py | OK | |
| 01-rest-api_stable-2026.2.md | 85 | keystone/identity/core.py | OK | |
| 01-rest-api_stable-2026.2.md | 88 | keystone/identity/core.py:1076-1093 | OK | _assert_default_project_id_is_not_domain |
| 01-rest-api_stable-2026.2.md | 99 | keystone/api/users.py:949 | OK | delete |
| 01-rest-api_stable-2026.2.md | 102 | keystone/resource/core.py:62-620 | OK | _assert_max_hierarchy_depth |
| 01-rest-api_stable-2026.2.md | 110 | keystone/resource/core.py:521-539 | OK | _post_delete_cleanup_project |
| 01-rest-api_stable-2026.2.md | 114 | keystone/resource/core.py:1226-1600 | OK | init |
| 01-rest-api_stable-2026.2.md | 125 | keystone/api/policy.py:76-96 | OK | post |
| 01-rest-api_stable-2026.2.md | 129 | keystone/api/credentials.py:144-170 | OK | _assign_unique_id |
| 01-rest-api_stable-2026.2.md | 130 | keystone/api/_shared/EC2_S3_Resource.py | OK | |
| 01-rest-api_stable-2026.2.md | 132 | keystone/api/_shared/EC2_S3_Resource.py:46-68 | OK | _check_timestamp |
| 01-rest-api_stable-2026.2.md | 133 | keystone/api/_shared/EC2_S3_Resource.py:166-220 | OK | handle_authenticate |
| 01-rest-api_stable-2026.2.md | 138 | keystone/application_credential/core.py:87-150 | OK | _require_user_has_role_in_project |
| 01-rest-api_stable-2026.2.md | 150 | keystone/trust/core.py:57-205 | OK | _on_user_delete |
| 01-rest-api_stable-2026.2.md | 164 | keystone/federation/utils.py:469-1130 | OK | RuleProcessor |
| 01-rest-api_stable-2026.2.md | 169 | keystone/auth/plugins/mapped.py:41-500 | OK | authenticate |
| 01-rest-api_stable-2026.2.md | 170 | keystone/federation/idp.py:447-541 | OK | _verify_assertion_binary_is_installed |
| 01-rest-api_stable-2026.2.md | 174 | keystone/api/os_oauth2.py:74-130 | OK | post |
| 01-rest-api_stable-2026.2.md | 178 | keystone/oauth2/handlers.py | OK | |
| 01-rest-api_stable-2026.2.md | 187 | keystone/api/os_simple_cert.py | OK | |
| 01-rest-api_stable-2026.2.md | 197 | keystone/api/discovery.py:56 | OK | v3_mime_type_best_match |
| 01-rest-api_stable-2026.2.md | 199 | keystone/api/discovery.py:87 | OK | get_versions |
| 01-rest-api_stable-2026.2.md | 205 | keystone/api/auth.py:237 | OK | get |
| 01-rest-api_stable-2026.2.md | 206 | keystone/api/auth.py:157 | OK | get |
| 01-rest-api_stable-2026.2.md | 207 | keystone/api/auth.py:123 | OK | get |
| 01-rest-api_stable-2026.2.md | 208 | keystone/api/auth.py:189 | OK | get |
| 01-rest-api_stable-2026.2.md | 209 | keystone/api/auth.py:338 | OK | delete |
| 01-rest-api_stable-2026.2.md | 210 | keystone/api/auth.py:279 | OK | get |
| 01-rest-api_stable-2026.2.md | 211 | keystone/api/auth.py:319 | OK | get |
| 01-rest-api_stable-2026.2.md | 212 | keystone/api/auth.py:263 | OK | AuthTokenOSPKIResource |
| 01-rest-api_stable-2026.2.md | 218 | keystone/api/auth.py:157 | OK | get |
| 01-rest-api_stable-2026.2.md | 219 | keystone/api/os_federation.py:112 | OK | _add_related_links |
| 01-rest-api_stable-2026.2.md | 220 | keystone/api/os_federation.py:194 | OK | delete |
| 01-rest-api_stable-2026.2.md | 221 | keystone/api/os_federation.py:154 | OK | IdentityProviderResource |
| 01-rest-api_stable-2026.2.md | 222 | keystone/api/os_federation.py:183 | OK | put |
| 01-rest-api_stable-2026.2.md | 223 | keystone/api/os_federation.py:167 | OK | get |
| 01-rest-api_stable-2026.2.md | 224 | keystone/api/os_federation.py:225 | OK | IDPProtocolsListResource |
| 01-rest-api_stable-2026.2.md | 225 | keystone/api/os_federation.py:285 | OK | patch |
| 01-rest-api_stable-2026.2.md | 226 | keystone/api/os_federation.py:243 | OK | IDPProtocolsCRUDResource |
| 01-rest-api_stable-2026.2.md | 227 | keystone/api/os_federation.py:270 | OK | put |
| 01-rest-api_stable-2026.2.md | 228 | keystone/api/os_federation.py:255 | OK | get |
| 01-rest-api_stable-2026.2.md | 229 | keystone/api/os_federation.py:518 | OK | OSFederationAuthResource |
| 01-rest-api_stable-2026.2.md | 230 | keystone/api/os_federation.py:527 | OK | get |
| 01-rest-api_stable-2026.2.md | 231 | keystone/api/os_federation.py:379 | OK | delete |
| 01-rest-api_stable-2026.2.md | 232 | keystone/api/os_federation.py:303 | OK | get |
| 01-rest-api_stable-2026.2.md | 233 | keystone/api/os_federation.py:367 | OK | patch |
| 01-rest-api_stable-2026.2.md | 234 | keystone/api/os_federation.py:353 | OK | put |
| 01-rest-api_stable-2026.2.md | 235 | keystone/api/os_federation.py:379 | OK | delete |
| 01-rest-api_stable-2026.2.md | 236 | keystone/api/os_federation.py:303 | OK | get |
| 01-rest-api_stable-2026.2.md | 237 | keystone/api/os_federation.py:367 | OK | patch |
| 01-rest-api_stable-2026.2.md | 238 | keystone/api/os_federation.py:353 | OK | put |
| 01-rest-api_stable-2026.2.md | 239 | keystone/api/auth.py:123 | OK | get |
| 01-rest-api_stable-2026.2.md | 240 | keystone/api/os_federation.py:499 | OK | SAML2MetadataResource |
| 01-rest-api_stable-2026.2.md | 241 | keystone/api/os_federation.py:405 | OK | ServiceProvidersResource |
| 01-rest-api_stable-2026.2.md | 242 | keystone/api/os_federation.py:488 | OK | delete |
| 01-rest-api_stable-2026.2.md | 243 | keystone/api/os_federation.py:444 | OK | ServiceProviderResource |
| 01-rest-api_stable-2026.2.md | 244 | keystone/api/os_federation.py:473 | OK | put |
| 01-rest-api_stable-2026.2.md | 245 | keystone/api/os_federation.py:456 | OK | get |
| 01-rest-api_stable-2026.2.md | 246 | keystone/api/auth.py:410 | OK | _perform_auth |
| 01-rest-api_stable-2026.2.md | 247 | keystone/api/auth.py:414 | OK | get |
| 01-rest-api_stable-2026.2.md | 248 | keystone/api/auth.py:420 | OK | get |
| 01-rest-api_stable-2026.2.md | 249 | keystone/api/auth.py:423 | OK | get |
| 01-rest-api_stable-2026.2.md | 250 | keystone/api/auth.py:440 | OK | get |
| 01-rest-api_stable-2026.2.md | 251 | keystone/api/auth.py:443 | OK | get |
| 01-rest-api_stable-2026.2.md | 252 | keystone/api/auth.py:391 | OK | _perform_auth |
| 01-rest-api_stable-2026.2.md | 253 | keystone/api/auth.py:395 | OK | get |
| 01-rest-api_stable-2026.2.md | 259 | keystone/api/groups.py:58 | OK | GroupsResource |
| 01-rest-api_stable-2026.2.md | 260 | keystone/api/groups.py:86 | OK | get |
| 01-rest-api_stable-2026.2.md | 261 | keystone/api/groups.py:147 | OK | patch |
| 01-rest-api_stable-2026.2.md | 262 | keystone/api/groups.py:114 | OK | GroupResource |
| 01-rest-api_stable-2026.2.md | 263 | keystone/api/groups.py:128 | OK | get |
| 01-rest-api_stable-2026.2.md | 264 | keystone/api/groups.py:163 | OK | get |
| 01-rest-api_stable-2026.2.md | 265 | keystone/api/groups.py:245 | OK | delete |
| 01-rest-api_stable-2026.2.md | 266 | keystone/api/groups.py:215 | OK | get |
| 01-rest-api_stable-2026.2.md | 267 | keystone/api/groups.py:229 | OK | put |
| 01-rest-api_stable-2026.2.md | 268 | keystone/api/users.py:294 | OK | UsersResource |
| 01-rest-api_stable-2026.2.md | 269 | keystone/api/users.py:339 | OK | get |
| 01-rest-api_stable-2026.2.md | 270 | keystone/api/users.py:269 | OK | patch |
| 01-rest-api_stable-2026.2.md | 271 | keystone/api/users.py:234 | OK | UserResource |
| 01-rest-api_stable-2026.2.md | 272 | keystone/api/users.py:249 | OK | get |
| 01-rest-api_stable-2026.2.md | 273 | keystone/api/users.py:411 | OK | get |
| 01-rest-api_stable-2026.2.md | 274 | keystone/api/users.py:361 | OK | UserChangePasswordResource |
| 01-rest-api_stable-2026.2.md | 275 | keystone/api/users.py:366 | OK | get |
| 01-rest-api_stable-2026.2.md | 276 | keystone/api/users.py:392 | OK | get |
| 01-rest-api_stable-2026.2.md | 277 | keystone/api/users.py:949 | OK | delete |
| 01-rest-api_stable-2026.2.md | 283 | keystone/api/users.py:874 | OK | UserAccessRuleListResource |
| 01-rest-api_stable-2026.2.md | 284 | keystone/api/users.py:926 | OK | get |
| 01-rest-api_stable-2026.2.md | 285 | keystone/api/users.py:904 | OK | UserAccessRuleGetDeleteResource |
| 01-rest-api_stable-2026.2.md | 286 | keystone/api/users.py:741 | OK | _get_roles |
| 01-rest-api_stable-2026.2.md | 287 | keystone/api/users.py:763 | OK | get |
| 01-rest-api_stable-2026.2.md | 288 | keystone/api/users.py:851 | OK | delete |
| 01-rest-api_stable-2026.2.md | 289 | keystone/api/users.py:828 | OK | UserAppCredGetDeleteResource |
| 01-rest-api_stable-2026.2.md | 295 | keystone/api/credentials.py:173 | OK | _assign_unique_id |
| 01-rest-api_stable-2026.2.md | 296 | keystone/api/credentials.py:217 | OK | get |
| 01-rest-api_stable-2026.2.md | 297 | keystone/api/credentials.py:315 | OK | delete |
| 01-rest-api_stable-2026.2.md | 298 | keystone/api/credentials.py:268 | OK | _validate_blob_update_keys |
| 01-rest-api_stable-2026.2.md | 299 | keystone/api/credentials.py:287 | OK | get |
| 01-rest-api_stable-2026.2.md | 300 | keystone/api/_shared/EC2_S3_Resource.py:34 | OK | ResourceBase |
| 01-rest-api_stable-2026.2.md | 301 | keystone/api/ec2tokens.py:64 | OK | post |
| 01-rest-api_stable-2026.2.md | 302 | keystone/api/_shared/EC2_S3_Resource.py:34 | OK | ResourceBase |
| 01-rest-api_stable-2026.2.md | 303 | keystone/api/s3tokens.py:102 | OK | post |
| 01-rest-api_stable-2026.2.md | 304 | keystone/api/users.py:456 | OK | get |
| 01-rest-api_stable-2026.2.md | 305 | keystone/api/users.py:473 | OK | post |
| 01-rest-api_stable-2026.2.md | 306 | keystone/api/users.py:533 | OK | delete |
| 01-rest-api_stable-2026.2.md | 307 | keystone/api/users.py:516 | OK | get |
| 01-rest-api_stable-2026.2.md | 313 | keystone/api/domains.py:135 | OK | DomainsResource |
| 01-rest-api_stable-2026.2.md | 314 | keystone/api/domains.py:158 | OK | get |
| 01-rest-api_stable-2026.2.md | 315 | keystone/api/domains.py:116 | OK | delete |
| 01-rest-api_stable-2026.2.md | 316 | keystone/api/domains.py:87 | OK | DomainResource |
| 01-rest-api_stable-2026.2.md | 317 | keystone/api/domains.py:101 | OK | get |
| 01-rest-api_stable-2026.2.md | 318 | keystone/api/domains.py:245 | OK | delete |
| 01-rest-api_stable-2026.2.md | 319 | keystone/api/domains.py:190 | OK | get |
| 01-rest-api_stable-2026.2.md | 320 | keystone/api/domains.py:230 | OK | patch |
| 01-rest-api_stable-2026.2.md | 321 | keystone/api/domains.py:270 | OK | put |
| 01-rest-api_stable-2026.2.md | 322 | keystone/api/domains.py:245 | OK | delete |
| 01-rest-api_stable-2026.2.md | 323 | keystone/api/domains.py:190 | OK | get |
| 01-rest-api_stable-2026.2.md | 324 | keystone/api/domains.py:230 | OK | patch |
| 01-rest-api_stable-2026.2.md | 325 | keystone/api/domains.py:245 | OK | delete |
| 01-rest-api_stable-2026.2.md | 326 | keystone/api/domains.py:190 | OK | get |
| 01-rest-api_stable-2026.2.md | 327 | keystone/api/domains.py:230 | OK | patch |
| 01-rest-api_stable-2026.2.md | 328 | keystone/api/domains.py:335 | OK | get |
| 01-rest-api_stable-2026.2.md | 329 | keystone/api/domains.py:324 | OK | get |
| 01-rest-api_stable-2026.2.md | 330 | keystone/api/domains.py:313 | OK | get |
| 01-rest-api_stable-2026.2.md | 331 | keystone/api/projects.py:162 | OK | ProjectsResource |
| 01-rest-api_stable-2026.2.md | 332 | keystone/api/projects.py:201 | OK | get |
| 01-rest-api_stable-2026.2.md | 333 | keystone/api/projects.py:138 | OK | patch |
| 01-rest-api_stable-2026.2.md | 334 | keystone/api/projects.py:105 | OK | _expand_project_ref |
| 01-rest-api_stable-2026.2.md | 335 | keystone/api/projects.py:120 | OK | get |
| 01-rest-api_stable-2026.2.md | 336 | keystone/api/projects.py:281 | OK | put |
| 01-rest-api_stable-2026.2.md | 337 | keystone/api/projects.py:249 | OK | ProjectTagsResource |
| 01-rest-api_stable-2026.2.md | 338 | keystone/api/projects.py:263 | OK | get |
| 01-rest-api_stable-2026.2.md | 339 | keystone/api/projects.py:335 | OK | put |
| 01-rest-api_stable-2026.2.md | 340 | keystone/api/projects.py:297 | OK | ProjectTagResource |
| 01-rest-api_stable-2026.2.md | 341 | keystone/api/projects.py:311 | OK | get |
| 01-rest-api_stable-2026.2.md | 347 | keystone/api/os_inherit.py:169 | OK | delete |
| 01-rest-api_stable-2026.2.md | 348 | keystone/api/os_inherit.py:123 | OK | get |
| 01-rest-api_stable-2026.2.md | 349 | keystone/api/os_inherit.py:146 | OK | put |
| 01-rest-api_stable-2026.2.md | 350 | keystone/api/os_inherit.py:194 | OK | get |
| 01-rest-api_stable-2026.2.md | 351 | keystone/api/os_inherit.py:263 | OK | delete |
| 01-rest-api_stable-2026.2.md | 352 | keystone/api/os_inherit.py:217 | OK | get |
| 01-rest-api_stable-2026.2.md | 353 | keystone/api/os_inherit.py:240 | OK | put |
| 01-rest-api_stable-2026.2.md | 354 | keystone/api/os_inherit.py:288 | OK | get |
| 01-rest-api_stable-2026.2.md | 355 | keystone/api/os_inherit.py:428 | OK | delete |
| 01-rest-api_stable-2026.2.md | 356 | keystone/api/os_inherit.py:382 | OK | get |
| 01-rest-api_stable-2026.2.md | 357 | keystone/api/os_inherit.py:405 | OK | put |
| 01-rest-api_stable-2026.2.md | 358 | keystone/api/os_inherit.py:357 | OK | delete |
| 01-rest-api_stable-2026.2.md | 359 | keystone/api/os_inherit.py:311 | OK | get |
| 01-rest-api_stable-2026.2.md | 360 | keystone/api/os_inherit.py:334 | OK | put |
| 01-rest-api_stable-2026.2.md | 361 | keystone/api/trusts.py:448 | OK | get |
| 01-rest-api_stable-2026.2.md | 362 | keystone/api/trusts.py:503 | OK | get |
| 01-rest-api_stable-2026.2.md | 363 | keystone/api/domains.py:434 | OK | DomainGroupListResource |
| 01-rest-api_stable-2026.2.md | 364 | keystone/api/domains.py:496 | OK | put |
| 01-rest-api_stable-2026.2.md | 365 | keystone/api/domains.py:457 | OK | DomainGroupResource |
| 01-rest-api_stable-2026.2.md | 366 | keystone/api/domains.py:476 | OK | get |
| 01-rest-api_stable-2026.2.md | 367 | keystone/api/domains.py:348 | OK | DomainUserListResource |
| 01-rest-api_stable-2026.2.md | 368 | keystone/api/domains.py:410 | OK | put |
| 01-rest-api_stable-2026.2.md | 369 | keystone/api/domains.py:371 | OK | DomainUserResource |
| 01-rest-api_stable-2026.2.md | 370 | keystone/api/domains.py:390 | OK | get |
| 01-rest-api_stable-2026.2.md | 371 | keystone/api/projects.py:579 | OK | ProjectGroupListGrantResource |
| 01-rest-api_stable-2026.2.md | 372 | keystone/api/projects.py:550 | OK | put |
| 01-rest-api_stable-2026.2.md | 373 | keystone/api/projects.py:499 | OK | ProjectGroupGrantResource |
| 01-rest-api_stable-2026.2.md | 374 | keystone/api/projects.py:524 | OK | get |
| 01-rest-api_stable-2026.2.md | 375 | keystone/api/projects.py:474 | OK | ProjectUserListGrantResource |
| 01-rest-api_stable-2026.2.md | 376 | keystone/api/projects.py:445 | OK | put |
| 01-rest-api_stable-2026.2.md | 377 | keystone/api/projects.py:394 | OK | ProjectUserGrantResource |
| 01-rest-api_stable-2026.2.md | 378 | keystone/api/projects.py:419 | OK | get |
| 01-rest-api_stable-2026.2.md | 379 | keystone/api/role_assignments.py:39 | OK | RoleAssignmentsResource |
| 01-rest-api_stable-2026.2.md | 380 | keystone/api/role_inferences.py:29 | OK | RoleInferencesResource |
| 01-rest-api_stable-2026.2.md | 381 | keystone/api/roles.py:44 | OK | _is_domain_role |
| 01-rest-api_stable-2026.2.md | 382 | keystone/api/roles.py:74 | OK | get |
| 01-rest-api_stable-2026.2.md | 383 | keystone/api/roles.py:221 | OK | RoleImplicationListResource |
| 01-rest-api_stable-2026.2.md | 384 | keystone/api/roles.py:311 | OK | put |
| 01-rest-api_stable-2026.2.md | 385 | keystone/api/roles.py:268 | OK | head |
| 01-rest-api_stable-2026.2.md | 386 | keystone/api/roles.py:296 | OK | _get_implied_role |
| 01-rest-api_stable-2026.2.md | 387 | keystone/api/roles.py:176 | OK | patch |
| 01-rest-api_stable-2026.2.md | 388 | keystone/api/roles.py:107 | OK | _is_domain_role |
| 01-rest-api_stable-2026.2.md | 389 | keystone/api/roles.py:142 | OK | get |
| 01-rest-api_stable-2026.2.md | 390 | keystone/api/system.py:124 | OK | SystemGroupsRolesListResource |
| 01-rest-api_stable-2026.2.md | 391 | keystone/api/system.py:174 | OK | put |
| 01-rest-api_stable-2026.2.md | 392 | keystone/api/system.py:142 | OK | SystemGroupsRolestResource |
| 01-rest-api_stable-2026.2.md | 393 | keystone/api/system.py:158 | OK | get |
| 01-rest-api_stable-2026.2.md | 394 | keystone/api/system.py:60 | OK | SystemUsersListResource |
| 01-rest-api_stable-2026.2.md | 395 | keystone/api/system.py:106 | OK | put |
| 01-rest-api_stable-2026.2.md | 396 | keystone/api/system.py:78 | OK | SystemUsersResource |
| 01-rest-api_stable-2026.2.md | 397 | keystone/api/system.py:92 | OK | get |
| 01-rest-api_stable-2026.2.md | 398 | keystone/api/users.py:625 | OK | get |
| 01-rest-api_stable-2026.2.md | 399 | keystone/api/users.py:645 | OK | get |
| 01-rest-api_stable-2026.2.md | 405 | keystone/api/endpoints.py:76 | OK | EndpointsResource |
| 01-rest-api_stable-2026.2.md | 406 | keystone/api/endpoints.py:93 | OK | get |
| 01-rest-api_stable-2026.2.md | 407 | keystone/api/endpoints.py:143 | OK | delete |
| 01-rest-api_stable-2026.2.md | 408 | keystone/api/endpoints.py:115 | OK | EndpointResource |
| 01-rest-api_stable-2026.2.md | 409 | keystone/api/endpoints.py:127 | OK | get |
| 01-rest-api_stable-2026.2.md | 410 | keystone/api/regions.py:34 | OK | RegionsResource |
| 01-rest-api_stable-2026.2.md | 411 | keystone/api/regions.py:43 | OK | get |
| 01-rest-api_stable-2026.2.md | 412 | keystone/api/regions.py:104 | OK | patch |
| 01-rest-api_stable-2026.2.md | 413 | keystone/api/regions.py:64 | OK | RegionResource |
| 01-rest-api_stable-2026.2.md | 414 | keystone/api/regions.py:92 | OK | put |
| 01-rest-api_stable-2026.2.md | 415 | keystone/api/regions.py:70 | OK | get |
| 01-rest-api_stable-2026.2.md | 416 | keystone/api/services.py:32 | OK | ServicesResource |
| 01-rest-api_stable-2026.2.md | 417 | keystone/api/services.py:45 | OK | get |
| 01-rest-api_stable-2026.2.md | 418 | keystone/api/services.py:90 | OK | delete |
| 01-rest-api_stable-2026.2.md | 419 | keystone/api/services.py:65 | OK | ServiceResource |
| 01-rest-api_stable-2026.2.md | 420 | keystone/api/services.py:75 | OK | get |
| 01-rest-api_stable-2026.2.md | 426 | keystone/api/os_ep_filter.py:65 | OK | EndpointGroupsResource |
| 01-rest-api_stable-2026.2.md | 427 | keystone/api/os_ep_filter.py:80 | OK | get |
| 01-rest-api_stable-2026.2.md | 428 | keystone/api/os_ep_filter.py:141 | OK | delete |
| 01-rest-api_stable-2026.2.md | 429 | keystone/api/os_ep_filter.py:111 | OK | EndpointGroupResource |
| 01-rest-api_stable-2026.2.md | 430 | keystone/api/os_ep_filter.py:123 | OK | get |
| 01-rest-api_stable-2026.2.md | 431 | keystone/api/os_ep_filter.py:239 | OK | get |
| 01-rest-api_stable-2026.2.md | 432 | keystone/api/os_ep_filter.py:216 | OK | get |
| 01-rest-api_stable-2026.2.md | 433 | keystone/api/os_ep_filter.py:288 | OK | delete |
| 01-rest-api_stable-2026.2.md | 434 | keystone/api/os_ep_filter.py:270 | OK | get |
| 01-rest-api_stable-2026.2.md | 435 | keystone/api/os_ep_filter.py:279 | OK | put |
| 01-rest-api_stable-2026.2.md | 436 | keystone/api/os_ep_filter.py:150 | OK | get |
| 01-rest-api_stable-2026.2.md | 437 | keystone/api/os_ep_filter.py:206 | OK | get |
| 01-rest-api_stable-2026.2.md | 438 | keystone/api/os_ep_filter.py:192 | OK | get |
| 01-rest-api_stable-2026.2.md | 439 | keystone/api/os_ep_filter.py:181 | OK | delete |
| 01-rest-api_stable-2026.2.md | 440 | keystone/api/os_ep_filter.py:165 | OK | get |
| 01-rest-api_stable-2026.2.md | 441 | keystone/api/os_ep_filter.py:174 | OK | put |
| 01-rest-api_stable-2026.2.md | 442 | keystone/api/endpoints.py:152 | OK | get |
| 01-rest-api_stable-2026.2.md | 443 | keystone/api/policy.py:92 | OK | patch |
| 01-rest-api_stable-2026.2.md | 444 | keystone/api/policy.py:38 | OK | get |
| 01-rest-api_stable-2026.2.md | 445 | keystone/api/policy.py:78 | OK | post |
| 01-rest-api_stable-2026.2.md | 446 | keystone/api/policy.py:63 | OK | _list_policies |
| 01-rest-api_stable-2026.2.md | 447 | keystone/api/policy.py:92 | OK | patch |
| 01-rest-api_stable-2026.2.md | 448 | keystone/api/policy.py:38 | OK | get |
| 01-rest-api_stable-2026.2.md | 449 | keystone/api/policy.py:78 | OK | post |
| 01-rest-api_stable-2026.2.md | 450 | keystone/api/policy.py:63 | OK | _list_policies |
| 01-rest-api_stable-2026.2.md | 451 | keystone/api/policy.py:105 | OK | get |
| 01-rest-api_stable-2026.2.md | 452 | keystone/api/policy.py:142 | OK | delete |
| 01-rest-api_stable-2026.2.md | 453 | keystone/api/policy.py:122 | OK | get |
| 01-rest-api_stable-2026.2.md | 454 | keystone/api/policy.py:132 | OK | put |
| 01-rest-api_stable-2026.2.md | 455 | keystone/api/policy.py:174 | OK | delete |
| 01-rest-api_stable-2026.2.md | 456 | keystone/api/policy.py:154 | OK | get |
| 01-rest-api_stable-2026.2.md | 457 | keystone/api/policy.py:164 | OK | put |
| 01-rest-api_stable-2026.2.md | 458 | keystone/api/policy.py:208 | OK | delete |
| 01-rest-api_stable-2026.2.md | 459 | keystone/api/policy.py:186 | OK | get |
| 01-rest-api_stable-2026.2.md | 460 | keystone/api/policy.py:197 | OK | put |
| 01-rest-api_stable-2026.2.md | 466 | keystone/api/trusts.py:223 | OK | _normalize_role_list |
| 01-rest-api_stable-2026.2.md | 467 | keystone/api/trusts.py:296 | OK | get |
| 01-rest-api_stable-2026.2.md | 468 | keystone/api/trusts.py:398 | OK | delete |
| 01-rest-api_stable-2026.2.md | 469 | keystone/api/trusts.py:349 | OK | TrustResource |
| 01-rest-api_stable-2026.2.md | 475 | keystone/api/os_oauth1.py:96 | OK | get |
| 01-rest-api_stable-2026.2.md | 476 | keystone/api/os_oauth1.py:227 | OK | AccessTokenResource |
| 01-rest-api_stable-2026.2.md | 477 | keystone/api/os_oauth1.py:96 | OK | get |
| 01-rest-api_stable-2026.2.md | 478 | keystone/api/os_oauth1.py:327 | OK | put |
| 01-rest-api_stable-2026.2.md | 479 | keystone/api/os_oauth1.py:137 | OK | delete |
| 01-rest-api_stable-2026.2.md | 480 | keystone/api/os_oauth1.py:119 | OK | get |
| 01-rest-api_stable-2026.2.md | 481 | keystone/api/os_oauth1.py:151 | OK | patch |
| 01-rest-api_stable-2026.2.md | 482 | keystone/api/os_oauth1.py:124 | OK | post |
| 01-rest-api_stable-2026.2.md | 483 | keystone/api/os_oauth1.py:137 | OK | delete |
| 01-rest-api_stable-2026.2.md | 484 | keystone/api/os_oauth1.py:119 | OK | get |
| 01-rest-api_stable-2026.2.md | 485 | keystone/api/os_oauth1.py:151 | OK | patch |
| 01-rest-api_stable-2026.2.md | 486 | keystone/api/os_oauth1.py:124 | OK | post |
| 01-rest-api_stable-2026.2.md | 487 | keystone/api/os_oauth1.py:96 | OK | get |
| 01-rest-api_stable-2026.2.md | 488 | keystone/api/os_oauth1.py:166 | OK | RequestTokenResource |
| 01-rest-api_stable-2026.2.md | 489 | keystone/api/os_oauth2.py:68 | OK | patch |
| 01-rest-api_stable-2026.2.md | 490 | keystone/api/os_oauth2.py:48 | OK | _method_not_allowed |
| 01-rest-api_stable-2026.2.md | 491 | keystone/api/os_oauth2.py:63 | OK | put |
| 01-rest-api_stable-2026.2.md | 492 | keystone/api/os_oauth2.py:73 | OK | delete |
| 01-rest-api_stable-2026.2.md | 493 | keystone/api/os_oauth2.py:58 | OK | head |
| 01-rest-api_stable-2026.2.md | 494 | keystone/api/users.py:570 | OK | get |
| 01-rest-api_stable-2026.2.md | 495 | keystone/api/users.py:596 | OK | delete |
| 01-rest-api_stable-2026.2.md | 496 | keystone/api/users.py:583 | OK | get |
| 01-rest-api_stable-2026.2.md | 502 | keystone/api/limits.py:61 | OK | LimitsResource |
| 01-rest-api_stable-2026.2.md | 503 | keystone/api/limits.py:111 | OK | get |
| 01-rest-api_stable-2026.2.md | 504 | keystone/api/limits.py:169 | OK | patch |
| 01-rest-api_stable-2026.2.md | 505 | keystone/api/limits.py:140 | OK | LimitResource |
| 01-rest-api_stable-2026.2.md | 506 | keystone/api/limits.py:154 | OK | get |
| 01-rest-api_stable-2026.2.md | 507 | keystone/api/limits.py:184 | OK | LimitModelResource |
| 01-rest-api_stable-2026.2.md | 508 | keystone/api/registered_limits.py:35 | OK | RegisteredLimitsResource |
| 01-rest-api_stable-2026.2.md | 509 | keystone/api/registered_limits.py:54 | OK | get |
| 01-rest-api_stable-2026.2.md | 510 | keystone/api/registered_limits.py:121 | OK | patch |
| 01-rest-api_stable-2026.2.md | 511 | keystone/api/registered_limits.py:85 | OK | RegisteredLimitResource |
| 01-rest-api_stable-2026.2.md | 512 | keystone/api/registered_limits.py:100 | OK | get |
| 01-rest-api_stable-2026.2.md | 518 | keystone/api/os_revoke.py:34 | OK | get |
| 01-rest-api_stable-2026.2.md | 519 | keystone/api/os_simple_cert.py:30 | OK | SimpleCertCAResource |
| 01-rest-api_stable-2026.2.md | 520 | keystone/api/os_simple_cert.py:41 | OK | SimpleCertListResource |
| 02-errors_stable-2026.2.md | 8 | keystone/exception.py:27-60 | OK | <module> |
| 02-errors_stable-2026.2.md | 9 | keystone/server/flask/application.py:126-173 | OK | _handle_keystone_exception |
| 02-errors_stable-2026.2.md | 9 | keystone/server/flask/application.py:202-203 | OK | application_factory |
| 02-errors_stable-2026.2.md | 13 | keystone/receipt/handlers.py | OK | |
| 02-errors_stable-2026.2.md | 14 | keystone/oauth2/handlers.py | OK | |
| 02-errors_stable-2026.2.md | 24 | keystone/server/flask/application.py:113-123 | OK | _best_match_language |
| 02-errors_stable-2026.2.md | 25 | keystone/server/flask/application.py:170-172 | OK | _handle_keystone_exception |
| 02-errors_stable-2026.2.md | 28 | keystone/server/flask/application.py:176-183 | OK | _handle_unknown_keystone_exception |
| 02-errors_stable-2026.2.md | 29 | keystone/server/flask/application.py:218-221 | OK | application_factory |
| 02-errors_stable-2026.2.md | 33 | keystone/exception.py:260-312 | OK | SecurityError |
| 02-errors_stable-2026.2.md | 38 | keystone/common/sql/core.py:567-610 | OK | handle_conflicts |
| 02-errors_stable-2026.2.md | 45 | keystone/common/rbac_enforcer/enforcer.py:300-320 | OK | _assert_is_authenticated |
| 02-errors_stable-2026.2.md | 47 | keystone/token/provider.py:139-153 | OK | validate_token |
| 02-errors_stable-2026.2.md | 63 | keystone/notifications.py:582-636 | OK | _send_notification |
| 02-errors_stable-2026.2.md | 63 | keystone/notifications.py:944-1020 | OK | _send_audit_notification |
| 02-errors_stable-2026.2.md | 64 | keystone/notifications.py:487-506 | OK | _get_notifier |
| 02-errors_stable-2026.2.md | 65 | keystone/exception.py:62-96 | OK | Error |
| 02-errors_stable-2026.2.md | 66 | keystone/token/provider.py:218-229 | OK | _is_valid_token |
| 02-errors_stable-2026.2.md | 67 | keystone/token/token_formatters.py | OK | |
| 02-errors_stable-2026.2.md | 68 | keystone/exception.py:810 | OK | CacheDeserializationError |
| 02-errors_stable-2026.2.md | 76 | keystone/exception.py:62 | OK | Error |
| 02-errors_stable-2026.2.md | 76 | keystone/assignment/backends/sql.py:262 | OK | denormalize_role |
| 02-errors_stable-2026.2.md | 76 | keystone/common/json_home.py:87 | OK | update_resource_data |
| 02-errors_stable-2026.2.md | 77 | keystone/exception.py:98 | OK | ValidationError |
| 02-errors_stable-2026.2.md | 77 | keystone/token/token_formatters.py:90 | OK | unpack |
| 02-errors_stable-2026.2.md | 77 | keystone/token/token_formatters.py:232 | OK | validate_token |
| 02-errors_stable-2026.2.md | 77 | keystone/identity/backends/ldap/common.py:1973 | OK | update |
| 02-errors_stable-2026.2.md | 78 | keystone/exception.py:109 | OK | URLValidationError |
| 02-errors_stable-2026.2.md | 78 | keystone/common/utils.py:481 | OK | check_endpoint_url |
| 02-errors_stable-2026.2.md | 79 | keystone/exception.py:115 | OK | PasswordValidationError |
| 02-errors_stable-2026.2.md | 79 | keystone/common/password_hashers/scrypt.py:94 | OK | verify |
| 02-errors_stable-2026.2.md | 79 | keystone/common/password_hashers/pbkdf2.py:93 | OK | verify |
| 02-errors_stable-2026.2.md | 79 | keystone/common/password_hashers/bcrypt.py:124 | OK | verify |
| 02-errors_stable-2026.2.md | 80 | keystone/exception.py:119 | OK | PasswordRequirementsValidationError |
| 02-errors_stable-2026.2.md | 80 | keystone/common/validation/validators.py:41 | OK | validate_password |
| 02-errors_stable-2026.2.md | 81 | keystone/exception.py:125 | OK | PasswordHistoryValidationError |
| 02-errors_stable-2026.2.md | 81 | keystone/identity/backends/sql.py:304 | OK | _validate_password_history |
| 02-errors_stable-2026.2.md | 82 | keystone/exception.py:134 | OK | PasswordAgeValidationError |
| 02-errors_stable-2026.2.md | 82 | keystone/identity/backends/sql.py:329 | OK | _validate_minimum_password_age |
| 02-errors_stable-2026.2.md | 83 | keystone/exception.py:145 | OK | PasswordSelfServiceDisabled |
| 02-errors_stable-2026.2.md | 83 | keystone/identity/backends/sql.py:315 | OK | change_password |
| 02-errors_stable-2026.2.md | 84 | keystone/exception.py:154 | OK | SchemaValidationError |
| 02-errors_stable-2026.2.md | 84 | keystone/auth/schema.py:110 | OK | validate_issue_token_auth |
| 02-errors_stable-2026.2.md | 84 | keystone/auth/schema.py:119 | OK | validate_issue_token_auth |
| 02-errors_stable-2026.2.md | 84 | keystone/auth/schema.py:130 | OK | validate_issue_token_auth |
| 02-errors_stable-2026.2.md | 85 | keystone/exception.py:160 | OK | ValidationTimeStampError |
| 02-errors_stable-2026.2.md | 85 | keystone/identity/core.py:1253 | OK | _translate_expired_password_hints |
| 02-errors_stable-2026.2.md | 85 | keystone/common/utils.py:367 | OK | parse_expiration_date |
| 02-errors_stable-2026.2.md | 86 | keystone/exception.py:171 | OK | InvalidOperatorError |
| 02-errors_stable-2026.2.md | 86 | keystone/identity/core.py:1258 | OK | _translate_expired_password_hints |
| 02-errors_stable-2026.2.md | 87 | keystone/exception.py:179 | OK | ValidationExpirationError |
| 02-errors_stable-2026.2.md | 87 | keystone/common/utils.py:369 | OK | parse_expiration_date |
| 02-errors_stable-2026.2.md | 88 | keystone/exception.py:190 | OK | StringLengthExceeded |
| 02-errors_stable-2026.2.md | 88 | keystone/common/sql/core.py:107 | OK | initialize |
| 02-errors_stable-2026.2.md | 89 | keystone/exception.py:198 | OK | AmbiguityError |
| 02-errors_stable-2026.2.md | 89 | keystone/assignment/core.py:1482 | OK | get_unique_role_by_name |
| 02-errors_stable-2026.2.md | 90 | keystone/exception.py:206 | OK | ApplicationCredentialValidationError |
| 02-errors_stable-2026.2.md | 90 | keystone/api/users.py:734 | OK | _get_roles |
| 02-errors_stable-2026.2.md | 90 | keystone/api/users.py:818 | OK | post |
| 02-errors_stable-2026.2.md | 91 | keystone/exception.py:210 | OK | CircularRegionHierarchyError |
| 02-errors_stable-2026.2.md | 91 | keystone/catalog/backends/base.py:41 | OK | _ensure_no_circle_in_hierarchical_regions |
| 02-errors_stable-2026.2.md | 92 | keystone/exception.py:219 | OK | ForbiddenNotSecurity |
| 02-errors_stable-2026.2.md | 92 | keystone/application_credential/backends/sql.py:315 | OK | delete_access_rule |
| 02-errors_stable-2026.2.md | 92 | keystone/resource/core.py:81 | OK | _assert_max_hierarchy_depth |
| 02-errors_stable-2026.2.md | 92 | keystone/resource/core.py:320 | OK | _assert_all_parents_are_enabled |
| 02-errors_stable-2026.2.md | 93 | keystone/exception.py:231 | OK | PasswordVerificationError |
| 02-errors_stable-2026.2.md | 93 | keystone/common/password_hashing.py:112 | OK | verify_length_and_trunc_password |
| 02-errors_stable-2026.2.md | 94 | keystone/exception.py:239 | OK | RegionDeletionError |
| 02-errors_stable-2026.2.md | 94 | keystone/catalog/backends/sql.py:167 | OK | delete_region |
| 02-errors_stable-2026.2.md | 95 | keystone/exception.py:246 | OK | ApplicationCredentialLimitExceeded |
| 02-errors_stable-2026.2.md | 95 | keystone/application_credential/core.py:100 | OK | _assert_limit_not_exceeded |
| 02-errors_stable-2026.2.md | 96 | keystone/exception.py:253 | OK | CredentialLimitExceeded |
| 02-errors_stable-2026.2.md | 96 | keystone/credential/core.py:95 | OK | _assert_limit_not_exceeded |
| 02-errors_stable-2026.2.md | 97 | keystone/exception.py:260 | OK | SecurityError |
| 02-errors_stable-2026.2.md | 98 | keystone/exception.py:314 | OK | Unauthorized |
| 02-errors_stable-2026.2.md | 98 | keystone/auth/plugins/totp.py:127 | OK | authenticate |
| 02-errors_stable-2026.2.md | 98 | keystone/auth/plugins/mapped.py:484 | OK | build_local_user_context |
| 02-errors_stable-2026.2.md | 98 | keystone/auth/plugins/mapped.py:619 | OK | validate_and_prepare_federated_user |
| 02-errors_stable-2026.2.md | 99 | keystone/exception.py:320 | OK | InsufficientAuthMethods |
| 02-errors_stable-2026.2.md | 99 | keystone/api/_shared/authentication.py:254 | OK | authenticate_for_token |
| 02-errors_stable-2026.2.md | 100 | keystone/exception.py:338 | OK | ReceiptNotFound |
| 02-errors_stable-2026.2.md | 100 | keystone/receipt/provider.py:109 | OK | validate_receipt |
| 02-errors_stable-2026.2.md | 100 | keystone/receipt/provider.py:119 | OK | validate_receipt |
| 02-errors_stable-2026.2.md | 100 | keystone/receipt/provider.py:151 | OK | _is_valid_receipt |
| 02-errors_stable-2026.2.md | 101 | keystone/exception.py:342 | OK | PasswordExpired |
| 02-errors_stable-2026.2.md | 101 | keystone/identity/backends/sql.py:78 | OK | authenticate |
| 02-errors_stable-2026.2.md | 102 | keystone/exception.py:349 | OK | AuthPluginException |
| 02-errors_stable-2026.2.md | 103 | keystone/exception.py:357 | OK | UserDisabled |
| 02-errors_stable-2026.2.md | 103 | keystone/token/provider.py:249 | OK | _is_valid_token |
| 02-errors_stable-2026.2.md | 103 | keystone/identity/backends/sql.py:76 | OK | authenticate |
| 02-errors_stable-2026.2.md | 104 | keystone/exception.py:361 | OK | AccountLocked |
| 02-errors_stable-2026.2.md | 104 | keystone/identity/backends/sql.py:71 | OK | authenticate |
| 02-errors_stable-2026.2.md | 105 | keystone/exception.py:365 | OK | AuthMethodNotSupported |
| 02-errors_stable-2026.2.md | 105 | keystone/auth/core.py:63 | OK | get_auth_method |
| 02-errors_stable-2026.2.md | 105 | keystone/auth/core.py:348 | OK | _validate_auth_methods |
| 02-errors_stable-2026.2.md | 106 | keystone/exception.py:373 | OK | ApplicationCredentialAuthError |
| 02-errors_stable-2026.2.md | 106 | keystone/auth/core.py:282 | OK | _validate_and_normalize_scope_data |
| 02-errors_stable-2026.2.md | 107 | keystone/exception.py:379 | OK | AdditionalAuthRequired |
| 02-errors_stable-2026.2.md | 107 | keystone/api/_shared/authentication.py:199 | OK | authenticate |
| 02-errors_stable-2026.2.md | 108 | keystone/exception.py:387 | OK | Forbidden |
| 02-errors_stable-2026.2.md | 108 | keystone/identity/backends/ldap/core.py:159 | OK | _disallow_write |
| 02-errors_stable-2026.2.md | 108 | keystone/identity/backends/ldap/core.py:170 | OK | delete_user |
| 02-errors_stable-2026.2.md | 108 | keystone/identity/backends/ldap/core.py:173 | OK | reset_last_active |
| 02-errors_stable-2026.2.md | 109 | keystone/exception.py:395 | OK | ForbiddenAction |
| 02-errors_stable-2026.2.md | 109 | keystone/identity/backends/ldap/common.py:1960 | OK | update |
| 02-errors_stable-2026.2.md | 109 | keystone/auth/plugins/token.py:74 | OK | token_authenticate |
| 02-errors_stable-2026.2.md | 109 | keystone/auth/plugins/token.py:81 | OK | token_authenticate |
| 02-errors_stable-2026.2.md | 110 | keystone/exception.py:401 | OK | CrossBackendNotAllowed |
| 02-errors_stable-2026.2.md | 110 | keystone/identity/core.py:1001 | OK | _assert_user_and_group_in_same_backend |
| 02-errors_stable-2026.2.md | 111 | keystone/exception.py:409 | OK | InvalidPolicyAssociation |
| 02-errors_stable-2026.2.md | 111 | keystone/endpoint_policy/core.py:71 | OK | _assert_valid_association |
| 02-errors_stable-2026.2.md | 112 | keystone/exception.py:418 | OK | InvalidDomainConfig |
| 02-errors_stable-2026.2.md | 112 | keystone/resource/core.py:1240 | OK | _assert_valid_config |
| 02-errors_stable-2026.2.md | 112 | keystone/resource/core.py:1251 | OK | _assert_valid_config |
| 02-errors_stable-2026.2.md | 112 | keystone/resource/core.py:1296 | OK | _assert_valid_group_and_option |
| 02-errors_stable-2026.2.md | 113 | keystone/exception.py:422 | OK | InvalidLimit |
| 02-errors_stable-2026.2.md | 113 | keystone/limit/models/strict_two_level.py:89 | OK | _check_limit |
| 02-errors_stable-2026.2.md | 113 | keystone/limit/models/strict_two_level.py:106 | OK | _check_limit |
| 02-errors_stable-2026.2.md | 113 | keystone/limit/models/strict_two_level.py:152 | OK | check_limit |
| 02-errors_stable-2026.2.md | 114 | keystone/exception.py:426 | OK | LimitTreeExceedError |
| 02-errors_stable-2026.2.md | 114 | keystone/resource/core.py:1142 | OK | check_project_depth |
| 02-errors_stable-2026.2.md | 115 | keystone/exception.py:439 | OK | NotFound |
| 02-errors_stable-2026.2.md | 115 | keystone/identity/backends/ldap/core.py:151 | OK | check_user_in_group |
| 02-errors_stable-2026.2.md | 115 | keystone/identity/backends/ldap/common.py:1634 | OK | _dn_to_id |
| 02-errors_stable-2026.2.md | 115 | keystone/identity/backends/ldap/common.py:1648 | OK | _dn_to_id |
| 02-errors_stable-2026.2.md | 116 | keystone/exception.py:445 | OK | MarkerNotFound |
| 02-errors_stable-2026.2.md | 116 | keystone/identity/backends/sql.py:199 | OK | list_users |
| 02-errors_stable-2026.2.md | 116 | keystone/identity/backends/sql.py:485 | OK | list_groups |
| 02-errors_stable-2026.2.md | 116 | keystone/resource/backends/sql.py:90 | OK | list_projects |
| 02-errors_stable-2026.2.md | 117 | keystone/exception.py:449 | OK | EndpointNotFound |
| 02-errors_stable-2026.2.md | 117 | keystone/catalog/backends/sql.py:251 | OK | _get_endpoint |
| 02-errors_stable-2026.2.md | 117 | keystone/catalog/core.py:232 | OK | delete_endpoint |
| 02-errors_stable-2026.2.md | 117 | keystone/catalog/core.py:239 | OK | get_endpoint |
| 02-errors_stable-2026.2.md | 118 | keystone/exception.py:453 | OK | PolicyNotFound |
| 02-errors_stable-2026.2.md | 118 | keystone/policy/backends/sql.py:47 | OK | _get_policy |
| 02-errors_stable-2026.2.md | 119 | keystone/exception.py:457 | OK | PolicyAssociationNotFound |
| 02-errors_stable-2026.2.md | 119 | keystone/endpoint_policy/backends/sql.py:96 | OK | check_policy_association |
| 02-errors_stable-2026.2.md | 119 | keystone/endpoint_policy/backends/sql.py:128 | OK | get_policy_association |
| 02-errors_stable-2026.2.md | 120 | keystone/exception.py:461 | OK | RoleNotFound |
| 02-errors_stable-2026.2.md | 120 | keystone/auth/plugins/mapped.py:407 | OK | validate_shadow_mapping |
| 02-errors_stable-2026.2.md | 120 | keystone/assignment/core.py:1476 | OK | get_unique_role_by_name |
| 02-errors_stable-2026.2.md | 120 | keystone/assignment/role_backends/sql.py:64 | OK | _get_role |
| 02-errors_stable-2026.2.md | 121 | keystone/exception.py:465 | OK | ImpliedRoleNotFound |
| 02-errors_stable-2026.2.md | 121 | keystone/assignment/role_backends/sql.py:114 | OK | _get_implied_role |
| 02-errors_stable-2026.2.md | 122 | keystone/exception.py:469 | OK | InvalidImpliedRole |
| 02-errors_stable-2026.2.md | 122 | keystone/assignment/core.py:1553 | OK | create_implied_role |
| 02-errors_stable-2026.2.md | 122 | keystone/assignment/core.py:1556 | OK | create_implied_role |
| 02-errors_stable-2026.2.md | 123 | keystone/exception.py:473 | OK | DomainSpecificRoleMismatch |
| 02-errors_stable-2026.2.md | 123 | keystone/assignment/core.py:318 | OK | create_grant |
| 02-errors_stable-2026.2.md | 124 | keystone/exception.py:480 | OK | DomainSpecificRoleNotWithinIdPDomain |
| 02-errors_stable-2026.2.md | 124 | keystone/auth/plugins/mapped.py:421 | OK | validate_shadow_mapping |
| 02-errors_stable-2026.2.md | 125 | keystone/exception.py:487 | OK | DomainIdInvalid |
| 02-errors_stable-2026.2.md | 125 | keystone/api/domains.py:177 | OK | post |
| 02-errors_stable-2026.2.md | 126 | keystone/exception.py:491 | OK | RoleAssignmentNotFound |
| 02-errors_stable-2026.2.md | 126 | keystone/assignment/backends/sql.py:140 | OK | check_grant_role_id |
| 02-errors_stable-2026.2.md | 126 | keystone/assignment/backends/sql.py:166 | OK | delete_grant |
| 02-errors_stable-2026.2.md | 126 | keystone/assignment/backends/sql.py:400 | OK | check_system_grant |
| 02-errors_stable-2026.2.md | 127 | keystone/exception.py:499 | OK | RegionNotFound |
| 02-errors_stable-2026.2.md | 127 | keystone/catalog/backends/sql.py:116 | OK | _get_region |
| 02-errors_stable-2026.2.md | 127 | keystone/catalog/core.py:109 | OK | create_region |
| 02-errors_stable-2026.2.md | 127 | keystone/catalog/core.py:120 | OK | get_region |
| 02-errors_stable-2026.2.md | 128 | keystone/exception.py:503 | OK | ServiceNotFound |
| 02-errors_stable-2026.2.md | 128 | keystone/catalog/backends/sql.py:204 | OK | _get_service |
| 02-errors_stable-2026.2.md | 128 | keystone/catalog/core.py:161 | OK | get_service |
| 02-errors_stable-2026.2.md | 128 | keystone/catalog/core.py:182 | OK | delete_service |
| 02-errors_stable-2026.2.md | 129 | keystone/exception.py:507 | OK | DomainNotFound |
| 02-errors_stable-2026.2.md | 129 | keystone/identity/core.py:909 | OK | _select_identity_driver |
| 02-errors_stable-2026.2.md | 129 | keystone/models/token_model.py:489 | OK | _validate_token_resources |
| 02-errors_stable-2026.2.md | 129 | keystone/models/token_model.py:521 | OK | _validate_token_user |
| 02-errors_stable-2026.2.md | 130 | keystone/exception.py:511 | OK | ProjectNotFound |
| 02-errors_stable-2026.2.md | 130 | keystone/auth/core.py:212 | OK | _lookup_project |
| 02-errors_stable-2026.2.md | 130 | keystone/models/token_model.py:480 | OK | _validate_token_resources |
| 02-errors_stable-2026.2.md | 130 | keystone/resource/backends/sql.py:44 | OK | _get_project |
| 02-errors_stable-2026.2.md | 131 | keystone/exception.py:515 | OK | ProjectTagNotFound |
| 02-errors_stable-2026.2.md | 131 | keystone/resource/core.py:1075 | OK | get_project_tag |
| 02-errors_stable-2026.2.md | 131 | keystone/resource/core.py:1133 | OK | delete_project_tag |
| 02-errors_stable-2026.2.md | 132 | keystone/exception.py:519 | OK | TokenNotFound |
| 02-errors_stable-2026.2.md | 132 | keystone/token/provider.py:143 | OK | validate_token |
| 02-errors_stable-2026.2.md | 132 | keystone/token/provider.py:152 | OK | validate_token |
| 02-errors_stable-2026.2.md | 132 | keystone/token/provider.py:214 | OK | _is_valid_token |
| 02-errors_stable-2026.2.md | 133 | keystone/exception.py:523 | OK | UserNotFound |
| 02-errors_stable-2026.2.md | 133 | keystone/identity/shadow_backends/sql.py:160 | OK | _get_federated_user |
| 02-errors_stable-2026.2.md | 133 | keystone/identity/shadow_backends/sql.py:223 | OK | _get_user |
| 02-errors_stable-2026.2.md | 133 | keystone/identity/shadow_backends/sql.py:243 | OK | get_federated_user |
| 02-errors_stable-2026.2.md | 134 | keystone/exception.py:527 | OK | GroupNotFound |
| 02-errors_stable-2026.2.md | 134 | keystone/identity/backends/sql.py:513 | OK | _get_group |
| 02-errors_stable-2026.2.md | 134 | keystone/identity/backends/sql.py:528 | OK | get_group_by_name |
| 02-errors_stable-2026.2.md | 134 | keystone/identity/core.py:548 | OK | wrapper |
| 02-errors_stable-2026.2.md | 135 | keystone/exception.py:531 | OK | MappingNotFound |
| 02-errors_stable-2026.2.md | 135 | keystone/federation/backends/sql.py:412 | OK | _get_mapping |
| 02-errors_stable-2026.2.md | 136 | keystone/exception.py:535 | OK | TrustNotFound |
| 02-errors_stable-2026.2.md | 136 | keystone/trust/backends/sql.py:121 | OK | consume_use |
| 02-errors_stable-2026.2.md | 136 | keystone/trust/backends/sql.py:166 | OK | get_trust |
| 02-errors_stable-2026.2.md | 136 | keystone/trust/backends/sql.py:170 | OK | get_trust |
| 02-errors_stable-2026.2.md | 137 | keystone/exception.py:539 | OK | TrustUseLimitReached |
| 02-errors_stable-2026.2.md | 137 | keystone/trust/backends/sql.py:149 | OK | consume_use |
| 02-errors_stable-2026.2.md | 138 | keystone/exception.py:543 | OK | CredentialNotFound |
| 02-errors_stable-2026.2.md | 138 | keystone/credential/backends/sql.py:87 | OK | _get_credential |
| 02-errors_stable-2026.2.md | 139 | keystone/exception.py:547 | OK | VersionNotFound |
| 02-errors_stable-2026.2.md | 140 | keystone/exception.py:551 | OK | EndpointGroupNotFound |
| 02-errors_stable-2026.2.md | 140 | keystone/catalog/backends/sql.py:451 | OK | _get_endpoint_group |
| 02-errors_stable-2026.2.md | 141 | keystone/exception.py:555 | OK | IdentityProviderNotFound |
| 02-errors_stable-2026.2.md | 141 | keystone/federation/backends/sql.py:313 | OK | _get_idp |
| 02-errors_stable-2026.2.md | 141 | keystone/federation/backends/sql.py:322 | OK | _get_idp_from_remote_id |
| 02-errors_stable-2026.2.md | 142 | keystone/exception.py:559 | OK | ServiceProviderNotFound |
| 02-errors_stable-2026.2.md | 142 | keystone/federation/backends/sql.py:481 | OK | _get_sp |
| 02-errors_stable-2026.2.md | 143 | keystone/exception.py:563 | OK | FederatedProtocolNotFound |
| 02-errors_stable-2026.2.md | 143 | keystone/federation/backends/sql.py:362 | OK | _get_protocol |
| 02-errors_stable-2026.2.md | 144 | keystone/exception.py:570 | OK | PublicIDNotFound |
| 02-errors_stable-2026.2.md | 144 | keystone/identity/core.py:972 | OK | _get_domain_driver_and_entity_id |
| 02-errors_stable-2026.2.md | 145 | keystone/exception.py:576 | OK | RegisteredLimitNotFound |
| 02-errors_stable-2026.2.md | 145 | keystone/limit/backends/sql.py:224 | OK | _get_registered_limit |
| 02-errors_stable-2026.2.md | 146 | keystone/exception.py:580 | OK | LimitNotFound |
| 02-errors_stable-2026.2.md | 146 | keystone/limit/backends/sql.py:305 | OK | _get_limit |
| 02-errors_stable-2026.2.md | 147 | keystone/exception.py:584 | OK | NoLimitReference |
| 02-errors_stable-2026.2.md | 147 | keystone/limit/backends/sql.py:258 | OK | _check_and_fill_registered_limit_id |
| 02-errors_stable-2026.2.md | 147 | keystone/limit/backends/sql.py:282 | OK | create_limits |
| 02-errors_stable-2026.2.md | 148 | keystone/exception.py:590 | OK | RegisteredLimitError |
| 02-errors_stable-2026.2.md | 148 | keystone/limit/backends/sql.py:174 | OK | _check_referenced_limit_reference |
| 02-errors_stable-2026.2.md | 148 | keystone/limit/backends/sql.py:207 | OK | update_registered_limit |
| 02-errors_stable-2026.2.md | 148 | keystone/limit/backends/sql.py:240 | OK | delete_registered_limit |
| 02-errors_stable-2026.2.md | 149 | keystone/exception.py:597 | OK | DomainConfigNotFound |
| 02-errors_stable-2026.2.md | 149 | keystone/resource/config_backends/sql.py:96 | OK | _get_config_option |
| 02-errors_stable-2026.2.md | 149 | keystone/resource/core.py:1450 | OK | get_config |
| 02-errors_stable-2026.2.md | 149 | keystone/resource/core.py:1592 | OK | _assert_valid_update |
| 02-errors_stable-2026.2.md | 150 | keystone/exception.py:604 | OK | ConfigRegistrationNotFound |
| 02-errors_stable-2026.2.md | 150 | keystone/resource/config_backends/sql.py:165 | OK | read_registration |
| 02-errors_stable-2026.2.md | 151 | keystone/exception.py:611 | OK | ApplicationCredentialNotFound |
| 02-errors_stable-2026.2.md | 151 | keystone/application_credential/backends/sql.py:236 | OK | get_application_credential |
| 02-errors_stable-2026.2.md | 151 | keystone/application_credential/backends/sql.py:259 | OK | delete_application_credential |
| 02-errors_stable-2026.2.md | 152 | keystone/exception.py:617 | OK | AccessRuleNotFound |
| 02-errors_stable-2026.2.md | 152 | keystone/application_credential/backends/sql.py:179 | OK | create_application_credential |
| 02-errors_stable-2026.2.md | 152 | keystone/application_credential/backends/sql.py:288 | OK | get_access_rule |
| 02-errors_stable-2026.2.md | 152 | keystone/application_credential/backends/sql.py:310 | OK | delete_access_rule |
| 02-errors_stable-2026.2.md | 153 | keystone/exception.py:621 | OK | Conflict |
| 02-errors_stable-2026.2.md | 153 | keystone/cmd/idutils.py:111 | OK | user_setup |
| 02-errors_stable-2026.2.md | 153 | keystone/identity/backends/ldap/core.py:208 | OK | _update_user |
| 02-errors_stable-2026.2.md | 153 | keystone/identity/backends/ldap/core.py:414 | OK | add_user |
| 02-errors_stable-2026.2.md | 154 | keystone/exception.py:629 | OK | UnexpectedError |
| 02-errors_stable-2026.2.md | 154 | keystone/identity/core.py:313 | OK | _assert_no_more_than_one_sql_driver |
| 02-errors_stable-2026.2.md | 154 | keystone/revoke/core.py:110 | OK | _assert_not_domain_and_project_scoped |
| 02-errors_stable-2026.2.md | 154 | keystone/assignment/core.py:931 | OK | list_role_assignments_for_actor |
| 02-errors_stable-2026.2.md | 155 | keystone/exception.py:656 | OK | TrustConsumeMaximumAttempt |
| 02-errors_stable-2026.2.md | 155 | keystone/trust/backends/sql.py:157 | OK | consume_use |
| 02-errors_stable-2026.2.md | 156 | keystone/exception.py:662 | OK | MalformedEndpoint |
| 02-errors_stable-2026.2.md | 156 | keystone/common/utils.py:437 | OK | format_url |
| 02-errors_stable-2026.2.md | 156 | keystone/common/utils.py:442 | OK | format_url |
| 02-errors_stable-2026.2.md | 156 | keystone/common/utils.py:451 | OK | format_url |
| 02-errors_stable-2026.2.md | 157 | keystone/exception.py:668 | OK | MappedGroupNotFound |
| 02-errors_stable-2026.2.md | 157 | keystone/federation/utils.py:378 | OK | validate_mapped_group_ids |
| 02-errors_stable-2026.2.md | 158 | keystone/exception.py:675 | OK | MetadataFileError |
| 02-errors_stable-2026.2.md | 158 | keystone/api/os_federation.py:511 | OK | get |
| 02-errors_stable-2026.2.md | 159 | keystone/exception.py:679 | OK | DirectMappingError |
| 02-errors_stable-2026.2.md | 159 | keystone/federation/utils.py:813 | OK | process_rule_mapping |
| 02-errors_stable-2026.2.md | 160 | keystone/exception.py:687 | OK | AssignmentTypeCalculationError |
| 02-errors_stable-2026.2.md | 160 | keystone/assignment/backends/sql.py:40 | OK | calculate_type |
| 02-errors_stable-2026.2.md | 161 | keystone/exception.py:695 | OK | NotImplemented |
| 02-errors_stable-2026.2.md | 161 | keystone/token/providers/base.py:53 | OK | validate_token |
| 02-errors_stable-2026.2.md | 161 | keystone/token/providers/base.py:65 | OK | generate_id_and_issued_at |
| 02-errors_stable-2026.2.md | 161 | keystone/credential/backends/base.py:34 | OK | create_credential |
| 02-errors_stable-2026.2.md | 162 | keystone/exception.py:703 | OK | Gone |
| 02-errors_stable-2026.2.md | 162 | keystone/api/auth.py:270 | OK | get |
| 02-errors_stable-2026.2.md | 162 | keystone/api/os_simple_cert.py:32 | OK | get |
| 02-errors_stable-2026.2.md | 162 | keystone/api/os_simple_cert.py:43 | OK | get |
| 02-errors_stable-2026.2.md | 163 | keystone/exception.py:711 | OK | ServiceUnavailable |
| 02-errors_stable-2026.2.md | 164 | keystone/exception.py:720 | OK | ConfigFileNotFound |
| 02-errors_stable-2026.2.md | 165 | keystone/exception.py:726 | OK | KeysNotFound |
| 02-errors_stable-2026.2.md | 165 | keystone/token/token_formatters.py:63 | OK | crypto |
| 02-errors_stable-2026.2.md | 165 | keystone/receipt/receipt_formatters.py:65 | OK | crypto |
| 02-errors_stable-2026.2.md | 166 | keystone/exception.py:733 | OK | MultipleSQLDriversInConfig |
| 02-errors_stable-2026.2.md | 166 | keystone/identity/core.py:127 | OK | _assert_no_more_than_one_sql_driver |
| 02-errors_stable-2026.2.md | 166 | keystone/identity/core.py:303 | OK | _assert_no_more_than_one_sql_driver |
| 02-errors_stable-2026.2.md | 167 | keystone/exception.py:741 | OK | MigrationNotProvided |
| 02-errors_stable-2026.2.md | 168 | keystone/exception.py:752 | OK | UnsupportedTokenVersionException |
| 02-errors_stable-2026.2.md | 169 | keystone/exception.py:756 | OK | SAMLSigningError |
| 02-errors_stable-2026.2.md | 169 | keystone/federation/idp.py:467 | OK | _verify_assertion_binary_is_installed |
| 02-errors_stable-2026.2.md | 169 | keystone/federation/idp.py:552 | OK | _sign_assertion |
| 02-errors_stable-2026.2.md | 170 | keystone/exception.py:765 | OK | OAuthHeadersMissingError |
| 02-errors_stable-2026.2.md | 170 | keystone/oauth1/core.py:77 | OK | get_oauth_headers |
| 02-errors_stable-2026.2.md | 171 | keystone/exception.py:774 | OK | TokenlessAuthConfigError |
| 02-errors_stable-2026.2.md | 171 | keystone/common/tokenless_auth.py:202 | OK | _build_idp_id |
| 02-errors_stable-2026.2.md | 172 | keystone/exception.py:782 | OK | CredentialEncryptionError |
| 02-errors_stable-2026.2.md | 172 | keystone/credential/providers/fernet/core.py:91 | OK | encrypt |
| 02-errors_stable-2026.2.md | 172 | keystone/credential/providers/fernet/core.py:120 | OK | decrypt |
| 02-errors_stable-2026.2.md | 173 | keystone/exception.py:789 | OK | LDAPServerConnectionError |
| 02-errors_stable-2026.2.md | 173 | keystone/identity/backends/ldap/common.py:1593 | OK | get_connection |
| 02-errors_stable-2026.2.md | 174 | keystone/exception.py:795 | OK | LDAPInvalidCredentialsError |
| 02-errors_stable-2026.2.md | 174 | keystone/identity/backends/ldap/common.py:1591 | OK | get_connection |
| 02-errors_stable-2026.2.md | 175 | keystone/exception.py:802 | OK | LDAPSizeLimitExceeded |
| 02-errors_stable-2026.2.md | 175 | keystone/identity/backends/ldap/common.py:1174 | OK | search_s |
| 02-errors_stable-2026.2.md | 176 | keystone/exception.py:810 | OK | CacheDeserializationError |
| 02-errors_stable-2026.2.md | 176 | keystone/models/receipt_model.py:145 | OK | deserialize |
| 02-errors_stable-2026.2.md | 176 | keystone/models/token_model.py:622 | OK | deserialize |
| 02-errors_stable-2026.2.md | 177 | keystone/exception.py:818 | OK | ResourceUpdateForbidden |
| 02-errors_stable-2026.2.md | 177 | keystone/common/resource_options/options/immutable.py:76 | OK | check_immutable_update |
| 02-errors_stable-2026.2.md | 177 | keystone/resource/core.py:1048 | OK | create_project_tag |
| 02-errors_stable-2026.2.md | 177 | keystone/resource/core.py:1098 | OK | update_project_tags |
| 02-errors_stable-2026.2.md | 178 | keystone/exception.py:826 | OK | ResourceDeleteForbidden |
| 02-errors_stable-2026.2.md | 178 | keystone/common/resource_options/options/immutable.py:90 | OK | check_immutable_delete |
| 02-errors_stable-2026.2.md | 179 | keystone/exception.py:834 | OK | OAuth2Error |
| 02-errors_stable-2026.2.md | 180 | keystone/exception.py:842 | OK | OAuth2InvalidClient |
| 02-errors_stable-2026.2.md | 181 | keystone/exception.py:848 | OK | OAuth2InvalidRequest |
| 02-errors_stable-2026.2.md | 182 | keystone/exception.py:854 | OK | OAuth2UnsupportedGrantType |
| 02-errors_stable-2026.2.md | 183 | keystone/exception.py:860 | OK | OAuth2OtherError |
| 02-errors_stable-2026.2.md | 184 | keystone/exception.py:866 | OK | RedirectRequired |
| 03-interactions_stable-2026.2.md | 21 | keystone/wsgi/api.py | OK | |
| 03-interactions_stable-2026.2.md | 21 | keystone/server/flask/core.py:73-90 | OK | _get_config_files |
| 03-interactions_stable-2026.2.md | 28 | keystone/common/authorization.py:22-38 | OK | <module> |
| 03-interactions_stable-2026.2.md | 29 | keystone/server/flask/request_processing/middleware/auth_context.py | OK | |
| 03-interactions_stable-2026.2.md | 56 | keystone/token/token_formatters.py:39-270 | OK | TokenFormatter |
| 03-interactions_stable-2026.2.md | 57 | keystone/token/token_formatters.py:445-1206 | OK | UnscopedPayload |
| 03-interactions_stable-2026.2.md | 72 | keystone/token/token_formatters.py:470-1160 | OK | assemble |
| 03-interactions_stable-2026.2.md | 77 | keystone/auth/plugins/core.py:33-95 | OK | construct_method_map_from_config |
| 03-interactions_stable-2026.2.md | 84 | keystone/common/fernet_utils.py:202-266 | OK | rotate_keys |
| 03-interactions_stable-2026.2.md | 90 | keystone/token/providers/jws/core.py | OK | |
| 03-interactions_stable-2026.2.md | 93 | keystone/credential/providers/fernet/core.py:54-104 | OK | primary_key_hash |
| 03-interactions_stable-2026.2.md | 98 | keystone/common/sql/core.py | OK | |
| 03-interactions_stable-2026.2.md | 100 | keystone/cmd/cli.py:361-494 | OK | DbSync |
| 03-interactions_stable-2026.2.md | 104 | keystone/identity/backends/sql_model.py:34-497 | OK | User |
| 03-interactions_stable-2026.2.md | 104 | keystone/identity/mapping_backends/sql.py:21 | OK | IDMapping |
| 03-interactions_stable-2026.2.md | 105 | keystone/resource/backends/sql_model.py:56-135 | OK | from_dict |
| 03-interactions_stable-2026.2.md | 105 | keystone/resource/config_backends/sql.py:20-46 | OK | WhiteListedConfig |
| 03-interactions_stable-2026.2.md | 106 | keystone/assignment/role_backends/sql_model.py:52-105 | OK | from_dict |
| 03-interactions_stable-2026.2.md | 106 | keystone/assignment/backends/sql.py:418-452 | OK | RoleAssignment |
| 03-interactions_stable-2026.2.md | 107 | keystone/catalog/backends/sql.py:31-584 | OK | Region |
| 03-interactions_stable-2026.2.md | 117 | keystone/revoke/backends/sql.py:112-155 | OK | _list_token_events |
| 03-interactions_stable-2026.2.md | 127 | keystone/models/revoke_model.py:160-222 | OK | matches |
| 03-interactions_stable-2026.2.md | 127 | keystone/revoke/backends/sql.py:88-110 | OK | _prune_expired_events |
| 03-interactions_stable-2026.2.md | 129 | keystone/identity/backends/sql.py:63-123 | OK | authenticate |
| 03-interactions_stable-2026.2.md | 138 | keystone/common/password_hashing.py:33-60 | OK | <module> |
| 03-interactions_stable-2026.2.md | 146 | keystone/token/provider.py:39-130 | OK | <module> |
| 03-interactions_stable-2026.2.md | 147 | keystone/revoke/core.py:28-29 | OK | <module> |
| 03-interactions_stable-2026.2.md | 148 | keystone/assignment/core.py:47-48 | OK | <module> |
| 03-interactions_stable-2026.2.md | 149 | keystone/catalog/core.py:38-39 | OK | <module> |
| 03-interactions_stable-2026.2.md | 150 | keystone/identity/core.py:52-53 | OK | <module> |
| 03-interactions_stable-2026.2.md | 151 | keystone/receipt/provider.py:36-37 | OK | <module> |
| 03-interactions_stable-2026.2.md | 154 | keystone/common/cache/core.py:29-110 | OK | RegionInvalidationManager |
| 03-interactions_stable-2026.2.md | 158 | keystone/notifications.py:487-506 | OK | _get_notifier |
| 03-interactions_stable-2026.2.md | 159 | keystone/conf/default.py:150-168 | OK | <module> |
| 03-interactions_stable-2026.2.md | 160 | keystone/notifications.py:944-1020 | OK | _send_audit_notification |
| 03-interactions_stable-2026.2.md | 161 | keystone/notifications.py:582-636 | OK | _send_notification |
| 03-interactions_stable-2026.2.md | 182 | keystone/identity/backends/ldap/core.py:161-190 | OK | create_user |
| 03-interactions_stable-2026.2.md | 183 | keystone/identity/backends/ldap/common.py:579-921 | OK | connect |
| 03-interactions_stable-2026.2.md | 189 | keystone/federation/idp.py:447-541 | OK | _verify_assertion_binary_is_installed |
| 04-scenarios_stable-2026.2.md | 49 | keystone/server/flask/application.py:137-141 | OK | _handle_keystone_exception |
| 04-scenarios_stable-2026.2.md | 105 | keystone/api/auth.py:360-470 | OK | AuthFederationWebSSOResource |
| 04-scenarios_stable-2026.2.md | 105 | keystone/auth/plugins/mapped.py:41-500 | OK | authenticate |
| 04-scenarios_stable-2026.2.md | 105 | keystone/federation/utils.py:469-1130 | OK | RuleProcessor |
| 05-async-processing_stable-2026.2.md | 9 | keystone/notifications.py:487-506 | OK | _get_notifier |
| 05-async-processing_stable-2026.2.md | 9 | keystone/api/os_oauth1.py:132 | OK | post |
| 05-async-processing_stable-2026.2.md | 18 | keystone/notifications.py:466-485 | OK | notify_event_callbacks |
| 05-async-processing_stable-2026.2.md | 22 | keystone/revoke/core.py:76-90 | OK | _register_listeners |
| 05-async-processing_stable-2026.2.md | 23 | keystone/revoke/core.py:83 | OK | _register_listeners |
| 05-async-processing_stable-2026.2.md | 24 | keystone/application_credential/core.py:45-62 | OK | init |
| 05-async-processing_stable-2026.2.md | 25 | keystone/trust/core.py:40-52 | OK | Manager |
| 05-async-processing_stable-2026.2.md | 26 | keystone/token/provider.py:96-130 | OK | _register_callback_listeners |
| 05-async-processing_stable-2026.2.md | 26 | keystone/receipt/provider.py:73-90 | OK | _register_callback_listeners |
| 05-async-processing_stable-2026.2.md | 27 | keystone/revoke/core.py:81 | OK | _register_listeners |
| 05-async-processing_stable-2026.2.md | 28 | keystone/identity/core.py:613-617 | OK | init |
| 05-async-processing_stable-2026.2.md | 28 | keystone/identity/core.py:659 | OK | _unset_default_project |
| 05-async-processing_stable-2026.2.md | 29 | keystone/catalog/core.py:58-90 | OK | Manager |
| 05-async-processing_stable-2026.2.md | 30 | keystone/revoke/core.py:78-79 | OK | _register_listeners |
| 05-async-processing_stable-2026.2.md | 31 | keystone/assignment/core.py:76-90 | OK | init |
| 05-async-processing_stable-2026.2.md | 32 | keystone/identity/core.py:608-657 | OK | init |
| 05-async-processing_stable-2026.2.md | 33 | keystone/federation/core.py:48-60 | OK | Manager |
| 05-async-processing_stable-2026.2.md | 34 | keystone/identity/core.py:1583-1594 | OK | _persist_revocation_event_for_user |
| 05-async-processing_stable-2026.2.md | 34 | keystone/identity/core.py:1379 | OK | update_user |
| 05-async-processing_stable-2026.2.md | 34 | keystone/identity/core.py:1505 | OK | delete_group |
| 05-async-processing_stable-2026.2.md | 34 | keystone/identity/core.py:1567 | OK | get_entity_info_for_user |
| 05-async-processing_stable-2026.2.md | 34 | keystone/identity/core.py:1702 | OK | change_password |
| 05-async-processing_stable-2026.2.md | 34 | keystone/revoke/core.py:84-89 | OK | _register_listeners |
| 05-async-processing_stable-2026.2.md | 35 | keystone/assignment/core.py:111 | OK | _send_app_cred_notification_for_role_removal |
| 05-async-processing_stable-2026.2.md | 35 | keystone/application_credential/core.py:59-62 | OK | _register_callback_listeners |
| 05-async-processing_stable-2026.2.md | 36 | keystone/assignment/core.py:296 | OK | _invalidate_token_cache |
| 05-async-processing_stable-2026.2.md | 36 | keystone/identity/core.py:1386 | OK | update_user |
| 05-async-processing_stable-2026.2.md | 36 | keystone/token/provider.py:110-112 | OK | _register_callback_listeners |
| 05-async-processing_stable-2026.2.md | 38 | keystone/resource/core.py:521-539 | OK | _post_delete_cleanup_project |
| 05-async-processing_stable-2026.2.md | 46 | keystone/notifications.py:582-636 | OK | _send_notification |
| 05-async-processing_stable-2026.2.md | 52 | keystone/server/flask/core.py:145-170 | OK | initialize_application |
| 05-async-processing_stable-2026.2.md | 53 | pyproject.toml | OK | |
| 05-async-processing_stable-2026.2.md | 53 | keystone/server/backends.py | OK | |
| 05-async-processing_stable-2026.2.md | 54 | keystone/server/flask/application.py:186-238 | OK | _handle_unknown_keystone_exception |
| 05-async-processing_stable-2026.2.md | 55 | keystone/server/flask/core.py:93-142 | OK | setup_app_middleware |
| 05-async-processing_stable-2026.2.md | 59 | keystone/cmd/cli.py | OK | |
| 05-async-processing_stable-2026.2.md | 63 | keystone/cmd/cli.py:361-494 | OK | DbSync |
| 05-async-processing_stable-2026.2.md | 64 | keystone/cmd/cli.py:64-262 | OK | BootStrap |
| 05-async-processing_stable-2026.2.md | 64 | keystone/cmd/bootstrap.py | OK | |
| 05-async-processing_stable-2026.2.md | 65 | keystone/cmd/cli.py:613-780 | OK | FernetSetup |
| 05-async-processing_stable-2026.2.md | 66 | keystone/cmd/cli.py:688 | OK | CreateJWSKeyPair |
| 05-async-processing_stable-2026.2.md | 67 | keystone/cmd/cli.py:781-826 | OK | ReceiptSetup |
| 05-async-processing_stable-2026.2.md | 68 | keystone/cmd/cli.py:828-970 | OK | CredentialSetup |
| 05-async-processing_stable-2026.2.md | 69 | keystone/cmd/cli.py:972-1050 | OK | TrustFlush |
| 05-async-processing_stable-2026.2.md | 70 | keystone/cmd/cli.py:1051 | OK | MappingPurge |
| 05-async-processing_stable-2026.2.md | 70 | keystone/cmd/cli.py:1594 | OK | MappingPopulate |
| 05-async-processing_stable-2026.2.md | 71 | keystone/cmd/cli.py:1358 | OK | DomainConfigUpload |
| 05-async-processing_stable-2026.2.md | 72 | keystone/cmd/cli.py:1393 | OK | SamlIdentityProviderMetadata |
| 05-async-processing_stable-2026.2.md | 73 | keystone/cmd/cli.py:1404 | OK | MappingEngineTester |
| 05-async-processing_stable-2026.2.md | 74 | keystone/cmd/cli.py:345 | OK | Doctor |
| 05-async-processing_stable-2026.2.md | 75 | keystone/cmd/cli.py:505 | OK | ResetLastActive |
| 05-async-processing_stable-2026.2.md | 76 | keystone/cmd/status.py | OK | |
| 05-async-processing_stable-2026.2.md | 80 | keystone/identity/backends/sql_model.py:217-238 | OK | enabled |
| 06-change-history_stable-2026.2.md | 16 | keystone/api/credentials.py:144-170 | OK | _assign_unique_id |
| 06-change-history_stable-2026.2.md | 17 | keystone/api/_shared/EC2_S3_Resource.py:166-220 | OK | handle_authenticate |
| 06-change-history_stable-2026.2.md | 30 | keystone/federation/schema.py:26-30 | OK | <module> |
| 06-change-history_stable-2026.2.md | 32 | keystone/federation/schema.py | OK | |
| 07-rewrite-pack_stable-2026.2.md | 34 | keystone/server/flask/core.py:39-142 | OK | <module> |
| 07-rewrite-pack_stable-2026.2.md | 35 | keystone/api/discovery.py:44-65 | OK | MimeTypes |
| 07-rewrite-pack_stable-2026.2.md | 45 | keystone/token/token_formatters.py:39-120 | OK | TokenFormatter |
| 07-rewrite-pack_stable-2026.2.md | 49 | keystone/common/fernet_utils.py:202-266 | OK | rotate_keys |
| 07-rewrite-pack_stable-2026.2.md | 50 | keystone/token/token_formatters.py:138-191 | OK | create_token |
| 07-rewrite-pack_stable-2026.2.md | 50 | keystone/token/token_formatters.py:470-1160 | OK | assemble |
| 07-rewrite-pack_stable-2026.2.md | 55 | keystone/token/provider.py:69-75 | OK | random_urlsafe_str |
| 07-rewrite-pack_stable-2026.2.md | 58 | keystone/token/token_formatters.py:193-210 | OK | validate_token |
| 07-rewrite-pack_stable-2026.2.md | 64 | keystone/token/providers/jws/core.py | OK | |
| 07-rewrite-pack_stable-2026.2.md | 67 | keystone/token/provider.py:139-275 | OK | validate_token |
| 07-rewrite-pack_stable-2026.2.md | 73 | keystone/common/utils.py:418-451 | OK | format_url |
| 07-rewrite-pack_stable-2026.2.md | 78 | keystone/models/revoke_model.py:24-66 | OK | <module> |
| 07-rewrite-pack_stable-2026.2.md | 79 | keystone/models/revoke_model.py:160-222 | OK | matches |
| 07-rewrite-pack_stable-2026.2.md | 85 | keystone/federation/utils.py:495-737 | OK | process |
| 07-rewrite-pack_stable-2026.2.md | 85 | keystone/federation/utils.py:738-977 | OK | process_group_by_name |
| 07-rewrite-pack_stable-2026.2.md | 90 | keystone/federation/utils.py:996-1130 | OK | RuleProcessorToHonorDomainOption |
| 07-rewrite-pack_stable-2026.2.md | 96 | keystone/common/password_hashing.py:33-60 | OK | <module> |
| 07-rewrite-pack_stable-2026.2.md | 96 | keystone/common/password_hashing.py:112 | OK | verify_length_and_trunc_password |
| 07-rewrite-pack_stable-2026.2.md | 103 | keystone/identity/backends/sql_model.py:217-238 | OK | enabled |
| 07-rewrite-pack_stable-2026.2.md | 104 | keystone/identity/backends/resource_options.py:73-90 | OK | _mfa_rules_validator_list_of_lists_of_strings_no_duplicates |
| 07-rewrite-pack_stable-2026.2.md | 107 | keystone/assignment/core.py:1068 | OK | list_role_assignments |
| 07-rewrite-pack_stable-2026.2.md | 107 | keystone/assignment/core.py:772-1066 | OK | _list_effective_role_assignments |
| 07-rewrite-pack_stable-2026.2.md | 109 | keystone/assignment/core.py:445 | OK | _expand_indirect_assignment |
| 07-rewrite-pack_stable-2026.2.md | 110 | keystone/assignment/core.py:692 | OK | add_implied_roles |
| 07-rewrite-pack_stable-2026.2.md | 119 | keystonemiddleware:keystonemiddleware/auth_token/_identity.py:48-58 | OK | verify_token |
| 07-rewrite-pack_stable-2026.2.md | 119 | keystonemiddleware:keystonemiddleware/auth_token/_identity.py:21 | OK | <module> |
| 07-rewrite-pack_stable-2026.2.md | 120 | keystonemiddleware:keystonemiddleware/auth_token/_identity.py:130-170 | OK | verify_token |
| 07-rewrite-pack_stable-2026.2.md | 121 | keystonemiddleware:keystonemiddleware/auth_token/__init__.py:548-580 | OK | validate_allowed_request |
| 07-rewrite-pack_stable-2026.2.md | 122 | keystoneauth:keystoneauth1/identity/v3/base.py:259 | OK | get_auth_ref |
| 07-rewrite-pack_stable-2026.2.md | 122 | keystoneauth:keystoneauth1/access/access.py:45 | OK | create |
| 07-rewrite-pack_stable-2026.2.md | 124 | keystone/common/render_token.py:20 | OK | render_token_response_from_model |
| 07-rewrite-pack_stable-2026.2.md | 167 | keystone/token/token_formatters.py | OK | |
| 07-rewrite-pack_stable-2026.2.md | 169 | keystone/tests/unit/mapping_fixtures.py | OK |
Source: reverse-spec-keystone/_verification_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.