Skip to content

docs: 3.3.x upgrade notes for the three deduplication identity changes - #15761

Merged
devGregA merged 2 commits into
devfrom
docs/3.3-identity-upgrade-notes
Aug 22, 2026
Merged

docs: 3.3.x upgrade notes for the three deduplication identity changes#15761
devGregA merged 2 commits into
devfrom
docs/3.3-identity-upgrade-notes

Conversation

@devGregA

Copy link
Copy Markdown
Contributor

The 3.3 upgrade page currently says "no special instructions". This release changes the stored identity of three scan types, so that is wrong three times over.

Xeol Parser, Checkmarx One Scan and Checkmarx Scan detailed all gain HASHCODE_FIELDS_PER_SCANNER registrations in 3.3.0. Findings imported before the upgrade therefore carry a hash_code that no longer matches what an import computes afterwards, and left alone the next re-import closes them as absent and recreates them, detaching false positive history and risk acceptances.

The page now follows the shape the 3.2 notes established:

  • A table of the three scan types, the new field lists, and why each moved.
  • The ledger path: instances with the identity signature ledger enabled (the default from Pro 3.2.300) need no action, with one caveat spelled out: a large never-backfilled instance should run identity_signatures_backfill before upgrading, because a rehash replaces the identities the backfill exists to record.
  • The manual path: the three manage.py dedupe --parser '...' --hash_code_only commands, in the same form the 2.4x and 3.2 notes use (and the command name is dedupe, matching the correction merged in docs: fix the dedupe management command in three upgrade notes #15662).

Installs that never imported these scan types are unaffected, and the page says so.

The 3.3 upgrade page said "no special instructions", which this release makes wrong three
times over: Xeol Parser, Checkmarx One Scan and Checkmarx Scan detailed all gain
HASHCODE_FIELDS_PER_SCANNER registrations, so findings imported before the upgrade carry
hashes that no longer match what an import computes after it.

Follows the shape the 3.2 notes set: what changed and why per scan type, then two paths.
Instances running the identity signature ledger (default from Pro 3.2.300) need no action
because drift detection, the scoped rehash and signature matching bridge the change; the
one caveat spelled out is that a large never-backfilled instance should run the backfill
before upgrading, since a rehash replaces the identities the backfill exists to record.
Everyone else gets the three manage.py dedupe commands in the same form the 2.4x and 3.2
notes use.
@devGregA devGregA added this to the 3.3.0 milestone Aug 22, 2026
@github-actions github-actions Bot added the docs label Aug 22, 2026
The Pro section overpromised twice. It claimed both ledger flags default on in 3.2.300,
and matching is deliberately opt-in. It also claimed the definition change is repaired
automatically, but identity_drift_watch notifies and stops there; the repair is the
operator accepting the change or running the same dedupe commands everyone else uses.

Rewritten so the Pro path is honest: recording is on by default, the drift watch will
tell you, and the fix is the same three commands or a Tuner acceptance. The
backfill-before-upgrade guidance stays, scoped to instances where matching is enabled,
because that is where the preserved identities are actually consulted.
@devGregA

Copy link
Copy Markdown
Contributor Author

Amended after the default-flip attempt on the Pro side surfaced two inaccuracies in the first cut of this page:

  • identity_signature_matching does not default on in 3.2.300. Only dual-write does. Running the full Pro suite under matching-on failed the affirmative-distinctness suites (disjoint vulnerability ids, untracked version bumps), so matching stays opt-in until the fallback can distinguish an evaluated rejection from an absent identity.
  • The drift watch reports; it does not repair. The rewritten section sends everyone to the same three manage.py dedupe commands, with the Tuner acceptance as the Pro-native equivalent, and keeps the backfill-before-upgrade guidance scoped to instances where matching is actually enabled.

@devGregA
devGregA merged commit 51fa065 into dev Aug 22, 2026
24 checks passed
@devGregA
devGregA deleted the docs/3.3-identity-upgrade-notes branch August 22, 2026 00:42
devGregA added a commit that referenced this pull request Aug 22, 2026
#15761)

* docs: 3.3.x upgrade notes for the three deduplication identity changes

The 3.3 upgrade page said "no special instructions", which this release makes wrong three
times over: Xeol Parser, Checkmarx One Scan and Checkmarx Scan detailed all gain
HASHCODE_FIELDS_PER_SCANNER registrations, so findings imported before the upgrade carry
hashes that no longer match what an import computes after it.

Follows the shape the 3.2 notes set: what changed and why per scan type, then two paths.
Instances running the identity signature ledger (default from Pro 3.2.300) need no action
because drift detection, the scoped rehash and signature matching bridge the change; the
one caveat spelled out is that a large never-backfilled instance should run the backfill
before upgrading, since a rehash replaces the identities the backfill exists to record.
Everyone else gets the three manage.py dedupe commands in the same form the 2.4x and 3.2
notes use.

* docs: the drift watch reports, it does not repair

The Pro section overpromised twice. It claimed both ledger flags default on in 3.2.300,
and matching is deliberately opt-in. It also claimed the definition change is repaired
automatically, but identity_drift_watch notifies and stops there; the repair is the
operator accepting the change or running the same dedupe commands everyone else uses.

Rewritten so the Pro path is honest: recording is on by default, the drift watch will
tell you, and the fix is the same three commands or a Tuner acceptance. The
backfill-before-upgrade guidance stays, scoped to instances where matching is enabled,
because that is where the preserved identities are actually consulted.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants