Skip to content

refactor: Split extism out of core's dependency tree - #1148

Merged
gtema merged 1 commit into
mainfrom
claude/extism-keystone-core-refactor-8uj71b
Aug 3, 2026
Merged

refactor: Split extism out of core's dependency tree#1148
gtema merged 1 commit into
mainfrom
claude/extism-keystone-core-refactor-8uj71b

Conversation

@gtema

@gtema gtema commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Move the extism-based WASM plugin runtime into a new
auth-plugin-runtime crate boundary, keeping only wire contracts and
the AuthPluginRuntime/HostFunctions traits in a new extism-free
auth-plugin-core crate that openstack-keystone-core depends on
instead. load_auth_plugins (the one place core previously
constructed a concrete WasmPluginRegistry) moves to crates/keystone,
so extism now only appears in the runtime crate and the service
binary that actually executes plugins, cutting it from every other
consumer of core's compile graph.

Assisted-by: Claude noreply@anthropic.com
Signed-off-by: Artem Goncharov artem.goncharov@gmail.com

Move the extism-based WASM plugin runtime into a new
auth-plugin-runtime crate boundary, keeping only wire contracts and
the AuthPluginRuntime/HostFunctions traits in a new extism-free
auth-plugin-core crate that openstack-keystone-core depends on
instead. load_auth_plugins (the one place core previously
constructed a concrete WasmPluginRegistry) moves to crates/keystone,
so extism now only appears in the runtime crate and the service
binary that actually executes plugins, cutting it from every other
consumer of core's compile graph.

Assisted-by: Claude <noreply@anthropic.com>
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

🦢 Load Test Results

Goose Attack Report

Plan Overview

Action Started Stopped Elapsed Users
Increasing 26-08-03 18:09:20 26-08-03 18:09:50 00:00:30 0 → 45
Maintaining 26-08-03 18:09:50 26-08-03 18:10:20 00:00:30 45
Decreasing 26-08-03 18:10:20 26-08-03 18:10:20 00:00:00 0 ← 45

Request Metrics

