Summary
The FalkorDB Browser today supports exporting a graph (/api/graph/[graph]/export) but has no symmetric import / restore path. Operators who already have an RDB dump — produced by BGSAVE, the Browser's own Export, KubeBlocks backup, or a teammate — have to drop out of the UI and into shell + Docker volume mounts to restore it.
This issue proposes a first-class "Restore graph" flow in the Browser, supporting two sources:
- Local file upload — pick a
.rdb / .dump from disk in the Browser
- Remote URL — paste an
s3://…, https://…, or presigned URL
Motivation / why this is genuinely missing
- Existing users running self-hosted FalkorDB (Docker, bare metal, KubeBlocks) keep RDB snapshots in object storage (S3, GCS, R2, MinIO). Restoring one today requires:
- The Browser already owns the "graph lifecycle" UX (create, duplicate, delete, export). Restore is the obvious missing verb.
- Docs (Browser, Migration) currently send users to Docker volume tricks for a flow that should be a button.
- Related: KubeBlocks already wires S3 BackupRepo on the ops side (docs) — there's no in-Browser equivalent.
Proposed UX
On the graph list / graph management screen, next to Export Data, add Restore Graph:
Proposed implementation sketch
- New API route:
app/api/graph/[graph]/restore/route.ts
POST multipart for upload
POST JSON { "source": "s3://bucket/key", "credentials": {...} } for URL
- Server-side:
- Stream the dump to a temp file (or in-memory for small dumps)
- Use
RESTORE for individual graph keys when feasible, or invoke DEBUG RELOAD / a new GRAPH.RESTORE primitive (paired core request to follow, will cross-link)
- For S3: support both static IAM keys (form) and presigned URLs (no creds needed); never persist credentials
- Tests: round-trip — Export → Restore → query parity
- Docs: add a "Restore via Browser" section to docs.falkordb.com/browser
Out of scope (separate issues if wanted)
- Scheduled / recurring restores
- Multi-graph bulk restore
- Non-RDB formats (CSV/Parquet — already covered by FalkorDBImporter)
Willing to contribute
Happy to open a draft PR against falkordb-browser for the upload + presigned-URL path first, then layer s3:// with credentials once API shape is agreed. Would appreciate maintainer input on:
- Preferred restore primitive on the core side (
RESTORE per key vs. a new GRAPH.RESTORE accepting a URL) — will file paired issue in FalkorDB/FalkorDB
- Whether S3 creds should live in the Browser session or be passed per-request only
Summary
The FalkorDB Browser today supports exporting a graph (
/api/graph/[graph]/export) but has no symmetric import / restore path. Operators who already have an RDB dump — produced byBGSAVE, the Browser's own Export, KubeBlocks backup, or a teammate — have to drop out of the UI and into shell + Docker volume mounts to restore it.This issue proposes a first-class "Restore graph" flow in the Browser, supporting two sources:
.rdb/.dumpfrom disk in the Browsers3://…,https://…, or presigned URLMotivation / why this is genuinely missing
aws s3 cpto the data dir,REDIS_ARGS/--dbfilename,Proposed UX
On the graph list / graph management screen, next to Export Data, add Restore Graph:
https://,s3://(with optional AWS creds form / presigned URL), andgs:///azure://as follow-upsProposed implementation sketch
app/api/graph/[graph]/restore/route.tsPOSTmultipart for uploadPOSTJSON{ "source": "s3://bucket/key", "credentials": {...} }for URLRESTOREfor individual graph keys when feasible, or invokeDEBUG RELOAD/ a newGRAPH.RESTOREprimitive (paired core request to follow, will cross-link)Out of scope (separate issues if wanted)
Willing to contribute
Happy to open a draft PR against
falkordb-browserfor the upload + presigned-URL path first, then layers3://with credentials once API shape is agreed. Would appreciate maintainer input on:RESTOREper key vs. a newGRAPH.RESTOREaccepting a URL) — will file paired issue in FalkorDB/FalkorDB