Skip to content

Feat/swagger UI overhaul#568

Merged
ginccc merged 8 commits into
mainfrom
feat/swagger-ui-overhaul
Jun 23, 2026
Merged

Feat/swagger UI overhaul#568
ginccc merged 8 commits into
mainfrom
feat/swagger-ui-overhaul

Conversation

@ginccc

@ginccc ginccc commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

Swagger UI Overhaul, Manager Update

Complete Swagger UI redesign with EDDI branding, proper dual-theme support, clean API taxonomy, Manager frontend update, base image bump, and version 6.1.1 across all artifacts.


Swagger UI — API Documentation

Tag Taxonomy

  • Replaced numbered prefixes (01. Conversations) with category-based names (Conversations / Store, Configuration / LLM, Security / Audit Trail) — 9 top-level groups, 40 tags total
  • Added helpful descriptions to all 49 REST interface @Tag annotations (SmallRye was silently dropping descriptions from @OpenAPIDefinition when interface-level @Tag lacked one)
  • New OpenApiTagSortFilter sorts tags alphabetically; fixed UnsupportedOperationException on unmodifiable list

Light / Dark Mode

  • Rewrote style.css (635 lines) with proper dual-theme support — all dark colors scoped under html.dark-mode so the lamp toggle creates a visible switch
  • Light mode: white backgrounds, dark text, amber-600 accents
  • Dark mode: EDDI Manager palette (zinc-950 bg, zinc-900 surfaces, amber-500 accents)
  • Topbar stays dark in both modes for brand consistency with logo

Branding & Accessibility

  • EDDI amber accent colors on buttons (Authorize, Execute, Explore, Try-it-out)
  • Version badge 6.1.1 uses amber background with WCAG AAA contrast (10.7:1)
  • OAS 3.1 badge demoted to subtle gray for visual hierarchy
  • Custom EDDI logo in topbar, default Swagger title hidden
  • Swagger theme set to original (prevents feeling-blue from overriding custom styles)

Manager Frontend

  • Updated manage.html asset references to latest EDDI-Manager build (index-BG966qvF.js, index-CEYc6_5T.css)
  • Removed old Manager build assets (2 × ~1900-line JS bundles + CSS + 30 chunk files)

Infrastructure & Versioning

Version Bump → 6.1.1

File Field
pom.xml <version>
application.properties systemRuntime.projectVersion, info-version, additional-tags
OpenApiConfig.java @Info(version)
Dockerfile ARG EDDI_VERSION
Chart.yaml appVersion
eddi-deployment.yaml app.kubernetes.io/version (×2)
quickstart.yaml app.kubernetes.io/version (×2)
redhat-certify.yml default input

Docker Base Image

  • Bumped Red Hat UBI9 OpenJDK 25 runtime image hash (sha256:0f4e04...sha256:2aed9f...)

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📝 Documentation update
  • ♻️ Refactoring (no functional changes)
  • 🔧 Chore (dependency updates, CI changes, etc.)

Checklist

  • My code follows the project's code style
  • I have added tests that prove my fix/feature works
  • Existing tests pass locally (./mvnw clean verify -DskipITs)
  • I have updated documentation if needed
  • My commit messages follow conventional commits
  • I have not committed any secrets, API keys, or tokens
  • This PR has a clear, focused scope (one concern per PR)

Summary by CodeRabbit

  • New Features

    • Improved API documentation navigation with a hierarchical OpenAPI tag structure and consistent grouping.
    • Swagger UI now supports stable, alphabetical tag ordering for easier browsing.
  • Documentation

    • Expanded/clarified OpenAPI tag descriptions across REST endpoints (including security, knowledge, integrations, operations, and UI areas).
    • Changelog updated for “Swagger UI Overhaul, Manager Update & Version 6.1.1”.
  • Style

    • Refreshed Swagger UI theme (light/dark styling) and branding (including logo and badge styling).
  • Chores

    • Version bumped to 6.1.1 across deployment and release artifacts.

ginccc added 6 commits June 23, 2026 00:12
…d brand Swagger UI

- Rewrite OpenApiConfig.java with 38 tags in groups 01-09
- Add @tag to 4 previously untagged endpoints (ILogoutEndpoint,
  RestSlackWebhook, RestToolHistory, RestA2AEndpoint)
- Register 10 missing tags in OpenApiConfig (MCP Calls, Channel
  Integrations, User Memory, RAG Ingestion, RAG Knowledge Bases,
  Prompt Snippets, Global Variables, Attachments, Template Preview,
  A2A Protocol)
- Rename eddi-logo.png to logo.png (Quarkus standard auto-detection)
- Overhaul style.css: amber/stone palette matching EDDI Manager,
  fix border-agenttom typos, dark-themed operations and models
…nc palette

- Add OpenApiTagSortFilter (OASFilter) to sort tags in OpenAPI doc
- Add quarkus.swagger-ui.tags-sorter=alpha for UI-level sorting
- Set quarkus.swagger-ui.theme=original to remove default theme
- Rewrite style.css using exact Manager dark-mode zinc palette:
  background=#09090b, surface=#18181b, border=#27272a, fg=#fafaf9
…n CSS overrides

- Replace numbered prefixes (01., 02., etc.) with category/sub format:
  Agents, Agents / Setup, Configuration / LLM, etc.
- Fix 19 files with corrupted byte 0xB7 from PowerShell Set-Content
  (Windows-1252 middle dot vs UTF-8) by using ASCII '/' separator
- Remove UTF-8 BOM from 30 files added by System.IO.File.WriteAllText
- Add !important overrides: Explore button, version stamps, backgrounds
- Set quarkus.swagger-ui.theme=original to disable default blue theme
- Include updated Manager assets and Dockerfile from working tree
…ntrast

- Add description attribute to all 49 interface-level @tag annotations
  (SmallRye overrides @OpenAPIDefinition descriptions with null when
  interface @tag lacks description)
- Fix topbar: pure black with !important, brighter border for separation
- Fix version badges: 6.1.1 gets prominent amber bg, OAS 3.1 demoted
  to subtle gray
