figma guide

Designing secrets rotation and credential vault UI in Figma: storage, rotation, and handoff

Design secrets rotation and credential vault UI in Figma with encrypted storage, rotation schedules, break-glass access, audit trails, and Dev Mode specs for enterprise Security and Platform admin.

Published
Updated
Jul 22, 2026
Read time
7 min
Level
Intermediate

Quick answer

Secrets rotation UI lets Platform and Security teams store credentials centrally, rotate on schedule, and audit every reveal—not scatter keys in env files and Slack. Design a vault inventory with secret name, type, owner, rotation cadence, and last-rotated date; create/import flow with encrypted storage and scope tags; rotation scheduler with auto-rotate, manual trigger, and dual-write grace period; reveal panel with JIT elevation, time-limited copy, and audit log entry; and integration hooks for CI/CD and webhooks. Start from the Figma guides hub and pair with API keys, PAM, audit log, DLP, and Dev Mode handoff.


Who this is for

  • Product designers building vault dashboards, rotation wizards, and reveal flows for enterprise Security, Platform, and DevOps admin consoles.
  • Design system teams aligning secret status badges with badges, tables, and inline alerts.
  • Engineers implementing envelope encryption, rotation webhooks, version history, and scoped access tied to team roles and JIT access.

Vault inventory (admin hub)

SecretsVaultHub
├── Header: Credential vault · [ New secret ] [ Import ] [ Rotation policies ]
├── Summary: 142 secrets · 8 overdue rotation · 3 expiring this week
├── Filters: Type · Environment · Owner · Rotation status · Sensitivity
└── Row: prod/db-primary · PostgreSQL · Production · Rotated 42d ago · Due in 48d · [ Manage ]
ColumnContent
Name / pathprod/db-primary, staging/stripe-webhook
TypeAPI key, DB password, TLS cert, OAuth client secret, SSH key
EnvironmentProduction / Staging / Dev — color-coded
OwnerTeam or service account responsible
Rotation cadence30d / 90d / Manual / Never (flagged)
Last rotatedDate + actor (auto vs human)
StatusHealthy / Due soon / Overdue / Compromised / Archived
SensitivityLinks to content classification

Verdict: inventory is the control plane—readers should spot overdue secrets and orphaned credentials in one scan, not hunt per service.


Create and import secret flow

