This is an automated email from the ASF dual-hosted git repository.

lizhimins pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-apis.git


The following commit(s) were added to refs/heads/main by this push:
     new 3e60073  feat: add deployment and lite topic fields to Admin service 
(#116)
3e60073 is described below

commit 3e60073c6dab3430feaec443824802e23ecda681
Author: lizhimins <[email protected]>
AuthorDate: Thu Jul 30 12:05:31 2026 +0800

    feat: add deployment and lite topic fields to Admin service (#116)
    
    Admin control-plane requests could not address an individual deployment 
when a
    single endpoint serves several isolated deployments, and the lite topic
    dimension had no representation at all.
    
    Add an optional deployment_name to the fourteen Admin requests, expose the 
lite
    topic dimension through lite_topic, liteTopic and lite_topic_accumulation, 
and
    add the LITE_SELECTIVE consumption model. Field numbers are assigned so that
    these definitions stay wire compatible with Admin services already deployed
    against these RPCs, which also moves AdminSendMessageRequest.ext_info to 8.
---
 ChangeLog.md                   |   1 +
 apache/rocketmq/v2/admin.proto | 143 +++++++++++++++++++++++++++--------------
 2 files changed, 95 insertions(+), 49 deletions(-)

diff --git a/ChangeLog.md b/ChangeLog.md
index 6156294..337a7c6 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -11,6 +11,7 @@
 9. Enums field number = 0 is redefined to meet requirement [Each enum value 
should end with a semicolon, not a comma. Prefer prefixing enum values instead 
of surrounding them in an enclosing message. The zero value enum should have 
the suffix 
UNSPECIFIED.](https://developers.google.com/protocol-buffers/docs/style)
 10. Nested enumerations are externalized due to the same guide item as above.
 11. Expanded the Admin service with control-plane RPCs for 
topic/subscription/consumer administration and diagnostics 
(DescribeTopicStatus, ListSubscription, DescribeSubscription, 
DeleteSubscription, DescribeGroupAccumulation, ListConsumerConnection, 
ResetGroupOffset, QueryMessage, PrintThreadStackTrace, VerifyMessage, 
AdminSendMessage, GetConsumerRunningInfo, GetTopicRoute, QueryTimeSpan, 
GetProxyRuntimeStats).
+12. Admin control-plane requests carry an optional `deployment_name` to 
address a single deployment in multi-tenant environments, and the lite topic 
dimension is exposed through `lite_topic` / `liteTopic` / 
`lite_topic_accumulation` plus the `LITE_SELECTIVE` consumption model. Admin 
field numbers are assigned so that the definitions stay wire compatible with 
Admin services already deployed against these RPCs.
 
 Remaining Issues:
 How server publishes conf and conf changes to clients.
diff --git a/apache/rocketmq/v2/admin.proto b/apache/rocketmq/v2/admin.proto
index ef15f1a..9a06015 100644
--- a/apache/rocketmq/v2/admin.proto
+++ b/apache/rocketmq/v2/admin.proto
@@ -50,7 +50,10 @@ message ChangeLogLevelResponse {
 
 // Request the status and metadata of a topic.
 message DescribeTopicStatusRequest {
-  Resource topic = 1;
+  // Identifies the target deployment (instance) in multi-tenant environments
+  // where a single endpoint serves several isolated deployments.
+  optional string deployment_name = 1;
+  Resource topic = 2;
 }
 
 message DescribeTopicStatusResponse {
@@ -73,8 +76,10 @@ message DescribeTopicStatusResponse {
 // List subscription relationships filtered by topic and/or group.
 // At least one of the two filters is expected to be set.
 message ListSubscriptionRequest {
-  optional Resource topic = 1;
-  optional Resource group = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  optional Resource topic = 2;
+  optional Resource group = 3;
 }
 
 // A single subscription relationship between a group and a topic.
@@ -107,8 +112,10 @@ message ListSubscriptionResponse {
 // ListSubscription, this returns the subscription reported by each individual
 // client, which helps diagnose inconsistent subscriptions within a group.
 message DescribeSubscriptionRequest {
-  optional Resource topic = 1;
-  optional Resource group = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  optional Resource topic = 2;
+  optional Resource group = 3;
 }
 
 message DescribeSubscriptionResponse {
@@ -124,11 +131,13 @@ message DescribeSubscriptionResponse {
 
 // Delete a subscription relationship between a group and a topic.
 message DeleteSubscriptionRequest {
-  Resource topic = 1;
-  Resource group = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource topic = 2;
+  Resource group = 3;
 
   // The filter expression that identifies the subscription to delete.
-  FilterExpression expression = 3;
+  FilterExpression expression = 4;
 }
 
 message DeleteSubscriptionResponse {
@@ -164,6 +173,10 @@ enum MessageModel {
 
   // Every consumer within the group receives the full stream of messages.
   BROADCASTING = 2;
+
+  // Consumers of the group selectively subscribe to individual lite topics
+  // that are multiplexed onto a shared physical topic.
+  LITE_SELECTIVE = 3;
 }
 
 // A message queue together with the process queue snapshot held by a consumer.
@@ -218,11 +231,16 @@ message ConsumerRunningInfo {
 
 // Query the message accumulation (lag) of a consumer group.
 message DescribeGroupAccumulationRequest {
-  Resource group = 1;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource group = 2;
 
   // Optional set of topics to break the accumulation down by. When empty, the
   // aggregated accumulation of the whole group is returned.
-  repeated Resource topics = 2;
+  repeated Resource topics = 3;
+
+  // Restrict the query to a single lite topic multiplexed onto the topics 
above.
+  optional string lite_topic = 4;
 }
 
 message DescribeGroupAccumulationResponse {
@@ -251,12 +269,17 @@ message DescribeGroupAccumulationResponse {
 
   // Per-topic accumulation, keyed by topic name.
   map<string, GroupAccumulation> topic_accumulation = 3;
+
+  // Per-lite-topic accumulation, keyed by lite topic name.
+  map<string, GroupAccumulation> lite_topic_accumulation = 4;
 }
 
 // Query the time span of messages consumed by a group across its topics.
 message QueryTimeSpanRequest {
-  Resource group = 1;
-  repeated Resource topics = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource group = 2;
+  repeated Resource topics = 3;
 }
 
 message QueryTimeSpanResponse {
@@ -283,10 +306,15 @@ message QueryTimeSpanResponse {
 
 // List the online consumer connections of a group.
 message ListConsumerConnectionRequest {
-  Resource group = 1;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource group = 2;
 
   // Optional topic filter.
-  optional Resource topic = 2;
+  optional Resource topic = 3;
+
+  // Optional lite topic filter, multiplexed onto the topic above.
+  optional string liteTopic = 4;
 }
 
 message ListConsumerConnectionResponse {
@@ -296,11 +324,13 @@ message ListConsumerConnectionResponse {
 
 // Reset the consume offset of a group on a topic to the given timestamp.
 message ResetGroupOffsetRequest {
-  Resource group = 1;
-  Resource topic = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource group = 2;
+  Resource topic = 3;
 
   // Messages stored at or after this timestamp will be re-consumed.
-  google.protobuf.Timestamp reset_timestamp = 3;
+  google.protobuf.Timestamp reset_timestamp = 4;
 }
 
 message ResetGroupOffsetResponse {
@@ -309,32 +339,37 @@ message ResetGroupOffsetResponse {
 
 // Query messages of a topic by id, key or subscription within a time range.
 message ListMessageRequest {
-  Resource topic = 1;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource topic = 2;
 
   // Maximum number of messages to return.
-  int32 max_message_nums = 2;
+  int32 max_message_nums = 3;
 
   // Time range (inclusive begin, inclusive end) to scan.
-  google.protobuf.Timestamp begin_timestamp = 3;
-  google.protobuf.Timestamp end_timestamp = 4;
+  google.protobuf.Timestamp begin_timestamp = 4;
+  google.protobuf.Timestamp end_timestamp = 5;
 
   // The key used to locate messages. Exactly one should be set.
   oneof search_key {
-    string message_id = 5;
-    string message_key = 6;
-    string subscription = 7;
+    string message_id = 6;
+    string message_key = 7;
+    string subscription = 8;
+
+    // Scan every message belonging to the given lite topic.
+    string lite_topic = 14;
   }
 
   // Opaque cursor for scroll-style pagination, echoed from a previous 
response.
-  optional string scroll_id = 8;
+  optional string scroll_id = 9;
 
   // Page-style pagination parameters.
-  optional int32 page_num = 9;
-  optional int32 page_size = 10;
+  optional int32 page_num = 10;
+  optional int32 page_size = 11;
 
   // Restrict the query to a specific broker and queue.
-  optional string broker_name = 11;
-  optional int32 queue_id = 12;
+  optional string broker_name = 12;
+  optional int32 queue_id = 13;
 }
 
 message ListMessageResponse {
@@ -347,8 +382,10 @@ message ListMessageResponse {
 
 // Print the thread stack trace of a specific client, for diagnostics.
 message PrintThreadStackTraceRequest {
-  string client_id = 1;
-  Resource group = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  string client_id = 2;
+  Resource group = 3;
 }
 
 message PrintThreadStackTraceResponse {
@@ -359,10 +396,12 @@ message PrintThreadStackTraceResponse {
 // Ask a specific client to consume the given message once, to verify that the
 // consumer logic works as expected.
 message VerifyMessageRequest {
-  string client_id = 1;
-  Resource group = 2;
-  Resource topic = 3;
-  string message_id = 4;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  string client_id = 2;
+  Resource group = 3;
+  Resource topic = 4;
+  string message_id = 5;
 }
 
 message VerifyMessageResponse {
@@ -372,21 +411,23 @@ message VerifyMessageResponse {
 // Send a message from the admin side, typically used to send a test message
 // from a console.
 message AdminSendMessageRequest {
-  Resource topic = 1;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource topic = 2;
   // Tag, which is optional.
-  optional string tag = 2;
+  optional string tag = 3;
   // Message key
-  optional string key = 3;
+  optional string key = 4;
   // Message body
-  bytes body = 4;
+  bytes body = 5;
   // User-defined properties of the message.
-  map<string, string> user_properties = 5;
+  map<string, string> user_properties = 6;
   // System properties of the message.
-  optional SystemProperties system_properties = 6;
+  optional SystemProperties system_properties = 7;
   // Request-scoped extension information. Unknown entries should be ignored.
   // Known keys:
   // - protocol_type: Protocol used by the original producer (REMOTING or 
GRPC_V2).
-  map<string, string> ext_info = 7;
+  map<string, string> ext_info = 8;
 }
 
 message AdminSendMessageResponse {
@@ -398,8 +439,10 @@ message AdminSendMessageResponse {
 
 // Fetch the aggregated running information of a specific consumer client.
 message GetConsumerRunningInfoRequest {
-  Resource group = 1;
-  string client_id = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource group = 2;
+  string client_id = 3;
 }
 
 message GetConsumerRunningInfoResponse {
@@ -415,17 +458,19 @@ message GetTopicRouteRequest {
     INTERNET = 1;
     INTRANET = 2;
   }
-  Resource topic = 1;
-  NetworkType network_type = 2;
+  // Identifies the target deployment (instance) in multi-tenant environments.
+  optional string deployment_name = 1;
+  Resource topic = 2;
+  NetworkType network_type = 3;
 
   // Protocol type the client speaks, e.g. "grpc" or "remoting".
-  string protocol_type = 3;
+  string protocol_type = 4;
 
   // Whether the request comes from a streaming client.
-  bool stream_request_type = 4;
+  bool stream_request_type = 5;
 
   // Address of the requesting client.
-  string client_address = 5;
+  string client_address = 6;
 }
 
 message GetTopicRouteResponse {

Reply via email to