Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ The resources that can be ingested from ServiceNow into Port are listed below.
- `Group` - (`<your-servicenow-url>/api/now/table/sys_user_group`)
- `Service Catalog` - (`<your-servicenow-url>/api/now/table/sc_catalog`)
- `Incident` - (`<your-servicenow-url>/api/now/table/incident`)
- `Vulnerability` - (`<your-servicenow-url>/api/now/table/sn_vul_vulnerable_item`)

:::tip Ingesting extra resources
While the section above only lists three supported resources, Port's ServiceNow integration uses the [ServiceNow Table API](https://developer.servicenow.com/dev.do#!/reference/api/xanadu/rest/c_TableAPI#table-GET) to ingest entities.
Expand Down Expand Up @@ -984,6 +985,129 @@ resources:
createdBy: .sys_created_by
isActive: .active
priority: .priority
- kind: sn_vul_vulnerable_item
selector:
query: 'true'
apiQueryParams:
sysparmDisplayValue: 'true'
sysparmExcludeReferenceLink: 'false'
sysparmFields: 'sys_id,state,first_found,last_found,priority,risk_score,sys_created_on,sys_created_by,sys_updated_on,sys_updated_by,active'
port:
entity:
mappings:
identifier: .sys_id
title: (.number // "Vulnerability " + .sys_id)
blueprint: '"servicenowVulnerability"'
properties:
state: .state
priority: .priority
riskScore: .risk_score
firstFound: .first_found
lastFound: .last_found
createdOn: .sys_created_on
createdBy: .sys_created_by
updatedOn: .sys_updated_on
updatedBy: .sys_updated_by
isActive: .active
```

</details>

### Vulnerability

<details>
<summary>Vulnerability blueprint</summary>

```json showLineNumbers
{
"identifier": "servicenowVulnerability",
"title": "Servicenow Vulnerability",
"icon": "Servicenow",
"schema": {
"properties": {
"state": {
"title": "State",
"type": "string"
},
"priority": {
"title": "Priority",
"type": "string"
},
"riskScore": {
"title": "Risk Score",
"type": "number"
},
"firstFound": {
"title": "First Found",
"type": "string"
},
"lastFound": {
"title": "Last Found",
"type": "string"
},
"createdOn": {
"title": "Created On",
"type": "string"
},
"createdBy": {
"title": "Created By",
"type": "string"
},
"updatedOn": {
"title": "Updated On",
"type": "string"
},
"updatedBy": {
"title": "Updated By",
"type": "string"
},
"isActive": {
"title": "Is Active",
"type": "boolean"
}
},
"required": []
},
"mirrorProperties": {},
"calculationProperties": {},
"aggregationProperties": {},
"relations": {}
}
```

</details>

<details>
<summary>Integration configuration</summary>

```yaml showLineNumbers
createMissingRelatedEntities: true
deleteDependentEntities: true
resources:
- kind: sn_vul_vulnerable_item
selector:
query: "true"
apiQueryParams:
sysparmDisplayValue: 'true'
sysparmExcludeReferenceLink: 'false'
sysparmFields: 'sys_id,state,first_found,last_found,priority,risk_score,sys_created_on,sys_created_by,sys_updated_on,sys_updated_by,active'
port:
entity:
mappings:
identifier: .sys_id
title: (.number // "Vulnerability " + .sys_id)
blueprint: '"servicenowVulnerability"'
properties:
state: .state
priority: .priority
riskScore: .risk_score
firstFound: .first_found
lastFound: .last_found
createdOn: .sys_created_on
createdBy: .sys_created_by
updatedOn: .sys_updated_on
updatedBy: .sys_updated_by
isActive: .active
```

</details>
Expand Down Expand Up @@ -1225,6 +1349,28 @@ Here is an example of the payload structure from ServiceNow:

</details>

<details>
<summary> Vulnerability response data</summary>

```json showLineNumbers
{
"sys_id": "b7ad7e0347b1f650360b3b12d16d434f",
"number": "VIT0010001",
"state": "Under Investigation",
"priority": "2 - High",
"risk_score": "75",
"first_found": "2024-01-15",
"last_found": "2024-12-18",
"sys_created_on": "2025-12-18 06:21:33",
"sys_created_by": "admin",
"sys_updated_on": "2025-12-18 06:21:33",
"sys_updated_by": "admin",
"active": "true"
}
```

</details>

### Mapping Result

The combination of the sample payload and the Ocean configuration generates the following Port entity:
Expand Down Expand Up @@ -1313,6 +1459,38 @@ The combination of the sample payload and the Ocean configuration generates the

</details>

<details>
<summary> Vulnerability entity in Port</summary>

```json showLineNumbers
{
"identifier": "b7ad7e0347b1f650360b3b12d16d434f",
"title": "VIT0010001",
"icon": "ServiceNow",
"blueprint": "servicenowVulnerability",
"team": [],
"properties": {
"state": "Under Investigation",
"priority": "2 - High",
"riskScore": "75",
"firstFound": "2024-01-15",
"lastFound": "2024-12-18",
"createdOn": "2025-12-18 06:21:33",
"createdBy": "admin",
"updatedOn": "2025-12-18 06:21:33",
"updatedBy": "admin",
"isActive": "true"
},
"relations": {},
"createdAt": "2025-12-18T06:21:33.000Z",
"createdBy": "hBx3VFZjqgLPEoQLp7POx5XaoB0cgsxW",
"updatedAt": "2025-12-18T06:21:33.000Z",
"updatedBy": "hBx3VFZjqgLPEoQLp7POx5XaoB0cgsxW"
}
```

</details>

## Relevant Guides

For relevant guides and examples, see the [guides section](https://docs.port.io/guides?tags=ServiceNow).
Expand Down