This release adds passwordless Entra ID authentication, better Azure Firewall log parsing, a more polished live viewer experience, and a full Textual setup wizard.
Added
- Entra ID (passwordless) authentication via
DefaultAzureCredential, alongside the existing SAS connection string flow. Huge thanks to @kyjones03 for providing this. - Full Textual setup wizard replacing the old line-based prompts, with a grouped Welcome screen, confirmation dialogs, and a dedicated auth-method screen for choosing between Entra ID and SAS.
- New Event Hub deployment improvements — the wizard can create Event Hub resources, configure Azure Firewall diagnostic settings, and for Entra ID flows attempt to assign the Azure Event Hubs Data Receiver role.
- Auth-rule discovery — when SAS auth is picked, the wizard scans for a reusable Listen auth rule and only offers to create a new one, after explicit confirmation, if none exists.
AZFWFqdnResolveFailureparser — resolution failures are surfaced asAppRulerows with actionResolveFail, including the failed FQDN and error message.- Hide DNS toggle in the filter bar, enabled by default, to suppress noisy
DnsQueryrows - Screenshot binding —
Ctrl+Ssaves an SVG snapshot of the current TUI view. - Visible-row counter in the status bar that activates whenever a filter is in effect; the Skipped counter is hidden when nothing was skipped.
- Styled rule-info segments — Policy » RuleCollectionGroup » RuleCollection » Rule is rendered with progressively stronger styling for easier scanning.
- New default theme and a distinctive color for
DnsQueryrows.
Changed
- Legacy
AzureFirewallDnsProxylog records are now normalized to theDnsQuerycategory so users see a single display name regardless of diagnostic mode. - Viewer extracted into its own
viewer/package with dedicated modules for the app, configuration, streaming, and update checks. - Setup wizard restructured into a dedicated
setup/package with separate modules for screens, Azure operations, services, and utilities. Ctrl+Pis now reserved for Pause/Resume; the built-in command palette binding was removed so the shortcut also works while a filter input is focused.- Build and runtime dependency minimums were updated to the versions required by the new wizard, viewer, and Entra ID support.
Fixed
- DNS proxy
actionvalues now correctly show the DNS response code, such asNOERRORorNXDOMAIN, instead of unrelated trailing query data. - Legacy parser data extraction was reworked for
AzureFirewallNetworkRule,AzureFirewallApplicationRule,AzureFirewallNatRule, andAzureFirewallDnsProxy. - Status-bar
visible_countis now reset when the log table is cleared, avoiding staleEvents (filtered): N/0output. - Screen stack handling is now correct when the streaming worker is cancelled or fails while the Update available dialog is shown above the connecting splash.
- Streaming no longer leaks
DefaultAzureCredentialinstances on exception paths. AsyncioRequestsTransportis used for the Entra ID credential to avoid event-loop conflicts.- Resource Graph response parsing was fixed for the ARM permission check, and receive-permission matching now includes parent-scope role assignments.
- Several UI regressions were fixed, including row sorting, table row handling, auto-scroll behavior, clear-filter behavior, header-row selection, and the update-check naming collision with Textual’s internal
flushmethod.
Download
| Platform | File |
|---|---|
| Linux (x86_64) | az-firewall-watch-linux.tar.gz |
| macOS Apple Silicon | az-firewall-watch-macos.tar.gz |
| Windows | az-firewall-watch.exe |
See the Getting started section of the README for first-run instructions on each platform.
What's Changed
- fix: rename flush method to avoid collision with textual method by @cloudchristoph in #3
- feat: add Entra ID (passwordless) authentication support by @kyjones03 in #1
- Refactor and enhance setup wizard for improved user experience by @cloudchristoph in #4
- Enhance UI features and fix various bugs in log viewer by @cloudchristoph in #5
New Contributors
- @cloudchristoph made their first contribution in #3
- @kyjones03 made their first contribution in #1
Full Changelog: v0.2.1...v0.3.0