docling-studio/document-parser/tests/neo4j
Pier-Jean Malandrino c9359f60e1 feat(neo4j): Day 3 — ChunkWriter, graph API, GraphView, README
ChunkWriter mirrors chunks into Neo4j after OpenSearch indexing, creating
HAS_CHUNK edges and DERIVED_FROM back-references to the source Elements
(via doc_items propagated from the local chunker).

Graph API: GET /api/documents/{id}/graph returns a cytoscape-shaped
payload with nodes + edges for Document / Element / Page / Chunk.
Hard cap at 200 pages returns HTTP 413 per design §8.4.

Frontend: new Graph tab in Studio results, rendered with Cytoscape.js +
dagre layout (lazy-loaded, ~175 KB gz). Legend, node styling per element
label, directional edges styled per edge type.

README gains a Neo4j section with the schema, three demo Cypher
queries, and env vars. Backend tests skip cleanly when the neo4j python
package is not installed locally.

Refs #186
2026-04-20 10:13:18 +02:00
..
__init__.py feat(neo4j): Day 1 — compose service, driver, schema bootstrap 2026-04-20 10:13:18 +02:00
conftest.py feat(neo4j): Day 3 — ChunkWriter, graph API, GraphView, README 2026-04-20 10:13:18 +02:00
test_chunk_writer.py feat(neo4j): Day 3 — ChunkWriter, graph API, GraphView, README 2026-04-20 10:13:18 +02:00
test_document_roundtrip.py feat(neo4j): Day 1 — compose service, driver, schema bootstrap 2026-04-20 10:13:18 +02:00
test_driver.py feat(neo4j): Day 1 — compose service, driver, schema bootstrap 2026-04-20 10:13:18 +02:00
test_schema.py feat(neo4j): Day 1 — compose service, driver, schema bootstrap 2026-04-20 10:13:18 +02:00
test_tree_writer.py feat(neo4j): Day 2 — TreeWriter, TreeReader, pipeline wiring 2026-04-20 10:13:18 +02:00