Apicurio Registry 2.3 发行注记


Red Hat build of Apicurio Registry 2.3

红帽构建的 Apicurio Registry 的新内容

Red Hat build of Apicurio Registry Documentation Team

摘要

描述红帽构建的 Apicurio Registry 产品,并提供本版本中新内容的最新详情。

第 1 章 Apicurio Registry 发行注记

红帽构建的 Apicurio Registry 2.3 作为正式发行版本提供。Apicurio Registry 是标准事件模式和 API 设计的数据存储,基于 Apicurio Registry 开源社区项目。

您可以使用 Apicurio Registry 使用 Web 控制台、REST API、Maven 插件或 Java 客户端来管理和共享数据的结构。例如,客户端应用程序可以在不需要重新部署的情况下动态推送到 Apicurio Registry 或从 Apicurio Registry 中推送或拉取最新的模式更新。您还可以创建可选规则来管理 Apicurio Registry 内容如何随时间发展。这些规则包括内容验证并向后兼容 schema 或 API 版本的兼容性。

1.1. Apicurio Registry 安装选项

您可以使用以下数据存储选项在 OpenShift 上安装 Apicurio Registry:

  • PostgreSQL 数据库
  • Red Hat AMQ Streams

如需了解更多详细信息,请参阅在 OpenShift 中安装和部署 Red Hat build of Apicurio Registry

1.2. apicurio Registry 支持的平台

apicurio Registry 2.3 支持以下平台组件版本:

  • Red Hat OpenShift Container Platform 4.8 - 4.12
  • Red Hat OpenShift Service on AWS
  • Microsoft Azure Red Hat OpenShift
  • PostgreSQL 12 - 15
  • Red Hat AMQ Streams 2.1 - 2.3
  • Red Hat Single Sign-On (RH-SSO) 7.6
  • OpenJDK 11

1.3. Apicurio Registry 新功能

apicurio Registry 2.3 包括以下新功能:

Apicurio Registry 身份验证和授权
  • 扩展基于角色的授权 - 现在,您可以在 Apicurio Registry 中配置基于角色的访问控制的授权,也可以在 RH-SSO 中配置以前。如果在 Apicurio Registry 应用程序中启用了基于角色的访问控制,您可以使用 Web 控制台或 REST API 控制访问。
  • 扩展基于所有者的授权 - 现在,您可以在 artifact-group 级别以及之前的工件级别启用基于所有者的授权选项。
  • 匿名读取访问权限 - 如果启用了匿名读取访问权限选项,未经身份验证的(匿名)用户对所有工件具有只读访问权限。
  • 已验证 的读取访问权限 - 如果启用了经过身份验证的用户,任何经过身份验证的用户都可以对所有工件具有只读访问权限,即使用户尚未被授予任何 Apicurio Registry 角色。
  • HTTP 基本身份验证 - 启用此选项时,用户或客户端应用程序可使用 HTTP 基本身份验证访问 Apicurio Registry。
  • Kafka 存储的自定义 TLS 证书 - 使用 Kafka 存储时,用户现在可以使用自定义 TLS 证书安全地连接到 Kafka。
  • 更改工件所有者 - 管理员或工件所有者可以使用 REST API 或 Web 控制台更改特定模式或 API 工件的所有者。
操作和监控改进
  • 审计日志记录 - 对 Apicurio Registry 数据的任何更改都会导致审计日志条目。
  • Prometheus metrics - 指标以 Prometheus 格式公开,供监控使用。
  • Sentry integration - 可选的与 Sentry 1.x 的集成。
Operator 的改进
  • 自定义环境变量 - 现在您可以在 ApicurioRegistry 自定义资源中设置任意环境变量。这些变量使用 Deployment 资源应用到 Apicurio Registry。
  • 支持 PodDisruptionBudget - 这个资源会被自动创建,以确保最多一个副本不可用。
  • 支持 NetworkPolicy - Apicurio Registry Operator 为端口 8080 创建入口网络策略。