- Fix pre.version text: was #09090b on #27272a (invisible dark-on-dark)
Updated across all locations: pom.xml, Dockerfile, OpenApiConfig,
Helm Chart, K8s manifests, and Red Hat certification workflow.
Rewrote CSS to scope all dark theme colors under html.dark-mode so
the lamp icon toggle creates a visible switch between themes:
- Light mode: white bg, dark text, amber-600 accents
- Dark mode: EDDI Manager palette (zinc-950 bg, amber-500 accents)
- Topbar stays dark in both modes for brand consistency
@ginccc ginccc requested a review from rolandpickl as a code owner June 23, 2026 11:29
@ginccc ginccc requested a review from Copilot June 23, 2026 11:30
@github-actions

Copy link
Copy Markdown

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0543887d-6f22-42c3-b605-d7304d6574f9

📥 Commits

Reviewing files that changed from the base of the PR and between 1dd7083 and 248a3ca.

📒 Files selected for processing (2)
  • docs/changelog.md
  • pom.xml
✅ Files skipped from review due to trivial changes (2)
  • pom.xml
  • docs/changelog.md

📝 Walkthrough

Walkthrough

Bumps the project version from 6.1.0 to 6.1.1 across all manifests (pom.xml, Dockerfile, Helm, Kubernetes, workflow). Reorganizes OpenAPI tags into a hierarchical taxonomy across ~45 REST interfaces, adds an alphabetical tag-sort OASFilter, rewrites the Swagger UI CSS theme with light/dark modes, and removes stale versioned language-mode JavaScript bundles.

Changes

Swagger UI Tag Reorganization & Branding

Layer / File(s) Summary
OpenAPI tag taxonomy definition and sort filter
src/main/java/ai/labs/eddi/configs/OpenApiConfig.java, src/main/java/ai/labs/eddi/configs/OpenApiTagSortFilter.java, src/main/resources/application.properties
OpenApiConfig replaces the entire tags array with a new hierarchical naming scheme. OpenApiTagSortFilter is a new build-time OASFilter that copies and sorts tags by name. application.properties adds tags-sorter=alpha, theme=original, and bumps info-version to 6.1.1.
@Tag updates on configuration REST interfaces
src/main/java/ai/labs/eddi/configs/agents/IRestAgentStore.java, src/main/java/ai/labs/eddi/configs/agents/IRestCapabilityRegistry.java, src/main/java/ai/labs/eddi/configs/apicalls/IRestApiCallsStore.java, src/main/java/ai/labs/eddi/configs/channels/IRestChannelIntegrationStore.java, src/main/java/ai/labs/eddi/configs/deployment/IRestDeploymentStore.java, src/main/java/ai/labs/eddi/configs/descriptors/IRestDocumentDescriptorStore.java, src/main/java/ai/labs/eddi/configs/dictionary/IRestAction.java, src/main/java/ai/labs/eddi/configs/dictionary/IRestDictionaryStore.java, src/main/java/ai/labs/eddi/configs/dictionary/IRestExpression.java, src/main/java/ai/labs/eddi/configs/groups/IRestAgentGroupStore.java, src/main/java/ai/labs/eddi/configs/llm/IRestLlmStore.java, src/main/java/ai/labs/eddi/configs/mcpcalls/IRestMcpCallsStore.java, src/main/java/ai/labs/eddi/configs/output/IRestOutputStore.java, src/main/java/ai/labs/eddi/configs/output/keys/IRestOutputActions.java, src/main/java/ai/labs/eddi/configs/parser/IRestParserStore.java, src/main/java/ai/labs/eddi/configs/properties/IRestPropertiesStore.java, src/main/java/ai/labs/eddi/configs/properties/IRestUserMemoryStore.java, src/main/java/ai/labs/eddi/configs/propertysetter/IRestPropertySetterStore.java, src/main/java/ai/labs/eddi/configs/rag/IRestRagIngestion.java, src/main/java/ai/labs/eddi/configs/rag/IRestRagStore.java, src/main/java/ai/labs/eddi/configs/rules/IRestRuleSetStore.java, src/main/java/ai/labs/eddi/configs/snippets/IRestPromptSnippetStore.java, src/main/java/ai/labs/eddi/configs/variables/rest/IRestGlobalVariableStore.java, src/main/java/ai/labs/eddi/configs/workflows/IRestWorkflowStepStore.java, src/main/java/ai/labs/eddi/configs/workflows/IRestWorkflowStore.java
All configuration-domain REST interfaces receive updated @Tag annotations adopting the hierarchical naming scheme (e.g., Configuration/Workflows, Knowledge/RAG Stores, Agents/Groups) and add explicit descriptions.
@Tag updates on engine and operations REST interfaces
src/main/java/ai/labs/eddi/backup/IRestExportService.java, src/main/java/ai/labs/eddi/backup/IRestImportService.java, src/main/java/ai/labs/eddi/configs/admin/IRestOrphanAdmin.java, src/main/java/ai/labs/eddi/engine/api/IRestAgentAdministration.java, src/main/java/ai/labs/eddi/engine/api/IRestAgentEngine.java, src/main/java/ai/labs/eddi/engine/api/IRestAgentEngineStreaming.java, src/main/java/ai/labs/eddi/engine/api/IRestAgentManagement.java, src/main/java/ai/labs/eddi/engine/api/IRestAgentSetup.java, src/main/java/ai/labs/eddi/engine/api/IRestCoordinatorAdmin.java, src/main/java/ai/labs/eddi/engine/api/IRestGroupConversation.java, src/main/java/ai/labs/eddi/engine/api/IRestLogAdmin.java, src/main/java/ai/labs/eddi/engine/audit/rest/IRestAuditStore.java, src/main/java/ai/labs/eddi/engine/gdpr/IRestGdprAdmin.java, src/main/java/ai/labs/eddi/engine/memory/rest/IRestConversationStore.java, src/main/java/ai/labs/eddi/engine/memory/rest/RestAttachmentUpload.java, src/main/java/ai/labs/eddi/engine/schedule/IRestScheduleStore.java, src/main/java/ai/labs/eddi/engine/tenancy/rest/IRestTenantQuota.java, src/main/java/ai/labs/eddi/engine/triggermanagement/IRestAgentTriggerStore.java, src/main/java/ai/labs/eddi/engine/triggermanagement/IRestUserConversationStore.java, src/main/java/ai/labs/eddi/modules/nlp/IRestSemanticParser.java, src/main/java/ai/labs/eddi/modules/templating/rest/IRestTemplatePreview.java, src/main/java/ai/labs/eddi/secrets/rest/IRestSecretStore.java, src/main/java/ai/labs/eddi/ui/IRestHtmlChatResource.java
Engine and operations REST interfaces are re-tagged using the new taxonomy (e.g., Operations/Coordinator, Security/Audit Trail, Conversations/Groups, Integrations/*).
New @Tag annotations added to previously untagged classes
src/main/java/ai/labs/eddi/engine/api/ILogoutEndpoint.java, src/main/java/ai/labs/eddi/integrations/slack/rest/RestSlackWebhook.java, src/main/java/ai/labs/eddi/modules/llm/rest/RestToolHistory.java, src/main/java/ai/labs/eddi/engine/a2a/RestA2AEndpoint.java
ILogoutEndpoint, RestSlackWebhook, and RestToolHistory receive their first class-level @Tag annotations. RestA2AEndpoint gains a class-level tag and updates method-level tags on its two capability endpoints.
Swagger UI CSS theme rewrite
src/main/resources/META-INF/branding/style.css
The full CSS file is replaced with an EDDI-branded Swagger UI theme: global reset, shared brand accents (logo, HTTP method color mapping, focus/button styling), complete light-mode component styles, and a dark-mode mirror under html.dark-mode including Webkit scrollbar overrides (~927 lines net added).
Stale language-mode JS assets removed and manage.html updated
src/main/resources/META-INF/resources/assets/freemarker2-DqDWCtuK.js, src/main/resources/META-INF/resources/assets/handlebars-u8CdY6Y6.js, src/main/resources/META-INF/resources/assets/html-z1CojlRt.js, src/main/resources/META-INF/resources/assets/xml-Dzl_rdxd.js, src/main/resources/META-INF/resources/manage.html
Obsolete versioned JS bundles for language modes and LSP adapters are deleted. manage.html is updated to reference the new hashed index-BG966qvF.js and index-CEYc6_5T.css.
Changelog
docs/changelog.md
New top entry dated 2026-06-23 documents the Swagger UI tag reorganization, annotation updates, branding changes, and affected files.

Version Bump 6.1.0 → 6.1.1

Layer / File(s) Summary
Version bump across all deployment artifacts
pom.xml, src/main/resources/application.properties, src/main/docker/Dockerfile, helm/eddi/Chart.yaml, k8s/base/eddi-deployment.yaml, k8s/quickstart.yaml, .github/workflows/redhat-certify.yml
All version references are updated from 6.1.0 to 6.1.1: Maven project version, runtime property, container additional-tags, Docker EDDI_VERSION build arg and base image digest, Helm appVersion, both Kubernetes deployment and pod template labels in base and quickstart manifests, and the Red Hat certification workflow version input default.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • labsai/EDDI#420: Introduces RestSlackWebhook, the same class that this PR annotates with a new OpenAPI @Tag.
  • labsai/EDDI#519: Also cleans and updates hashed language-mode JS assets and the manage.html asset references in src/main/resources/META-INF/resources/assets/, the same directory targeted here.
  • labsai/EDDI#485: Modifies the same RestA2AEndpoint capability discovery endpoints that this PR updates with new OpenAPI @Tag metadata.

Suggested reviewers

  • rolandpickl

Poem

🐰 Hop, hop, the tags are tidy now,
Grouped in hierarchies, neat as a bow!
Dark mode blooms where old CSS was bare,
Old JS bundles? Gone without a care.
Version 6.1.1 hops into the light —
A rabbit sorted all the tags just right! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Feat/swagger UI overhaul' directly corresponds to the main change—a comprehensive Swagger UI redesign with new tag taxonomy, theme support, and descriptions.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/swagger-ui-overhaul

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Quarkus-served Swagger UI and related assets to align with EDDI branding and a cleaner OpenAPI tag taxonomy, while also bumping the project/versioned deployment artifacts to 6.1.1.

Changes:

  • Reworked OpenAPI tag taxonomy across REST resources/interfaces and updated Swagger UI configuration (theme + tag sorting).
  • Updated embedded Manager entrypoint asset references and removed a large set of obsolete frontend bundle artifacts.
  • Version + infrastructure bumps to 6.1.1 across Maven, container image build args, and deployment manifests (Helm/K8s/GitHub workflow inputs).

Reviewed changes

Copilot reviewed 96 out of 100 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/main/resources/META-INF/resources/manage.html Updates Manager HTML to reference the new hashed JS/CSS bundles.
src/main/resources/META-INF/resources/assets/yaml-C5eaV0RI.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/yaml-BtJQtdrv.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/xml-Wsqe13ye.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/xml-Dzl_rdxd.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/typescript-G7Eu3Ar3.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/typescript-D1IyJ0Mn.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/tsMode-DcqLl0pR.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/razor-BRw03YNd.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/razor-BPd4BWpj.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/python-nn_VEFur.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/python-BoyG6M2a.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/mdx-CzWNFZ_r.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/mdx-Cjguuzo_.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/liquid-C_tKVlev.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/liquid-BU54st6I.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/jsonMode-D3E7SjOF.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/jsonMode-BrbWbOAE.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/javascript-SxiXgJ1p.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/javascript-CmDShlNU.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/htmlMode-FnQ1MKvn.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/htmlMode-CqKL2ox8.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/html-z1CojlRt.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/html-CXIKgM1_.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/handlebars-u8CdY6Y6.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/handlebars-B6GL_0Gw.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/freemarker2-DqDWCtuK.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/freemarker2-Dl3FuCzB.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/cssMode-DMPmy9yy.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/resources/assets/cssMode-CRRdssKx.js Removes old bundled asset (obsolete build output).
src/main/resources/META-INF/branding/logo.png Adds EDDI logo for Swagger UI branding.
src/main/resources/application.properties Bumps version to 6.1.1; adds Swagger UI theme + tag sorter; updates OpenAPI version + container tags.
src/main/java/ai/labs/eddi/ui/IRestHtmlChatResource.java Updates REST tag taxonomy/description for Chat UI.
src/main/java/ai/labs/eddi/secrets/rest/IRestSecretStore.java Updates REST tag taxonomy/description for Secrets Vault.
src/main/java/ai/labs/eddi/modules/templating/rest/IRestTemplatePreview.java Updates REST tag taxonomy/description for Template Preview.
src/main/java/ai/labs/eddi/modules/nlp/IRestSemanticParser.java Updates REST tag taxonomy/description for NLP tool endpoint.
src/main/java/ai/labs/eddi/modules/llm/rest/RestToolHistory.java Adds OpenAPI tag metadata for tool history endpoint.
src/main/java/ai/labs/eddi/integrations/slack/rest/RestSlackWebhook.java Adds OpenAPI tag metadata for Slack webhook endpoint.
src/main/java/ai/labs/eddi/engine/triggermanagement/IRestUserConversationStore.java Updates REST tag taxonomy/description for conversation history store.
src/main/java/ai/labs/eddi/engine/triggermanagement/IRestAgentTriggerStore.java Updates REST tag taxonomy/description for agent administration triggers.
src/main/java/ai/labs/eddi/engine/tenancy/rest/IRestTenantQuota.java Updates REST tag taxonomy/description for tenant quotas.
src/main/java/ai/labs/eddi/engine/schedule/IRestScheduleStore.java Updates REST tag taxonomy/description for schedules.
src/main/java/ai/labs/eddi/engine/memory/rest/RestAttachmentUpload.java Updates REST tag taxonomy/description for attachments.
src/main/java/ai/labs/eddi/engine/memory/rest/IRestConversationStore.java Updates REST tag taxonomy/description for conversation store.
src/main/java/ai/labs/eddi/engine/gdpr/IRestGdprAdmin.java Updates REST tag taxonomy/description for GDPR/privacy admin endpoints.
src/main/java/ai/labs/eddi/engine/audit/rest/IRestAuditStore.java Updates REST tag taxonomy/description for audit trail.
src/main/java/ai/labs/eddi/engine/api/IRestLogAdmin.java Updates REST tag taxonomy/description for logs admin endpoints.
src/main/java/ai/labs/eddi/engine/api/IRestGroupConversation.java Updates REST tag taxonomy/description for group conversations.
src/main/java/ai/labs/eddi/engine/api/IRestCoordinatorAdmin.java Updates REST tag taxonomy/description for coordinator admin endpoints.
src/main/java/ai/labs/eddi/engine/api/IRestAgentSetup.java Updates REST tag taxonomy/description for agent setup endpoints.
src/main/java/ai/labs/eddi/engine/api/IRestAgentManagement.java Updates REST tag taxonomy/description for managed conversation endpoints.
src/main/java/ai/labs/eddi/engine/api/IRestAgentEngineStreaming.java Updates REST tag taxonomy/description for streaming conversation endpoints.
src/main/java/ai/labs/eddi/engine/api/IRestAgentEngine.java Updates REST tag taxonomy/description for conversation endpoints.
src/main/java/ai/labs/eddi/engine/api/IRestAgentAdministration.java Updates REST tag taxonomy/description for agent administration endpoints.
src/main/java/ai/labs/eddi/engine/api/ILogoutEndpoint.java Adds OpenAPI tag metadata for auth/session endpoints.
src/main/java/ai/labs/eddi/engine/a2a/RestA2AEndpoint.java Adds class-level OpenAPI tag; removes method-level tags for capability discovery endpoints.
src/main/java/ai/labs/eddi/configs/workflows/IRestWorkflowStore.java Updates REST tag taxonomy/description for workflow store.
src/main/java/ai/labs/eddi/configs/workflows/IRestWorkflowStepStore.java Updates REST tag taxonomy/description for workflow step store.
src/main/java/ai/labs/eddi/configs/variables/rest/IRestGlobalVariableStore.java Updates REST tag taxonomy/description for global variables store.
src/main/java/ai/labs/eddi/configs/snippets/IRestPromptSnippetStore.java Updates REST tag taxonomy/description for prompt snippets store.
src/main/java/ai/labs/eddi/configs/rules/IRestRuleSetStore.java Updates REST tag taxonomy/description for behavior rules store.
src/main/java/ai/labs/eddi/configs/rag/IRestRagStore.java Updates REST tag taxonomy/description for RAG store.
src/main/java/ai/labs/eddi/configs/rag/IRestRagIngestion.java Updates REST tag taxonomy/description for RAG ingestion.
src/main/java/ai/labs/eddi/configs/propertysetter/IRestPropertySetterStore.java Updates REST tag taxonomy/description for property setter store.
src/main/java/ai/labs/eddi/configs/properties/IRestUserMemoryStore.java Updates REST tag taxonomy for user memory.
src/main/java/ai/labs/eddi/configs/properties/IRestPropertiesStore.java Updates REST tag taxonomy/description for properties store.
src/main/java/ai/labs/eddi/configs/parser/IRestParserStore.java Updates REST tag taxonomy/description for parser store.
src/main/java/ai/labs/eddi/configs/output/keys/IRestOutputActions.java Updates REST tag taxonomy/description for output actions.
src/main/java/ai/labs/eddi/configs/output/IRestOutputStore.java Updates REST tag taxonomy/description for output store.
src/main/java/ai/labs/eddi/configs/OpenApiTagSortFilter.java Adds build-time OpenAPI tag sorting filter.
src/main/java/ai/labs/eddi/configs/OpenApiConfig.java Updates canonical OpenAPI tag list/taxonomy and bumps OpenAPI info version.
src/main/java/ai/labs/eddi/configs/mcpcalls/IRestMcpCallsStore.java Updates REST tag taxonomy/description for MCP calls store.
src/main/java/ai/labs/eddi/configs/llm/IRestLlmStore.java Updates REST tag taxonomy/description for LLM store.
src/main/java/ai/labs/eddi/configs/groups/IRestAgentGroupStore.java Updates REST tag taxonomy/description for agent group store.
src/main/java/ai/labs/eddi/configs/dictionary/IRestExpression.java Updates REST tag taxonomy/description for dictionary expressions.
src/main/java/ai/labs/eddi/configs/dictionary/IRestDictionaryStore.java Updates REST tag taxonomy/description for dictionary store.
src/main/java/ai/labs/eddi/configs/dictionary/IRestAction.java Updates REST tag taxonomy/description for dictionary actions.
src/main/java/ai/labs/eddi/configs/descriptors/IRestDocumentDescriptorStore.java Updates REST tag taxonomy/description for descriptors.
src/main/java/ai/labs/eddi/configs/deployment/IRestDeploymentStore.java Updates REST tag taxonomy/description for deployments.
src/main/java/ai/labs/eddi/configs/channels/IRestChannelIntegrationStore.java Updates REST tag taxonomy/description for channel integrations.
src/main/java/ai/labs/eddi/configs/apicalls/IRestApiCallsStore.java Updates REST tag taxonomy/description for API calls store.
src/main/java/ai/labs/eddi/configs/agents/IRestCapabilityRegistry.java Updates REST tag taxonomy from numbered to category-based.
src/main/java/ai/labs/eddi/configs/agents/IRestAgentStore.java Ensures Agents tag has description (consistent UI taxonomy).
src/main/java/ai/labs/eddi/configs/admin/IRestOrphanAdmin.java Updates REST tag taxonomy/description for orphans admin.
src/main/java/ai/labs/eddi/backup/IRestImportService.java Updates REST tag taxonomy/description for backup import.
src/main/java/ai/labs/eddi/backup/IRestExportService.java Updates REST tag taxonomy/description for backup export.
src/main/docker/Dockerfile Updates base image digest and EDDI_VERSION build arg to 6.1.1.
pom.xml Bumps Maven project version to 6.1.1.
k8s/quickstart.yaml Bumps app.kubernetes.io/version labels to 6.1.1.
k8s/base/eddi-deployment.yaml Bumps app.kubernetes.io/version labels to 6.1.1.
helm/eddi/Chart.yaml Bumps Helm chart appVersion to 6.1.1.
docs/changelog.md Adds changelog entry for Swagger/OpenAPI presentation changes.
.github/workflows/redhat-certify.yml Updates default workflow_dispatch version input to 6.1.1.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/changelog.md Outdated
Comment thread src/main/java/ai/labs/eddi/configs/OpenApiTagSortFilter.java
Comment thread src/main/java/ai/labs/eddi/engine/a2a/RestA2AEndpoint.java
Comment thread src/main/java/ai/labs/eddi/engine/a2a/RestA2AEndpoint.java

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/main/java/ai/labs/eddi/modules/llm/rest/RestToolHistory.java (1)

1-37: ⚠️ Potential issue | 🟠 Major

Add @ApplicationScoped annotation to RestToolHistory class.

The class uses constructor injection with @Inject but is missing the required @ApplicationScoped CDI scope annotation. Add @ApplicationScoped above the class declaration to ensure proper singleton lifecycle management for the injected dependencies.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/main/java/ai/labs/eddi/modules/llm/rest/RestToolHistory.java` around
lines 1 - 37, The RestToolHistory class is missing the required
`@ApplicationScoped` CDI scope annotation for proper singleton lifecycle
management with constructor injection. Add the `@ApplicationScoped` annotation
from jakarta.enterprise.context package to the imports section, then place the
`@ApplicationScoped` annotation above the RestToolHistory class declaration
(before the `@Path` annotation) to ensure the injected dependencies are properly
managed as a singleton.

Source: Coding guidelines

🧹 Nitpick comments (1)
src/main/java/ai/labs/eddi/configs/OpenApiTagSortFilter.java (1)

14-16: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Update stale Javadoc to match current taxonomy.

The comment still describes numeric tag prefixes (01., 02.), but the taxonomy now uses named hierarchical tags. Please align the Javadoc with current behavior.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/main/java/ai/labs/eddi/configs/OpenApiTagSortFilter.java` around lines 14
- 16, The Javadoc comment for the OpenApiTagSortFilter class currently describes
numeric tag prefixes (01., 02., etc.) but the implementation now uses named
hierarchical tags. Update the class-level Javadoc comment to accurately reflect
the current taxonomy by replacing references to numeric prefixes with
descriptions of the named hierarchical tag structure, while maintaining the core
purpose of alphabetically sorting OpenAPI tags for stable grouping in Swagger UI
and API consumers.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/changelog.md`:
- Line 12: The Tag Taxonomy heading on line 12 states an incorrect tag count of
38, but the actual tag count listed in the subsequent lines totals 40 tags
(4+4+10+3+3+4+5+6+1). Update the text "Tag Taxonomy (38 tags, 9 groups)" to read
"Tag Taxonomy (40 tags, 9 groups)" to reflect the correct count of tags
enumerated in the taxonomy breakdown.
- Around line 7-53: The changelog is missing documentation for two important
Swagger UI features. Add a new subsection under the "Swagger UI Branding"
section that documents the OpenApiTagSortFilter component and its alphabetical
tag sorting capability via the `quarkus.swagger-ui.tags-sorter=alpha`
configuration in application.properties. Additionally, expand the CSS overhaul
description to explicitly document the dual-theme support architecture, clearly
distinguishing between the light mode (white backgrounds, dark text, amber-600
accents) and dark mode (scoped under `html.dark-mode` with the EDDI Manager
palette of zinc-950 backgrounds, zinc-900 surfaces, and amber-500 accents),
emphasizing that the dark mode toggle capability is a significant architectural
feature of the CSS rewrite beyond the visual styling changes already documented
in lines 36-46.

In `@src/main/docker/Dockerfile`:
- Line 81: The Docker FROM directive uses an invalid or unverified digest for
the UBI9 OpenJDK 25 runtime image that does not exist in official Red Hat
records. Replace the current digest in the FROM statement (the sha256 hash
following the @ symbol) with the correct and verified digest by querying the Red
Hat Ecosystem Catalog using the skopeo inspect command as specified in the
comment. Ensure the final FROM directive contains the official validated digest
from Red Hat's released container image records.

---

Outside diff comments:
In `@src/main/java/ai/labs/eddi/modules/llm/rest/RestToolHistory.java`:
- Around line 1-37: The RestToolHistory class is missing the required
`@ApplicationScoped` CDI scope annotation for proper singleton lifecycle
management with constructor injection. Add the `@ApplicationScoped` annotation
from jakarta.enterprise.context package to the imports section, then place the
`@ApplicationScoped` annotation above the RestToolHistory class declaration
(before the `@Path` annotation) to ensure the injected dependencies are properly
managed as a singleton.

---

Nitpick comments:
In `@src/main/java/ai/labs/eddi/configs/OpenApiTagSortFilter.java`:
- Around line 14-16: The Javadoc comment for the OpenApiTagSortFilter class
currently describes numeric tag prefixes (01., 02., etc.) but the implementation
now uses named hierarchical tags. Update the class-level Javadoc comment to
accurately reflect the current taxonomy by replacing references to numeric
prefixes with descriptions of the named hierarchical tag structure, while
maintaining the core purpose of alphabetically sorting OpenAPI tags for stable
grouping in Swagger UI and API consumers.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 120314fd-135f-4c6d-95e6-900b59644ae4

📥 Commits

Reviewing files that changed from the base of the PR and between bd1b859 and f8ef73a.

⛔ Files ignored due to path filters (1)
  • src/main/resources/META-INF/branding/logo.png is excluded by !**/*.png
📒 Files selected for processing (99)
  • .github/workflows/redhat-certify.yml
  • docs/changelog.md
  • helm/eddi/Chart.yaml
  • k8s/base/eddi-deployment.yaml
  • k8s/quickstart.yaml
  • pom.xml
  • src/main/docker/Dockerfile
  • src/main/java/ai/labs/eddi/backup/IRestExportService.java
  • src/main/java/ai/labs/eddi/backup/IRestImportService.java
  • src/main/java/ai/labs/eddi/configs/OpenApiConfig.java
  • src/main/java/ai/labs/eddi/configs/OpenApiTagSortFilter.java
  • src/main/java/ai/labs/eddi/configs/admin/IRestOrphanAdmin.java
  • src/main/java/ai/labs/eddi/configs/agents/IRestAgentStore.java
  • src/main/java/ai/labs/eddi/configs/agents/IRestCapabilityRegistry.java
  • src/main/java/ai/labs/eddi/configs/apicalls/IRestApiCallsStore.java
  • src/main/java/ai/labs/eddi/configs/channels/IRestChannelIntegrationStore.java
  • src/main/java/ai/labs/eddi/configs/deployment/IRestDeploymentStore.java
  • src/main/java/ai/labs/eddi/configs/descriptors/IRestDocumentDescriptorStore.java
  • src/main/java/ai/labs/eddi/configs/dictionary/IRestAction.java
  • src/main/java/ai/labs/eddi/configs/dictionary/IRestDictionaryStore.java
  • src/main/java/ai/labs/eddi/configs/dictionary/IRestExpression.java
  • src/main/java/ai/labs/eddi/configs/groups/IRestAgentGroupStore.java
  • src/main/java/ai/labs/eddi/configs/llm/IRestLlmStore.java
  • src/main/java/ai/labs/eddi/configs/mcpcalls/IRestMcpCallsStore.java
  • src/main/java/ai/labs/eddi/configs/output/IRestOutputStore.java
  • src/main/java/ai/labs/eddi/configs/output/keys/IRestOutputActions.java
  • src/main/java/ai/labs/eddi/configs/parser/IRestParserStore.java
  • src/main/java/ai/labs/eddi/configs/properties/IRestPropertiesStore.java
  • src/main/java/ai/labs/eddi/configs/properties/IRestUserMemoryStore.java
  • src/main/java/ai/labs/eddi/configs/propertysetter/IRestPropertySetterStore.java
  • src/main/java/ai/labs/eddi/configs/rag/IRestRagIngestion.java
  • src/main/java/ai/labs/eddi/configs/rag/IRestRagStore.java
  • src/main/java/ai/labs/eddi/configs/rules/IRestRuleSetStore.java
  • src/main/java/ai/labs/eddi/configs/snippets/IRestPromptSnippetStore.java
  • src/main/java/ai/labs/eddi/configs/variables/rest/IRestGlobalVariableStore.java
  • src/main/java/ai/labs/eddi/configs/workflows/IRestWorkflowStepStore.java
  • src/main/java/ai/labs/eddi/configs/workflows/IRestWorkflowStore.java
  • src/main/java/ai/labs/eddi/engine/a2a/RestA2AEndpoint.java
  • src/main/java/ai/labs/eddi/engine/api/ILogoutEndpoint.java
  • src/main/java/ai/labs/eddi/engine/api/IRestAgentAdministration.java
  • src/main/java/ai/labs/eddi/engine/api/IRestAgentEngine.java
  • src/main/java/ai/labs/eddi/engine/api/IRestAgentEngineStreaming.java
  • src/main/java/ai/labs/eddi/engine/api/IRestAgentManagement.java
  • src/main/java/ai/labs/eddi/engine/api/IRestAgentSetup.java
  • src/main/java/ai/labs/eddi/engine/api/IRestCoordinatorAdmin.java
  • src/main/java/ai/labs/eddi/engine/api/IRestGroupConversation.java
  • src/main/java/ai/labs/eddi/engine/api/IRestLogAdmin.java
  • src/main/java/ai/labs/eddi/engine/audit/rest/IRestAuditStore.java
  • src/main/java/ai/labs/eddi/engine/gdpr/IRestGdprAdmin.java
  • src/main/java/ai/labs/eddi/engine/memory/rest/IRestConversationStore.java
  • src/main/java/ai/labs/eddi/engine/memory/rest/RestAttachmentUpload.java
  • src/main/java/ai/labs/eddi/engine/schedule/IRestScheduleStore.java
  • src/main/java/ai/labs/eddi/engine/tenancy/rest/IRestTenantQuota.java
  • src/main/java/ai/labs/eddi/engine/triggermanagement/IRestAgentTriggerStore.java
  • src/main/java/ai/labs/eddi/engine/triggermanagement/IRestUserConversationStore.java
  • src/main/java/ai/labs/eddi/integrations/slack/rest/RestSlackWebhook.java
  • src/main/java/ai/labs/eddi/modules/llm/rest/RestToolHistory.java
  • src/main/java/ai/labs/eddi/modules/nlp/IRestSemanticParser.java
  • src/main/java/ai/labs/eddi/modules/templating/rest/IRestTemplatePreview.java
  • src/main/java/ai/labs/eddi/secrets/rest/IRestSecretStore.java
  • src/main/java/ai/labs/eddi/ui/IRestHtmlChatResource.java
  • src/main/resources/META-INF/branding/style.css
  • src/main/resources/META-INF/resources/assets/cssMode-CRRdssKx.js
  • src/main/resources/META-INF/resources/assets/cssMode-DMPmy9yy.js
  • src/main/resources/META-INF/resources/assets/freemarker2-Dl3FuCzB.js
  • src/main/resources/META-INF/resources/assets/freemarker2-DqDWCtuK.js
  • src/main/resources/META-INF/resources/assets/handlebars-B6GL_0Gw.js
  • src/main/resources/META-INF/resources/assets/handlebars-u8CdY6Y6.js
  • src/main/resources/META-INF/resources/assets/html-CXIKgM1_.js
  • src/main/resources/META-INF/resources/assets/html-z1CojlRt.js
  • src/main/resources/META-INF/resources/assets/htmlMode-CqKL2ox8.js
  • src/main/resources/META-INF/resources/assets/htmlMode-FnQ1MKvn.js
  • src/main/resources/META-INF/resources/assets/index-BFi5BZ7U.js
  • src/main/resources/META-INF/resources/assets/index-CJdl8JdC.css
  • src/main/resources/META-INF/resources/assets/index-Cfhvosw6.js
  • src/main/resources/META-INF/resources/assets/javascript-CmDShlNU.js
  • src/main/resources/META-INF/resources/assets/javascript-SxiXgJ1p.js
  • src/main/resources/META-INF/resources/assets/jsonMode-BrbWbOAE.js
  • src/main/resources/META-INF/resources/assets/jsonMode-D3E7SjOF.js
  • src/main/resources/META-INF/resources/assets/liquid-BU54st6I.js
  • src/main/resources/META-INF/resources/assets/liquid-C_tKVlev.js
  • src/main/resources/META-INF/resources/assets/lspLanguageFeatures-CWMiI3_8.js
  • src/main/resources/META-INF/resources/assets/lspLanguageFeatures-CjZ9t0R-.js
  • src/main/resources/META-INF/resources/assets/mdx-Cjguuzo_.js
  • src/main/resources/META-INF/resources/assets/mdx-CzWNFZ_r.js
  • src/main/resources/META-INF/resources/assets/python-BoyG6M2a.js
  • src/main/resources/META-INF/resources/assets/python-nn_VEFur.js
  • src/main/resources/META-INF/resources/assets/razor-BPd4BWpj.js
  • src/main/resources/META-INF/resources/assets/razor-BRw03YNd.js
  • src/main/resources/META-INF/resources/assets/tsMode-B9PvQzQZ.js
  • src/main/resources/META-INF/resources/assets/tsMode-DcqLl0pR.js
  • src/main/resources/META-INF/resources/assets/typescript-D1IyJ0Mn.js
  • src/main/resources/META-INF/resources/assets/typescript-G7Eu3Ar3.js
  • src/main/resources/META-INF/resources/assets/xml-Dzl_rdxd.js
  • src/main/resources/META-INF/resources/assets/xml-Wsqe13ye.js
  • src/main/resources/META-INF/resources/assets/yaml-BtJQtdrv.js
  • src/main/resources/META-INF/resources/assets/yaml-C5eaV0RI.js
  • src/main/resources/META-INF/resources/manage.html
  • src/main/resources/application.properties
💤 Files with no reviewable changes (32)
  • src/main/resources/META-INF/resources/assets/freemarker2-DqDWCtuK.js
  • src/main/resources/META-INF/resources/assets/handlebars-u8CdY6Y6.js
  • src/main/resources/META-INF/resources/assets/yaml-BtJQtdrv.js
  • src/main/resources/META-INF/resources/assets/htmlMode-FnQ1MKvn.js
  • src/main/resources/META-INF/resources/assets/freemarker2-Dl3FuCzB.js
  • src/main/resources/META-INF/resources/assets/mdx-CzWNFZ_r.js
  • src/main/resources/META-INF/resources/assets/lspLanguageFeatures-CjZ9t0R-.js
  • src/main/resources/META-INF/resources/assets/python-nn_VEFur.js
  • src/main/resources/META-INF/resources/assets/jsonMode-BrbWbOAE.js
  • src/main/resources/META-INF/resources/assets/python-BoyG6M2a.js
  • src/main/resources/META-INF/resources/assets/razor-BRw03YNd.js
  • src/main/resources/META-INF/resources/assets/yaml-C5eaV0RI.js
  • src/main/resources/META-INF/resources/assets/typescript-D1IyJ0Mn.js
  • src/main/resources/META-INF/resources/assets/liquid-C_tKVlev.js
  • src/main/resources/META-INF/resources/assets/liquid-BU54st6I.js
  • src/main/resources/META-INF/resources/assets/javascript-CmDShlNU.js
  • src/main/resources/META-INF/resources/assets/html-CXIKgM1_.js
  • src/main/resources/META-INF/resources/assets/handlebars-B6GL_0Gw.js
  • src/main/resources/META-INF/resources/assets/javascript-SxiXgJ1p.js
  • src/main/resources/META-INF/resources/assets/typescript-G7Eu3Ar3.js
  • src/main/resources/META-INF/resources/assets/mdx-Cjguuzo_.js
  • src/main/resources/META-INF/resources/assets/tsMode-B9PvQzQZ.js
  • src/main/resources/META-INF/resources/assets/htmlMode-CqKL2ox8.js
  • src/main/resources/META-INF/resources/assets/html-z1CojlRt.js
  • src/main/resources/META-INF/resources/assets/cssMode-DMPmy9yy.js
  • src/main/resources/META-INF/resources/assets/cssMode-CRRdssKx.js
  • src/main/resources/META-INF/resources/assets/razor-BPd4BWpj.js
  • src/main/resources/META-INF/resources/assets/jsonMode-D3E7SjOF.js
  • src/main/resources/META-INF/resources/assets/xml-Dzl_rdxd.js
  • src/main/resources/META-INF/resources/assets/tsMode-DcqLl0pR.js
  • src/main/resources/META-INF/resources/assets/lspLanguageFeatures-CWMiI3_8.js
  • src/main/resources/META-INF/resources/assets/xml-Wsqe13ye.js

Comment thread docs/changelog.md Outdated
Comment thread docs/changelog.md Outdated
#
###
FROM registry.access.redhat.com/ubi9/openjdk-25-runtime:1.24@sha256:0f4e0418d97fdf5d825b26660f6609ca6760f98ba92a5a31f2208c89270a19d5
FROM registry.access.redhat.com/ubi9/openjdk-25-runtime:1.24@sha256:2aed9f3a5fac4def355ac36d5c59c7a3067857da424adaa9c6929ff71310467e

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify Red Hat UBI9 OpenJDK 25 base image digest and check for CVEs

IMAGE="registry.access.redhat.com/ubi9/openjdk-25-runtime:1.24@sha256:2aed9f3a5fac4def355ac36d5c59c7a3067857da424adaa9c6929ff71310467e"

echo "=== Verifying digest pulls successfully ==="
docker manifest inspect "${IMAGE}" 2>&1 | head -20

echo ""
echo "=== Checking Red Hat security advisories ==="
# Query Red Hat security data API for UBI9 OpenJDK 25
curl -s "https://access.redhat.com/labs/securitydataapi/cve.json?product=Red%20Hat%20Enterprise%20Linux%209&package=openjdk" | \
  jq -r '.[] | select(.severity == "Critical" or .severity == "Important") | "\(.CVE) - \(.severity) - \(.bugzilla_description // "No description")"' | \
  head -10

echo ""
echo "=== GitHub Security Advisories check ==="
gh api graphql -f query='
{
  securityVulnerabilities(first: 5, ecosystem: MAVEN, package: "openjdk") {
    nodes {
      advisory {
        summary
        severity
        publishedAt
      }
      vulnerableVersionRange
    }
  }
}'

Repository: labsai/EDDI

Length of output: 427


🌐 Web query:

UBI9 OpenJDK 25 runtime registry.access.redhat.com ubi9/openjdk-25-runtime:1.24 digest sha256:2aed9f3a5fac4def355ac36d5c59c7a3067857da424adaa9c6929ff71310467e

💡 Result:

The container image registry.access.redhat.com/ubi9/openjdk-25-runtime:1.24 is an official Red Hat Universal Base Image (UBI) 9 runtime image for OpenJDK 25 [1][2][3][4]. Regarding the specific digest you provided (sha256:2aed9f3a5fac4def355ac36d5c59c7a3067857da424adaa9c6929ff71310467e): According to official Red Hat advisory records (such as RHBA-2026:1458), this specific digest does not appear in the lists of confirmed, released container image digests for the ubi9/openjdk-25-runtime image [5]. Official Red Hat container images are periodically updated with new digests as part of regular errata and security patching processes [6][5]. If you are attempting to pull this specific image, it is recommended to verify the tag and digest directly against the Red Hat Ecosystem Catalog to ensure you are using a trusted, supported version [1]. You can inspect the latest digests for this image by using the skopeo or podman command-line tools to query the Red Hat registry [1].

Citations:


🌐 Web query:

Red Hat UBI9 OpenJDK 25 runtime CVE vulnerabilities security advisories

💡 Result:

Red Hat provides official Universal Base Image (UBI) 9 container images for OpenJDK 25, including both full JDK and runtime-only variants [1][2][3][4]. These images are available through the Red Hat Ecosystem Catalog and are maintained as part of Red Hat's containerized middleware portfolio [1][2][5]. Security and bug fix updates for these images are issued through Red Hat's standard advisory channels. Because container images are periodically updated to include the latest patches, users are advised to use the most recent image tags and regularly rebuild their dependent applications [6][7][8]. For security-specific information, Red Hat publishes Security Advisories (RHSA) when vulnerabilities are identified and patched within the OpenJDK packages [9][10]. As of June 2026, recent security updates for OpenJDK 25 have addressed multiple vulnerabilities, including issues related to cryptography, TLS handling, and third-party library dependencies (such as libpng and giflib) [9]. Users should monitor the Red Hat Errata and Security Data pages for their specific environment to track new CVEs and available patches [9][10]. Key resources for tracking and managing these updates include: - Red Hat Ecosystem Catalog: The official source for discovering and pulling verified UBI-based OpenJDK images [1][2]. - Red Hat Errata (RHSA/RHBA): The definitive source for security advisories and bug fixes [6][9]. - Red Hat OpenJDK Container Documentation: Provides configuration details and image metadata [5].

Citations:


🌐 Web query:

registry.access.redhat.com ubi9/openjdk-25-runtime:1.24 Red Hat official image

💡 Result:

The image registry.access.redhat.com/ubi9/openjdk-25-runtime:1.24 is an official Red Hat container image [1]. It is based on the Red Hat Universal Base Image 9 (UBI9) and is designed to provide a runtime environment for Java applications using OpenJDK 25 [1][2]. Key details about this image: - Purpose: It provides a hardened, enterprise-ready environment specifically for running Java applications (fat-jar and flat classpath) [2]. - Base Layer: The image is built upon the Red Hat UBI9 minimal image [2]. - Maintenance: It is part of the Red Hat OpenJDK container images project, with documentation and source code maintained in the Red Hat OpenJDK GitHub repository [2][3][4]. - Usage: The image is widely recognized in ecosystems such as Quarkus, where it serves as a default base image for containerizing Java applications built with OpenJDK 25 or higher [5]. - Versioning: The 1.24 tag refers to the version of the container image build, and it may receive periodic updates to the underlying packages (represented by longer tag suffixes) [2][6]. You can find the official catalog entry and further documentation through the Red Hat Ecosystem Catalog and the dedicated project documentation pages [1][3].

Citations:


The specified digest does not exist in official Red Hat records and must be replaced with a valid digest.

The digest sha256:2aed9f3a5fac4def355ac36d5c59c7a3067857da424adaa9c6929ff71310467e for registry.access.redhat.com/ubi9/openjdk-25-runtime:1.24 does not appear in the confirmed, released container image digests according to Red Hat advisory RHBA-2026:1458. Using an unverified or non-existent digest violates OpenSSF supply-chain compliance. Verify the correct digest by querying the Red Hat Ecosystem Catalog directly with skopeo inspect docker://registry.access.redhat.com/ubi9/openjdk-25-runtime:1.24 and update the FROM directive with the official digest.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/main/docker/Dockerfile` at line 81, The Docker FROM directive uses an
invalid or unverified digest for the UBI9 OpenJDK 25 runtime image that does not
exist in official Red Hat records. Replace the current digest in the FROM
statement (the sha256 hash following the @ symbol) with the correct and verified
digest by querying the Red Hat Ecosystem Catalog using the skopeo inspect
command as specified in the comment. Ensure the final FROM directive contains
the official validated digest from Red Hat's released container image records.

- OpenApiTagSortFilter: removed stale Javadoc referencing numbered prefixes
- RestA2AEndpoint: added method-level @tag for Capability Registry on
  .well-known/capabilities endpoints
- RestToolHistory: added missing @ApplicationScoped CDI annotation
- changelog: rewritten to match actual changes (category-based tags,
  light/dark mode, tag count 40, version 6.1.1, Manager update)
@ginccc ginccc merged commit d72c9c9 into main Jun 23, 2026
36 of 37 checks passed
@ginccc ginccc deleted the feat/swagger-ui-overhaul branch June 23, 2026 13:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants