apolloconfig / apollo

Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
https://www.apolloconfig.com
Apache License 2.0
28.95k stars 10.19k forks source link

使用apollo管理参数,对于未发布的参数,apollo提供的获取参数API获取的是未发布值,item数据库表中也没有字段标识该自动是否是未发布的状态。 #5028

Closed xxyush closed 5 months ago

xxyush commented 7 months ago

描述bug

使用apollo管理参数,对于未发布的参数,apollo提供的获取参数AP(http://{_portal_address}/openapi/v1/envs/{env}/apps/{app_id}" /clusters/{cluster}/namespaces/{namespace}/items/{key} ))I获取的是未发布值,item数据库表中也没有字段标识该自动是否是未发布的状态。

复现

通过如下步骤可以复现:

  1. 参数修改未发布
  2. 使用api获取参数值
  3. 查看item数据库中该参数值

期望

我的理解是未发布的值应该是个草稿状态,不能被api读取到,及写入item表中作为最终值,至少需要个标识标出该值的未发布状态

我没有权限查看apollo版本。 截图

如果可以,附上截图来描述你的问题

额外的细节和日志

dosubot[bot] commented 7 months ago

🤖

Hello @xxyush,

I'm Dosu, a bot designed to assist with issues and questions related to the Apollo repository. I'm here to help you while we wait for a human maintainer to join the conversation. I'm glad you've reached out and I'm looking forward to assisting you further!

根据我在Apollo仓库中找到的信息,有两个类似的已解决问题可能与您的问题相关。

  1. openapi 查询 Namespaces,返回的数据是未发布的数据。这个问题的建议解决方案是使用API openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releases/latest 来获取已发布的项目值。

  2. OPEN API, 查询配置后返回的结果中没有发布状态字段, 要怎么做才能获取发布状态?。这个问题的建议解决方案是用户可以使用提供的API来获取配置的发布状态。然而,对于已删除的配置,用户可以获取提交历史记录,就像门户页面所做的那样。这可以通过添加提交open API来完成。用户承认这个解决方案复杂,并希望在未来的更新中,open API可以直接返回发布状态。

此外,Apollo确实有一个特定的API端点可以返回参数的状态(已发布或未发布)。该端点是 "apps/{appId}/namespaces/publish_info"。这个端点用于获取命名空间的发布信息。这个方法是NamespaceAPI类的一部分。它接受两个参数:一个环境(env)和一个应用ID(appId)。它返回一个映射,其中键是参数的名称,值是布尔值,表示参数是否已发布(true)或未发布(false)。

如果您有更多的问题或需要进一步的澄清,请随时提问。

Sources


This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

If you want to continue the conversation, start your reply with @dosu-bot.

nobodyiam commented 7 months ago

🤖

Hello @xxyush,

I'm Dosu, a bot designed to assist with issues and questions related to the Apollo repository. I'm here to help you while we wait for a human maintainer to join the conversation. I'm glad you've reached out and I'm looking forward to assisting you further!

根据我在Apollo仓库中找到的信息,有两个类似的已解决问题可能与您的问题相关。

  1. openapi 查询 Namespaces,返回的数据是未发布的数据。这个问题的建议解决方案是使用API openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releases/latest 来获取已发布的项目值。
  2. OPEN API, 查询配置后返回的结果中没有发布状态字段, 要怎么做才能获取发布状态?。这个问题的建议解决方案是用户可以使用提供的API来获取配置的发布状态。然而,对于已删除的配置,用户可以获取提交历史记录,就像门户页面所做的那样。这可以通过添加提交open API来完成。用户承认这个解决方案复杂,并希望在未来的更新中,open API可以直接返回发布状态。

此外,Apollo确实有一个特定的API端点可以返回参数的状态(已发布或未发布)。该端点是 "apps/{appId}/namespaces/publish_info"。这个端点用于获取命名空间的发布信息。这个方法是NamespaceAPI类的一部分。它接受两个参数:一个环境(env)和一个应用ID(appId)。它返回一个映射,其中键是参数的名称,值是布尔值,表示参数是否已发布(true)或未发布(false)。

如果您有更多的问题或需要进一步的澄清,请随时提问。

Sources

This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

If you want to continue the conversation, start your reply with @dosu-bot.

Great answer!

stale[bot] commented 6 months ago

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.

stale[bot] commented 5 months ago

This issue has been automatically closed because it has not had activity in the last 7 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted". Thank you for your contributions.