0xPlaygrounds / 0xPlaygrounds/kg-node
feat: Neo4j passthrough queries
- Langage dominant
- Rust
- Étoiles
- 10
- Forks
- 5
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
### 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:
```json
{
"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)
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Look for the existing API routes in the codebase, likely in a module like src/api or src/routes. Understand how the current GraphQL endpoint is set up. The new POST /neo4j route needs to be added, which will involve parsing the JSON request, executing the Cypher query against a Neo4j driver (check for existing database connection setup), and returning the raw Neo4j response as JSON. Testing will require a running Neo4j instance or a mock.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- neo4j, rust
- Domaine
- api, backend, databases
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100