Skip to content

BP-2432: Extension management intro#208

Open
jeff-matthews wants to merge 9 commits intoopengraph-mvp-integrationfrom
BP-2432-extension-mgmt
Open

BP-2432: Extension management intro#208
jeff-matthews wants to merge 9 commits intoopengraph-mvp-integrationfrom
BP-2432-extension-mgmt

Conversation

@jeff-matthews
Copy link
Contributor

@jeff-matthews jeff-matthews commented Mar 4, 2026

Purpose

This pull request (PR) adds a new page describing OpenGraph extension management concepts. It's limited in scope by design.

It does not include task-based sections yet (register, view, delete, update). I'll add that in a separate PR, but will do so in a generic way so that we can easily link to it from extension-specific docs that are currently in development.

Staging

https://specterops-bp-2432-extension-mgmt.mintlify.app/opengraph/extensions/manage

Summary by CodeRabbit

  • Documentation
    • Updated OpenGraph extension-based data ingestion guide with workflow, key concepts, and prerequisite requirements.
    • Added feature comparison table and visual diagrams for extension management.
    • Improved documentation navigation labels for OpenGraph sections.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 4, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 479ac099-08dd-4012-8004-1b52eba1d0ed

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

Documentation updates reframe OpenGraph schema management to extension-based data ingestion. The manage.mdx file significantly expands with new sections covering concepts, features, prerequisites, and workflow steps. The overview.mdx file updates a card title for consistency.

Changes

Cohort / File(s) Summary
OpenGraph Extension Documentation
docs/opengraph/extensions/manage.mdx
Substantially rewritten from generic schema management overview to specialized extension-based data ingestion guide. Added sections for key concepts, feature comparison table (Community vs Enterprise), supported extensions, workflow, and prerequisite steps. Includes Mermaid diagram and enhanced visual structure.
OpenGraph Overview
docs/opengraph/overview.mdx
Updated card title in Extensions section from "Schema Management" to "Data Ingestion" for consistency with expanded documentation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested labels

documentation

Suggested reviewers

  • StephenHinck

Poem

🐰 Hop through the docs, a new path appears,
Extensions and ingestion, clear as can be!
From schema to features, the structure takes form,
A rabbit's delight—organized and warm! 🌿✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is vague and does not clearly summarize the main change; 'intro' is overly generic and the title fails to convey that this is specifically about documenting OpenGraph extension-based data ingestion. Consider a more specific title that captures the core change, such as 'Add extension-based data ingestion documentation page' or 'Document OpenGraph extension management concepts and workflow'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch BP-2432-extension-mgmt

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@jeff-matthews
Copy link
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 4, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
docs/opengraph/overview.mdx (1)

10-11: Align the card blurb with the conceptual scope

The new title is conceptual (“Data Ingestion”), but the blurb is still task-forward (“register and manage”). Consider rewording to keep the overview card consistent with this PR’s intro scope.

Proposed copy tweak
-    Learn how to register and manage the structures that shape your OpenGraph data in BloodHound.
+    Learn how extension-based data ingestion works and how extensions shape your OpenGraph data in BloodHound.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/opengraph/overview.mdx` around lines 10 - 11, The card titled "Data
Ingestion" uses task-oriented blurb text; update the Card component's
description (the string child under Card with title="Data Ingestion") to a
conceptual overview that matches the title and PR scope—e.g., focus on the role
and importance of data ingestion in the OpenGraph system rather than
step-by-step actions—so replace the current "Learn how to register and manage
the structures that shape your OpenGraph data in BloodHound." with a concise
conceptual sentence aligned to the overview tone.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/opengraph/extensions/manage.mdx`:
- Line 99: The sentence currently uses “tenant” which is edition-specific;
update the wording in the sentence ("Verify the extension and collector versions
are compatible with each other and with the version of BloodHound running on
your tenant.") to use edition-neutral terminology such as “instance” (or include
both terms like “instance (tenant)”), so replace “tenant” with “instance” or
“instance (tenant)” in the manage.mdx content to make the compatibility guidance
edition-neutral.
- Line 48: Update the wording for the JamfHound description so it uses the
canonical product name “Jamf Pro” instead of “Jamf”: change the sentence that
reads “Ingest data from Jamf and visualize it in BloodHound alongside your other
data sources.” to use “Jamf Pro” (look for the "JamfHound" entry in the
docs/opengraph/extensions/manage.mdx content).

