Add manual refresh control to MvcExample weather demo
Type: enhancement (examples repo)
Milestone: backlog (not blocking v0.2.0 / blog post)
Idea
Add a "Force Refresh" button to the weather demo page that calls
RefreshSecretAsync<OpenWeatherMapSecret> instead of GetSecretAsync, bypassing the cache.
Lets a user update the OpenWeatherMap secret directly in LocalStack (or real AWS) mid-session
and see the change reflected on the next search — a live demonstration of secret rotation
handling, not just retrieval.
Why this is worth doing (unlike the cache-hit indicator we cut)
This uses the library's actual RefreshSecretAsync<T>/InvalidateCache methods directly —
no app-side inference or guessing about cache state. The "how this worked" panel can show the
real, observed result of a real call, not an approximation.
Scope notes
- Button/control triggers
RefreshSecretAsync<T> for the same secret, then re-runs the current
search (if one has been performed) so the new value is visibly reflected.
- Only meaningfully demonstrable against LocalStack/real AWS — under the JSON fallback path,
"updating the secret" means hand-editing a file, which doesn't map to the same live-rotation
story. Needs either: (a) disabling/hiding the control when JSON fallback is active, or (b)
clear messaging that refresh re-reads the fallback file rather than simulating rotation.
Decide which when this is picked up.
- Consider surfacing in the "how this worked" panel: last fetch time, or an explicit
"refreshed" vs "initial fetch" state distinct from the cut cache-hit feature — this one is
legitimate since it's driven by a real user action and a real library call, not inferred.
Out of scope for this issue
- Any UI for editing the secret itself (that's LocalStack's/AWS's job, not this app's).
- Automatic polling/rotation detection — manual trigger only.
Add manual refresh control to MvcExample weather demo
Type: enhancement (examples repo)
Milestone: backlog (not blocking v0.2.0 / blog post)
Idea
Add a "Force Refresh" button to the weather demo page that calls
RefreshSecretAsync<OpenWeatherMapSecret>instead ofGetSecretAsync, bypassing the cache.Lets a user update the OpenWeatherMap secret directly in LocalStack (or real AWS) mid-session
and see the change reflected on the next search — a live demonstration of secret rotation
handling, not just retrieval.
Why this is worth doing (unlike the cache-hit indicator we cut)
This uses the library's actual
RefreshSecretAsync<T>/InvalidateCachemethods directly —no app-side inference or guessing about cache state. The "how this worked" panel can show the
real, observed result of a real call, not an approximation.
Scope notes
RefreshSecretAsync<T>for the same secret, then re-runs the currentsearch (if one has been performed) so the new value is visibly reflected.
"updating the secret" means hand-editing a file, which doesn't map to the same live-rotation
story. Needs either: (a) disabling/hiding the control when JSON fallback is active, or (b)
clear messaging that refresh re-reads the fallback file rather than simulating rotation.
Decide which when this is picked up.
"refreshed" vs "initial fetch" state distinct from the cut cache-hit feature — this one is
legitimate since it's driven by a real user action and a real library call, not inferred.
Out of scope for this issue