Method Name # Requests # Fails Average (ms) Min (ms) Max (ms) RPS Failures/s
DELETE DELETE /v3/auth/tokens 192 0 167.52 34 432 6.40 0.00
DELETE DELETE /v3/projects/:id (teardown) 1 0 39.00 39 39 0.03 0.00
DELETE DELETE /v3/roles/:id (teardown) 1 0 103.00 103 103 0.03 0.00
DELETE DELETE /v3/users/:id (teardown) 2 0 44.50 37 52 0.07 0.00
GET 2170 0 174.55 97 275 72.33 0.00
GET GET /v3/auth/tokens (validate new) 190 0 164.07 122 226 6.33 0.00
GET GET /v3/auth/tokens (validate revoked) 192 0 150.65 18 209 6.40 0.00
GET GET /v3/projects/:id 185 0 163.40 107 223 6.17 0.00
GET GET /v3/projects/:id (catalog) 277 0 163.57 102 234 9.23 0.00
GET GET /v3/role_assignments 144 0 158.71 98 217 4.80 0.00
GET GET /v3/role_assignments?role.id 145 0 160.68 99 216 4.83 0.00
GET GET /v3/role_assignments?scope.domain.id 144 0 153.35 97 196 4.80 0.00
GET GET /v3/role_assignments?user.id 144 0 155.65 100 209 4.80 0.00
GET GET /v3/roles 369 0 163.56 93 239 12.30 0.00
GET GET /v3/roles/:id 184 0 163.80 109 230 6.13 0.00
GET GET /v3/users/:id 354 0 171.39 114 235 11.80 0.00
GET GET /v3/users/:id (catalog) 349 0 171.56 106 244 11.63 0.00
GET GET /v4/api-keys 205 205 147.16 92 211 6.83 6.83
GET GET /v4/mappings/rulesets 204 204 147.61 86 197 6.80 6.80
GET GET /v4/oauth2/:domain_id/.well-known/openid-configuration 24311 24311 1.35 1 31 810.37 810.37
GET GET /v4/oauth2/:domain_id/clients 205 205 147.52 90 206 6.83 6.83
GET GET /v4/oauth2/:domain_id/jwks 24312 24312 1.35 1 30 810.40 810.40
POST POST /v3/auth/tokens 188 0 154.13 98 212 6.27 0.00
POST POST /v3/auth/tokens (password, invalid) 53 0 572.06 307 1013 1.77 0.00
POST POST /v3/auth/tokens (password, project-scoped) 95 0 666.94 360 1114 3.17 0.00
POST POST /v3/auth/tokens (password, unscoped) 96 0 611.62 342 1018 3.20 0.00
POST POST /v3/auth/tokens (rescope to system) 325 0 186.07 106 253 10.83 0.00
POST POST /v3/auth/tokens (rescope, invalid project) 197 0 153.50 92 220 6.57 0.00
POST POST /v3/auth/tokens (system-scoped, bootstrap admin) 92 0 668.18 253 1196 3.07 0.00
Aggregated 55326 49237 24.19 1 1196 1844.20 1641.23

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 160 170 170 180 190 210 300 430
DELETE DELETE /v3/projects/:id (teardown) 39 39 39 39 39 39 39 39
DELETE DELETE /v3/roles/:id (teardown) 103 103 103 103 103 103 103 103
DELETE DELETE /v3/users/:id (teardown) 37 37 37 52 52 52 52 52
GET 170 180 190 190 210 220 240 275
GET GET /v3/auth/tokens (validate new) 160 170 170 180 190 200 220 226
GET GET /v3/auth/tokens (validate revoked) 150 160 160 170 180 190 209 209
GET GET /v3/projects/:id 160 170 170 180 190 200 220 220
GET GET /v3/projects/:id (catalog) 160 170 170 180 190 200 210 230
GET GET /v3/role_assignments 160 160 170 170 190 200 217 217
GET GET /v3/role_assignments?role.id 160 170 170 170 180 200 210 216
GET GET /v3/role_assignments?scope.domain.id 150 160 160 170 180 180 190 196
GET GET /v3/role_assignments?user.id 150 160 160 170 180 190 200 209
GET GET /v3/roles 160 170 170 180 190 200 220 239
GET GET /v3/roles/:id 160 170 170 180 190 200 220 230
GET GET /v3/users/:id 170 170 180 190 200 210 230 235
GET GET /v3/users/:id (catalog) 170 180 180 190 200 210 230 240
GET GET /v4/api-keys 150 150 160 160 170 180 190 210
GET GET /v4/mappings/rulesets 150 150 160 160 170 180 190 197
GET GET /v4/oauth2/:domain_id/.well-known/openid-configuration 1 1 1 2 3 5 8 31
GET GET /v4/oauth2/:domain_id/clients 150 150 160 160 170 180 200 206
GET GET /v4/oauth2/:domain_id/jwks 1 1 1 2 3 5 9 30
POST POST /v3/auth/tokens 150 160 160 170 180 190 200 210
POST POST /v3/auth/tokens (password, invalid) 600 600 700 700 800 800 900 1,000
POST POST /v3/auth/tokens (password, project-scoped) 700 700 800 800 900 900 1,000 1,000
POST POST /v3/auth/tokens (password, unscoped) 600 600 700 700 800 900 1,000 1,000
POST POST /v3/auth/tokens (rescope to system) 190 190 200 200 220 230 240 250
POST POST /v3/auth/tokens (rescope, invalid project) 150 160 160 170 180 180 200 220
POST POST /v3/auth/tokens (system-scoped, bootstrap admin) 700 700 800 800 800 900 900 1,000
Aggregated 1 1 2 4 150 170 220 1,000

Status Code Metrics

