Skip to content

feat: Neo4j passthrough queries #8

@cvauclair

Description

@cvauclair

Description

Add an additional endpoint to the API to forward queries to the Neo4j database.

Motivation

Although the GRC20 indexer stack now uses a GraphQL API to serve KG data, there are still uses cases that would benefit from direct access to the underlying Neo4j database (e.g.: GraphRag).

Implementation

Add an additional route POST /neo4j which expects the request bodies of the following form:

{
  "query": "MATCH (n) WHERE n.foo = $foo RETURN n",
  "params": {
    "foo": "bar"
  }
}

where "query" is the cypher query to execute and "params" are optional query parameters.

The response body would contain the data returned by Neo4j serialized to JSON without any transformations.

Alternatives

An alternative would be to add this "passthrough" route to the GraphQL API, however it's unclear what the return type would be (i.e.: how the Neo4j data could be converted to GraphQL entities)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions