redhat-developer / redhat-developer/rhdh-plugins

Neo4j Knowledge Graph — Core Sync Adapter (issue 17 of 29)

Open
#4,055 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked workspace/boost
Dominant language
TypeScript
Stars
48
Forks
120
Avg merge
2d 6h
Merged PRs (30d)
337

Description

Labels: ready-to-code
Depends on: Issue 2 (#4040 SDK interfaces — Neo4jSyncAdapter)
RHIDP Stories: RHIDP-15299
Feature: RHDHPLAN-1507 — Epic RHIDP-15295

Implement the Neo4j sync adapter: Neo4j driver factory, catalog API polling with AI asset annotation filtering, entity revision tracking, incremental sync logic, scheduled sync task, graph node creation for Skill/Tool/Domain/Agent/ModelServer types, relationship mapping (DEPENDS_ON, USES_TOOL, BELONGS_TO, SIMILAR_TO, IMPLEMENTED_BY), and SDK interface implementation (createNeo4jSyncAdapter() factory, connect()/disconnect() lifecycle, triggerFullSync()).

Tasks

From openspec/changes/neo4j-knowledge-graph/tasks.md group 1 (RHIDP-15299):

  • 1.1 Create backend plugin package at workspaces/boost/plugins/catalog-backend-module-neo4j-sync/
  • 1.2 Implement Neo4j driver factory with configuration loading
  • 1.3 Implement catalog API polling with entity filtering
  • 1.4 Implement entity revision tracking using _syncedRevision
  • 1.5 Implement incremental sync logic
  • 1.6 Implement scheduled sync task
  • 1.7 Implement sync failure isolation
  • 1.8 Implement full sync trigger API endpoint

From openspec/changes/neo4j-knowledge-graph/tasks.md group 2 (RHIDP-15299):

  • 2.1 Implement Skill node creation
  • 2.2 Implement Tool node creation
  • 2.3 Implement Domain node creation
  • 2.4 Implement Agent node creation
  • 2.5 Implement ModelServer node creation
  • 2.6 Implement node update logic
  • 2.7 Implement node deletion logic

From openspec/changes/neo4j-knowledge-graph/tasks.md group 3 (RHIDP-15299):

  • 3.1 Implement DEPENDS_ON relationship creation
  • 3.2 Implement USES_TOOL relationship creation
  • 3.3 Implement BELONGS_TO relationship creation
  • 3.4 Implement SIMILAR_TO relationship creation with Jaccard similarity
  • 3.5 Implement IMPLEMENTED_BY relationship creation
  • 3.6 Implement relationship deletion logic
  • 3.7 Implement deferred relationship creation

From openspec/changes/neo4j-knowledge-graph/tasks.md group 5 (RHIDP-15299):

  • 5.1 Implement createNeo4jSyncAdapter() factory function
  • 5.2 Implement connect() lifecycle hook
  • 5.3 Implement disconnect() lifecycle hook
  • 5.4 Implement startSync() method
  • 5.5 Implement stopSync() method
  • 5.6 Implement triggerFullSync() with SyncReport return type
  • 5.7 Validate configuration via config.getConfig('aiCatalog.neo4j')
Specifications
  • openspec/changes/neo4j-knowledge-graph/specs/relationship-mapping/spec.md

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with openspec/changes/neo4j-knowledge-graph/tasks.md and the relationship-mapping specification, then review the SDK interfaces from issue #4040. The implementation spans workspaces/boost/plugins/catalog-backend-module-neo4j-sync/ and covers sync, graph nodes, relationships, lifecycle hooks, and configuration. Done means the adapter implements the listed tasks and returns the specified SyncReport for full syncs.

Written by the indexing model from the issue text.

Assessment

Tech stack
neo4j, typescript
Domain
backend, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.