Skip to content

Use lowercase property names per OpenGraph convention (#27)#28

Merged
p0dalirius merged 1 commit into
mainfrom
bugfix-lowercase-property-names
Jun 22, 2026
Merged

Use lowercase property names per OpenGraph convention (#27)#28
p0dalirius merged 1 commit into
mainfrom
bugfix-lowercase-property-names

Conversation

@p0dalirius

Copy link
Copy Markdown
Contributor

Linked Issue

Closes #27

Note

Convention/interop conformance change, included at the maintainer's explicit request. Property names are case-sensitive in BloodHound; aligning to the schema's lowercase convention makes Cypher queries and the UI reference standard keys.

Root Cause

Node properties were written in PascalCase (Identifier, KeyType, Modulus, …), inconsistent with the BloodHound OpenGraph convention of lowercase property names and with the collector's own already-correct reserved name/displayname properties.

Fix Description

Rename every emitted node property to lowercase, using snake_case for multi-word keys:
identifier, version, source, usage, creation_time, key_hash, key_type, cb_key, count, q, seed, modulus, private_exponent, public, generator, bit_length, cb_modulus, cb_prime1, cb_prime2, cb_public_exp, prime1, prime2, public_exponent, key_size, d, x, y. The GetProperty lookup used to derive the key-material node label was updated in lockstep (KeyTypekey_type), so the name fallback still resolves. Only property keys changed; all property values are unchanged.

How Verified

Static: a sweep of all SetProperty/GetProperty keys shows every key is now lowercase, and the single GetProperty("key_type", …) matches its setter so the key-material name/displayname derivation is preserved. The key-type value strings ("RSA Public Key", etc.) are confirmed unchanged. go build ./..., go vet ./..., go test ./..., and gofmt -l parse.go (no output) all pass.

Test Coverage

Existing: go test ./... (TestCrossCollectorOutputFile) passes. The property-key rename is a literal substitution in ParseResults, whose full execution requires a live LDAP source; no behavior other than key casing changed.

Scope of Change

  • Files changed: parse.go
  • Submodule pointer updated: no
  • Behavioral changes outside the bug fix: none (property values and graph structure unchanged; only property key casing differs)

Notes

The README Cypher examples reference node/edge kinds only, not these properties, so no documentation change was required.

@p0dalirius
p0dalirius merged commit 7319f03 into main Jun 22, 2026
8 checks passed
@p0dalirius
p0dalirius deleted the bugfix-lowercase-property-names branch June 22, 2026 07:43
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.

Node properties use PascalCase instead of the lowercase OpenGraph convention

1 participant