工件引用
工件现在可以引用 Apicurio Registry 中的其他工件。许多支持的构件类型都允许从一个文件引用另一个文件。例如,OpenAPI 文件可能具有一个数据类型,它含有一个引用在另一文件中定义的 JSON 模式的属性。通常,这些引用的语法特定于构件类型。现在,您可以使用 REST API 创建映射,以便将特定于类型的引用解析为在 Apicurio Registry 中注册的工件。
Apicurio Registry 实例的动态全局配置
Apicurio Registry 有许多全局配置选项,它们通常在部署时设置。现在,这些选项的子集也可以在运行时为 Apicurio Registry 实例配置。您可以使用 REST API 或 Web 控制台在运行时管理这些选项。例如,这些选项包括基于所有者的授权、匿名读取访问权限以及经过身份验证的用户。
从 URL 上传工件
现在,您还可以从 URL 上传模式或 API 工件,除了从文件中支持的上传外。您可以使用 Apicurio Registry web 控制台或 REST API 上传。
Web 控制台的改进
  • 导入和导出 Apicurio Registry 数据 - admin 用户现在可以使用 Web 控制台在 .zip 文件中导出所有 Apicurio Registry 数据,并使用 REST API。然后,他们可以将此 .zip 文件导入到不同的 Apicurio Registry 部署中。
  • 完全支持工件属性 - Apicurio Registry 中的工件可以包含用户定义的并可编辑的元数据,如名称、描述、标签(简单关键字列表)和属性(名称/值对)。除了之前所述,除了使用 REST API 外,还增强了 Web 控制台以支持显示和编辑属性。
  • AsyncAPI 工件的文档生成 - AsyncAPI 工件现在支持工件详情页面上的 Documentation 标签页。此选项卡显示由 AsyncAPI 内容生成的人类可读的文档。此功能以前仅适用于 OpenAPI 工件。
  • 用于 显示为 JSON 格式的工件类型(用于 JSON 格式的工件类型)的选项,工件详情页面上的 Content 选项卡现在支持 JSON 和 YAML 格式之间的切换。
REST API 的改进
  • 改进了 /users/me 端点 - Apicurio Registry 核心 REST API 具有一个 /users/me 端点,用于返回有关当前经过身份验证的用户的信息。您可以使用此端点来检查用户分配的角色并确定其功能。
  • 更新了 Confluent Compatibility API 的支持 - Apicurio Registry 现在支持 Confluent Schema Registry API 版本 6。
Apicurio Registry 用户文档和示例

文档库已使用 2.3 版中提供的新功能更新:

开源演示应用程序也已更新:

1.4. Apicurio Registry 弃用的功能

Apicurio Registry 版本 1.x
Apicurio Registry 1.x 在版本 2.0 中已弃用,且不再被支持。如需了解更多详细信息,请参阅 Red Hat Application Services 产品更新和支持政策

1.5. 升级并迁移 Apicurio Registry 部署

您可以在 OpenShift 上自动将 Apicurio Registry 2.0 升级到 Apicurio Registry 2.3。不需要自动从 Apicurio Registry 1.x 升级到 Apicurio Registry 2.x,且需要迁移过程。

1.5.1. 在 OpenShift 上升级 Apicurio Registry 2.0 部署

您可以从 OpenShift 4.9 上的 Apicurio Registry 2.0.3 升级到 OpenShift 4.11 或更高版本上的 Apicurio Registry 2.3.x。您必须升级 Apicurio Registry 和您的 OpenShift 版本,并一次升级一个 OpenShift 次版本。

前提条件

  • 您已在 OpenShift 4.9 上安装了 Apicurio Registry 2.0.3。

流程

  1. 在 OpenShift Container Platform Web 控制台中,单击 Administration,然后单击 Cluster Settings
  2. Channel 字段旁边的铅笔图标,然后选择下一个次 candidate 版本(例如,从 stable-4.9 改为 candidate-4.10)。
  3. Save 然后点 Update,等待升级完成。
  4. 如果 OpenShift 版本小于 4.11,请重复步骤 2 和 3,然后选择 candidate-4.11 或更高版本。
  5. Operators > Installed Operators > Red Hat Integration - Service Registry
  6. 确保 Update 频道 已设置为 2.x
  7. 如果 Update approval 设置为 Automatic,则设置 2.x 频道后,应立即批准和安装升级。
  8. 如果 Update approval 设置为 Manual,点 Install
  9. 等待 Operator 部署并部署了 Apicurio Registry pod。
  10. 验证您的 Apicurio Registry 系统是否正在运行。

其他资源

  • 有关如何在 OpenShift Container Platform Web 控制台中设置 Operator 更新频道的更多详细信息,请参阅 更改 Operator 的更新频道

1.5.2. 在 OpenShift 上迁移 Apicurio Registry 1.1 部署

有关将 Apicurio Registry 1.1 部署迁移到 Apicurio Registry 2.x 的详情,请参阅 迁移红帽构建的 Apicurio Registry 部署

1.6. Apicurio Registry 解决了的问题

Expand
表 1.1. apicurio Registry 在 2.3.0 版本中解决的问题
问题描述

Registry-2394

用于核心 v1 兼容性的 REST API 端点无法通过身份验证正确保护。

Registry-1959

Web 控制台错误地重定向到 HTTP 而不是 HTTPS。

Registry-1926

Apicurio Registry 在上传新的工件时抛出 io.apicurio.registry.registry.storage.ArtifactNotFoundException

Registry-1905

Confluent 兼容性层无法使用 JSON Schema 工件。

Registry-1873

在查询 contentIdFromHash 时,kafkasql registry 存储选项会抛出 Expected one element, but found none 异常。

Registry-1660

Confluent 兼容性层的模式 DTO 并不完全兼容。

Registry-1610

Web 控制台无法正确遵循 disable 角色功能。

Registry-1593

