feat: persist extern AID metadata for alias-based lookup and rotation#418
feat: persist extern AID metadata for alias-based lookup and rotation#418yeomjaeseung wants to merge 2 commits intoWebOfTrust:mainfrom
Conversation
|
Thank you for your contribution. If you are able, please post a sample project showing how this is used with SignifyTS so we can properly evaluate the PR. If you'd like, you can submit the sample project in a new |
|
And, ideally with something like Google KMS or other KMS that makes it easy to validate and test. I have a GCP account and can easily test with GCP, though will test with a different service if you submit with a different service, within reason. |
Codecov Report❌ Patch coverage is
❌ Your patch check has failed because the patch coverage (61.22%) is below the target coverage (75.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #418 +/- ##
==========================================
- Coverage 86.91% 86.58% -0.34%
==========================================
Files 25 25
Lines 5451 5507 +56
==========================================
+ Hits 4738 4768 +30
- Misses 713 739 +26 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Description
Resolves #415
This PR completes the
ExternKeeperimplementation as discussed in the issue. Previously,externtype AIDs (managed by external modules) lacked a persistence layer in the KERIA database, which led to 500 Internal Server Errors during alias-based lookups and rotations.By introducing
eprmsstorage, this PR ensures thatexternAIDs achieve functional parity withsaltyandrandytypes, allowing them to be fully managed via aliases within KERIA.Key Implementation Details:
extern_typeandpidxare persisted. Assumption-free handling of externally managed key material is preserved.info()helper, preventing lookup failures inRemoteManager.Changes
keeping.pyExternPrmdataclass to storeextern_typeandpidx.eprmssub-database intoRemoteKeeperfor persistence.incept,rotate, andparamsmethods inExternKeeperto manage the metadata lifecycle.aiding.pyIdentifierResourceEnd.rotateto supportAlgos.externmetadata updates.AgentResourceEnd.on_putto allow client-side updates ofextern_typeandpidx.Verification Results
identifiers().get(alias)returns the correct metadata without 500 errors.externAID successfully updates the local DB state.pytestsuite — all tests passed with no regressions observed.