0xPlaygrounds / 0xPlaygrounds/kg-node

feat: Neo4j passthrough queries

Offen
#8 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
10
Forks
5
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### 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)

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
neo4j, rust
Bereich
api, backend, databases
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.