Skip to content

← All releases

v0.12.0

0.12.0 — 2026-10-14

Until now, every peek, send and purge on an Azure namespace started by fetching the namespace’s root access key. That fails outright on namespaces with local (key) auth disabled. It needs rights to list keys that many people don’t have, and it hands the most powerful key on the namespace to every read. This release signs you in as yourself instead.

Messaging uses your Entra ID sign-in

  • Your account first. Peek, send, purge, dead-letter-all, complete, bulk resend and the MCP live tools all use your signed-in identity. Access comes from Azure’s Service Bus data roles: Azure Service Bus Data Receiver to read, Data Sender to send, Data Owner for both.
  • Namespaces with local auth disabled work. If you have a data role on them, they behave like any other namespace.
  • Nothing that worked before stops working. If your account has no data role, viewbus falls back to the namespace’s access key and retries once, which is what it always did. You still need permission to list the keys for that.
  • A role granted while viewbus is open gets picked up. If your sign-in is refused, viewbus gets a fresh token and tries again before falling back. Once it has fallen back on a queue, it tries your sign-in again after 15 minutes. No restart needed.

You decide whether the access key is used

  • Settings → General → Security → “Fall back to access keys”, on by default. Turn it off and viewbus never touches the access key. A missing role then shows up as an error that names the exact role to ask your Azure admin for.
  • The queue header says which credential was used. It shows Entra ID or Access key for the last thing you did on that queue or subscription, so you can tell whether a role assignment has taken effect.

Monitoring

  • Stuck-messages alerts keep working. The check that reads the age of the oldest dead letter tries your sign-in first and falls back to the access key on the same terms as messaging.
  • Background checks never use the access key. The duplicate-detection check before a resend uses your sign-in only. Without a role that covers it, it reads “unknown” rather than fetching the key for something you didn’t ask for.

Namespaces you added with a connection string are unchanged and keep using their own key.

All local-first as always. Update via the in-app updater or grab a fresh installer from viewbus.app — your settings, themes, monitored sets, and stored connections carry over untouched.

Download v0.12.0 →