redhat-developer / redhat-developer/rhdh-plugins

Connector Config Admin UI (issue 28 of 29)

Open
#4,066 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 6 (#4044 Zod schemas), Issue 22 (#4060 hot-reload propagation)
RHIDP Stories: RHIDP-15342
Feature: RHDHPLAN-1513 — Epic RHIDP-15332

Create connector config section in admin panel at /admin/connectors for Jira, GitHub, and GitLab connectors with toggle switches for enable/disable, form fields for endpoint URL and sync schedule, read-only K8s Secret reference display, client-side and server-side Zod validation, RBAC gating, and config change history view from audit log.

Tasks

From openspec/changes/connector-config-hot-reload/tasks.md group 4 (RHIDP-15342):

  • 4.1 Create connector config section in admin panel (/admin/connectors)
  • 4.2 Implement connector list view with toggle switches for enabled state
  • 4.3 Implement connector detail view with form fields
  • 4.4 Display K8s Secret references as read-only fields with tooltip
  • 4.5 Implement client-side validation
  • 4.6 Implement save handler: call POST /api/boost/admin/config
  • 4.7 Implement success notification with propagation latency note
  • 4.8 Implement validation error feedback
  • 4.9 Implement RBAC gating
  • 4.10 Implement read-only view for non-admin users
  • 4.11 Implement config change history view
  • 4.12–4.13 UI tests

From openspec/changes/connector-config-hot-reload/tasks.md group 6:

  • 6.1 Extend existing POST /api/boost/admin/config endpoint to accept connector config keys (e.g., { key: "boost.connectors.jira.enabled", value: false }). Add GET /api/boost/admin/config?key=boost.connectors.<connectorId> for reading merged connector config.
  • 6.2 Implement Zod schema validation in setOverride() method before DB write
  • 6.3 Implement configScope enforcement: reject writes for yaml-only fields
  • 6.4 Implement cache invalidation call to RuntimeConfigResolver.invalidate() after DB write
  • 6.5 Implement removeOverride(key: BoostConfigKey) method and DELETE /api/boost/admin/config?key=<BoostConfigKey> endpoint — deletes the DB override row, calls RuntimeConfigResolver.invalidate(), and returns the reverted YAML baseline value. Used when switching schedule types (e.g., removing intervalMs override when switching to cron).
  • 6.6 Add audit logging for connector config changes (timestamp, user, changed fields, old/new values)
  • 6.7 Add unit tests for AdminConfigService connector config methods (including removeOverride)
Specifications
  • openspec/changes/connector-config-hot-reload/specs/config-admin-ui/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/connector-config-hot-reload/specs/config-admin-ui/spec.md and tasks.md groups 4 and 6. Review the existing POST /api/boost/admin/config endpoint and AdminConfigService, then implement the connector views, validation, RBAC behavior, audit history, and UI and unit tests. Done means connector settings can be viewed and updated with the specified access, validation, propagation, and history behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes, typescript
Domain
api, authorization, backend, frontend, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.