Method Name Status Codes
DELETE DELETE /v3/auth/tokens 192 [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]
GET 2,170 [200]
GET GET /v3/auth/tokens (validate new) 190 [200]
GET GET /v3/auth/tokens (validate revoked) 192 [404]
GET GET /v3/projects/:id 185 [200]
GET GET /v3/projects/:id (catalog) 277 [200]
GET GET /v3/role_assignments 144 [200]
GET GET /v3/role_assignments?role.id 145 [200]
GET GET /v3/role_assignments?scope.domain.id 144 [200]
GET GET /v3/role_assignments?user.id 144 [200]
GET GET /v3/roles 369 [200]
GET GET /v3/roles/:id 184 [200]
GET GET /v3/users/:id 354 [200]
GET GET /v3/users/:id (catalog) 349 [200]
GET GET /v4/api-keys 205 [500]
GET GET /v4/mappings/rulesets 204 [500]
GET GET /v4/oauth2/:domain_id/.well-known/openid-configuration 24,311 [500]
GET GET /v4/oauth2/:domain_id/clients 205 [500]
GET GET /v4/oauth2/:domain_id/jwks 24,312 [500]
POST POST /v3/auth/tokens 188 [201]
POST POST /v3/auth/tokens (password, invalid) 53 [401]
POST POST /v3/auth/tokens (password, project-scoped) 95 [201]
POST POST /v3/auth/tokens (password, unscoped) 96 [201]
POST POST /v3/auth/tokens (rescope to system) 325 [201]
POST POST /v3/auth/tokens (rescope, invalid project) 197 [401]
POST POST /v3/auth/tokens (system-scoped, bootstrap admin) 92 [201]
Aggregated 49,237 [500], 796 [201], 250 [401], 196 [204], 4,655 [200], 192 [404]

Transaction Metrics

Transaction # Times Run # Fails Average (ms) Min (ms) Max (ms) RPS Failures/s
ReadHeavy
0.0 1 0 19.00 19 19 0.03 0.00
0.1 361 0 175.42 117 264 12.03 0.00
0.2 361 0 164.50 102 236 12.03 0.00
0.3 360 0 163.57 98 233 12.00 0.00
TokenLifecycle
1.0 0 0 0.00 0 0 0.00 0.00
1.1 192 0 637.79 366 909 6.40 0.00
ValidateToken
2.0 0 0 0.00 0 0 0.00 0.00
2.1 463 0 196.24 130 275 15.43 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 354 0 171.40 114 235 11.80 0.00
3.3 2 0 44.50 37 52 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 185 0 163.44 107 223 6.17 0.00
4.3 1 0 39.00 39 39 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 184 0 163.83 109 230 6.13 0.00
5.3 1 0 103.00 103 103 0.03 0.00
RoleList
6.0 0 0 0.00 0 0 0.00 0.00
6.1 369 0 163.57 93 239 12.30 0.00
RoleAssignmentList
7.0 0 0 0.00 0 0 0.00 0.00
7.1 144 0 158.73 98 217 4.80 0.00
7.2 144 0 155.68 100 209 4.80 0.00
7.3 144 0 153.40 97 196 4.80 0.00
7.4 145 0 160.70 99 216 4.83 0.00
UserRead
8.0 0 0 0.00 0 0 0.00 0.00
8.1 350 0 174.40 101 240 11.67 0.00
8.2 349 0 171.59 106 244 11.63 0.00
ProjectRead
9.0 0 0 0.00 0 0 0.00 0.00
9.1 275 0 164.75 97 239 9.17 0.00
9.2 277 0 163.59 102 234 9.23 0.00
PasswordAuth
10.0 96 0 611.65 342 1018 3.20 0.00
10.1 95 0 666.97 360 1114 3.17 0.00
PasswordAuthNegative
11.0 53 0 572.06 307 1013 1.77 0.00
Rescope
12.0 0 0 0.00 0 0 0.00 0.00
12.1 325 0 186.08 106 253 10.83 0.00
RescopeNegative
13.0 0 0 0.00 0 0 0.00 0.00
13.1 197 0 153.54 92 220 6.57 0.00
SystemScopeAuth
14.0 92 0 668.22 253 1196 3.07 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 204 0 0.00 0 0 6.80 0.00
15.3 205 0 147.17 92 211 6.83 0.00
15.4 1 0 0.00 0 0 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 203 0 0.00 0 0 6.77 0.00
16.3 204 0 147.62 86 197 6.80 0.00
16.4 1 0 0.00 0 0 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 204 0 0.00 0 0 6.80 0.00
17.3 205 0 147.57 90 207 6.83 0.00
17.4 1 0 0.00 0 0 0.03 0.00
OAuth2Discovery
18.0 24312 0 1.36 3 30 810.40 0.00
18.1 24311 0 1.36 1 31 810.37 0.00
Aggregated 55371 0 24.17 1 1196 1845.70 0.00

