redhat-developer / redhat-developer/rhdh-plugins
Ingestion Analytics API and Eval Hub Integration (issue 29 of 29)
Nobody has claimed this yet.
- 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-historyendpoint - 5.3 Add
GET /api/boost/admin/analytics/quality-scoresendpoint - 5.4 Add
GET /api/boost/admin/analytics/match-coverageendpoint - 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_sourcefield, source normalization, source filtering, per-source aggregation, LightEval/IBM Clear/GuideLLM support, unit tests
Specifications
openspec/changes/ingestion-audit-metrics/specs/analytics-api/spec.mdopenspec/changes/ingestion-audit-metrics/specs/eval-hub-integration/spec.md
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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