Skip to content

feat: add manual force-refresh control to mvcexample weather demo #3

Description

@dgates82

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions