Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,10 @@ If you need help setting up a custom integration, you can create an [issue](http
- [runZero Task Sync](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/task-sync/)
- [Scale Computing](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/scale-computing/)
- [Snipe-IT](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/snipe-it/)
- [Snow License Manager](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/snow_license_manager/)
- [Stairwell](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/stairwell/)
- [Tanium](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/tanium/)
- [Ubiquiti Unifi Network](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/ubiquiti-unifi-network/)
## Export from runZero
- [Audit Log to Webhook](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/audit-events-to-webhook/)
- [runZero Vunerability Workflow](https://github.com/runZeroInc/runzero-custom-integrations/blob/main/vulnerability-workflow/)
Expand Down
16 changes: 14 additions & 2 deletions docs/integrations.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"lastUpdated": "2025-10-29T19:27:39.971854Z",
"totalIntegrations": 25,
"lastUpdated": "2025-11-03T16:33:29.642322Z",
"totalIntegrations": 27,
"integrationDetails": [
{
"name": "Lima Charlie",
Expand Down Expand Up @@ -56,6 +56,12 @@
"readme": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/cortex-xdr/README.md",
"integration": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/cortex-xdr/custom-integration-cortex-xdr.star"
},
{
"name": "Ubiquiti Unifi Network",
"type": "inbound",
"readme": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/ubiquiti-unifi-network/README.md",
"integration": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/ubiquiti-unifi-network/custom-integration-ubiquiti-unifi-network.star"
},
{
"name": "Automox",
"type": "inbound",
Expand Down Expand Up @@ -151,6 +157,12 @@
"type": "inbound",
"readme": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/proxmox/README.md",
"integration": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/proxmox/custom-integration-proxmox.star"
},
{
"name": "Snow License Manager",
"type": "inbound",
"readme": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/snow_license_manager/README.md",
"integration": "https://github.com/runZeroInc/runzero-custom-integrations/blob/main/snow_license_manager/snow.star"
}
]
}
69 changes: 69 additions & 0 deletions snow_license_manager/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Custom Integration: Snow License Manager

## Getting Started

- Clone this repository

```
git clone https://github.com/runZeroInc/runzero-custom-integrations.git
```

## runZero requirements

- Superuser access to the [Custom Integrations configuration](https://console.runzero.com/custom-integrations) in runZero

## Snow License Manager requirements

**License Manager Instance URL** - The domain or IP of the Snow Atlas web server (defined within the starlark script as `SNOW_BASE_URL`)

`Snow customer ID` - Numeric customer ID for asset retrieval. Found in `https://<snow license manager URL>/api/customers/` API endpoint. (defined within the starlark script as `SNOW_CUSTOMER_ID`)

`username` - username for API basic auth (configured in Credentials section of runZero)

`password` - password for API basic auth (configured in Credentials section of runZero)

## Snow License Manager API Docs

NA

## Steps

### Snow License Manager configuration

1. Determine the proper Snow License Manager URL:
- Identify the url for your Snow License Manager instance.
- Assign the URL to `SNOW_BASE_URL` within the starlark script
- Identify the Customer ID to use for asset retrieval
- Assign the Customer ID to `SNOW_CUSTOMER_ID` within the starlark script (multiple scripts can be created to import from different Customer IDs)
2. Create a valid username:password login to be used to authenticate to the API endpoints
- Copy the username; this will be used as the value for `access_key` when creating the Custom Integration credentials in the runZero console (see below)
- Copy the password; this will be used as the value for `access_secret` when creating the Custom Integration credentials in the runZero console (see below)

### runZero configuration

1. (OPTIONAL) - make any neccessary changes to the script to align with your environment.
- Modify API calls as needed to filter assets
- Modify datapoints uploaded to runZero as needed
2. [Create the Credential for the Custom Integration](https://console.runzero.com/credentials)
- Select the type `Custom Integration Script Secrets`
- Both `access_key` and `access_secret` are required
- `access_key` corresponds to the username for the Snow License Manager credentials
- `access_secret` corresponds to the password for the Snow License Manager credentials
3. [Create the Custom Integration](https://console.runzero.com/custom-integrations/new)
- Add a Name and Icon
- Toggle `Enable custom integration script` to input your finalized script
- Click `Validate` to ensure it has valide syntax
- Click `Save` to create the Custom Integration
4. [Create the Custom Integration task](https://console.runzero.com/ingest/custom/)
- Select the Credential and Custom Integration created in steps 2 and 3
- Update the task schedule to recur at the desired timeframes
- Select the Explorer you'd like the Custom Integration to run from
- Click `Save` to kick off the first task


### What's next?

- You will see the task kick off on the [tasks](https://console.runzero.com/tasks) page like any other integration
- The task will update the existing assets with the data pulled from the Custom Integration source
- The task will create new assets for when there are no existing assets that meet merge criteria (hostname, MAC, etc)
- You can search for assets enriched by this custom integration with the runZero search `custom_integration:<INSERT_NAME_HERE>`
1 change: 1 addition & 0 deletions snow_license_manager/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "name": "Snow License Manager", "type": "inbound" }
Loading