此内容没有您所选择的语言版本。

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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部