apache / apache/rocketmq-client-go

[Feature] admin.Admin has no broker ACL management (grant/revoke/list) API

Open
#1,238 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
1.4k
Forks
445
PR merge metrics
No merged PRs in 30d

Description

### Background

As of the latest release **v2.1.2**, the public `admin.Admin` interface exposes only:

```
CreateTopic, DeleteTopic, GetAllSubscriptionGroup,
FetchAllTopicList, FetchPublishMessageQueues, Close
```

There is **no API to manage broker ACLs** (create/update/delete/list `AclConfig` / `PlainAccessConfig`). The one `RegisterACL()` call in the package (`admin.go`, inside `GetAllSubscriptionGroup`) only signs the admin client's *own* outgoing request with ACL credentials — it is client-side authentication, not ACL administration.

### Request

Could a clean, cgo-free ACL admin surface be added to `admin.Admin`, e.g. `CreateAndUpdatePlainAccessConfig` / `DeletePlainAccessConfig` / `GetBrokerClusterAclConfig` (mirroring the Java `MQAdminExt` ACL operations and the broker's `UpdateAclConfig` / `GetBrokerClusterAclConfig` remoting commands)?

### Motivation

The other major Go broker clients already expose ACL administration (Kafka via `kadm`, RabbitMQ via the management API, Pulsar via the admin REST API). A governed multi-broker CLI we maintain ([mqgov-cli](https://github.com/JiangHe12/mqgov-cli)) supports native ACL grant/revoke/list for Kafka, RabbitMQ and Pulsar, but has to lock **RocketMQ ACL as fail-closed `NOT_IMPLEMENTED`** purely because there is no clean cgo-free admin ACL API in this client — we will not hand-roll raw remoting to fake it. A first-class admin ACL API would let downstream tools govern RocketMQ ACLs honestly.

### Environment

- `rocketmq-client-go/v2` v2.1.2

Contributor guide

Open the contributing guide

Research direction

Start in admin.go by reading the public admin.Admin methods and the RegisterACL call inside GetAllSubscriptionGroup. Compare the requested operations with Java MQAdminExt and the broker's UpdateAclConfig and GetBrokerClusterAclConfig remoting commands. Done means a clean, cgo-free API exists for ACL grant, revoke, and list operations.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.