Skip to content

feat(adr0034): Build per-instance assignment backends - #1218

Merged
gtema merged 1 commit into
mainfrom
claude/per-domain-assignments-provider-k0tp5e
Sep 7, 2026
Merged

feat(adr0034): Build per-instance assignment backends#1218
gtema merged 1 commit into
mainfrom
claude/per-domain-assignments-provider-k0tp5e

Conversation

@gtema

@gtema gtema commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

The OpenFGA driver read the global [openfga] section on every backend
call, so two instances always hit the same store. Give it a
config_override for a pinned [assignment.backends.] block; the
global instance keeps reading the live section.

Add NamedAssignmentBackendRegistration plus
build_global_assignment_backend and build_named_assignment_backend so a
reload can rebuild instances without a PluginManager (inventory::iter
lives in core). Expose PluginManagerApi::assignment_backends() to seed
the dispatch bundle.

Signed-off-by: Artem Goncharov artem.goncharov@gmail.com

The OpenFGA driver read the global [openfga] section on every backend
call, so two instances always hit the same store. Give it a
config_override for a pinned [assignment.backends.<name>] block; the
global instance keeps reading the live section.

Add NamedAssignmentBackendRegistration plus
build_global_assignment_backend and build_named_assignment_backend so a
reload can rebuild instances without a PluginManager (inventory::iter
lives in core). Expose PluginManagerApi::assignment_backends() to seed
the dispatch bundle.

Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
@gtema
gtema enabled auto-merge September 7, 2026 16:16
@gtema
gtema added this pull request to the merge queue Sep 7, 2026
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

🦢 Load Test Results

Goose Attack Report

Plan Overview

Action Started Stopped Elapsed Users
Increasing 26-09-07 16:35:44 26-09-07 16:36:06 00:00:22 0 → 45
Maintaining 26-09-07 16:36:06 26-09-07 16:36:36 00:00:30 45
Decreasing 26-09-07 16:36:36 26-09-07 16:36:37 00:00:01 0 ← 45

Request Metrics

Method Name # Requests # Fails Average (ms) Min (ms) Max (ms) RPS Failures/s
DELETE DELETE /v3/auth/tokens 60 0 390.30 77 483 2.00 0.00
DELETE DELETE /v3/projects/:id (teardown) 1 0 179.00 179 179 0.03 0.00
DELETE DELETE /v3/roles/:id (teardown) 1 0 130.00 130 130 0.03 0.00
DELETE DELETE /v3/users/:id (teardown) 2 0 75.00 72 78 0.07 0.00
DELETE DELETE /v4/mappings/rulesets/:mapping_id (teardown) 1 0 147.00 147 147 0.03 0.00
DELETE DELETE /v4/oauth2/:domain_id/clients/:provider_id (teardown) 1 0 200.00 200 200 0.03 0.00
GET 809 0 433.13 236 657 26.97 0.00
GET GET /SCIM/v2/:domain_id/Users (sync reconcile list) 2924 2924 9.76 1 630 97.47 97.47
GET GET /v3/auth/tokens (validate new) 59 0 404.54 196 577 1.97 0.00
GET GET /v3/auth/tokens (validate revoked) 60 0 374.13 27 511 2.00 0.00
GET GET /v3/projects/:id 75 0 403.31 256 521 2.50 0.00
GET GET /v3/projects/:id (catalog) 112 0 409.07 233 557 3.73 0.00
GET GET /v3/role_assignments 56 0 425.55 264 546 1.87 0.00
GET GET /v3/role_assignments?role.id 56 0 408.09 289 516 1.87 0.00
GET GET /v3/role_assignments?scope.domain.id 56 0 373.95 265 517 1.87 0.00
GET GET /v3/role_assignments?user.id 57 0 405.91 246 518 1.90 0.00
GET GET /v3/roles 149 0 407.64 260 568 4.97 0.00
GET GET /v3/roles/:id 74 0 411.03 297 543 2.47 0.00
GET GET /v3/users/:id 144 0 423.50 219 552 4.80 0.00
GET GET /v3/users/:id (catalog) 141 0 434.46 270 587 4.70 0.00
GET GET /v4/api-keys 35 0 428.06 308 517 1.17 0.00
GET GET /v4/api-keys/:client_id 36 0 428.64 299 590 1.20 0.00
GET GET /v4/mappings/rulesets 37 0 406.81 299 530 1.23 0.00
GET GET /v4/mappings/rulesets/:mapping_id 37 0 412.70 271 537 1.23 0.00
GET GET /v4/oauth2/:domain_id/.well-known/openid-configuration 1084 0 41.04 8 176 36.13 0.00
GET GET /v4/oauth2/:domain_id/clients 37 0 409.62 280 593 1.23 0.00
GET GET /v4/oauth2/:domain_id/clients/:provider_id 37 0 411.95 332 520 1.23 0.00
GET GET /v4/oauth2/:domain_id/jwks 1084 0 41.46 8 178 36.13 0.00
GET GET /v4/scim_realms 23 0 434.13 335 533 0.77 0.00
GET GET /v4/scim_realms/:domain_id/:provider_id 24 0 394.25 237 513 0.80 0.00
POST POST /v3/auth/tokens 59 0 373.46 208 530 1.97 0.00
POST POST /v3/auth/tokens (password, invalid) 41 0 743.44 425 1075 1.37 0.00
POST POST /v3/auth/tokens (password, project-scoped) 71 0 951.96 628 1375 2.37 0.00
POST POST /v3/auth/tokens (password, unscoped) 71 0 787.77 462 1415 2.37 0.00
POST POST /v3/auth/tokens (rescope to system) 132 0 459.67 316 620 4.40 0.00
POST POST /v3/auth/tokens (rescope, invalid project) 80 0 382.58 196 504 2.67 0.00
POST POST /v3/auth/tokens (system-scoped, bootstrap admin) 66 0 944.14 513 1564 2.20 0.00
POST POST /v4/api-keys/:client_id/revoke (teardown) 1 0 210.00 210 210 0.03 0.00
PUT PUT /v4/scim_realms/:domain_id/:provider_id 24 0 465.29 381 606 0.80 0.00
Aggregated 7817 2924 175.35 1 1564 260.57 97.47

