redhat-developer / redhat-developer/rhdh-plugins
MCP Mirror Endpoint + RHOAI Version Normalization (issue 7 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
Dependencies: None
RHIDP Stories: RHIDP-15317, RHIDP-15321
Feature: RHDHPLAN-1510 — Epics RHIDP-15313, RHIDP-15314
Implement the MCP Registry mirror endpoint configuration with zero-internet validation (no outbound traffic to public endpoint when mirror is configured), startup health check, and non-HTTPS security warnings. Also implement RHOAI version normalization utility for MCP server entity rhdh.io/ai-asset-version annotation population. RHIDP-15321 has no cross-connector dependencies and can start immediately.
Tasks
From openspec/changes/mcp-registry-connector/tasks.md group 1 (RHIDP-15317):
- 1.1 Add
ai-catalog.providers.mcpRegistry.endpointconfig schema inconfig.d.ts - 1.2 Implement endpoint configuration loading from app-config
- 1.3 Add environment variable override support (
MCP_REGISTRY_ENDPOINT) - 1.4 Implement endpoint URL validation
- 1.5 Add endpoint fallback logic (app-config > env var > default public endpoint)
- 1.6 Implement startup endpoint validation health check
- 1.7 Add endpoint configuration logging at connector startup
- 1.8 Add security warning for non-HTTPS endpoints
- 1.9 Implement HTTP client configuration with mirror endpoint URL
- 1.10 Add Prometheus metrics for endpoint request count, latency, error rate
- 1.11 Add Prometheus metric for public endpoint violation detection
- 1.12–1.18 Integration tests: zero outbound traffic, mirror targeting, DNS resolution, retry backoff, invalid URL, non-HTTPS warning, override precedence
- 1.19–1.20 Documentation: mirror endpoint examples, zero-internet validation
From openspec/changes/rhoai-connector/tasks.md group 7 (RHIDP-15321):
- 7.1 Define version normalization rules
- 7.2 Implement
normalizeVersion(rawVersion)utility — semver normalization, stripvprefix, handlelatest/nightly - 7.3 Populate
rhdh.io/ai-asset-versionannotation with normalized version - 7.4 Handle missing version metadata: set
"unknown"with DEBUG log - 7.5 Handle invalid version strings: set
"unknown"with WARNING log - 7.6 Unit tests for version normalization
- 7.7 Integration test: emitted entities carry correct annotation
Specifications
openspec/changes/mcp-registry-connector/specs/mirror-endpoint/spec.mdopenspec/changes/rhoai-connector/specs/mcp-catalog-source/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/mcp-registry-connector/specs/mirror-endpoint/spec.md and openspec/changes/rhoai-connector/specs/mcp-catalog-source/spec.md, then use the task lists to locate config.d.ts and the connector entry points. Done means mirror configuration, validation, warnings, metrics, tests, and documentation are complete, while emitted RHOAI entities carry normalized version annotations with the specified fallback logging.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend, documentation, observability, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100