apache / apache/rocketmq-dashboard

[Studio][Feature] Compare ACL policies across instances

Open
#3,136 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.4k
Forks
683
Avg merge
2d 12h
Merged PRs (30d)
62

Description

## Problem

Operators maintain equivalent ACL users and rules across production, staging, and disaster-recovery RocketMQ instances. Studio currently exposes one instance at a time, so policy reviews require manual exports and carry a risk of overlooking a missing or divergent grant.

## Proposed behavior

Add a read-only ACL comparison workflow that:

- loads complete paginated user and rule inventories from two instances;
- classifies policies as matching, drifted, source-only, or target-only;
- compares user administration, cluster association, read, and write permissions;
- compares rule actions, decision, and ACL version under a stable principal/resource identity;
- preserves duplicate logical rules instead of collapsing them;
- supports kind/status/search filters and filtered CSV export.

## Sensitive-data boundary

The comparison must never call credential reveal endpoints. Secret keys, masked secrets, access-key display variants, database ids, and creation timestamps are excluded from comparisons and exports.

## Acceptance criteria

1. Inventory walks are bounded and include every page.
2. Source and target can be swapped without stale results.
3. User and rule drift has field-level evidence.
4. CSV export follows active filters and contains no secret material.
5. Chinese and English UI text and focused regression tests are included.

## Scope

This feature is observational and does not create, update, delete, or synchronize ACL policies.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the Studio ACL user and rule inventory entry points, the instance-switching state, and the CSV export flow. Trace how pagination, filters, and source/target changes are handled before checking existing focused tests. Done means read-only field-level drift comparison, filtered secret-free export, Chinese and English text, and regression coverage for the acceptance criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, frontend, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.