Apicurio Registry 2.3 发行注记
红帽构建的 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 格式之间的切换。
-
导入和导出 Apicurio Registry 数据 - admin 用户现在可以使用 Web 控制台在
- REST API 的改进
-
改进了 /users/me 端点 - Apicurio Registry 核心 REST API 具有一个
/users/me端点,用于返回有关当前经过身份验证的用户的信息。您可以使用此端点来检查用户分配的角色并确定其功能。 - 更新了 Confluent Compatibility API 的支持 - Apicurio Registry 现在支持 Confluent Schema Registry API 版本 6。
-
改进了 /users/me 端点 - Apicurio Registry 核心 REST API 具有一个
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。
流程
- 在 OpenShift Container Platform Web 控制台中,单击 Administration,然后单击 Cluster Settings。
-
点 Channel 字段旁边的铅笔图标,然后选择下一个次
candidate版本(例如,从stable-4.9改为candidate-4.10)。 - 点 Save 然后点 Update,等待升级完成。
-
如果 OpenShift 版本小于 4.11,请重复步骤 2 和 3,然后选择
candidate-4.11或更高版本。 - 点 Operators > Installed Operators > Red Hat Integration - Service Registry。
-
确保 Update 频道 已设置为
2.x。 -
如果 Update approval 设置为 Automatic,则设置
2.x频道后,应立即批准和安装升级。 - 如果 Update approval 设置为 Manual,点 Install。
- 等待 Operator 部署并部署了 Apicurio Registry pod。
- 验证您的 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 解决了的问题 复制链接链接已复制到粘贴板!
| 问题 | 描述 |
|---|---|
| 用于核心 v1 兼容性的 REST API 端点无法通过身份验证正确保护。 | |
| Web 控制台错误地重定向到 HTTP 而不是 HTTPS。 | |
|
Apicurio Registry 在上传新的工件时抛出 | |
| Confluent 兼容性层无法使用 JSON Schema 工件。 | |
|
在查询 | |
| Confluent 兼容性层的模式 DTO 并不完全兼容。 | |
| Web 控制台无法正确遵循 disable 角色功能。 | |
| Confluent 兼容性 API v6 不返回工件。 | |
|
传递 | |
|
Web 控制台显示 | |
|
| |
| 传输的兼容性规则可能会给出假的正状态。 |
| 问题 | 描述 |
|---|---|
|
Avro 兼容性检查不适用于 | |
| 添加选项,以使用 Apicurio Registry Maven 插件最小化 Avro。 | |
| 在一致的兼容性 API 中配置最大主题。 | |
| 当在 Confluent 兼容性 API 中提供空模式时,抛出异常。 | |
| 修复了在 Confluent 兼容 API 中处理默认 JSON 值的问题。 | |
|
在较慢的机器上, | |
| 修复了 Apicurio Registry 兼容性规则中的版本排序。 | |
|
支持 registry 导出 API 操作中的 | |
| 配置 Apicurio Registry 事件源会给出 HTTP 错误。 | |
|
protobuf 模式版本上传失败并显示 |
1.7. Apicurio Registry 已解决 CVE 复制链接链接已复制到粘贴板!
| 问题 | 描述 |
|---|---|
| CVE-2022-25858 terser:正则表达式的使用会导致 ReDoS。 | |
| CVE-2022-37734 graphql-java: DoS by malicious 查询。 | |
| CVE-2022-25857 snakeyaml:由于集合缺少嵌套深度限制,DoS。 | |
| CVE-2022-31129 目前: DoS 导致的解析算法。 | |
| CVE-2022-25647 com.google.code.gson-gson: Deserialization of untrusted data. | |
|
CVE-2022-24773 node-forge: Signature validation leniency 检查 | |
| CVE-2022-24772 node-forge:Signature 验证失败检查尾部的垃圾字节可能会导致签名禁止。 | |
|
CVE-2022-24771 node-forge: Signature validation leniency 检查 | |
| CVE-2022-26520 jdbc-postgresql: Arbitrary 文件写漏洞。 | |
|
CVE-2022-0536 按重定向:通过 | |
| CVE-2022-0235 node-fetch:向未经授权的 actor 披露敏感信息。 | |
| CVE-2022-23647 prismjs: Improperly escaped 输出允许 XSS 漏洞。 | |
| CVE-2022-0981 quarkus: Quarkus 中带有 RestEasy Reactive 范围泄漏的特权升级漏洞。 | |
| 在提供插件类时,CVE-2022-21724 quarkus-jdbc-postgresql-deployment: Unchecked class instantiation。 | |
| CVE-2021-22569 protobuf-java:解析二进制数据过程中的 DoS。 | |
| CVE-2021-41269 cron-utils: 模板注入导致未经身份验证的远程代码执行漏洞。 | |
|
CVE-2021-37136 netty-codec: | |
|
CVE-2021-37137 netty-codec:Snappy |
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 路由的自动生成可能会使用错误的基本主机值。