Response Time Metrics

Method Name 50%ile (ms) 60%ile (ms) 70%ile (ms) 80%ile (ms) 90%ile (ms) 95%ile (ms) 99%ile (ms) 100%ile (ms)
DELETE DELETE /v3/auth/tokens 420 430 430 440 460 470 480 480
DELETE DELETE /v3/projects/:id (teardown) 179 179 179 179 179 179 179 179
DELETE DELETE /v3/roles/:id (teardown) 130 130 130 130 130 130 130 130
DELETE DELETE /v3/users/:id (teardown) 72 72 72 78 78 78 78 78
DELETE DELETE /v4/mappings/rulesets/:mapping_id (teardown) 147 147 147 147 147 147 147 147
DELETE DELETE /v4/oauth2/:domain_id/clients/:provider_id (teardown) 200 200 200 200 200 200 200 200
GET 440 450 470 490 500 500 600 657
GET GET /SCIM/v2/:domain_id/Users (sync reconcile list) 5 6 7 9 12 17 200 600
GET GET /v3/auth/tokens (validate new) 400 420 430 460 470 500 500 577
GET GET /v3/auth/tokens (validate revoked) 390 400 420 430 460 470 490 500
GET GET /v3/projects/:id 410 420 440 450 480 480 500 500
GET GET /v3/projects/:id (catalog) 410 420 440 460 500 500 500 557
GET GET /v3/role_assignments 420 440 450 470 500 500 500 500
GET GET /v3/role_assignments?role.id 410 420 430 450 480 490 500 500
GET GET /v3/role_assignments?scope.domain.id 370 380 390 420 440 460 500 500
GET GET /v3/role_assignments?user.id 420 430 450 460 490 500 500 500
GET GET /v3/roles 410 420 430 450 490 500 500 568
GET GET /v3/roles/:id 410 430 440 450 500 500 500 500
GET GET /v3/users/:id 430 440 460 480 500 500 552 552
GET GET /v3/users/:id (catalog) 440 450 470 480 500 587 587 587
GET GET /v4/api-keys 420 440 470 480 500 500 500 500
GET GET /v4/api-keys/:client_id 420 440 460 490 500 500 590 590
GET GET /v4/mappings/rulesets 410 420 430 450 480 500 500 500
GET GET /v4/mappings/rulesets/:mapping_id 420 430 450 460 490 500 500 500
GET GET /v4/oauth2/:domain_id/.well-known/openid-configuration 34 40 48 59 73 83 120 176
GET GET /v4/oauth2/:domain_id/clients 400 420 430 460 490 500 593 593
GET GET /v4/oauth2/:domain_id/clients/:provider_id 400 420 440 460 470 500 500 500
GET GET /v4/oauth2/:domain_id/jwks 35 40 47 60 74 87 120 178
GET GET /v4/scim_realms 440 470 480 480 500 500 500 500
GET GET /v4/scim_realms/:domain_id/:provider_id 410 410 420 440 450 470 500 500
POST POST /v3/auth/tokens 370 390 410 430 450 480 500 500
POST POST /v3/auth/tokens (password, invalid) 700 800 800 900 1,000 1,000 1,000 1,000
POST POST /v3/auth/tokens (password, project-scoped) 900 1,000 1,000 1,000 1,000 1,000 1,000 1,000
POST POST /v3/auth/tokens (password, unscoped) 800 800 900 1,000 1,000 1,000 1,000 1,000
POST POST /v3/auth/tokens (rescope to system) 460 470 490 500 500 600 600 600
POST POST /v3/auth/tokens (rescope, invalid project) 380 400 420 440 460 470 490 500
POST POST /v3/auth/tokens (system-scoped, bootstrap admin) 900 1,000 1,000 1,000 1,000 1,000 1,000 1,564
POST POST /v4/api-keys/:client_id/revoke (teardown) 210 210 210 210 210 210 210 210
PUT PUT /v4/scim_realms/:domain_id/:provider_id 450 460 490 500 500 600 600 600
Aggregated 33 63 350 420 470 500 1,000 1,564

