Skip to content

[RIP-2] Add proxy admin online client query API#112

Draft
pilichoumao wants to merge 1 commit into
apache:mainfrom
pilichoumao:rip2-proxy-admin-public-api
Draft

[RIP-2] Add proxy admin online client query API#112
pilichoumao wants to merge 1 commit into
apache:mainfrom
pilichoumao:rip2-proxy-admin-public-api

Conversation

@pilichoumao

@pilichoumao pilichoumao commented Jul 9, 2026

Copy link
Copy Markdown

Summary

This draft proposes the formal protobuf contract for RocketMQ RIP-2 Proxy Admin
M1 online-client query. It adds a standalone ProxyAdminService to
apache/rocketmq/v2/admin.proto with ListClients, DescribeClient,
ListClientsByGroup, and ListClientsByTopic.

The service is separate from MessagingService so the implementation can
isolate admin service registration, port, executors, authentication, and ACL.

Review Checkpoints

M1 Scope

  • PROXY_SCOPE_LOCAL_PROXY and omitted scope are the supported public M1 modes.
  • PROXY_SCOPE_ALL_PROXIES and PROXY_SCOPE_PROXY_ID are reserved but remain
    gated until multi-proxy discovery, authorization, timeout, and pagination
    ownership are accepted.
  • The downstream ACL resource is Admin:proxy.admin.client.

Downstream Verification

Focused: Tests run: 57, Failures: 0, Errors: 0, Skipped: 0
Broad: Tests run: 779, Failures: 0, Errors: 0, Skipped: 0
Package: BUILD SUCCESS

The downstream full release-distribution smoke also reached all four generated
public RPCs on the isolated admin listener, verified live NOT_FOUND and
BAD_REQUEST semantics, and proved service isolation in both directions.
Its authenticated runtime runner additionally exited 0 after checking valid,
unsigned, and bad-signature calls plus LIST/GET ACL separation on
Admin:proxy.admin.client.

Core JaCoCo evidence:

  • service.admin.client instruction 92.93%, branch 86.62%, line 94.41%
  • grpc.v2.admin instruction 92.81%, branch 85.79%, line 94.73%

The 1M-client generated public gRPC deep full-range pagination run measured
P99 0.843 ms under a fixed 4 GiB heap, with zero swaps and no OOM.

Submission guard:

python3 dev/rip2_submission_guard.py --check-remote --check-apis-remote --check-github
RIP-2 submission guard passed.

External Gates

  • The downstream branch currently uses
    org.apache.rocketmq:rocketmq-proto:2.2.0-rip2-SNAPSHOT.
  • Community acceptance and publication as an official artifact are required
    before the implementation can replace the local contest artifact.
  • Dashboard CLIENT-01 joint E2E remains external to these repositories.
  • The fork PR workflows currently conclude action_required; Apache
    maintainer approval is required before hosted checks can start.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant