redhat-developer / redhat-developer/rhdh-plugins

MCP Registry — TLS and Credential Hardening (issue 13 of 29)

Open
#4,051 5 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 1 (#4039 shared infra), Issue 7 (#4045 mirror endpoint)
RHIDP Stories: RHIDP-15318
Feature: RHDHPLAN-1510 — Epic RHIDP-15313
Cross-feature dependency: RHIDP-15318 depends on RHIDP-15655 (Implement MCP Registry entity provider, RHDHPLAN-393). The upstream community provider must exist as the integration target for TLS/credential wrapping.

Integrate shared CA bundle utility (loadCaBundle()) from @red-hat-developer-hub/backstage-plugin-boost-connector-utils, implement K8s Secret-based authentication (Basic Auth and Bearer token), Secret data caching with 5-minute TTL and invalidation on 401, and per-connector TLS configuration isolation.

Tasks

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

  • 2.1 Integrate shared CA bundle utility from RHIDP-15316
  • 2.2 Add ai-catalog.providers.mcpRegistry.tls.ca config schema
  • 2.3 Implement custom CA bundle loading from file path
  • 2.4 Add graceful degradation: invalid CA bundle falls back to system CA
  • 2.5 Add warning logging for invalid CA bundle files
  • 2.6 Implement HTTPS agent configuration with custom CA bundle
  • 2.7 Enforce TLS certificate validation (rejectUnauthorized: true)
  • 2.8 Add ai-catalog.providers.mcpRegistry.auth.secretRef config schema
  • 2.9 Implement K8s Secret reading
  • 2.10 Implement credential extraction from Secret
  • 2.11 Implement HTTP Basic Auth for username/password
  • 2.12 Implement Bearer token authentication
  • 2.13 Implement Secret data caching with 5-minute TTL
  • 2.14 Implement cache invalidation on HTTP 401
  • 2.15 Add error handling: missing Secret, missing credential keys, invalid Secret data
  • 2.16 Add per-connector TLS configuration isolation
  • 2.17–2.18 Prometheus metrics for TLS and auth
  • 2.19–2.26 Integration tests for CA bundle, K8s Secret, cache invalidation, per-connector isolation
  • 2.27–2.29 Documentation: CA bundle config, K8s Secret auth, Secret rotation
Specifications
  • openspec/changes/mcp-registry-connector/specs/auth-tls-hardening/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/mcp-registry-connector/tasks.md group 2 and specs/auth-tls-hardening/spec.md. Confirm the shared CA utility, mirror endpoint, and upstream MCP Registry entity provider dependencies before working through the TLS, Secret authentication, caching, metrics, integration tests, and documentation tasks. Done means all listed behavior is covered, including 401 invalidation and per-connector isolation.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes, prometheus, typescript
Domain
authentication, backend, documentation, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.