CreateSecretWizard
├── Step 1 — Identity: Name prod/stripe-webhook-secret · Type OAuth client secret
├── Step 2 — Value: [ Paste once ] [ Generate random ] — never shown again after save
├── Step 3 — Scope: Environment Production · Services billing-api, webhooks-worker
├── Step 4 — Access: Viewers: Platform Admin · Reveal requires JIT elevation
├── Step 5 — Rotation: ● Auto every 90d  ○ Manual  ○ On compromise only
└── [ Create secret ] [ Cancel ]
FieldWhy it matters
Path namingHierarchical paths enable RBAC by prefix (prod/* vs dev/*)
One-time pasteValue never re-displayed in full—only rotate or reveal with audit
Scope tagsWhich apps consume this—critical for rotation blast radius
Reveal policyDefault: JIT elevation + MFA step-up
Rotation policyAuto vs manual; link to org default in posture dashboard

Import from legacy: CSV of metadata only (not values), or connect cloud KMS—show migration progress bar with progress stepper.

Duplicate detection: “Secret prod/stripe-webhook-secret exists — [ View existing ] or [ Create new version ].”


Rotation scheduler and dual-write grace

Rotation is a workflow, not a button:

RotationWorkflow
├── Trigger: Scheduled (90d) · Manual · Compromise incident · Policy change
├── Phase 1: Generate new value · Store as v2 (pending)
├── Phase 2: Notify consumers · Webhook ROTATION_PENDING · 72h grace
├── Phase 3: Consumer ack: billing-api ✓ · webhooks-worker pending
├── Phase 4: Promote v2 active · Deprecate v1 · Revoke old after grace
└── Audit: Full timeline in [audit log](/designing-audit-log-and-security-activity-ui-in-figma/)
PhaseUI pattern
Pending dual-writeBanner on secret detail: “v2 active for new connections; v1 valid until Aug 1”
Consumer ack tableService name, last fetch, ack status, owner team
Manual rotate nowConfirm modal with impact summary and rollback option
Compromise rotateRed inline alert — immediate revoke v1, force ack
Failed rotationRetry, escalate, link to incident runbook

Show next rotation date on detail page and in posture dashboard gap cards (“12 secrets past 90d policy”).


Reveal and copy flow (time-bound access)

Never show full secret value in list views. Reveal requires elevation:

RevealPanel
├── Secret: prod/db-primary · PostgreSQL password · v3 active
├── Requester: Sam Rivera · Platform Admin · MFA verified
├── Elevation: JIT approved · 15m reveal window · Expires 2:47 PM
├── Value: ••••••••••••••••  [ Reveal ] [ Copy ] (disabled until reveal)
├── After reveal: Value shown 30s · Auto-hide · Copy logged
└── Audit: Reveal by Sam Rivera · IP 203.0.113.4 · Reason: deploy INC-5102
ControlImplementation
Reveal window15–30 minutes max; countdown in header
Copy onceLog copy event; optional clipboard clear after 60s
JustificationRequired text + ticket link—same as PAM requests
No screenshot hintSubtle footer: “Reveals are audited”
Break-glassEmergency path for outage—post-review mandatory

Pair reveal with active sessions—flag reveal from unknown device.


Version history and rollback

VersionHistory
├── v3 (active) · Rotated Jul 20 · Auto · Consumers: 4/4 acked
├── v2 (revoked) · Rotated Apr 21 · Revoked Jul 20
├── v1 (revoked) · Created Jan 10 · Initial import
└── [ Rollback to v2 ] (disabled — v2 revoked) · [ Compare metadata ]
ActionWhen allowed
View metadataAlways—who rotated, trigger, consumer acks
RollbackOnly if previous version not yet destroyed (grace window)
CompareSide-by-side scope, access policy, rotation date—not values
ArchiveSoft-delete with retention per data retention policy

Use accordions for long version lists; badges for active/revoked/pending.


Integration with API keys and webhooks

Long-lived API keys and webhook signing secrets should live in the vault or link to it:

PatternUI
API key backed by vaultKey detail shows “Secret stored in vault · prod/api-key-billing”
Webhook secret rotationRotation triggers webhook re-registration wizard
CI/CD fetchService account with scoped read—no human reveal
Third-party OAuthClient secret in vault; connected accounts shows rotation status

Discourage parallel storage: banner on API key page if secret not vault-managed—“Migrate to vault for rotation and audit.”


Posture and compliance hooks

Surface vault health in security posture dashboard:

PostureGapCard — Secrets management
├── 8 secrets overdue rotation (policy: 90d)
├── 4 secrets with standing reveal access (target: JIT only)
├── 2 production secrets owned by departed members
└── [ View inventory ] [ Launch rotation campaign ]

Link to access review for vault admin roles and compliance exports for rotation audit trails.


Common mistakes

MistakeWhy it hurtsFix
Show full secret in detail view by defaultShoulder surfing, screenshot leaksReveal-on-demand with audit
Rotate without consumer ackBreaks production at cutoverDual-write grace + ack table
No version historyCan’t trace compromise timelineImmutable version log
Vault RBAC too broadEveryone reveals production DBPath-based roles + JIT
Rotation overdue invisibleSilent SOC2 driftOverdue badges in inventory + posture
Copy without loggingNo forensic trailLog every reveal and copy
Secrets outside vaultShadow credentialsMigration nudges from API key UI
Same UI for dev and prod revealLow friction on prodStricter elevation for Production
No compromise fast pathSlow incident responseOne-click compromise rotate
Orphan secrets after offboardingEx-employees still “owner”Reassign owner on deprovision

  1. Design vault inventory with rotation status, sensitivity, and environment filters.
  2. Build create/import wizard with one-time paste, scope tags, and rotation policy.
  3. Add rotation workflow UI with dual-write phases and consumer ack table.
  4. Implement reveal panel with JIT elevation, countdown, and copy audit.
  5. Add version history with rollback rules and metadata compare.
  6. Link API keys and webhooks to vault-backed storage.
  7. Wire posture gap cards and annotate rotation timing in Dev Mode.

FAQ

Human-readable secret values ever shown again?

No after create—only reveal with audit, or rotate to new value. Support “verify fingerprint” (hash prefix) without full reveal.

Auto-rotation without downtime?

Dual-write grace period—both versions valid until all consumers ack; document in handoff specs.

Contractors reveal production secrets?

Deny by default—contractor role gets staging paths only; production requires JIT + Security approval.

Vendor-supplied credentials import to vault on approval—never store in ticket attachments.

BYOK / customer-managed keys?

Separate enterprise tier UI—show KMS ARN, key policy status, and sync health; out of scope for basic vault but note in enterprise handoff appendix.


Next steps

Share on X

§ Keep reading

Related guides.