refactor(8.0): rename BackupData → PortableGraph (the type is interchange, not a backup)
The export()/import() document type was named BackupData, but it is not a backup: it is the portable, versioned, partial-or-whole interchange representation of a graph (entities + relations + optional vectors/blobs) — the unit Brainy exports for transport between instances, versions, and products, and the payload other artifacts embed. The actual backup is persist()/load() (the native whole-brain, generation-preserving snapshot), so "Backup*" actively collided with that concept. Rename every developer-visible symbol, file, doc, JSDoc and comment: - BackupData→PortableGraph, BackupEntity→PortableGraphEntity, BackupRelation→PortableGraphRelation, BackupReader/Writer→PortableGraphReader/Writer, BackupValidation→PortableGraphValidation, isBackupData→isPortableGraph, validateBackup→validatePortableGraph, BACKUP_FORMAT[_VERSION]→PORTABLE_GRAPH_FORMAT[_VERSION]. - src/db/backup.ts → src/db/portableGraph.ts; test → db-portable-graph.test.ts. - Guide, api/README, RELEASES updated. The on-the-wire `format` tag is renamed 'brainy-backup' → 'brainy-portable-graph': the format was introduced in 7.32.0 and has not been adopted by any consumer, so there are no stored documents to stay compatible with — a clean rename beats carrying a legacy tag. No deprecated aliases (nothing to alias). 7.x shipped the same rename as 7.32.2. 1471 unit green; build clean; db-portable-graph.test.ts 17/17.
This commit is contained in:
parent
3a3aa43b3a
commit
373a48122d
8 changed files with 156 additions and 145 deletions
|
|
@ -1415,16 +1415,16 @@ await brain.import('https://api.example.com/data.json')
|
|||
|
||||
### Export & Import (portable) + Snapshots (native)
|
||||
|
||||
**Portable graph backup** — `brain.export()` / `brain.import()` (`BackupData` v1, versioned
|
||||
**Portable graph export/import** — `brain.export()` / `brain.import()` (`PortableGraph` v1, versioned
|
||||
JSON, partial-or-whole, cross-version). `export()` lives on the immutable `Db`, so it composes
|
||||
with `now()`/`asOf()`/`with()`:
|
||||
|
||||
```typescript
|
||||
// Export part or all of the brain to a portable, versioned document
|
||||
const backup = await brain.export({ ids }, { includeVectors: true })
|
||||
const graph = await brain.export({ ids }, { includeVectors: true })
|
||||
|
||||
// Restore it — import() routes a BackupData to the graph round-trip (merge by id)
|
||||
await otherBrain.import(backup, { onConflict: 'merge' })
|
||||
// Restore it — import() routes a PortableGraph to the graph round-trip (merge by id)
|
||||
await otherBrain.import(graph, { onConflict: 'merge' })
|
||||
|
||||
// Time-travel export (serialize a past generation) / what-if export (a speculative state)
|
||||
const past = await brain.asOf(gen)
|
||||
|
|
@ -1436,7 +1436,7 @@ await brain.now().with(ops).export({ ids })
|
|||
Selectors: `{ ids }`, `{ collection }` (alias `memberOf`), `{ connected: { from, depth } }`,
|
||||
`{ vfsPath }`, predicate (`{ type, subtype, where, service }`), or whole brain (omit). See the
|
||||
**[Export & Import guide](../guides/export-and-import.md)**. Distinct from `brain.import(file)`
|
||||
(CSV/PDF/Excel/JSON ingestion — `import()` dispatches on whether you pass a `BackupData` or a file).
|
||||
(CSV/PDF/Excel/JSON ingestion — `import()` dispatches on whether you pass a `PortableGraph` or a file).
|
||||
|
||||
**Native whole-brain snapshot** (generation-preserving, not portable JSON):
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue