swarmvault graph push neo4j

Push the current compiled graph directly into Neo4j without exporting an intermediate file.

Usage

swarmvault graph push neo4j --uri <bolt-uri> --username <user> --password-env <env-var>

Options

  • --uri <bolt-uri> — Neo4j Bolt or Aura URI
  • --username <user> — Neo4j username
  • --password-env <env-var> — Environment variable containing the Neo4j password
  • --database <name> — Neo4j database name. Defaults to neo4j
  • --vault-id <id> — Stable namespace so multiple vaults can share one Neo4j database safely
  • --include-third-party — Also push third-party repo material
  • --include-resources — Also push resource-like content
  • --include-generated — Also push generated output
  • --dry-run — Show counts and target metadata without writing to Neo4j

Defaults

  • SwarmVault reads graphSinks.neo4j from swarmvault.config.json when present.
  • Pushes include only first_party graph material by default.
  • Records are namespaced by vaultId, so multiple vaults can coexist in one Neo4j database.
  • Push behavior is upsert-only. SwarmVault does not prune stale remote records yet.

What Gets Pushed

  • graph nodes as SwarmNode
  • hyperedges as synthetic SwarmNode records with type: "hyperedge"
  • graph relations with the same normalized relation names used by Cypher export
  • hyperedge membership as GROUP_MEMBER
  • one SwarmVaultSync metadata node per vaultId

The push path preserves the same stable ids, evidence classes, confidence values, source-class metadata, and community ids already present in state/graph.json.

Example

export NEO4J_PASSWORD=...

swarmvault graph push neo4j \
  --uri bolt://127.0.0.1:7687 \
  --username neo4j \
  --password-env NEO4J_PASSWORD \
  --database neo4j \
  --dry-run
  • Use `graph export` when you want file-based GraphML, Cypher, SVG, or standalone HTML artifacts.
  • Use `graph tools` when you want deterministic local graph navigation before pushing anything externally.