feat(console): rotation alerts — banner + dashboard widget [v1.11.0]#19
Conversation
….11.0) Consumes metrics/clients (v1.11.0). A global banner (in the app shell) warns "N app secrets need rotation" whenever any confidential client secret is expiring/expired, linking to Applications. The Dashboard gains a "Client secrets to rotate" widget listing the most-urgent clients (app, client_id, status, expiry). Both hide themselves when there is nothing to act on, and fail-soft if the operator lacks iam:metrics.read. Green: SPA build (tsc) + oxlint, pint, Playwright golden-path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a169883d83
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| return () => { | ||
| alive = false | ||
| } | ||
| }, []) |
There was a problem hiding this comment.
Refresh rotation alerts after secret changes
Because this effect runs only once for the mounted Layout, rotating or revoking a client secret later in the Applications modal leaves the global banner with the pre-rotation needs_rotation counts until a full page reload; route navigation will not rerun it because Layout stays mounted. Please add an invalidation, polling, or reload path from the secret mutations so operators do not keep seeing resolved alerts.
Useful? React with 👍 / 👎.
Consumes metrics/clients: global banner + Dashboard widget of app secrets needing rotation (expiring/expired), both conditional + fail-soft. Green: build+lint, E2E.