Confluent 兼容性 API v6 不返回工件。

registry- 733

传递 sasl.jaas.config 属性无法使用 JAVA_OPTIONS 环境变量。

Registry-651

Web 控制台显示 修改后的On 日期不一致。

Registry-358

RuleApplicationType.CREATE 的全局兼容性规则执行无法正常工作。

Registry-342

传输的兼容性规则可能会给出假的正状态。

Expand
表 1.2. apicurio Registry 在 2.3.3 版本中解决的问题
问题描述

IPT-858

Avro 兼容性检查不适用于 enum 类型。

registry-3128

添加选项,以使用 Apicurio Registry Maven 插件最小化 Avro。

registry-3121

在一致的兼容性 API 中配置最大主题。

registry-3080

当在 Confluent 兼容性 API 中提供空模式时,抛出异常。

registry-3014

修复了在 Confluent 兼容 API 中处理默认 JSON 值的问题。

registry-2991

在较慢的机器上,kafkasql 存储无法准备好用于现有消息。

registry-2952

修复了 Apicurio Registry 兼容性规则中的版本排序。

registry-2919

支持 registry 导出 API 操作中的 application/json

registry-2913

配置 Apicurio Registry 事件源会给出 HTTP 错误。

registry-2877

protobuf 模式版本上传失败并显示 NullPointerException

1.7. Apicurio Registry 已解决 CVE

Expand
表 1.3. apicurio Registry 在 2.3.x 版本中解决了 CVE 报告的安全漏洞问题
问题描述

IPT-789

CVE-2022-25858 terser:正则表达式的使用会导致 ReDoS。

IPT-788

CVE-2022-37734 graphql-java: DoS by malicious 查询。

IPT-787

CVE-2022-25857 snakeyaml:由于集合缺少嵌套深度限制,DoS。

IPT-764, IPT-763

CVE-2022-31129 目前: DoS 导致的解析算法。

IPT-760

CVE-2022-25647 com.google.code.gson-gson: Deserialization of untrusted data.

IPT-739

CVE-2022-24773 node-forge: Signature validation leniency 检查 DigestInfo 结构。

IPT-738

CVE-2022-24772 node-forge:Signature 验证失败检查尾部的垃圾字节可能会导致签名禁止。

IPT-737

CVE-2022-24771 node-forge: Signature validation leniency 检查 digestAlgorithm 结构可能会导致为gery 签名。

IPT-734

CVE-2022-26520 jdbc-postgresql: Arbitrary 文件写漏洞。

IPT-733

CVE-2022-0536 按重定向:通过 授权标头泄漏来公开 敏感信息。

IPT-732

CVE-2022-0235 node-fetch:向未经授权的 actor 披露敏感信息。

IPT-731

CVE-2022-23647 prismjs: Improperly escaped 输出允许 XSS 漏洞。

IPT-728

CVE-2022-0981 quarkus: Quarkus 中带有 RestEasy Reactive 范围泄漏的特权升级漏洞。

IPT-723

在提供插件类时,CVE-2022-21724 quarkus-jdbc-postgresql-deployment: Unchecked class instantiation。

IPT-705

CVE-2021-22569 protobuf-java:解析二进制数据过程中的 DoS。

IPT-652

CVE-2021-41269 cron-utils: 模板注入导致未经身份验证的远程代码执行漏洞。

IPT-566

CVE-2021-37136 netty-codec: Bzip2Decoder 不允许为解压缩数据设置大小限制。

IPT-564

CVE-2021-37137 netty-codec:Snappy FrameDecoder 不限制块长度,且可能以不必要的方式跳过的块。

1.8. 已知的与 Apicurio Registry 相关的问题

以下已知问题适用于 Apicurio Registry 2.3.3:

Apicurio Registry 内核已知的问题

IPT-814 - Apicurio Registry logout 功能与 RH-SSO 7.6 不兼容

在 RH-SSO 7.6 中,与 logout 端点一起使用的 redirect_uri 参数已弃用。如需了解更多详细信息,请参阅 RH-SSO 7.6 升级指南。由于此弃用,当使用 RH-SSO Operator 保护 Apicurio Registry 时,点击 Logout 按钮会显示 Invalid parameter: redirect_uri 错误。

有关临时解决方案,请参阅 https://access.redhat.com/solutions/6980926

IPT-701 - CVE-2022-23221 H2 允许通过 JNDI 从远程服务器载入自定义类

当 Apicurio Registry 数据存储在 AMQ Streams 中时,H2 数据库控制台允许使用 JDBC URL 执行任意代码。在默认情况下,Apicurio Registry 不会受到攻击,需要进行恶意配置更改。

Apicurio Registry Operator 已知问题

operator-42 - 自动生成 OpenShift 路由可能会使用错误的基本主机值

如果指定了多个 routerCanonicalHostname 值,Apicurio Registry OpenShift 路由的自动生成可能会使用错误的基本主机值。

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部