> For the complete documentation index, see [llms.txt](https://doc.threatreaper.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.threatreaper.ai/user-guide/connectors-integration-setup.md).

# 🔌 Connectors — Integration Setup

**Menu:** Settings > Connectors (the gear icon at the bottom of the sidebar, then **Connectors**).

A connector is a saved, authenticated link between LockThreat and an external system — a cloud account, a source-code host, an AI model provider, a ticketing system, or a notification channel. Connectors power other modules: AI-Discover needs a cloud connector to scan AWS/Azure/GCP, AI-Probe needs a GitHub connector to scan code, and AI-Firewall/AI-Guard need a model provider connector to route traffic to your LLM.

## 15.1 Before you start — what you'll need

Have the following ready **before** opening the connector dialog, since each save is validated immediately and will reject incomplete or malformed values.

| **Connector type**                                                                                                              | **What you need**                                                                                                                    | **Typical source**                                             |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
| **AWS** (cloud)                                                                                                                 | Access Key ID, Secret Access Key, AWS Region, (optional) Account ID                                                                  | IAM user or role with read-only security/inventory permissions |
| **Azure** (cloud)                                                                                                               | Tenant ID, Client ID (App Registration), Client Secret, Subscription ID — all as GUIDs except the secret                             | Azure Active Directory App Registration                        |
| **GCP** (cloud)                                                                                                                 | Project ID, and either a Service Account JSON key (upload or paste) or a service account email, plus optional Organisation/Folder ID | GCP IAM & Admin > Service Accounts                             |
| **GitHub**                                                                                                                      | A personal access token (starts with `ghp_`, `gho_`, or `ghs_`), optional organisation/username, scan preferences                    | GitHub Developer Settings > Personal Access Tokens             |
| **AI model providers** (OpenAI, Azure OpenAI, Anthropic, Gemini, Mistral, Cohere, Hugging Face, Bedrock, Perplexity, xAI, Meta) | An API key from that provider, a connector name, and the model you want to use                                                       | The provider's own developer/API console                       |
| **Ticketing & ITSM** (Jira, ServiceNow, ManageEngine)                                                                           | Instance URL and an account/API token with ticket-creation rights                                                                    | Your ITSM administrator                                        |
| **Identity & workspace** (Azure AD, Google Workspace)                                                                           | Tenant/domain details and an admin-consented app credential                                                                          | Your identity administrator                                    |
| **Notifications** (Slack, Teams, SMTP, Webhook, Syslog, Splunk)                                                                 | A channel webhook URL, SMTP credentials, or a receiving endpoint URL                                                                 | The target system's integration settings                       |

{% hint style="warning" %}
Use credentials with the **least privilege** needed (read-only/inventory scopes for cloud, a scoped token for GitHub). Never share these credentials outside your organisation, and rotate them if you suspect exposure.
{% endhint %}

## 15.2 Step-by-step: adding a connector

{% stepper %}
{% step %}

### Open Connectors

Open **Settings > Connectors**. The **Connectors** tab shows all available connector types as cards, grouped by category (Cloud, Source Code, AI Models, Ticketing, Identity, Notifications).
{% endstep %}

{% step %}

### Select a connector type

Select the card for the system you want to connect. This opens a setup dialog specific to that provider.
{% endstep %}

{% step %}

### Name the connector

Enter a **Connector Name** and optional **Description** — this is how you'll identify it later when selecting it in a policy, scan or wrapper.
{% endstep %}

{% step %}

### Enter provider credentials

Fill in the required fields for that provider (see 15.1 and the provider notes below). Use the eye icon to reveal masked secret fields before saving, to catch typos.
{% endstep %}

{% step %}

### Save and validate

Select **Save** (some dialogs label this **Test & Save** — they call the provider once to confirm the credentials work before saving).
{% endstep %}

{% step %}

### Confirm the connector is active

On success, the dialog closes and the connector appears in the **Configured Connectors** tab with a status of **Active** and a green check on its card. On failure, an inline error explains what's missing or invalid — fix it and save again.
{% endstep %}

{% step %}

### Use the connector

Go to the module that needs it (AI-Discover scan dialog, AI-Probe Code Scan, AI-Firewall/AI-Guard model selection) and pick the new connector from its dropdown.
{% endstep %}
{% endstepper %}

## 15.3 Provider-specific notes

### AWS Cloud

* **Fields:** Connector Name, Description, AWS Access Key ID, AWS Secret Access Key, AWS Region (defaults to us-east-1), optional AWS Account ID.
* All fields except Account ID are required; the region must be selected from the supported list.

### Azure Cloud

* **Fields:** Connector Name, Tenant ID, Client ID, Client Secret, Subscription ID.
* Tenant ID and Client ID must be valid GUIDs (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx); the dialog validates the format before saving.

### GCP Cloud

* **Fields:** Connector Name, Project ID, Authentication Method (Service Account Key or Service Account Key File), the Service Account JSON (paste or upload), optional Organisation ID / Folder ID.
* The uploaded/pasted JSON must be a valid service-account key (`"type": "service_account"`); the dialog checks this before saving.

### GitHub

* **Fields:** Connector Name, Description, GitHub Token, optional Organisation and Username, scan preferences (private repos, secrets, dependencies), Max Repos (1–1000), Include Archived.
* The token must match GitHub's own format (`ghp_`, `gho_`, or `ghs_` prefix) or the save is rejected.

### AI model providers

OpenAI, Azure OpenAI, Anthropic, Gemini, Mistral, Cohere, Hugging Face, Bedrock, Perplexity, xAI, Meta.

* **Fields:** Connector Name, Description, API Key, and the model you want this connector to use (the dialog lists supported models for that provider, or fetches them live once a valid key is entered).
* Azure OpenAI additionally needs your resource endpoint URL and deployment name.

### Ticketing, identity and notification connectors

Jira, ServiceNow, ManageEngine, Azure AD, Google Workspace, Slack, Teams, SMTP, Webhook, Syslog, Splunk.

Follow the same pattern: Connector Name plus the instance URL / tenant and an account credential or webhook URL for that system. Open the card for exact fields — they mirror what that system's own integration settings page asks for.

## 15.4 Managing existing connectors

* Open the **Configured Connectors** tab to see every connector, its type, status (Active/Inactive) and connected account(s).
* Use the row actions to edit, disable, re-test or delete a connector. Deleting a connector does not delete the external account — it only removes LockThreat's access to it.
* If a connector shows **Inactive** or a scan/integration using it fails, the most common cause is an expired or revoked credential — edit the connector and re-enter it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://doc.threatreaper.ai/user-guide/connectors-integration-setup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