Status Code Metrics

Method Name Status Codes
DELETE DELETE /v3/auth/tokens 60 [204]
DELETE DELETE /v3/projects/:id (teardown) 1 [204]
DELETE DELETE /v3/roles/:id (teardown) 1 [204]
DELETE DELETE /v3/users/:id (teardown) 2 [204]
DELETE DELETE /v4/mappings/rulesets/:mapping_id (teardown) 1 [204]
DELETE DELETE /v4/oauth2/:domain_id/clients/:provider_id (teardown) 1 [204]
GET 809 [200]
GET GET /SCIM/v2/:domain_id/Users (sync reconcile list) 2,894 [429], 30 [401]
GET GET /v3/auth/tokens (validate new) 59 [200]
GET GET /v3/auth/tokens (validate revoked) 60 [404]
GET GET /v3/projects/:id 75 [200]
GET GET /v3/projects/:id (catalog) 112 [200]
GET GET /v3/role_assignments 56 [200]
GET GET /v3/role_assignments?role.id 56 [200]
GET GET /v3/role_assignments?scope.domain.id 56 [200]
GET GET /v3/role_assignments?user.id 57 [200]
GET GET /v3/roles 149 [200]
GET GET /v3/roles/:id 74 [200]
GET GET /v3/users/:id 144 [200]
GET GET /v3/users/:id (catalog) 141 [200]
GET GET /v4/api-keys 35 [200]
GET GET /v4/api-keys/:client_id 36 [200]
GET GET /v4/mappings/rulesets 37 [200]
GET GET /v4/mappings/rulesets/:mapping_id 37 [200]
GET GET /v4/oauth2/:domain_id/.well-known/openid-configuration 1,084 [200]
GET GET /v4/oauth2/:domain_id/clients 37 [200]
GET GET /v4/oauth2/:domain_id/clients/:provider_id 37 [200]
GET GET /v4/oauth2/:domain_id/jwks 1,084 [200]
GET GET /v4/scim_realms 23 [200]
GET GET /v4/scim_realms/:domain_id/:provider_id 24 [200]
POST POST /v3/auth/tokens 59 [201]
POST POST /v3/auth/tokens (password, invalid) 41 [401]
POST POST /v3/auth/tokens (password, project-scoped) 71 [201]
POST POST /v3/auth/tokens (password, unscoped) 71 [201]
POST POST /v3/auth/tokens (rescope to system) 132 [201]
POST POST /v3/auth/tokens (rescope, invalid project) 80 [401]
POST POST /v3/auth/tokens (system-scoped, bootstrap admin) 66 [201]
POST POST /v4/api-keys/:client_id/revoke (teardown) 1 [200]
PUT PUT /v4/scim_realms/:domain_id/:provider_id 24 [200]
Aggregated 4,247 [200], 60 [404], 2,894 [429], 151 [401], 66 [204], 399 [201]

Transaction Metrics

