Skip to content

MCP Mirror Endpoint + RHOAI Version Normalization (issue 7 of 29) #4045

Description

@gabemontero

Labels: ready-to-code
Dependencies: None
RHIDP Stories: RHIDP-15317, RHIDP-15321
Feature: RHDHPLAN-1510 — Epics RHIDP-15313, RHIDP-15314
Cross-feature dependency: RHIDP-15317 depends on RHIDP-15655 (Implement MCP Registry entity provider, RHDHPLAN-393). The upstream community provider must exist before the productization layer can override its endpoint configuration. RHIDP-15321 (RHOAI version normalization) has no RHDHPLAN-393 dependency and can start immediately.

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; RHIDP-15317 is blocked on the upstream MCP Registry entity provider (RHDHPLAN-393 RHIDP-15655).

Tasks

From openspec/changes/mcp-registry-connector/tasks.md group 1 (RHIDP-15317):

  • 1.1 Add ai-catalog.providers.mcpRegistry.endpoint config schema in config.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, strip v prefix, handle latest/nightly
  • 7.3 Populate rhdh.io/ai-asset-version annotation 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.md
  • openspec/changes/rhoai-connector/specs/mcp-catalog-source/spec.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions