Skip to content

[Studio] fix: validate Ops toggle requests - #585

Closed
yx9o wants to merge 43 commits into
apache:rocketmq-studiofrom
yx9o:dev-584
Closed

[Studio] fix: validate Ops toggle requests#585
yx9o wants to merge 43 commits into
apache:rocketmq-studiofrom
yx9o:dev-584

Conversation

@yx9o

@yx9o yx9o commented Jul 25, 2026

Copy link
Copy Markdown

What is the purpose of the change

Fixes #584 .

Prevent the Ops toggle endpoints from treating missing boolean values as false and silently disabling VIP Channel or TLS.

Brief changelog

  • Reject missing useVIPChannel and useTLS values with HTTP 400.
  • Prevent invalid requests from invoking the update service.
  • Preserve explicit true and false updates.
  • Add controller regression tests for both endpoints.

btlqql and others added 30 commits July 14, 2026 21:11
…kill (apache#444)

- Add COPY style ./style to server/Dockerfile so Maven checkstyle can
  find style/rmq_checkstyle.xml during docker compose build
- Rewrite pr-review SKILL.md with an 8-stage pipeline checklist,
  Dockerfile pre-flight fix step, and [Studio] title format spec
Add a real Prometheus /api/v1/query_range adapter as the foundation for observability (apache#431): configurable base URL, timeouts, Basic/Bearer auth, error mapping, and tests.
…ent (apache#473)

Add login page with full auth workflow, Auth/AI API modules, Zustand state, and simplified theme management.
Add Ops management page for NameServer address management, VIP channel toggle, and TLS switch.
Add a page to query producer client connections by Topic and Producer Group.
Add alert rule management page: parse/render Prometheus AlertManager YAML rules with search, toggle, and CRUD.
…he#477)

Add SSL/TLS configuration page: SSL toggle, TLS version, KeyStore/TrustStore, client auth mode.
Add Broker Cluster overview page with tab-based NameServer/Broker/Proxy management and cluster stats.
Add consumer group management page.
Add lite topic management page.
Add Proxy management page (address list, status, TPS, memory, CPU, uptime).
Add LLM settings configuration page (provider, apiKey, model, temperature, etc.).
topicService topic API contract, authStore persisted session, vite env config.
Align frontend LoginResponse type with backend LoginVO contract: change flat username/role to nested user.username/admin structure.
Fix Nginx API proxy failure caused by hardcoded DNS resolver by switching to container runtime dynamic resolution.
Migrate hardcoded Chinese UI text to i18n labelKey pattern, add ~280 translation entries (zh+en), fix duplicate key compilation errors.
Fix test assertions to align with backend PageResult contract and current i18n labels.
Move logging/error helper initialization before config validation in deploy.sh to fix err() undefined when REMOTE_HOST is missing.
Add frontend Docker image build to CI workflow to validate Dockerfile/nginx deployment path.
Fix Producer page topic list to read from Studio API new format (data[].name) with backward compatibility for legacy topicList format.
wizcraft_kris and others added 13 commits July 24, 2026 13:43
Fix ConcurrentHashMap NPE when creating data sources with null key by auto-generating UUID in service layer.
Add producer connection query endpoint with topic/producerGroup filtering, returning backward-compatible connectionSet format.
Fix security issue where General Settings endpoint returned API key in plaintext. Replace with apiKeyConfigured boolean flag and support explicit key clearing.
Introduce versioned YAML tool catalog with JSON Schema validation, SHA-256 digest, deep immutability, and two read-only L1 tool handlers (rmq.cluster.list / rmq.capabilities).
Add backend stub endpoints for LiteTopic page: list, session details, TTL extension, quota, and capability check.
Add ops page backend endpoints: NameServer address management, VIP Channel, and TLS switches.
Add proxy address list and add-address endpoints supporting Studio frontend form submission.
Add LLM settings backend endpoints: config read/write, connectivity test, and model listing.
Add alert rules Prometheus YAML export endpoint with default RocketMQ alert template fallback.
Wire ACL management page to backend API, add update endpoints for ACL rules and users with proper validation.
Sort message query results by storeTime in descending order so latest messages appear first.
Add consumer thread stack diagnostics endpoint (GET /api/groups/{name}/instances/{clientId}/stack) with Provider/Stub/Service layering.
@lizhimins
lizhimins force-pushed the rocketmq-studio branch 5 times, most recently from b1f151b to 434c2ea Compare July 28, 2026 11:40
@lizhimins

Copy link
Copy Markdown
Member

Thanks for the fix! The same validation has already landed via #632 (merged first): OpsTlsDTO / OpsVipChannelDTO now use @NotNull Boolean with @Valid on the controller, matching this PR's change exactly (main additionally covers the NameServer endpoints). Closing as already covered — the toggle validation behavior you proposed is live on rocketmq-studio.

@lizhimins lizhimins closed this Jul 29, 2026
@yx9o
yx9o deleted the dev-584 branch August 1, 2026 13:55
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.

8 participants