Transaction # Times Run # Fails Average (ms) Min (ms) Max (ms) RPS Failures/s
ReadHeavy
0.0 0 0 0.00 0 0 0.00 0.00
0.1 146 0 443.18 240 614 4.87 0.00
0.2 144 0 412.27 236 545 4.80 0.00
0.3 144 0 409.98 245 560 4.80 0.00
TokenLifecycle
1.0 0 0 0.00 0 0 0.00 0.00
1.1 60 0 1544.65 597 1801 2.00 0.00
ValidateToken
2.0 0 0 0.00 0 0 0.00 0.00
2.1 125 0 487.14 340 657 4.17 0.00
UserCRUD
3.0 0 0 0.00 0 0 0.00 0.00
3.1 0 0 0.00 0 0 0.00 0.00
3.2 144 0 423.51 219 552 4.80 0.00
3.3 2 0 75.00 72 78 0.07 0.00
ProjectCRUD
4.0 0 0 0.00 0 0 0.00 0.00
4.1 0 0 0.00 0 0 0.00 0.00
4.2 75 0 403.32 256 521 2.50 0.00
4.3 1 0 179.00 179 179 0.03 0.00
RoleCRUD
5.0 0 0 0.00 0 0 0.00 0.00
5.1 0 0 0.00 0 0 0.00 0.00
5.2 74 0 411.11 297 543 2.47 0.00
5.3 1 0 130.00 130 130 0.03 0.00
RoleList
6.0 0 0 0.00 0 0 0.00 0.00
6.1 149 0 407.65 260 568 4.97 0.00
RoleAssignmentList
7.0 0 0 0.00 0 0 0.00 0.00
7.1 56 0 425.57 264 546 1.87 0.00
7.2 57 0 405.91 246 518 1.90 0.00
7.3 56 0 373.96 265 517 1.87 0.00
7.4 56 0 408.11 289 516 1.87 0.00
UserRead
8.0 0 0 0.00 0 0 0.00 0.00
8.1 139 0 437.65 283 610 4.63 0.00
8.2 141 0 434.48 270 587 4.70 0.00
ProjectRead
9.0 0 0 0.00 0 0 0.00 0.00
9.1 111 0 410.62 278 535 3.70 0.00
9.2 112 0 409.10 233 557 3.73 0.00
PasswordAuth
10.0 71 0 787.82 462 1415 2.37 0.00
10.1 71 0 951.99 628 1375 2.37 0.00
PasswordAuthNegative
11.0 41 0 743.44 425 1075 1.37 0.00
Rescope
12.0 0 0 0.00 0 0 0.00 0.00
12.1 132 0 459.71 316 621 4.40 0.00
RescopeNegative
13.0 0 0 0.00 0 0 0.00 0.00
13.1 80 0 382.67 196 504 2.67 0.00
SystemScopeAuth
14.0 66 0 944.24 514 1564 2.20 0.00
ApiKeyCRUD
15.0 0 0 0.00 0 0 0.00 0.00
15.1 0 0 0.00 0 0 0.00 0.00
15.2 36 0 428.64 299 590 1.20 0.00
15.3 35 0 428.09 308 517 1.17 0.00
15.4 1 0 211.00 211 211 0.03 0.00
MappingCRUD
16.0 0 0 0.00 0 0 0.00 0.00
16.1 0 0 0.00 0 0 0.00 0.00
16.2 37 0 412.70 271 537 1.23 0.00
16.3 37 0 406.86 299 530 1.23 0.00
16.4 1 0 147.00 147 147 0.03 0.00
OAuth2ClientCRUD
17.0 0 0 0.00 0 0 0.00 0.00
17.1 0 0 0.00 0 0 0.00 0.00
17.2 37 0 411.95 332 520 1.23 0.00
17.3 37 0 409.65 280 593 1.23 0.00
17.4 1 0 200.00 200 200 0.03 0.00
OAuth2Discovery
18.0 1084 0 41.48 8 178 36.13 0.00
18.1 1084 0 41.05 8 176 36.13 0.00
ScimRealmRead
19.0 0 0 0.00 0 0 0.00 0.00
19.1 24 0 394.25 237 513 0.80 0.00
19.2 23 0 434.13 335 533 0.77 0.00
19.3 24 0 465.33 381 606 0.80 0.00
ScimSync
20.0 0 0 0.00 0 0 0.00 0.00
20.1 0 0 0.00 0 0 0.00 0.00
20.2 0 0 0.00 0 0 0.00 0.00
20.3 2924 0 9.79 1 630 97.47 0.00
20.4 2923 0 0.00 0 0 97.43 0.00
20.5 2923 0 0.00 0 0 97.43 0.00
20.6 1 0 0.00 0 0 0.03 0.00
Aggregated 13486 0 101.64 1 1801 449.53 0.00

Scenario Metrics

