Skip to content

Time Travel / Snapshot Browser Page #297

@ElioNeto

Description

@ElioNeto

Time Travel / Snapshot Browser Page

Create an Angular page that allows browsing and restoring historical snapshots using the existing TimeTravelEngine.

Backend Endpoints Needed

GET    /admin/snapshots              — List all snapshots (timestamp + label)
GET    /admin/snapshots/{timestamp}  — Get snapshot details & key count
POST   /admin/snapshots              — Create a new snapshot manually
DELETE /admin/snapshots/{timestamp}  — Delete a specific snapshot
POST   /admin/snapshots/{timestamp}/restore  — Restore engine to snapshot state
GET    /admin/snapshots/{timestamp}/keys     — Browse keys in a snapshot (paginated)
GET    /admin/snapshots/{timestamp}/keys/{key} — Get specific key value from snapshot

UI Requirements

Snapshot Timeline

  • Vertical Timeline: Chronological display of snapshots
  • Snapshot Card: Timestamp, label, key count, size
  • Color Coding: Auto vs manual snapshots (different colors)
  • Highlight: Current state marker
  • Scroll: Infinite scroll or pagination for many snapshots

Snapshot Detail View

  • Metadata: Timestamp, label, creation method, key count, total size
  • Key Browser: Search/filter keys within snapshot
  • Diff View: Compare snapshot keys with current state (added, removed, modified)

Restore Flow

  • Confirmation Modal: Warning about data loss, show snapshot details
  • Dry Run: Preview what will change
  • Progress: Progress bar during restore
  • Rollback: Option to undo restore

Component Structure

app/
  pages/
    snapshots/
      snapshots.component.ts
      snapshots.component.html
      snapshots.component.scss
      snapshot-detail.component.ts
      snapshot-detail.component.html
      snapshot-detail.component.scss

Acceptance Criteria

  • Snapshot timeline displays correctly
  • Manual snapshot creation works
  • Snapshot details show key count and size
  • Key browser allows searching within snapshot
  • Restore flow has proper confirmation
  • Error states handled
  • Responsive layout

Parent Epic

#290

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions