Repository navigation
Conversation
The pre-resolution cache had no expiry: a DID document added with addToCache() or addResolutionResultToCache() stayed cached for the lifetime of the process. In a long-running service this means a rotated or revoked key continues to pass every signature and issuer check until the process restarts or removeFromCache() is called manually. Add a configurable TTL (default 5 minutes). Cache entries older than the TTL are evicted on the next resolve() call and a fresh resolution is performed. Callers that need the old behaviour can pass cacheTtlMs: Infinity to the constructor.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 57 minutes. View limit detailsLimit details: You’ve used all 2 included reviews currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Author
|
Closing: speculative, not a bug. |
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.
Problem
The
DidResolverpre-resolution cache (addToCache/addResolutionResultToCache) has no expiry. An entry added at startup stays in the cache for the lifetime of the process:In a long-running service this means a DID document whose keys have since been rotated or revoked continues to pass every downstream signature and issuer check until the process restarts or
removeFromCache()is called manually. The W3C DID Core spec definesnextUpdateandnextValidUntilmetadata fields precisely to signal when a cached document should be refreshed — the current implementation ignores them entirely.Fix
Add a configurable TTL (default 5 minutes). Cache entries older than the TTL are evicted on the next
resolve()call and a fresh network resolution is performed.Breaking change
Callers that relied on the implicit
addToCacheentry living forever (e.g. tests or demos that populate the cache once at startup and never refresh it) will now see a network re-resolution after 5 minutes. PasscacheTtlMs: Infinityto restore the previous behaviour.