Transaction # Users # Times Run Average (ms) Min (ms) Max (ms) Scenarios/s Iterations
ReadHeavy 6 143 1274.09 950 1493 4.77 23.83
TokenLifecycle 3 57 1582.72 1307 1801 1.90 19.00
ValidateToken 2 123 488.96 358 657 4.10 61.50
UserCRUD 2 142 426.37 262 552 4.73 71.00
ProjectCRUD 1 74 404.30 256 521 2.47 74.00
RoleCRUD 1 73 411.86 297 543 2.43 73.00
RoleList 2 147 409.35 260 568 4.90 73.50
RoleAssignmentList 3 56 1621.43 1345 1872 1.87 18.67
UserRead 4 138 874.20 662 1043 4.60 34.50
ProjectRead 3 110 821.69 595 973 3.67 36.67
PasswordAuth 4 70 1745.40 1275 2374 2.33 17.50
PasswordAuthNegative 1 40 747.58 425 1075 1.33 40.00
Rescope 2 130 460.59 316 621 4.33 65.00
RescopeNegative 1 79 384.46 196 504 2.63 79.00
SystemScopeAuth 2 64 952.05 603 1564 2.13 32.00
ApiKeyCRUD 1 35 857.97 703 1047 1.17 35.00
MappingCRUD 1 36 824.89 636 1014 1.20 36.00
OAuth2ClientCRUD 1 37 822.89 670 998 1.23 37.00
OAuth2Discovery 3 1083 83.04 20 229 36.10 361.00
ScimRealmRead 1 24 1300.79 1131 1462 0.80 24.00
ScimSync 1 2923 9.78 1 630 97.43 2923.00
Aggregated 45 5584 243.24 1 2374 186.13 4135.17

Error Metrics

Method Name # Error
GET GET /SCIM/v2/:domain_id/Users (sync reconcile list) 48 401 Unauthorized: GET /SCIM/v2/:domain_id/Users (sync reconcile list)
POST POST /SCIM/v2/:domain_id/Users (sync provision) 1 401 Unauthorized: POST /SCIM/v2/:domain_id/Users (sync provision)
POST POST /v3/auth/tokens (password, invalid) 98 401 Unauthorized: POST /v3/auth/tokens (password, invalid)
POST POST /v3/auth/tokens (rescope, invalid project) 204 401 Unauthorized: POST /v3/auth/tokens (rescope, invalid project)
GET GET /v3/auth/tokens (validate revoked) 210 404 Not Found: GET /v3/auth/tokens (validate revoked)
GET GET /SCIM/v2/:domain_id/Users (sync reconcile list) 3364 429 Too Many Requests: GET /SCIM/v2/:domain_id/Users (sync reconcile list)

View full report

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

🧪 Tempest Identity Compatibility Results (advisory, non-blocking)

rust

