> ## Documentation Index
> Fetch the complete documentation index at: https://bloodhound.specterops.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting Started

> Learn how to get started with the GitHub OpenGraph extension in BloodHound.

export const ConfigurePrivilegeZones = ({source, slug}) => {
  return <>
      <p>
        The {source} extension includes <a href={`/opengraph/extensions/${slug}/privilege-zone-rules`}>specialized queries</a> that you can use to create <a href="/analyze-data/privilege-zones/rules#cypher">Cypher-based</a> Privilege Zone rules. Use these rules to classify high-value {source} assets.
      </p>
    </>;
};

export const CollectUploadData = ({source, openHoundCollectorName, openHoundCollectorUrl, alternateCollectorName, alternateCollectorUrl}) => {
  return <>
      <p>
        There are currently two ways to collect {source} data for this extension:
      </p>

      <ul>
        <li>
          <a href={openHoundCollectorUrl}>{openHoundCollectorName}</a>: The SpecterOps-supported collector for {source}.
        </li>
        <li>
          <a href={alternateCollectorUrl}>{alternateCollectorName}</a>: An alternative collector that can also produce data for the {source} extension.
        </li>
      </ul>

      <Tip>
        Use the {openHoundCollectorName} for the most current documented collection workflow.
      </Tip>
    </>;
};

export const ImportCypherQueries = ({source, slug, environment}) => {
  return <>
      <p>
        The {source} extension includes <a href={`/opengraph/extensions/${slug}/queries`}>Cypher queries</a> to help identify attack paths and misconfigurations in your {source} {environment}. Import the {source} query JSON files into BloodHound using the <a href="/analyze-data/explore/cypher-search#import-and-export">query import workflow</a>.
      </p>

      <p>
        You can then run the imported queries on the <strong>Explore</strong> page.
      </p>

      <Note>
        Cypher queries that reference node or edge kinds not present in the database will fail without the extension schema.
      </Note>
    </>;
};

export const InstallExtension = ({source, environment, schemaUrl}) => {
  return <>
      <p>
        The {source} extension includes a schema that tells BloodHound how to model and analyze data from your {source} {environment}. You must install the extension before you upload data generated by a collector.
      </p>

      <ul>
        <li>
          <strong>BloodHound Community</strong>: Download the latest {source} <a href={schemaUrl} target="_blank" rel="noopener noreferrer">extension definition schema</a> file from the OpenHound GitHub repository and install it on the <a href="/opengraph/extensions/manage">OpenGraph Management</a> page in BloodHound.
        </li>
        <li>
          <strong>BloodHound Enterprise</strong>: Contact your account team to get the enterprise version of the schema installed, including BloodHound Enterprise findings.
        </li>
      </ul>

      <p>
        After the extension is installed, BloodHound is ready to ingest and analyze {source} data.
      </p>
    </>;
};

export const source_1 = "GitHub"

export const environment_0 = "organization"

export const source_0 = "GitHub"

export const otherSources_0 = "Okta"

<img noZoom src="https://mintcdn.com/specterops/tTIczgde9H07oLXf/assets/enterprise-AND-community-edition-pill-tag.svg?fit=max&auto=format&n=tTIczgde9H07oLXf&q=85&s=ad49a576589f4d2a8081df77d07fdf56" alt="Applies to BloodHound Enterprise and CE" width="482" height="45" data-path="assets/enterprise-AND-community-edition-pill-tag.svg" />

## Prerequisites

Full OpenGraph support requires a PostgreSQL graph database and one of the following editions:

* BloodHound Enterprise (uses PostgreSQL by default)
* BloodHound Community v8.0.0+ (requires  changing to a [PostgreSQL database](/get-started/custom-installation#postgresql))

  <Note>
    While many OpenGraph features may work on a Neo4j database, there are functional and performance limitations (see the [OpenGraph FAQ](/opengraph/faq#why-is-it-taking-so-long-to-ingest-opengraph-data)). For full support, migrate to a PostgreSQL database.
  </Note>

## Install the Extension

<InstallExtension source="GitHub" environment="organization" schemaUrl="https://github.com/SpecterOps/openhound-github/blob/main/extension/schema.json" />

### Optional Schemas

If your {source_1} {environment_0} uses SCIM, upload the [bh-scim-extension.json](https://github.com/SpecterOps/bloodhound-scim-extension/blob/main/bh-scim-extension.json) schema as well. This schema provides a shared model for provisioned users and groups across cloud identity providers and applications.

If {source_0} is connected to other BloodHound-supported data sources in your environment, such as {otherSources_0}, upload the corresponding schema too, or contact your Enterprise account team. Doing so ensures those cross-platform relationships are modeled correctly in BloodHound.

## Import Cypher Queries

<ImportCypherQueries source="GitHub" slug="github" environment="organization" />

## Collect and Upload Data

<CollectUploadData source="GitHub" openHoundCollectorName="OpenHound GitHub collector" openHoundCollectorUrl="/openhound/collectors/github/overview" alternateCollectorName="GitHound collector" alternateCollectorUrl="https://github.com/SpecterOps/GitHound" />

## Configure Privilege Zones

<ConfigurePrivilegeZones source="GitHub" slug="github" />

<Note>
  Read the [Tier Zero Classification](/opengraph/extensions/github/tier-zero) page to understand the rationale behind the Tier Zero Privilege Zone rules.
</Note>
