Conversation
Idmapping domain only had get_by_local_id/get_by_public_id; federated/shadow-user auth needs to actually create and remove mappings. - IdMappingBackend/Api/Service gain create_id_mapping and delete_id_mapping, mirroring python-keystone's MappingDriverBase.create_id_mapping/delete_id_mapping. - public_id is caller-supplied or auto-generated via the existing sha256 generate_public_id helper (bit-compatible with python-keystone's sha256 id generator). - SQL driver: create() resolves a same-local-entity PK race by returning the existing row (benign, matches upstream); a different-local-entity collision propagates Conflict. delete() is idempotent on no match. No migration needed - table already exists via entity-sync schema. - Verified conflict/race handling against a real in-memory sqlite db; MockDatabase can't synthesize a unique-violation sql_err(). Assisted-By: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
gtema
enabled auto-merge
September 4, 2026 14:42
|
🧪 Tempest Identity Compatibility Results (advisory, non-blocking) rust Failed test IDs |
|
🦢 Load Test Results Goose Attack ReportPlan Overview
Request Metrics
Response Time Metrics
Status Code Metrics
Transaction Metrics
Scenario Metrics
Error Metrics
|
|
| Project | keystone |
| Branch | idmapping |
| Testbed | ubuntu-latest |
Click to view all benchmark results
| Benchmark | Latency | Benchmark Result nanoseconds (ns) (Result Δ%) | Upper Boundary nanoseconds (ns) (Limit %) |
|---|---|---|---|
| Command_Serde/apply/remove | 📈 view plot 🚷 view threshold | 151,270.00 ns(-44.60%)Baseline: 273,061.92 ns | 1,352,562.82 ns (11.18%) |
| Command_Serde/apply/set | 📈 view plot 🚷 view threshold | 191,910.00 ns(-56.61%)Baseline: 442,271.72 ns | 3,265,744.75 ns (5.88%) |
| Command_Serde/pack/delete | 📈 view plot 🚷 view threshold | 121.14 ns(+2.77%)Baseline: 117.87 ns | 155.45 ns (77.93%) |
| Command_Serde/pack/delete_index | 📈 view plot 🚷 view threshold | 109.05 ns(+3.74%)Baseline: 105.12 ns | 138.49 ns (78.74%) |
| Command_Serde/pack/set | 📈 view plot 🚷 view threshold | 209.48 ns(+10.45%)Baseline: 189.66 ns | 244.95 ns (85.52%) |
| Command_Serde/pack/set_index | 📈 view plot 🚷 view threshold | 108.89 ns(+3.66%)Baseline: 105.05 ns | 139.01 ns (78.33%) |
| Command_Serde/unpack/delete | 📈 view plot 🚷 view threshold | 195.49 ns(+4.94%)Baseline: 186.28 ns | 267.74 ns (73.02%) |
| Command_Serde/unpack/delete_index | 📈 view plot 🚷 view threshold | 156.97 ns(+1.27%)Baseline: 155.00 ns | 216.27 ns (72.58%) |
| Command_Serde/unpack/set | 📈 view plot 🚷 view threshold | 290.12 ns(+11.47%)Baseline: 260.26 ns | 354.73 ns (81.79%) |
| Command_Serde/unpack/set_index | 📈 view plot 🚷 view threshold | 156.35 ns(+2.49%)Baseline: 152.56 ns | 210.71 ns (74.20%) |
| Payload_encryption/pack/remove_cmd | 📈 view plot 🚷 view threshold | 115.55 ns(+2.64%)Baseline: 112.58 ns | 149.99 ns (77.04%) |
| Payload_encryption/pack/set_cmd | 📈 view plot 🚷 view threshold | 202.44 ns(+2.66%)Baseline: 197.19 ns | 263.19 ns (76.92%) |
| Payload_encryption/unpack/remove_cmd | 📈 view plot 🚷 view threshold | 210.33 ns(+7.69%)Baseline: 195.32 ns | 283.19 ns (74.27%) |
| Payload_encryption/unpack/set_cmd | 📈 view plot 🚷 view threshold | 307.58 ns(+13.70%)Baseline: 270.52 ns | 374.71 ns (82.08%) |
| Raft_1Node_Latency/prefix/1node | 📈 view plot 🚷 view threshold | 2,600,400.00 ns(-12.35%)Baseline: 2,966,669.67 ns | 7,776,746.17 ns (33.44%) |
| Raft_1Node_Latency/read/1node | 📈 view plot 🚷 view threshold | 43,665.00 ns(+17.06%)Baseline: 37,301.86 ns | 51,602.01 ns (84.62%) |
| Raft_1Node_Latency/remove/1node | 📈 view plot 🚷 view threshold | 425,100.00 ns(-65.30%)Baseline: 1,225,061.09 ns | 11,602,530.67 ns (3.66%) |
| Raft_1Node_Latency/write/1node | 📈 view plot 🚷 view threshold | 439,260.00 ns(-56.07%)Baseline: 999,999.06 ns | 7,589,375.96 ns (5.79%) |
| build_snapshot/default | 📈 view plot 🚷 view threshold | 109,780.00 ns(-12.45%)Baseline: 125,395.36 ns | 277,171.38 ns (39.61%) |
| fernet token/project | 📈 view plot 🚷 view threshold | 1,463.30 ns(+2.86%)Baseline: 1,422.67 ns | 1,793.58 ns (81.59%) |
| get_data_keyspace | 📈 view plot 🚷 view threshold | 0.33 ns(+3.15%)Baseline: 0.32 ns | 0.39 ns (84.09%) |
| get_db | 📈 view plot 🚷 view threshold | 0.32 ns(+1.59%)Baseline: 0.32 ns | 0.39 ns (82.94%) |
| get_fernet_token_timestamp/project | 📈 view plot 🚷 view threshold | 148.80 ns(+6.62%)Baseline: 139.56 ns | 179.20 ns (83.04%) |
| get_keyspace | 📈 view plot 🚷 view threshold | 4.64 ns(-21.20%)Baseline: 5.89 ns | 13.79 ns (33.67%) |
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Idmapping domain only had get_by_local_id/get_by_public_id;
federated/shadow-user auth needs to actually create and remove mappings.
delete_id_mapping, mirroring python-keystone's
MappingDriverBase.create_id_mapping/delete_id_mapping.
sha256 generate_public_id helper (bit-compatible with
python-keystone's sha256 id generator).
returning the existing row (benign, matches upstream); a
different-local-entity collision propagates Conflict. delete()
is idempotent on no match. No migration needed - table already
exists via entity-sync schema.
db; MockDatabase can't synthesize a unique-violation sql_err().
Assisted-By: Claude Sonnet 5 noreply@anthropic.com
Signed-off-by: Artem Goncharov artem.goncharov@gmail.com