이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 9. User interface changes


Apicurio Registry 3.x introduces a significant architectural change to the user interface. You deploy the UI as a separate container, providing more deployment flexibility but requiring additional configuration considerations during migration.

Separate UI container

In Apicurio Registry 2.6, the UI is built into the main apicurio-registry container as a single monolithic application. Apicurio Registry 3.x separates the UI into its own container:

Registry 2.x architecture:

┌─────────────────────────────┐
│  apicurio-registry-sql:2.x  │
│  ┌───────────┬────────────┐ │
│  │    UI     │    API     │ │
│  └───────────┴────────────┘ │
└─────────────────────────────┘
Copy to Clipboard Toggle word wrap

Registry 3.x architecture:

┌────────────────────┐    ┌────────────────────┐
│ apicurio-registry  │    │ apicurio-registry  │
│       -ui:3.x      │    │       :3.x         │
│                    │    │                    │
│   UI (Frontend)    │───▶│   API (Backend)    │
└────────────────────┘    └────────────────────┘
Copy to Clipboard Toggle word wrap

Implications for migration:

  • Two containers to deploy and manage instead of one
  • Additional networking configuration required
  • More flexible deployment options
  • Independent scaling of UI and API components

Choosing deployment options

You have flexibility in how you deploy the UI container in relation to the API container. Choose one of the following options.

Option 1: Separate subdomains

Deploy UI and API to separate subdomains:

# UI accessible at: https://registry-ui.example.com
apicurio-registry-ui:
  image: apicurio/apicurio-registry-ui:3.1.2
  ports:
    - "443:8443"
  environment:
    - REGISTRY_API_URL=https://registry-api.example.com/apis/registry/v3

# API accessible at: https://registry-api.example.com
apicurio-registry:
  image: apicurio/apicurio-registry:3.1.2
  ports:
    - "443:8443"
Copy to Clipboard Toggle word wrap

Benefits: * Clean separation of concerns * Independent DNS configuration * Easier to scale components independently

Option 2: Co-located with reverse proxy

Use a reverse proxy (nginx, HAProxy) to serve both UI and API from the same domain:

# Example: nginx routing configuration
# UI at: https://registry.example.com/ui/
# API at: https://registry.example.com/app/

services:
  apicurio-registry:
    image: apicurio/apicurio-registry:3.1.2
    environment:
      - apicurio.app.context-path=/app/
      - QUARKUS_HTTP_CORS_ORIGINS=*

  apicurio-registry-ui:
    image: apicurio/apicurio-registry-ui:3.1.2
    environment:
      - REGISTRY_CONTEXT_PATH=/ui/
      - REGISTRY_API_URL=/app/apis/registry/v3
      - REGISTRY_DOCS_URL=/ui/docs/
      - REGISTRY_EDITORS_URL=/ui/editors/

  nginx:
    image: nginx
    ports:
      - "443:8443"
    # nginx.conf routes:
    #   /ui/*  apicurio-registry-ui
    #   /app/*  apicurio-registry
Copy to Clipboard Toggle word wrap

Benefits: * Single domain for users * Simpler certificate management * Avoids CORS complexity

Application container configuration (primary)

Configure most UI settings through the application (API) container, not the UI container. The application serves UI configuration to the frontend.

Available UI properties (configured on application container):

Expand
PropertyDescriptionDefault

apicurio.ui.contextPath

Context path of the UI

/

apicurio.ui.navPrefixPath

Navigation prefix for all UI paths

/

apicurio.ui.docsUrl

URL of the documentation component

/docs/

apicurio.ui.editorsUrl

URL of the editors component (Designer)

/editors/

apicurio.ui.auth.oidc.redirect-uri

OAuth2/OIDC redirect URI

/

apicurio.ui.auth.oidc.client-id

OAuth2/OIDC client ID for UI

apicurio-registry-ui

apicurio.ui.auth.oidc.logout-url

OAuth2/OIDC logout URL

f5

apicurio.ui.auth.oidc.scope

OAuth2/OIDC scope

openid profile email

apicurio.ui.features.read-only.enabled

Enable read-only mode for UI

false

apicurio.ui.features.breadcrumbs

Show breadcrumbs in UI

true

apicurio.ui.features.settings

Show Settings tab in UI

true

Example application container configuration:

# UI configuration (on apicurio-registry container)
apicurio.ui.contextPath=/
apicurio.ui.editorsUrl=/editors/
apicurio.ui.auth.oidc.client-id=registry-ui-client
apicurio.ui.auth.oidc.scope=openid profile email
apicurio.ui.features.read-only.enabled=false
Copy to Clipboard Toggle word wrap

UI container configuration (overrides)

The UI container has its own environment variables that override the application configuration, but you typically do not need these.

Common UI container environment variables:

Expand
Environment VariableDescription

REGISTRY_API_URL

Required: URL to the backend API (for example, http://registry-api:8080/apis/registry/v3)

REGISTRY_CONTEXT_PATH

Override for UI context path

REGISTRY_NAV_PREFIX_PATH

Override for navigation prefix path

REGISTRY_DOCS_URL

Override for documentation URL

REGISTRY_EDITORS_URL

Override for editors (Designer) URL

REGISTRY_AUTH_URL

Override for OAuth2/OIDC auth server URL

REGISTRY_AUTH_CLIENT_ID

Override for OAuth2/OIDC client ID

REGISTRY_FEATURE_READ_ONLY

Override for read-only mode (true or false)

Note

The only required UI container property is REGISTRY_API_URL. Configure all other UI settings on the application container using apicurio.ui.* properties.

Using Designer functionality

Apicurio Registry 3.1.0 introduces integrated Designer functionality, replacing the standalone Apicurio Studio project.

What is Designer?

Designer provides visual editing capabilities for OpenAPI and AsyncAPI specifications directly within the Apicurio Registry UI. This functionality previously existed as a separate project (Apicurio Studio) but is now fully integrated into Apicurio Registry.

Key features:

  • Visual editor for OpenAPI 3.x specifications
  • Visual editor for AsyncAPI specifications
  • Draft artifact version state for work-in-progress designs
  • Direct integration with Apicurio Registry storage
  • No separate deployment required

Enabling Designer

Designer functionality requires enabling content mutability for artifact versions:

# Enable Designer functionality
apicurio.rest.mutability.artifact-version-content.enabled=true
Copy to Clipboard Toggle word wrap

When enabled, users with the developer or admin role can:

  • Create draft versions of artifacts
  • Edit draft content using the visual editor
  • Save changes iteratively
  • Finalize drafts to create immutable versions
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동