---

Nitpick comments:
In `@docs/opengraph/overview.mdx`:
- Around line 10-11: The card titled "Data Ingestion" uses task-oriented blurb
text; update the Card component's description (the string child under Card with
title="Data Ingestion") to a conceptual overview that matches the title and PR
scope—e.g., focus on the role and importance of data ingestion in the OpenGraph
system rather than step-by-step actions—so replace the current "Learn how to
register and manage the structures that shape your OpenGraph data in
BloodHound." with a concise conceptual sentence aligned to the overview tone.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 53227968-eed9-4151-a25d-779a28f12cb7

📥 Commits

Reviewing files that changed from the base of the PR and between 83626fe and 3b12f74.

📒 Files selected for processing (2)
  • docs/opengraph/extensions/manage.mdx
  • docs/opengraph/overview.mdx

| Pathfinding | <Icon icon="square-check" iconType="solid" color="#22c55e"/> | <Icon icon="square-check" iconType="solid" color="#22c55e"/> |
| Environment filtering | <Icon icon="square-check" iconType="solid" color="#22c55e"/> | <Icon icon="square-check" iconType="solid" color="#22c55e"/> |
| Findings and remediation | <Icon icon="square-xmark" iconType="solid" color="#ef4444"/> | <Icon icon="square-check" iconType="solid" color="#22c55e"/> |
| Custom node icons and colors | <Icon icon="square-check" iconType="solid" color="#22c55e"/> (API-only) | <Icon icon="square-check" iconType="solid" color="#22c55e"/> (schema-defined) |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question for Craig if this is accurate - why would CE only support custom nodes through API, but BHE could intake from schema. We should support schema across both.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jeff-matthews - we should make sure that unique behaviors to BHE are pushed to the bottom of the list. It's odd to have it in the middle.

```mermaid
flowchart LR
subgraph prepare[Install and Configure]
a["Download extension<br/>and collector"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Download from where?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explained further down the page. It seems too nuanced to include in a diagram. Maybe moving that section before the diagram would be more logical.

c-->d["Generate data<br/>payload"]
end

subgraph upload[Upload and Manage]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe these are a series as described by the mermaid graph - they could occur in any order, and are not all required steps.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Importing queries and configuring privilege zones are certainly optional. In an earlier draft I had them marked as such and can go back to that.

While it may be possible to do some things in any order, I thought we might want to provide guidance that follows a logical order to help simplify things for users. In my experience, users typically prefer prescriptive guidance over all possible permutations.

I'll explore alternative diagrams to see if I can still represent this high-level view in a structured way, but perhaps with more flexibility in order of operations.


- **BloodHound Community** users can download extensions and collectors from public GitHub repositories

- **BloodHound Enterprise** customers must contact their Technical Account Manager to obtain Enterprise versions of extensions and collectors
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention that this requires upgrading to the new BloodHound Enterprise license?

prepare-->upload-->use
```

## Before you begin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is your intent to document how to use the extension management in another page? Otherwise this feels like it tells you what you need to do before you can use it, then "Good luck, you're on your own!"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

100%. As mentioned in the PR description, this PR is deliberately scoped to foundational concepts.

I'll explain the mechanics of using the UI in a separate PR.

Copy link
Contributor

@StephenHinck StephenHinck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a bunch of comments for consideration!

@jeff-matthews
Copy link
Contributor Author

Thanks @StephenHinck! 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants