feat(boost): RHDHPLAN-1513 openspecs#3755
Conversation
…m alignment Create OpenSpec changes covering all 4 epics and 13 stories under RHDHPLAN-1513 (AI Catalog Ingestion Operations & Upstream Schema Alignment): - ingestion-health-dashboard (RHIDP-15331): 5 stories, 3 specs, 7 files Health status API, admin health UI, error classification - connector-config-hot-reload (RHIDP-15332): 3 stories, 3 specs, 7 files Zod config schemas, RuntimeConfigResolver hot-reload, config admin UI - ingestion-audit-metrics (RHIDP-15333): 3 stories, 3 specs, 7 files Sync audit events, analytics REST API, Eval Hub integration - upstream-schema-alignment (RHIDP-15334): 2 stories, 2 specs, 6 files Annotation specification document, dry-run migration-readiness tooling Cross-references RHDHPLAN-1507 (entity model), RHDHPLAN-1508 (audit logging pattern), RHDHPLAN-1510 (connectors), and upstream Backstage RFCs #32062 and #33060. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: gabemontero <gmontero@redhat.com>
RHIDP-15333 (Ingestion Audit Logging & Metrics) closed and absorbed by RHIDP-15277 (AI Catalog RBAC Audit Logging, RHDHPLAN-1508). Closed epic openspec (ingestion-audit-metrics/): - .openspec.yaml status → consolidated with absorbing epic metadata - proposal.md, design.md, tasks.md: consolidation headers with story mapping - specs/audit-events: status → Consolidated into RHIDP-15280 - specs/analytics-api: status → Consolidated into RHIDP-15277 - specs/eval-hub-integration: status → Consolidated into RHIDP-15277 Surviving epic openspecs (consolidation cross-references): - ingestion-health-dashboard: proposal.md + design.md annotations - connector-config-hot-reload: proposal.md + design.md annotations - upstream-schema-alignment: proposal.md + design.md annotations Jira updates: - RHIDP-15343 → CONSOLIDATED into RHIDP-15280, closed as Duplicate - RHIDP-15344 → CONSOLIDATED into RHIDP-15277 scope, closed as Duplicate - RHIDP-15345 → CONSOLIDATED into RHIDP-15277 scope, closed as Duplicate - Blocks links: RHIDP-15295→15338, RHIDP-15258→15346, RHIDP-15258→15347 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: gabemontero <gmontero@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 7:51 PM UTC · Completed 8:02 PM UTC |
PR Summary by QodoAdd Boost OpenSpecs for RHDHPLAN-1513 epics (with audit-metrics consolidation)
AI Description
Diagram
High-Level Assessment
Files changed (27)
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3755 +/- ##
=======================================
Coverage 54.65% 54.65%
=======================================
Files 2360 2360
Lines 90140 90140
Branches 25214 25207 -7
=======================================
Hits 49270 49270
- Misses 40598 40651 +53
+ Partials 272 219 -53
*This pull request uses carry forward flags. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
ReviewVerdict: Comment — medium-severity findings worth noting for spec accuracy, but none blocking for draft pre-implementation specifications. SummaryThis PR adds 27 new openspec documents (design, proposal, specs, tasks) for four RHDHPLAN-1513 feature areas under However, several specifications describe API surfaces that diverge from the existing codebase without acknowledging the gap. Since these specs describe "extending existing infrastructure," clarity about what's reused vs. new is important for implementation accuracy. FindingsMedium1. API surface assumptions diverge from existing The specs reference methods that don't exist on the current classes:
The designs claim to "extend" and "reuse" existing infrastructure, but silently introduce new API surface. This gap could mislead implementers about the scope of changes needed. Remediation: Add a section to 2. The specs assume Remediation: Document in the design that the 3. Permission name inconsistency across feature areas ( The Remediation: Standardize on 4. Health status "degraded" definition inconsistency ( The proposal.md defines degraded as "last sync succeeded but recent failures" (most recent must have succeeded). The design.md defines it as "Mixed results (not all-success and not all-failure)" (broader — includes cases where most recent failed). The Remediation: Align Low5. "EXISTING Requirements" label applied to non-existent features ( Several spec files label their scenarios as "EXISTING Requirements" but describe behavior for Jira, GitHub, and GitLab connectors that don't exist in the codebase. The entity providers that exist are 6. Misleading worst-case propagation timing ( The design states worst-case latency as "Cache TTL (30s) + reconciliation interval (5m) = 5m30s". But the same document describes immediate cache invalidation on DB write. The 30s TTL only applies as a safety net if invalidation fails. Normal-case latency is just the reconciliation interval (~5m). 7. SQL The 8. The design.md lists three Dimensions Reviewed
Labels: PR modifies only the boost workspace openspec documentation directory. Previous runReviewVerdict: Approve This PR adds OpenSpec documentation for four feature areas under RHDHPLAN-1513: Connector Configuration Hot-Reload, Ingestion Audit Logging & Metrics, Ingestion Health Admin Dashboard, and Upstream Schema Alignment Readiness. All 27 files are documentation-only (markdown specifications and YAML metadata) with no code changes. AssessmentStructure & conventions: All four feature areas follow the established OpenSpec pattern already in the repository ( Consolidation handling: The Cross-references: RHDHPLAN and RHIDP ticket references are consistent throughout. The consolidation notes in each design/proposal document correctly describe which stories migrated where, and surviving epics are identified. Spec quality: The specifications are thorough — design docs include clear decisions with rationale, scenarios use GIVEN/WHEN/THEN format, and task breakdowns include JIRA story references and priority levels. The connector-config-hot-reload design, for example, documents the configScope annotation strategy with a clear rationale for which fields are Low-severity finding
SummaryThis is a well-structured documentation PR that follows established repository conventions. The specifications provide comprehensive coverage of four feature areas with clear design decisions, rationale, and task breakdowns. The one minor inconsistency noted above does not block approval. Labels: PR adds OpenSpec documentation for boost workspace ingestion features Previous run (2)Review — CommentThis PR adds openspec design documents for four feature areas under RHDHPLAN-1513: connector-config-hot-reload, ingestion-audit-metrics (consolidated), ingestion-health-dashboard, and upstream-schema-alignment. All 27 files are new markdown/YAML documentation — no production code changes. The openspec structure follows the established pattern in the repo (proposal.md → design.md → specs/ → tasks.md) and the referenced components ( However, several internal consistency issues across the specification documents could mislead implementers. These are worth addressing before the specs are used as implementation guides. FindingsCross-document inconsistencies
SQL schema issues
Health status derivation gaps
Minor inconsistencies
SecurityNo security findings. All example URLs use safe Intent & ScopeThe PR scope is appropriate — adding openspec design documents for the RHDHPLAN-1513 feature areas. The structure follows established patterns in the repo. No unauthorized code changes or unexpected files.
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
37 rules✅ Cross-repo context Not relevant to this PR:
redhat-developer/rhdh Not relevant to this PR:
redhat-developer/rhdh-chart Not relevant to this PR:
redhat-developer/rhdh-operator Not relevant to this PR:
redhat-developer/rhdh-local 1. connectors.jira missing boost. prefix
|
|
Thanks for the thorough review. Addressing all 9 findings: 1. Credential rotation latency mismatch — Agreed. The spec correctly calculates ~6 minutes (60s kubelet + 5min reconciliation). The ≤90s claim in 2. API endpoint pattern inconsistency — Agreed. Standardizing all admin config save calls on 3. Disabled connector filtering conflict — Agreed. Updating 4. PostgreSQL-incompatible INDEX syntax — Agreed. Replacing MySQL-style inline 5. Undefined health state — Agreed. Redefining health derivation: Healthy = all N succeeded, Degraded = mixed (not all-success and not all-failure), Failing = all N failed. This covers all combinations including [success, success, failure]. 6. Underspecified edge cases — Agreed. Adding explicit derivation for fewer-than-3 attempts: 0 = Unknown (never synced), 1+ all-success = Healthy, all-failure = Failing, mixed = Degraded. 7. Missing 8. Orphaned 9. Inconsistent UI propagation messages — Agreed. Updating "within 30 seconds" to "within 30 seconds + next reconciliation cycle" for consistency with the propagation spec. |
Rebase consistency fix: update stale skill entity references to match confirmed category taxonomy (skill → AIResource kind, spec.type: skill). - proposal.md: Skill row Resource/ai-skill → AIResource/skill - annotation-specification/spec.md: ai-skill (Resource kind) → skill (AIResource kind) - ingestion-audit-metrics/design.md: spec.type: ai-skill → spec.type: skill (2 locations) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nspecs Addresses all 9 findings from fullsend review agent on PR redhat-developer#3755: 1. Credential rotation latency: fix ≤90s claim → ~6 minutes (60s kubelet + 5min reconciliation) in design.md Decision 4 and Risks section 2. API endpoint pattern: standardize on POST /api/boost/admin/config with key-value body; fix missing /api/boost prefix in toggle scenarios 3. Disabled connector filtering: reconcile design.md with spec — excluded by default, available via ?includeDisabled=true 4. PostgreSQL INDEX syntax: replace MySQL-style inline INDEX with separate CREATE INDEX statements in both design.md files 5. Health derivation gap: redefine as Healthy/Degraded/Failing/Unknown covering all attempt combinations including [success, success, failure] 6. Fewer-than-3 edge cases: explicit derivation for 0-2 attempts using same rules as 3-attempt case 7. Missing tls.caFile: add to Jira connector config schema in spec 8. Orphaned db-only configScope: remove from proposal.md 9. Propagation messages: fix 'within 30 seconds' → 'within 30 seconds + next reconciliation cycle' Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: gabemontero <gmontero@redhat.com>
|
🤖 Review · ❌ Terminated · Started 8:41 PM UTC · Ended 8:47 PM UTC |
|
🤖 Finished Review · ✅ Success · Started 8:41 PM UTC · Completed 8:47 PM UTC |
…ly state Re-add db-only to proposal.md configScope list (reverses earlier removal). Add concrete db-only fields (lastSyncTimestamp, lastSyncOutcome, runStatus) to design.md Decision 2 table with rationale paragraph explaining these are pure runtime state with no YAML baseline. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: gabemontero <gmontero@redhat.com>
|
|
🤖 Finished Review · ✅ Success · Started 10:00 PM UTC · Completed 10:13 PM UTC |



Hey, I just made a Pull Request!
These are the openspec markdowns through tasks.md for all the RHIDP epics / stories under RHDHPLAN-1513
✔️ Checklist