Totals
======
Ran: 133 tests in 27.3370 sec.
 - Passed: 66
 - Skipped: 4
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 63
Sum of execute time for each test: 18.9878 sec.
Failed test IDs
===== FAILED TESTS (target=rust) =====
tempest.api.identity.admin.v3.test_credentials.CredentialsTestJSON.test_credentials_create_get_update_delete[id-7cd59bf9-bda4-4c72-9467-d21cab278355,smoke]
tempest.api.identity.admin.v3.test_application_credentials.ApplicationCredentialsV3AdminTest.test_create_application_credential_with_roles[id-3b3dd48f-3388-406a-a9e6-4d078a552d0e]
tempest.api.identity.admin.v3.test_domain_configuration.DomainConfigurationTestJSON.test_create_domain_config_and_show_config_groups_and_options[id-9e3ff13c-f597-4f01-9377-d6c06c2a1477]
tempest.api.identity.admin.v3.test_domain_configuration.DomainConfigurationTestJSON.test_create_update_and_delete_domain_config_groups_and_opts[id-c7510fa2-6661-4170-9c6b-4783a80651e9]
tempest.api.identity.admin.v3.test_domain_configuration.DomainConfigurationTestJSON.test_show_default_group_config_and_options[id-11a02bf0-6f94-4380-b3b0-c8dc18fc0d22]
tempest.api.identity.admin.v3.test_oauth_consumers.OAUTHConsumersV3Test.test_create_and_show_consumer[id-c8307ea6-a86c-47fd-ae7b-5b3b2caca76d]
tempest.api.identity.admin.v3.test_oauth_consumers.OAUTHConsumersV3Test.test_delete_consumer[id-fdfa1b7f-2a31-4354-b2c7-f6ae20554f93]
tempest.api.identity.admin.v3.test_oauth_consumers.OAUTHConsumersV3Test.test_list_consumers[id-09ca50de-78f2-4ffb-ac71-f2254036b2b8]
tempest.api.identity.admin.v3.test_oauth_consumers.OAUTHConsumersV3Test.test_update_consumer[id-080a9b1a-c009-47c0-9979-5305bf72e3dc]
setUpClass (tempest.api.identity.admin.v3.test_endpoint_groups.EndPointGroupsTest)
tempest.api.identity.admin.v3.test_domains.DomainsTestJSON.test_create_domain_without_description[id-2abf8764-309a-4fa9-bc58-201b799817ad]
tempest.api.identity.admin.v3.test_domains.DomainsTestJSON.test_create_update_delete_domain[id-f2f5b44a-82e8-4dad-8084-0661ea3b18cf,smoke]
tempest.api.identity.admin.v3.test_default_project_id.TestDefaultProjectId.test_default_project_id[id-d6110661-6a71-49a7-a453-b5e26640ff6d]
tempest.api.identity.admin.v3.test_domains.DomainsTestJSON.test_domain_delete_cascades_content[id-d8d318b7-d1b3-4c37-94c5-3c5ba0b121ea]
tempest.api.identity.admin.v3.test_domains.DomainsTestJSON.test_list_domains_filter_by_enabled[id-3fd19840-65c1-43f8-b48c-51bdd066dff9]
tempest.api.identity.admin.v3.test_domains_negative.DomainsNegativeTestJSON.test_create_domain_with_name_length_over_64[id-37b1bbf2-d664-4785-9a11-333438586eae,negative]
tempest.api.identity.admin.v3.test_domains_negative.DomainsNegativeTestJSON.test_delete_active_domain[gate,id-1f3fbff5-4e44-400d-9ca1-d953f05f609b,negative]
tempest.api.identity.admin.v3.test_projects.ProjectsTestJSON.test_create_is_domain_project[id-a7eb9416-6f9b-4dbb-b71b-7f73aaef59d5]
tempest.api.identity.admin.v3.test_projects.ProjectsTestJSON.test_project_create_with_parent[id-1854f9c0-70bc-4d11-a08a-1c789d339e3d]
tempest.api.identity.admin.v3.test_groups.GroupsV3TestJSON.test_group_users_add_list_delete[id-1598521a-2f36-4606-8df9-30772bd51339,smoke]
tempest.api.identity.admin.v3.test_projects.ProjectsTestJSON.test_project_get_equals_list[id-d1db68b6-aebe-4fa0-b79d-d724d2e21162]
tempest.api.identity.admin.v3.test_groups.GroupsV3TestJSON.test_list_user_groups[id-64573281-d26a-4a52-b899-503cb0f4e4ec]
tempest.api.identity.admin.v3.test_list_projects.ListProjectsTestJSON.test_list_projects_with_enabled[id-0fe7a334-675a-4509-b00e-1c4b95d5dae8]
tempest.api.identity.admin.v3.test_list_projects.ListProjectsTestJSON.test_list_projects_with_parent[id-6edc66f5-2941-4a17-9526-4073311c1fac]
tempest.api.identity.admin.v3.test_list_projects.ListProjectsStaticTestJSON.test_list_projects[id-1d830662-22ad-427c-8c3e-4ec854b0af44]
tempest.api.identity.admin.v3.test_inherits.InheritsV3TestJSON.test_inherit_assign_check_revoke_roles_on_projects_group[id-26021436-d5a4-4256-943c-ded01e0d4b45]
tempest.api.identity.admin.v3.test_inherits.InheritsV3TestJSON.test_inherit_assign_check_revoke_roles_on_projects_user[id-18b70e45-7687-4b72-8277-b8f1a47d7591]
tempest.api.identity.admin.v3.test_inherits.InheritsV3TestJSON.test_inherit_assign_list_check_revoke_roles_on_domains_group[id-c7a8dda2-be50-4fb4-9a9c-e830771078b1]
tempest.api.identity.admin.v3.test_inherits.InheritsV3TestJSON.test_inherit_assign_list_check_revoke_roles_on_domains_user[id-4e6f0366-97c8-423c-b2be-41eae6ac91c8]
tempest.api.identity.admin.v3.test_inherits.InheritsV3TestJSON.test_inherit_assign_list_revoke_user_roles_on_domain[id-3acf666e-5354-42ac-8e17-8b68893bcd36]
tempest.api.identity.admin.v3.test_inherits.InheritsV3TestJSON.test_inherit_assign_list_revoke_user_roles_on_project_tree[id-9f02ccd9-9b57-46b4-8f77-dd5a736f3a06]
tempest.api.identity.admin.v3.test_project_tags.IdentityV3ProjectTagsTest.test_list_update_delete_project_tags[id-7c123aac-999d-416a-a0fb-84b915ab10de]
tempest.api.identity.admin.v3.test_tokens.TokensV3TestJSON.test_get_available_domain_scopes[id-ec5ecb05-af64-4c04-ac86-4d9f6f12f185]
tempest.api.identity.admin.v3.test_list_users.UsersV3TestJSON.test_list_users_with_not_enabled[id-bff8bf2f-9408-4ef5-b63a-753c8c2124eb]
tempest.api.identity.admin.v3.test_tokens.TokensV3TestJSON.test_rescope_token[id-565fa210-1da1-4563-999b-f7b5b67cf112]
tempest.api.identity.admin.v3.test_projects_negative.ProjectsNegativeStaticTestJSON.test_create_projects_name_length_over_64[id-502b6ceb-b0c8-4422-bf53-f08fdb21e2f0,negative]
tempest.api.identity.admin.v3.test_users_negative.UsersNegativeTest.test_create_user_for_non_existent_domain[id-e75f006c-89cc-477b-874d-588e4eab4b17,negative]
tempest.api.identity.admin.v3.test_users.UsersV3TestJSON.test_list_user_projects[id-a831e70c-e35b-430b-92ed-81ebbc5437b8]
tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types[id-657c1970-4722-4189-8831-7325f3bc4265,smoke]
tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources[id-b9232f5e-d9e5-4d97-b96c-28d3db4de1bd,smoke]
tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_identity_v3_existence[id-79aec9ae-710f-4c54-a4fc-3aa25b4feac3]
tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_list_api_versions[id-721f480f-35b6-46c7-846e-047e6acea0dc,smoke]
tempest.api.identity.v3.test_tokens.TokensV3Test.test_validate_token[id-a9512ac3-3909-48a4-b395-11f438e16260]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_assignments_for_domain_roles[id-3859df7e-5b78-4e4d-b10e-214c8953842a]
tempest.api.identity.v3.test_projects.IdentityV3ProjectsTest.test_list_projects_returns_only_authorized_projects[id-86128d46-e170-4644-866a-cc487f699e1d]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_assignments_for_implied_roles_create_delete[id-c8828027-df48-4021-95df-b65b92c7429e]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_grant_list_revoke_role_to_group_on_domain[id-4bf8a70b-e785-413a-ad53-9f91ce02faa7]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_grant_list_revoke_role_to_group_on_project[id-cbf11737-1904-4690-9613-97bcbb3df1c4]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_grant_list_revoke_role_to_group_on_system[id-c888fe4f-8018-48db-b959-542225c1b4b6]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_grant_list_revoke_role_to_user_on_domain[id-6c9a2940-3625-43a3-ac02-5dcec62ef3bd]
tempest.api.identity.v3.test_application_credentials.ApplicationCredentialsV3Test.test_create_application_credential[id-8080c75c-eddc-4786-941a-c2da7039ae61]
tempest.api.identity.v3.test_application_credentials.ApplicationCredentialsV3Test.test_create_application_credential_expires[id-852daf0c-42b5-4239-8466-d193d0543ed3]
tempest.api.identity.v3.test_application_credentials.ApplicationCredentialsV3Test.test_list_application_credentials[id-ff0cd457-6224-46e7-b79e-0ada4964a8a6]
tempest.api.identity.v3.test_application_credentials.ApplicationCredentialsV3Test.test_query_application_credentials[id-9bb5e5cc-5250-493a-8869-8b665f6aa5f6]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_implied_domain_roles[id-eb1e1c24-1bc4-4d47-9748-e127a1852c82]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_implied_roles_create_check_show_delete[id-c90c316c-d706-4728-bcba-eb1912081b69]
tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_role_create_update_show_list[id-18afc6c0-46cf-4911-824e-9989cc056c3a,smoke]
tempest.api.identity.v3.test_catalog.IdentityCatalogTest.test_catalog_standardization[id-56b57ced-22b8-4127-9b8a-565dfb0207e2]
tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_get_trusts_all[id-4773ebd5-ecbf-4255-b8d8-b63e6f72b65d,smoke]
tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_get_trusts_query[id-6268b345-87ca-47c0-9ce3-37792b43403a]
tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_trust_expire[id-0ed14b66-cefd-4b5c-a964-65759453e292]
tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_trust_impersonate[id-5a0a91a4-baef-4a14-baba-59bf4d7fcace]
tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_trust_noimpersonate[id-ed2a8779-a7ac-49dc-afd7-30f32f936ed2]
===== END FAILED TESTS (target=rust) =====

View full run

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

🐰 Bencher Report

Projectkeystone
Branchclaude/per-domain-assignments-provider-k0tp5e
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
nanoseconds (ns)
(Result Δ%)
Upper Boundary
nanoseconds (ns)
(Limit %)
Command_Serde/apply/remove📈 view plot
🚷 view threshold
131,630.00 ns
(-48.23%)Baseline: 254,269.16 ns
1,303,191.60 ns
(10.10%)
Command_Serde/apply/set📈 view plot
🚷 view threshold
140,660.00 ns
(-65.40%)Baseline: 406,528.52 ns
3,194,083.20 ns
(4.40%)
Command_Serde/pack/delete📈 view plot
🚷 view threshold
120.63 ns
(+1.73%)Baseline: 118.58 ns
155.44 ns
(77.61%)
Command_Serde/pack/delete_index📈 view plot
🚷 view threshold
108.30 ns
(+2.35%)Baseline: 105.81 ns
138.40 ns
(78.25%)
Command_Serde/pack/set📈 view plot
🚷 view threshold
199.06 ns
(+3.95%)Baseline: 191.50 ns
245.64 ns
(81.04%)
Command_Serde/pack/set_index📈 view plot
🚷 view threshold
110.62 ns
(+4.58%)Baseline: 105.78 ns
139.01 ns
(79.58%)
Command_Serde/unpack/delete📈 view plot
🚷 view threshold
197.41 ns
(+4.92%)Baseline: 188.16 ns
268.56 ns
(73.51%)
Command_Serde/unpack/delete_index📈 view plot
🚷 view threshold
156.53 ns
(+0.00%)Baseline: 156.52 ns
217.01 ns
(72.13%)
Command_Serde/unpack/set📈 view plot
🚷 view threshold
297.04 ns
(+12.49%)Baseline: 264.05 ns
357.91 ns
(82.99%)
Command_Serde/unpack/set_index📈 view plot
🚷 view threshold
157.82 ns
(+2.48%)Baseline: 154.01 ns
211.38 ns
(74.66%)
Payload_encryption/pack/remove_cmd📈 view plot
🚷 view threshold
115.94 ns
(+2.72%)Baseline: 112.87 ns
149.41 ns
(77.60%)
Payload_encryption/pack/set_cmd📈 view plot
🚷 view threshold
225.39 ns
(+13.25%)Baseline: 199.02 ns
261.20 ns
(86.29%)
Payload_encryption/unpack/remove_cmd📈 view plot
🚷 view threshold
208.94 ns
(+6.11%)Baseline: 196.90 ns
282.69 ns
(73.91%)
Payload_encryption/unpack/set_cmd📈 view plot
🚷 view threshold
300.72 ns
(+9.85%)Baseline: 273.76 ns
375.56 ns
(80.07%)
Raft_1Node_Latency/prefix/1node📈 view plot
🚷 view threshold
2,628,700.00 ns
(-13.84%)Baseline: 3,051,064.67 ns
7,824,512.96 ns
(33.60%)
Raft_1Node_Latency/read/1node📈 view plot
🚷 view threshold
45,299.00 ns
(+20.89%)Baseline: 37,471.11 ns
51,467.76 ns
(88.01%)
Raft_1Node_Latency/remove/1node📈 view plot
🚷 view threshold
375,850.00 ns
(-67.91%)Baseline: 1,171,094.84 ns
11,496,337.95 ns
(3.27%)
Raft_1Node_Latency/write/1node📈 view plot
🚷 view threshold
405,430.00 ns
(-58.53%)Baseline: 977,644.84 ns
7,556,069.30 ns
(5.37%)
build_snapshot/default📈 view plot
🚷 view threshold
116,920.00 ns
(-4.77%)Baseline: 122,781.77 ns
268,592.95 ns
(43.53%)
fernet token/project📈 view plot
🚷 view threshold
1,507.60 ns
(+5.59%)Baseline: 1,427.83 ns
1,796.26 ns
(83.93%)
get_data_keyspace📈 view plot
🚷 view threshold
0.31 ns
(-1.41%)Baseline: 0.32 ns
0.39 ns
(80.59%)
get_db📈 view plot
🚷 view threshold
0.31 ns
(-1.73%)Baseline: 0.32 ns
0.39 ns
(80.46%)
get_fernet_token_timestamp/project📈 view plot
🚷 view threshold
155.75 ns
(+10.90%)Baseline: 140.44 ns
180.02 ns
(86.52%)
get_keyspace📈 view plot
🚷 view threshold
4.46 ns
(-22.87%)Baseline: 5.78 ns
13.37 ns
(33.34%)
🐰 View full continuous benchmarking report in Bencher

Merged via the queue into main with commit 5ac85e0 Sep 7, 2026
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant