Skip to content

NimBus v4.2.0

Choose a tag to compare

@akakaule akakaule released this 29 Sep 22:24
· 81 commits to master since this release
8963a18

NimBus 4.2.0 redesigns the Failed page, lets operators choose which actions are audited, and fixes duplicate handling after retries and circuit-breaker settlement.

Highlights

  • Added an Application Insights–style layout to the Failed page: filter pills, one search box, a range brush and an End-to-end transaction details side panel that opens in place of leaving the list.
  • Added an Admin → Audit tab where a site Owner chooses which operator actions are recorded; every type stays on by default, and access-denied attempts and audit-setting changes are always recorded.
  • Improved Metrics: activity and event-type charts are now bar charts, and the "Top failure causes" teaser is removed in favour of the Failed page's By error view. The Failed page now defaults to the last 24 hours.
  • Fixed the inbox running a handler again when the source redelivered an event that a retry, resubmission or deferred replay had already completed.
  • Fixed a circuit opening mid-failure leaving a delivery half-settled, which left the event Failed and its session blocked until an operator resubmitted it.
  • Fixed skips, handoff settlements and duplicates counting as circuit-breaker successes, which could close a half-open circuit without calling the dependency.
  • Fixed the circuit-open reason and the PartialReveal validation error formatting numbers with the host culture.
  • Added a Dynamics 365 Sales and Business Central sample, samples/DynamicsBcDemo.

Compatibility

IEndpointMetadataStore adds GetAuditSettings and SetAuditSettings without default implementations, so custom implementations must add them; the Cosmos DB, SQL Server and in-memory stores already do. SQL Server applies migration 0022_AuditSettings on startup; with VerifyOnly, run it from your pipeline first. Cosmos DB stores the selection in the existing settings container, so no nb infra apply is needed.

Retries and parked copies now carry an optional InboxMessageId application property, and SessionState adds BlockedByMessageId; both are additive, so mixed SDK versions keep working, but endpoints get the duplicate fix only once their SDK packages are upgraded. IMessageContext.GetBlockedByMessageId has a default implementation. HandlerOutcome adds NotDispatched; exhaustive switches over it need a new case. No Service Bus topology change.

This release was validated at commit 8963a18 with the full .NET Release build and 3,438 tests in CI, live Cosmos DB and SQL Server conformance suites with no skipped tests, and Service Bus emulator compatibility checks. The frontend production build and 527 frontend tests passed in a clean checkout of the release commit; no manual Azure or CRM/ERP end-to-end run was performed for this release.

PRs: #169, #170, #171, #172, #173, #174, #175, #176, #177, #178, #179, #180, #181, #183

Commits: v4.1.0...v4.2.0