redhat-developer / redhat-developer/rhdh-plugins

Ingestion Analytics API and Eval Hub Integration (issue 29 of 29)

Open
#4,067 7 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 5 (#4043 health data model), Issue 21 (#4059 audit logging)
RHIDP Stories: RHIDP-15280 (analytics scope)
Feature: RHDHPLAN-1508 — Epic RHIDP-15277 (consolidated from RHDHPLAN-1513 RHIDP-15333)

Implement analytics REST API endpoints (sync history, quality scores, match coverage) with RBAC gating and pagination, quality score storage (DB table + store), match coverage calculator, Neo4j sync status embedding, Eval Hub client for external quality score ingestion, and multi-eval backend support (LightEval, IBM Clear, GuideLLM).

Tasks

From openspec/changes/ingestion-audit-metrics/tasks.md group 5 (RHIDP-15280 / former RHIDP-15344):

  • 5.1 Define analytics API routes
  • 5.2 Add GET /api/boost/admin/analytics/sync-history endpoint
  • 5.3 Add GET /api/boost/admin/analytics/quality-scores endpoint
  • 5.4 Add GET /api/boost/admin/analytics/match-coverage endpoint
  • 5.5 Add RBAC gating to all endpoints
  • 5.6–5.10 Pagination, date range filtering, connector filtering, eval source filtering, route registration
  • 5.11 Add integration tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 6:

  • 6.1–6.7 Sync history service: AnalyticsService, getSyncHistory(), pagination, date range filtering, connector filtering, duration calculation, unit tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 7:

  • 7.1–7.8 Quality score storage: DB table schema, migration, QualityScoresStore, insertScore(), getScoresBySkill(), getLatestScores(), indexes, unit tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 8:

  • 8.1–8.6 Quality score analytics: getQualityScores(), per-skill scores, aggregate distribution, normalization, eval source filtering, unit tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 9:

  • 9.1–9.8 Match coverage calculator: agent capability extraction, skill ID extraction, matching logic, coverage ratio, unmatched capabilities list, caching, unit tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 10:

  • 10.1–10.6 Neo4j sync status: connection check, last sync timestamp, entity count, embed in analytics responses, graceful unavailable handling, unit tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 11:

  • 11.1–11.8 Eval Hub client: interface, fetchQualityScores(), app-config schema, client init, HTTP client, error handling, score normalization, unit tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 12:

  • 12.1–12.8 Eval Hub ingestion service: background task, refresh interval config, score fetching/storage, graceful unavailable handling, manual trigger endpoint, status logging, integration tests

From openspec/changes/ingestion-audit-metrics/tasks.md group 13:

  • 13.1–13.6 Multi-eval backend support: eval_source field, source normalization, source filtering, per-source aggregation, LightEval/IBM Clear/GuideLLM support, unit tests
Specifications
  • openspec/changes/ingestion-audit-metrics/specs/analytics-api/spec.md
  • openspec/changes/ingestion-audit-metrics/specs/eval-hub-integration/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/ingestion-audit-metrics/tasks.md and the analytics-api/spec.md and eval-hub-integration/spec.md specifications, then review dependencies #4043 and #4059. The work is complete when the listed analytics, storage, matching, Neo4j, Eval Hub, multi-evaluation, RBAC, pagination, filtering, and test tasks are implemented.

Written by the indexing model from the issue text.

Assessment

Tech stack
neo4j, typescript
Domain
api, authorization, backend-api-design, databases, testing
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.