Host ID#8246
Open
danielmarbach wants to merge 5 commits intocore-10.2from
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Documents NServiceBus host identifier generation changes related to FIPS environments and prepares users for the planned default switch to XxHash128 in the v11 upgrade guide.
Changes:
- Reworks the FIPS compliance page to use version-gated partials for host ID generation guidance.
- Updates the deterministic GUID workaround snippet from SHA1 to SHA256.
- Adds a v10→v11 upgrade guide section describing the upcoming host identifier algorithm change and the legacy opt-out.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| Snippets/Core/Core_All/Sha256DeterministicHash.cs | Updates the deterministic GUID snippet to use SHA256 and aligns region/class naming with the snippet reference. |
| nservicebus/upgrades/10to11/index.md | Adds guidance about the v11 default host identifier algorithm change and how to preserve legacy IDs. |
| nservicebus/compliance/fips.md | Splits host ID generation guidance into a versioned partial for clearer, version-specific instructions. |
| nservicebus/compliance/fips_host-id-generation_core_[10,).partial.md | Documents the v10.2+ XxHash128 opt-in switch and legacy override context for FIPS scenarios. |
| nservicebus/compliance/fips_host-id-generation_core_[,10).partial.md | Documents the pre-10 workaround using SHA256-based host ID overrides and clarifies the rationale. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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.
Document the new host identifier algorithm and update the FIPS workaround to use a non-cryptographic hash.
NServiceBus.Core.Hosting.UseV2DeterministicGuidAppContext switch introduced in #7723 that opts into XxHash128-based host identifiers, replacing the legacy MD5 approach. Replace the SHA256 workaround with an XxHash128-based approach usingSystem.IO.Hashing, which targets .NET Standard 2.0 and .NET Framework 4.6.2, making it available on all supported platforms. The snippet produces the same GUID as NServiceBus's internalDeterministicGuid.Create(verified by comparison test).Changes
FIPS compliance
## NServiceBussection innservicebus/compliance/fips.mdinto version-gated partials:fips_host-id-generation_core_[,10).partial.md— Documents the legacy MD5 issue and provides an XxHash128-based workaround usingSystem.IO.Hashingfips_host-id-generation_core_[10,).partial.md— Documents the XxHash128 algorithm, the AppContext switch opt-in (code, environment variable, MSBuild), migration warning, and the legacy XxHash128 override approachXxHash128DeterministicGuidthat uses XxHash128 fromSystem.IO.Hashing. SHA256 was replaced because:System.IO.Hashingtargets .NET Standard 2.0 and .NET Framework 4.6.2, so the snippet works on all supported platforms.DeterministicGuid.Createto produce identical GUIDs.[10,)partial: scope it specifically to host identifier generation rather than implying general FIPS compliance.Sha256DeterministicHash.cssnippet.System.IO.Hashingpackage reference toCore_Allsnippet project.