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
Parent Epic
#290
Time Travel / Snapshot Browser Page
Create an Angular page that allows browsing and restoring historical snapshots using the existing
TimeTravelEngine.Backend Endpoints Needed
UI Requirements
Snapshot Timeline
Snapshot Detail View
Restore Flow
Component Structure
Acceptance Criteria
Parent Epic
#290