Scenario Metrics

Transaction # Users # Times Run Average (ms) Min (ms) Max (ms) Scenarios/s Iterations
ReadHeavy 6 358 504.02 341 620 11.93 59.67
TokenLifecycle 4 188 641.76 503 909 6.27 47.00
ValidateToken 3 460 196.12 130 275 15.33 153.33
UserCRUD 2 352 171.50 114 235 11.73 176.00
ProjectCRUD 1 184 163.57 107 223 6.13 184.00
RoleCRUD 1 183 163.64 109 230 6.10 183.00
RoleList 2 367 163.37 93 239 12.23 183.50
RoleAssignmentList 3 144 628.62 456 750 4.80 48.00
UserRead 4 347 346.20 232 446 11.57 86.75
ProjectRead 3 274 328.44 221 416 9.13 91.33
PasswordAuth 4 92 1289.10 859 1803 3.07 23.00
PasswordAuthNegative 1 52 576.31 307 1013 1.73 52.00
Rescope 2 323 186.04 106 253 10.77 161.50
RescopeNegative 1 196 153.70 92 220 6.53 196.00
SystemScopeAuth 2 90 676.57 369 1196 3.00 45.00
ApiKeyCRUD 1 204 147.20 92 211 6.80 204.00
MappingCRUD 1 203 147.46 86 197 6.77 203.00
OAuth2ClientCRUD 1 204 147.53 90 207 6.80 204.00
OAuth2Discovery 3 24310 3.23 1 50 810.33 8103.33
Aggregated 45 28531 46.99 1 1803 951.03 10404.42

Error Metrics

Method Name # Error
POST POST /v3/auth/tokens (password, invalid) 132 401 Unauthorized: POST /v3/auth/tokens (password, invalid)
POST POST /v3/auth/tokens (rescope, invalid project) 546 401 Unauthorized: POST /v3/auth/tokens (rescope, invalid project)
GET GET /v3/auth/tokens (validate revoked) 1040 404 Not Found: GET /v3/auth/tokens (validate revoked)
GET GET /v4/api-keys 298 500 Internal Server Error: GET /v4/api-keys
GET GET /v4/mappings/rulesets 307 500 Internal Server Error: GET /v4/mappings/rulesets
GET GET /v4/oauth2/:domain_id/.well-known/openid-configuration 45893 500 Internal Server Error: GET /v4/oauth2/:domain_id/.well-known/openid-configuration
GET GET /v4/oauth2/:domain_id/clients 309 500 Internal Server Error: GET /v4/oauth2/:domain_id/clients
GET GET /v4/oauth2/:domain_id/jwks 45895 500 Internal Server Error: GET /v4/oauth2/:domain_id/jwks
POST POST /v4/api-keys (setup) 1 500 Internal Server Error: POST /v4/api-keys (setup)
POST POST /v4/mappings/rulesets (setup) 1 500 Internal Server Error: POST /v4/mappings/rulesets (setup)
POST POST /v4/oauth2/:domain_id/clients (setup) 1 500 Internal Server Error: POST /v4/oauth2/:domain_id/clients (setup)

View full report

@gtema
gtema enabled auto-merge August 3, 2026 18:15
@gtema
gtema added this pull request to the merge queue Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

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

rust

Totals
======
Ran: 133 tests in 28.3420 sec.
 - Passed: 63
 - Skipped: 4
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 66
Sum of execute time for each test: 25.7697 sec.
Failed test IDs
===== FAILED TESTS (target=rust) =====
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_credentials.CredentialsTestJSON.test_credentials_create_get_update_delete[id-7cd59bf9-bda4-4c72-9467-d21cab278355,smoke]
tempest.api.identity.admin.v3.test_list_projects.ListProjectsStaticTestJSON.test_list_projects[id-1d830662-22ad-427c-8c3e-4ec854b0af44]
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_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[id-7161023e-5dd0-4612-9da0-1bac6ac30b63]
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_project_tags.IdentityV3ProjectTagsTest.test_list_update_delete_project_tags[id-7c123aac-999d-416a-a0fb-84b915ab10de]
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_list_users.UsersV3TestJSON.test_list_users_with_not_enabled[id-bff8bf2f-9408-4ef5-b63a-753c8c2124eb]
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_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]
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_groups.GroupsV3TestJSON.test_group_users_add_list_delete[id-1598521a-2f36-4606-8df9-30772bd51339,smoke]
tempest.api.identity.admin.v3.test_groups.GroupsV3TestJSON.test_list_user_groups[id-64573281-d26a-4a52-b899-503cb0f4e4ec]
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_roles.RolesV3TestJSON.test_assignments_for_domain_roles[id-3859df7e-5b78-4e4d-b10e-214c8953842a]
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.admin.v3.test_trusts.TrustsV3TestJSON.test_get_trusts_all[id-4773ebd5-ecbf-4255-b8d8-b63e6f72b65d,smoke]
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.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_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_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_projects.ProjectsTestJSON.test_project_get_equals_list[id-d1db68b6-aebe-4fa0-b79d-d724d2e21162]
tempest.api.identity.admin.v3.test_policies.PoliciesTestJSON.test_create_update_delete_policy[id-e544703a-2f03-4cf2-9b0f-350782fdb0d3,smoke]
tempest.api.identity.admin.v3.test_policies.PoliciesTestJSON.test_list_policies[id-1a0ad286-2d06-4123-ab0d-728893a76201]
tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_trust_impersonate[id-5a0a91a4-baef-4a14-baba-59bf4d7fcace]
tempest.api.identity.admin.v3.test_users.UsersV3TestJSON.test_list_user_projects[id-a831e70c-e35b-430b-92ed-81ebbc5437b8]
tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_trust_noimpersonate[id-ed2a8779-a7ac-49dc-afd7-30f32f936ed2]
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.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.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_tokens.TokensV3TestJSON.test_get_available_domain_scopes[id-ec5ecb05-af64-4c04-ac86-4d9f6f12f185]
tempest.api.identity.v3.test_catalog.IdentityCatalogTest.test_catalog_standardization[id-56b57ced-22b8-4127-9b8a-565dfb0207e2]
tempest.api.identity.admin.v3.test_tokens.TokensV3TestJSON.test_rescope_token[id-565fa210-1da1-4563-999b-f7b5b67cf112]
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.v3.test_tokens.TokensV3Test.test_validate_token[id-a9512ac3-3909-48a4-b395-11f438e16260]
tempest.api.identity.v3.test_projects.IdentityV3ProjectsTest.test_list_projects_returns_only_authorized_projects[id-86128d46-e170-4644-866a-cc487f699e1d]
===== END FAILED TESTS (target=rust) =====

View full run

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

🐰 Bencher Report

