[Studio] fix: make K8s certificate updates atomic - #579
Open
yx9o wants to merge 43 commits into
Open
Conversation
…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.).
Consolidated service/interaction work (apache#462,apache#468,apache#469,apache#464,apache#470,apache#471,apache#472,apache#488).
…he#465) Consolidated preferences/a11y/config work (apache#465,apache#466,apache#485,apache#486,apache#487,apache#484).
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.
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
force-pushed
the
rocketmq-studio
branch
5 times, most recently
from
July 28, 2026 11:40
b1f151b to
434c2ea
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is the purpose of the change
Fixes #578 .
K8s certificate update and renewal operations mutated the repository-held
object before calling
save. This allowed readers to observe intermediatestate and allowed a failed save to leave changes from a failed request in
memory. This change uses copy-on-write so repository state is replaced only
when
savesucceeds.This complements #556, which validates REST request DTOs; this change protects
service and repository state during valid update and renewal operations.
Brief changelog
saveoperation.