Skip to content

2026.10.8 — 2026-10-02 ​

Added ​

  • Refuse to register brokers that are already registered (77fee4bc)

    A broker is identified by its Artemis node ID, the same however it is reached (a host name or an IP, another port, a trailing slash), and by its management URL in a normal form when it reports none. Registering, or checking the connection for, brokers that any registered cluster already holds is refused with 409 "These brokers are already registered", naming the cluster and the overlapping nodes, and a partial overlap is refused too. The form shows the refusal with a link to the existing cluster and keeps Register disabled.

    A new broker_identity table claims each registration's identities, so two registrations racing for the same brokers end with exactly one cluster; the loser gets the same refusal. Refusals are audited.

  • A plainer registration form without the topology preview (bc930f2d)

    The form is one column: the management URLs, an optional name, the credentials, and the advanced Core and TLS fields. The topology preview, the setup picker and the note about clusters already registered are gone; a passing check says how many nodes it found, and the graph appears on the cluster's Topology page once it is registered.

  • Redesign the topology view (44b4042d)

    Every broker box is a keyboard-operable button with its role, liveness, pair and version in words. The page has a graph and a table view in the URL, a side panel for the chosen node, a reduced-detail grid for large clusters, and loading, failure and empty states in place.

    • A failing topology or health query now shows its error at once instead of a skeleton for the whole retry period.
    • A broker pair now draws every endpoint; a pair with an unreachable primary or a suspected split brain used to drop one box.
    • Fit and zoom controls are shared with the other diagrams.
  • Redesign the SQL console (a35d80d6)

    The console is one split workspace: the query and its cost above, the results below, with the divider remembered per viewer. The cost line says in words how much a query will read before it runs, and an unknown figure is stated as unknown, never as 0. Run and Cancel sit side by side; Mod+. cancels a running query, and Escape still leaves the editor. A query error is marked at its position in the editor (F8 moves to it).

    • Result columns are chosen and ordered in the table's Columns menu, which can now move a column earlier or later. The console's own picker and its stored columns are gone.
    • A live tail batches rows per frame and bounds its paused buffer.
    • Index subscriptions are a table with a typed delete confirmation.
    • A rejected request with no field errors now shows the problem's own title and detail, and its hint as the next step.

Fixed ​

  • Send the demo's JSON orders without an unsupported header (0d0f1b78)

    Every order was refused for its priority header and the refusal was swallowed, so the SQL Console had no bodies to search. A send that fails is now reported.

  • Build the plugin template against 2026.10.5 (5ed62be4)

    The template still targeted 2026.09.73, whose contract this Studio refuses.

  • Fit the graph only once its boxes are measured (c6b1893c)

    The topology drew one frame at the wrong zoom, with boxes over one another, when it opened: it re-fitted the view before the boxes had sizes.

  • Keep Run, Cancel and the cost line in view at any split (1987191c)

    The Query toolbar now sits above the split instead of inside the editor's pane, and the editor's pane never gets smaller than its label, three lines of query, the key hint and the cost line. Before, dragging the separator to the smallest editor scrolled Run and the cost line out of view.

  • Seed roles with permissions Studio accepts (83817a81)

    The demo and QA seeds created roles with permission names that no longer exist and without requiresMfa, so the demo seed stopped at its governance step.

  • Size the freshness word by the words it shows (090eef97)

    It reserved 7ch, narrower than "Polling" and "Offline" in the console's typeface, so the header's end moved when the stream connected. The cell now holds every everyday word invisibly and takes the widest one's width.

  • Hold each loading frame's size through content and failure (9070b7b9)

    Pages whose sections load on their own no longer shift when one lands:

    • a failure keeps the size of the loading frame it replaces (ErrorState and a static table that never had rows);
    • the account's sessions list is a fixed-height region and the two-step section loads and fails at its final size;
    • in the SQL console at 200% zoom the editor keeps its height and the cost line comes last, so an arriving estimate moves nothing.
  • Keep broker claims current and never name a hidden cluster (66c99ad9)

    • A refusal's audit record carries the same message the caller got, so a caller who cannot read the cluster holding the brokers learns nothing of it from the audit trail either.
    • A cluster's claims follow its nodes: discovery, every rediscovery, a changed node ID and a management URL override rewrite them in the same transaction. A claim that no registered node backs any more is released by the next registration instead of refusing it.
    • The refusal says that a cloned or restored broker carries the same node ID, and how to give it its own.
  • Keep a management URL's port 80 or 443 as typed (387c2409)

    The registration form replaced an explicit default port with 8161, because the parsed URL reports no port for the scheme's default, so a broker served on port 80 or 443 could not be registered from the form.

Apache-2.0. Apache ActiveMQ and Apache ActiveMQ Artemis are trademarks of the Apache Software Foundation. Artemis Studio is an independent project, not produced by, endorsed by, or affiliated with the ASF.