Projectkeystone
Branchclaude/extism-keystone-core-refactor-8uj71b
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
144,710.00 ns
(-54.68%)Baseline: 319,272.06 ns
1,634,101.99 ns
(8.86%)
Command_Serde/apply/set📈 view plot
🚷 view threshold
155,110.00 ns
(-55.59%)Baseline: 349,281.86 ns
1,679,671.23 ns
(9.23%)
Command_Serde/pack/delete📈 view plot
🚷 view threshold
125.65 ns
(+5.84%)Baseline: 118.71 ns
157.53 ns
(79.76%)
Command_Serde/pack/delete_index📈 view plot
🚷 view threshold
112.74 ns
(+7.22%)Baseline: 105.15 ns
139.12 ns
(81.04%)
Command_Serde/pack/set📈 view plot
🚷 view threshold
204.96 ns
(+8.18%)Baseline: 189.47 ns
248.75 ns
(82.40%)
Command_Serde/pack/set_index📈 view plot
🚷 view threshold
112.38 ns
(+6.86%)Baseline: 105.17 ns
139.18 ns
(80.75%)
Command_Serde/unpack/delete📈 view plot
🚷 view threshold
188.74 ns
(+2.24%)Baseline: 184.61 ns
267.96 ns
(70.44%)
Command_Serde/unpack/delete_index📈 view plot
🚷 view threshold
160.77 ns
(+3.76%)Baseline: 154.95 ns
218.78 ns
(73.48%)
Command_Serde/unpack/set📈 view plot
🚷 view threshold
283.18 ns
(+10.36%)Baseline: 256.60 ns
349.57 ns
(81.01%)
Command_Serde/unpack/set_index📈 view plot
🚷 view threshold
157.49 ns
(+4.01%)Baseline: 151.42 ns
212.26 ns
(74.20%)
Payload_encryption/pack/remove_cmd📈 view plot
🚷 view threshold
125.09 ns
(+10.21%)Baseline: 113.50 ns
151.03 ns
(82.82%)
Payload_encryption/pack/set_cmd📈 view plot
🚷 view threshold
213.15 ns
(+9.09%)Baseline: 195.39 ns
263.37 ns
(80.93%)
Payload_encryption/unpack/remove_cmd📈 view plot
🚷 view threshold
216.22 ns
(+11.96%)Baseline: 193.13 ns
281.45 ns
(76.82%)
Payload_encryption/unpack/set_cmd📈 view plot
🚷 view threshold
310.83 ns
(+15.08%)Baseline: 270.11 ns
374.42 ns
(83.02%)
Raft_1Node_Latency/prefix/1node📈 view plot
🚷 view threshold
2,507,700.00 ns
(-6.57%)Baseline: 2,684,171.25 ns
6,171,231.98 ns
(40.64%)
Raft_1Node_Latency/read/1node📈 view plot
🚷 view threshold
43,850.00 ns
(+15.19%)Baseline: 38,068.81 ns
53,319.60 ns
(82.24%)
Raft_1Node_Latency/remove/1node📈 view plot
🚷 view threshold
404,660.00 ns
(-50.53%)Baseline: 818,054.53 ns
4,098,046.95 ns
(9.87%)
Raft_1Node_Latency/write/1node📈 view plot
🚷 view threshold
432,950.00 ns
(-55.43%)Baseline: 971,300.16 ns
5,492,419.70 ns
(7.88%)
build_snapshot/default📈 view plot
🚷 view threshold
117,100.00 ns
(-6.42%)Baseline: 125,140.23 ns
219,356.50 ns
(53.38%)
fernet token/project📈 view plot
🚷 view threshold
1,503.10 ns
(+5.41%)Baseline: 1,425.89 ns
1,811.00 ns
(83.00%)
get_data_keyspace📈 view plot
🚷 view threshold
0.31 ns
(-1.08%)Baseline: 0.32 ns
0.39 ns
(80.42%)
get_db📈 view plot
🚷 view threshold
0.31 ns
(-1.23%)Baseline: 0.32 ns
0.39 ns
(80.42%)
get_fernet_token_timestamp/project📈 view plot
🚷 view threshold
159.04 ns
(+13.24%)Baseline: 140.44 ns
179.00 ns
(88.85%)
get_keyspace📈 view plot
🚷 view threshold
4.33 ns
(-29.68%)Baseline: 6.16 ns
14.58 ns
(29.72%)
🐰 View full continuous benchmarking report in Bencher

Merged via the queue into main with commit 6e7eff9 Aug 3, 2026
42 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