Skip to content

Fix nodes missing reserved name/displayname properties (#19)#20

Merged
p0dalirius merged 1 commit into
mainfrom
bugfix-node-name-displayname
Jun 22, 2026
Merged

Fix nodes missing reserved name/displayname properties (#19)#20
p0dalirius merged 1 commit into
mainfrom
bugfix-node-name-displayname

Conversation

@p0dalirius

Copy link
Copy Markdown
Contributor

Linked Issue

Closes #19

Root Cause

BloodHound's OpenGraph schema reserves the lowercase name and displayname properties for a node's label, tooltip, and search index. The collector set a camelCase displayName on the KeyCredential node — which the ingestor treats as an ordinary custom property, not the reserved label — and never set name. Key-material nodes set only KeyType and raw key parameters, so they had no label property at all and rendered unlabeled.

Fix Description

  • KeyCredential node: replace displayName with the reserved lowercase name and displayname, both set to the credential Identifier, falling back to Unknown-<n> when the identifier is empty (mirroring the existing id fallback).
  • Key-material node: after the key-type detection chain, set name and displayname from the already-populated KeyType property, defaulting to Unknown Key Material when no type matched.

The KeyType property and all key parameter properties are left unchanged, so the only behavioral change is the addition of correct label properties.

How Verified

Static: every node now sets a non-empty lowercase name (KeyCredential nodes from Identifier/fallback at the new L62-L69; key-material nodes from KeyType/fallback after the detection chain), so each node has a searchable label. go build ./..., go vet ./..., and gofmt -l parse.go (no output) all pass.

Test Coverage

None: ParseResults consumes *ldap.Entry values populated from a live directory and a parsed msDS-KeyCredentialLink blob; constructing those fixtures is non-trivial and there is no existing test harness in the repo. The change only adds reserved label properties.

Scope of Change

  • Files changed: parse.go
  • Submodule pointer updated: no
  • Behavioral changes outside the bug fix: none

@p0dalirius
p0dalirius merged commit 3632d15 into main Jun 22, 2026
8 checks passed
@p0dalirius
p0dalirius deleted the bugfix-node-name-displayname branch June 22, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Nodes missing reserved name/displayname properties

1 participant