diff --git a/Kentik/README.md b/Kentik/README.md index b50b8f5..d22e536 100644 --- a/Kentik/README.md +++ b/Kentik/README.md @@ -1,6 +1,6 @@ Kentik is a network observability platform for NetFlow analytics, DDoS detection, and infrastructure monitoring. -This project provides an OpenAPI spec for automating against Kentik's Device and Site APIs via an Integration Model, plus CRUD workflows built on that model. It also retains a set of pre-existing sample-use-case workflows built on the legacy Kentik adapter, demonstrating cross-system orchestration with AWS, ServiceNow, NetBox, and Microsoft Teams. +This project provides an OpenAPI spec for automating against Kentik's Device and Site APIs via an Integration Model, plus a Studio Project of CRUD workflows built on that model. ## Table of Contents @@ -21,17 +21,16 @@ This project provides an OpenAPI spec for automating against Kentik's Device and | Asset | Description | |---|---| | [OpenAPIs/](./OpenAPIs/) | Kentik Device & Site API OpenAPI spec — curated `-latest` plus the two official dated specs it was combined from | -| [Studio Projects/](./Studio%20Projects/) | Itential Platform project containing the Devices/Sites/Site Markets CRUD workflows and the pre-existing sample-use-case workflows | +| [Studio Projects/](./Studio%20Projects/) | Itential Platform project containing the Devices/Sites/Site Markets CRUD workflows | ## Requirements | Requirement | Version | |---|---| | Itential Platform | 6.x | -| `Kentik Device & Site API:latest` Integration Model | Required to run the Devices/Sites/Site Markets folders | -| [Kentik 5.x Adapter](https://gitlab.com/itentialopensource/adapters/adapter-kentick_v5) | Required to run the Create Device/Device Flow Test/Sample Use Cases folders (legacy, unmigrated) | +| `Kentik Device & Site API:latest` Integration Model | Required to run the Studio Project below | -> **Note:** This project does not require Itential Gateway for the Devices/Sites/Site Markets folders. All API calls are made directly from Itential Platform to Kentik's REST API. +> **Note:** This project does not require Itential Gateway. All API calls are made directly from Itential Platform to Kentik's REST API. ## Integration Configuration @@ -72,11 +71,11 @@ The instance's `authentication`/`server` properties should look like this once c ### `kentik_device_site_api-latest.json` -**Important context:** Kentik's legacy v5 REST API — the one the [Kentik 5.x Adapter](https://gitlab.com/itentialopensource/adapters/adapter-kentick_v5) targets — was **deprecated in January 2025**, and no official OpenAPI/Swagger spec was ever published for it. Kentik's current, officially-specified, actively-supported API is v6, based on gRPC with an automatic REST/JSON translation layer (gRPC-gateway). This spec targets v6. +**Important context:** Kentik's legacy v5 REST API was **deprecated in January 2025**, and no official OpenAPI/Swagger spec was ever published for it. Kentik's current, officially-specified, actively-supported API is v6, based on gRPC with an automatic REST/JSON translation layer (gRPC-gateway). This spec targets v6. Combines two official Kentik v6 specs from [`github.com/kentik/api-schema-public`](https://github.com/kentik/api-schema-public) into a single Integration Model: the Device API (`v202504beta2`, 10 operations) and the Site API (`v202509`, 10 operations). Both are already narrow, single-purpose service APIs — every operation is CRUD against devices, sites, or site markets — so all 20 operations are included in full. -Two endpoints used by the legacy adapter (`/api/ui/companySettings`, `/api/ui/devices/non-cloud-status`) are **not** part of this spec — they're undocumented internal UI-backend endpoints (no official spec, no v6 equivalent found), reverse-engineered from browser traffic rather than sourced from any published API. They remain in use only by the legacy `Device Flow Test` and `Device Onboarding` workflows in the Studio Project below. +Two undocumented internal UI-backend endpoints, `/api/ui/companySettings` and `/api/ui/devices/non-cloud-status`, are **not** part of this spec — they have no official spec and no v6 equivalent, and were reverse-engineered from browser traffic rather than sourced from any published API. Operations included, by category: @@ -98,27 +97,23 @@ Full, unmodified official vendor spec for the Kentik Site API, version `v202509` ### Kentik Project +Backed by the **`Kentik Device & Site API:latest`** Integration Model (see [`kentik_device_site_api-latest.json`](./OpenAPIs/kentik_device_site_api-latest.json) above). The project contains **20 workflows** organized into **3 folders**. + #### Folder Structure -| Folder | Workflows | Scope | Backing | -|---|---|---|---| -| Devices | 10 | Device CRUD (list, create, update, delete, get by ID/name, batch ops, labels) | `Kentik Device & Site API:latest` Integration Model | -| Sites | 5 | Site CRUD | `Kentik Device & Site API:latest` Integration Model | -| Site Markets | 5 | Site Market CRUD | `Kentik Device & Site API:latest` Integration Model | -| Create Device | 1 | Create a device (legacy) | Kentik 5.x Adapter | -| Device Flow Test | 2 | Find devices / raw flow-status check via an undocumented internal endpoint (legacy) | Kentik 5.x Adapter | -| Sample Use Cases | 28 | Cross-system reference workflows: AWS security-group remediation, ServiceNow incident/change tickets, NetBox sync, MS Teams notifications, IOS-XE config push via IAG (legacy, unmigrated — see note below) | Kentik 5.x Adapter, plus AWS EC2, ServiceNow, NetBox, and Microsoft Teams adapters | +| Folder | Workflows | Scope | +|---|---|---| +| Devices | 10 | Device CRUD (list, create, update, delete, get by ID/name, batch ops, labels) | +| Sites | 5 | Site CRUD | +| Site Markets | 5 | Site Market CRUD | A few resource names in the Devices folder are prefixed with `Kentik` (`Create Kentik Device`, `Get Kentik Device`, `Update Kentik Device`) to avoid colliding with identically-named workflows already published for other products — workflow names are unique across the whole Itential Platform instance, not scoped per-project. -> **Note on Sample Use Cases:** This folder is a multi-vendor reference solution (Kentik + AWS + ServiceNow + NetBox + Microsoft Teams + IAG device config push), not a Kentik-specific CRUD surface. It's left as-is on the legacy Kentik 5.x Adapter — migrating it would mean rewriting orchestration logic that spans several other products' adapters, well beyond the scope of this pass. It also depends on the two undocumented `/api/ui/` endpoints noted above, which have no v6 equivalent. - #### Dependencies | Dependency | Notes | |---|---| -| `Kentik Device & Site API:latest` Integration Model | Import from [`kentik_device_site_api-latest.json`](./OpenAPIs/kentik_device_site_api-latest.json) before importing the project. Backs the Devices, Sites, and Site Markets folders. | +| `Kentik Device & Site API:latest` Integration Model | Import from [`kentik_device_site_api-latest.json`](./OpenAPIs/kentik_device_site_api-latest.json) before importing the project | | `Kentik` integration instance | Create in **Admin > Integrations** with the connection properties above. Workflows are wired to an integration instance named `Kentik` — update the `adapter_id` value in each workflow task if yours is named differently | -| [Kentik 5.x Adapter](https://gitlab.com/itentialopensource/adapters/adapter-kentick_v5) | Required for the Create Device, Device Flow Test, and Sample Use Cases folders (legacy, unmigrated) | -**Testing status:** the 20 Devices/Sites/Site Markets workflows were created and schema-validated against a running Itential Platform instance, using a placeholder integration instance — no Kentik test account was available for this pass, so none have been executed against a live Kentik account. +**Testing status:** all 20 workflows were created and schema-validated against a running Itential Platform instance, using a placeholder integration instance — no Kentik test account was available for this pass, so none have been executed against a live Kentik account. diff --git a/Kentik/Studio Projects/Kentik.project.json b/Kentik/Studio Projects/Kentik.project.json index a5a2ace..af8aff5 100644 --- a/Kentik/Studio Projects/Kentik.project.json +++ b/Kentik/Studio Projects/Kentik.project.json @@ -1,15678 +1,8 @@ { "_id": "66d032bd21161b4df2717499", "name": "Kentik", - "description": "Kentik Project has assets for Creating Device, Device Flow Test, AWS Blocked Traffic Event, AWS Blocked Traffic Event Reset, Device Onboarding, and Device Onboarding Reset. Also includes Devices, Sites, and Site Markets CRUD workflows backed by the Kentik Device & Site API Integration Model (v6).", + "description": "Kentik project has Devices, Sites, and Site Markets CRUD workflows backed by the Kentik Device & Site API Integration Model (v6).", "components": [ - { - "iid": 0, - "reference": "887f7153-bcb2-429d-bc6d-6297fe87e764", - "type": "workflow", - "folder": "/Sample Use Cases/AWS Blocked Traffic Event", - "document": { - "name": "Create Incident - ServiceNow", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": 624, - "y": 444 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 624, - "y": 936 - } - }, - "12f6": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Verify Incident Creation Successful", - "description": "Verify if incident creation is successful", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "response.number", - "operand_1": { - "variable": "result", - "task": "bb2d" - }, - "operator": "contains", - "operand_2": { - "variable": "INC", - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 624, - "y": 804 - } - }, - "c345": { - "name": "ViewData", - "canvasName": "ViewData", - "summary": "ServiceNow Error", - "description": "Show ServiceNow incident creation error", - "location": "Application", - "app": "WorkFlowEngine", - "displayName": "Tools", - "type": "manual", - "variables": { - "incoming": { - "header": "Create Incident Error", - "message": "Unable to create incident", - "body": "$var.job.serviceNowError", - "variables": {}, - "btn_success": "OK", - "btn_failure": "" - }, - "outgoing": {}, - "error": "", - "decorators": [] - }, - "view": "/workflow_engine/task/ViewData", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 948, - "y": 804 - } - }, - "aab9": { - "name": "merge", - "canvasName": "merge", - "summary": "Build Incident Creation Payload", - "description": "Build incident creation payload", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "data_to_merge": [ - { - "key": "summary", - "value": { - "task": "job", - "variable": "summary", - "editable": true - } - }, - { - "key": "comments", - "value": { - "task": "job", - "variable": "comments", - "editable": true - } - } - ] - }, - "outgoing": { - "merged_object": null - } - }, - "groups": [], - "nodeLocation": { - "x": 624, - "y": 564 - } - }, - "bb2d": { - "name": "createIncident", - "canvasName": "createIncident", - "summary": "Create Incident", - "description": "Create incident in ServiceNow", - "location": "Adapter", - "locationType": "Servicenow", - "app": "Servicenow", - "type": "automatic", - "displayName": "Servicenow", - "variables": { - "incoming": { - "body": "$var.aab9.merged_object", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "$var.job.createdIncident" - }, - "error": "$var.job.serviceNowError", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": 624, - "y": 684 - } - } - }, - "transitions": { - "workflow_start": { - "aab9": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "12f6": { - "c345": { - "type": "standard", - "state": "failure" - }, - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "c345": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "aab9": { - "bb2d": { - "type": "standard", - "state": "success" - } - }, - "bb2d": { - "12f6": { - "type": "standard", - "state": "success" - }, - "c345": { - "type": "standard", - "state": "error" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "summary": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "comments": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - }, - "required": [ - "summary", - "comments", - "adapterId" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "summary": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "comments": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - }, - "serviceNowError": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "createdIncident": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - } - }, - "created": "2022-03-08T15:20:19.874Z", - "createdVersion": "5.40.5-2021.1.52.0", - "created_by": { - "provenance": "CloudAAA", - "username": "noreply@itential.com", - "firstname": "noreply", - "inactive": true - }, - "font_size": 12, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "last_updated": "2025-01-24T11:15:29.200Z", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "preAutomationTime": 0, - "sla": 0, - "type": "automation", - "canvasVersion": 3, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 1, - "reference": "18c9f17c-3c29-49fe-99f3-c9dad7154b86", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "name": "Send Notification - Microsoft - Teams", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": -1200, - "y": 1176 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": -1200, - "y": 1512 - } - }, - "47cf": { - "name": "createNotification", - "canvasName": "createNotification", - "summary": "Create Notification In MS Teams", - "description": "Create a notification in msteams using webhook key", - "location": "Adapter", - "locationType": "Msteams", - "app": "Msteams", - "type": "automatic", - "displayName": "Msteams", - "variables": { - "incoming": { - "text": "$var.job.text", - "title": "$var.job.title", - "webhookKey": "$var.job.webhookKey", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": null - }, - "error": "$var.job.errorMessage", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": -1200, - "y": 1296 - } - }, - "99f2": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Verify Notification Created", - "description": "Verify Notification Created", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "operand_1": { - "task": "47cf", - "variable": "result" - }, - "operand_2": { - "task": "static", - "variable": 1 - }, - "operator": "==", - "query": "response", - "rightQuery": "" - } - ] - } - ] - }, - "outgoing": { - "return_value": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1200, - "y": 1404 - } - }, - "c6b6": { - "name": "delay", - "canvasName": "delay", - "summary": "Wait 10 Seconds For Retry", - "description": "Waiting 10 seconds before retrying to submit to MS Teams.", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "time": 10 - }, - "outgoing": { - "time_in_milliseconds": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1524, - "y": 1404 - } - } - }, - "transitions": { - "4971": {}, - "workflow_start": { - "47cf": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "47cf": { - "99f2": { - "state": "success", - "type": "standard" - } - }, - "99f2": { - "workflow_end": { - "state": "success", - "type": "standard" - }, - "c6b6": { - "type": "standard", - "state": "failure" - } - }, - "c6b6": { - "47cf": { - "state": "success", - "type": "revert" - } - }, - "d30a": {} - }, - "inputSchema": { - "type": "object", - "properties": { - "text": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "title": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "webhookKey": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - }, - "required": [ - "text", - "title", - "webhookKey", - "adapterId" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "text": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "title": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "webhookKey": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - }, - "errorMessage": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - } - }, - "font_size": 12, - "createdVersion": "5.10.4-2020.1.22.0", - "last_updated": "2025-01-24T11:15:29.200Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "type": "automation", - "preAutomationTime": 0, - "sla": 0, - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 2, - "reference": "dd9f3629-d173-41f6-910b-bd688e7e665d", - "type": "workflow", - "folder": "/Sample Use Cases/AWS Blocked Traffic Event - Reset", - "document": { - "name": "AWS Blocked Traffic Event - Reset", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": 780, - "y": 624 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 780, - "y": 1188 - } - }, - "ce19": { - "name": "revokeSecurityGroupIngress", - "canvasName": "revokeSecurityGroupIngress", - "summary": "Revoke Ingress IP", - "description": "Revoke Ingress IP", - "location": "Adapter", - "locationType": "Awsec2", - "app": "Awsec2", - "type": "automatic", - "displayName": "Awsec2", - "variables": { - "incoming": { - "cidrIp": "$var.b2c1.cidrSourceIP", - "fromPort": 80, - "groupId": "$var.a524.return_data", - "groupName": "", - "ipPermissions": "", - "ipProtocol": "tcp", - "sourceSecurityGroupName": "", - "sourceSecurityGroupOwnerId": "", - "toPort": 80, - "dryRun": false, - "adapter_id": "$var.b2c1.awsEC2Adapter" - }, - "outgoing": { - "result": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": 780, - "y": 1068 - } - }, - "3ea2": { - "name": "describeSecurityGroups", - "canvasName": "describeSecurityGroups", - "summary": "Get Security Groups from AWS", - "description": "Get Security Groups from AWS", - "location": "Adapter", - "locationType": "Awsec2", - "app": "Awsec2", - "type": "automatic", - "displayName": "Awsec2", - "variables": { - "incoming": { - "filter": "$var.b2c1.securityGroupSearchData", - "groupId": "", - "groupName": "", - "dryRun": false, - "nextToken": "", - "maxResults": "", - "adapter_id": "$var.b2c1.awsEC2Adapter" - }, - "outgoing": { - "result": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": 780, - "y": 840 - } - }, - "a524": { - "name": "query", - "canvasName": "query", - "summary": "Security Group ID", - "description": "Query SG ID", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response.DescribeSecurityGroupsResponse.securityGroupInfo.item.groupId", - "obj": "$var.3ea2.result" - }, - "outgoing": { - "return_data": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 780, - "y": 960 - } - }, - "b2c1": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Process AWS Blocked Traffic Event - Reset Inputs", - "description": "Process AWS Blocked Traffic Event - Reset Inputs", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "654144da2c883d00f315fdd2", - "variableMap": { - "formData": "$var.job.formData" - }, - "options": "" - }, - "outgoing": { - "cidrSourceIP": null, - "awsEC2Adapter": null, - "securityGroupSearchData": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 780, - "y": 732 - } - } - }, - "transitions": { - "workflow_start": { - "b2c1": { - "state": "success", - "type": "standard" - } - }, - "workflow_end": {}, - "ce19": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "3ea2": { - "a524": { - "type": "standard", - "state": "success" - } - }, - "a524": { - "ce19": { - "type": "standard", - "state": "success" - } - }, - "b2c1": { - "3ea2": { - "state": "success", - "type": "standard" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "formData": { - "type": "object", - "properties": { - "sourceIP": { - "type": "string", - "examples": [ - "10.10.10.10" - ] - }, - "awsEC2Adapter": { - "type": "string", - "examples": [ - "AWS" - ] - }, - "awsSecurityGroup": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - } - }, - "required": [ - "formData" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "formData": { - "type": "object", - "properties": { - "sourceIP": { - "type": "string", - "examples": [ - "10.10.10.10" - ] - }, - "awsEC2Adapter": { - "type": "string", - "examples": [ - "AWS" - ] - }, - "awsSecurityGroup": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - } - } - }, - "type": "automation", - "font_size": 12, - "last_updated": "2025-01-24T11:15:29.201Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.44.64-2022.1.33.0", - "preAutomationTime": 0, - "sla": 0, - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 3, - "reference": "499ad8a1-e9b6-48ec-bc65-6a956afe0a28", - "type": "workflow", - "folder": "/Device Flow Test", - "document": { - "name": "Device Flow Test", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": -564 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": 540 - } - }, - "efe2": { - "name": "genericAdapterRequestNoBasePath", - "canvasName": "genericAdapterRequestNoBasePath", - "summary": "Get Flow Summary", - "description": "Gets flow summary in Kentik", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "uriPath": "/api/ui/devices/non-cloud-status", - "restMethod": "GET", - "queryData": "", - "requestBody": "", - "addlHeaders": "", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": -216 - } - }, - "c4ab": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Evaluate Time Difference", - "description": "Evaluate time difference", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "operand_1": { - "task": "6f53", - "variable": "timeDiff" - }, - "operand_2": { - "task": "static", - "variable": 0 - }, - "operator": ">=", - "query": "milliseconds", - "rightQuery": "" - } - ] - } - ] - }, - "outgoing": { - "return_value": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": 252 - } - }, - "f120": { - "name": "query", - "canvasName": "query", - "summary": "Query Flow Summary", - "description": "Query flow summary to find data for device", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "$var.f1f0.deviceFilter", - "obj": "$var.efe2.result" - }, - "outgoing": { - "return_data": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": -108 - } - }, - "6f53": { - "name": "calculateTimeDiff", - "canvasName": "calculateTimeDiff", - "summary": "Calculate Flow Summary Time Difference", - "description": "Calculate flow summary time difference", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "automatic", - "displayName": "Time", - "variables": { - "incoming": { - "firstTime": "$var.35e4.merged_object", - "secondTime": "$var.job.startTime" - }, - "outgoing": { - "timeDiff": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": 120 - } - }, - "35e4": { - "name": "merge", - "canvasName": "merge", - "summary": "Merge Time and Date Format String", - "description": "Merge time and date format string", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "data_to_merge": [ - { - "key": "time", - "value": { - "task": "f120", - "variable": "return_data" - } - }, - { - "key": "formatString", - "value": { - "task": "static", - "variable": "YYYY-MM-DDTHH:mm:ss.SSSZ" - } - } - ] - }, - "outgoing": { - "merged_object": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": 12 - } - }, - "926b": { - "name": "makeData", - "canvasName": "makeData", - "summary": "Test Result", - "description": "Test Result", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "automatic", - "displayName": "Tools", - "variables": { - "incoming": { - "input": "pass", - "outputType": "string", - "variables": "" - }, - "outgoing": { - "output": "$var.job.testResult" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": 384 - } - }, - "93a8": { - "name": "makeData", - "canvasName": "makeData", - "summary": "Test Result", - "description": "Test Result", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "automatic", - "displayName": "Tools", - "variables": { - "incoming": { - "input": "fail", - "outputType": "string", - "variables": "" - }, - "outgoing": { - "output": "$var.job.testResult" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2676, - "y": 240 - } - }, - "2aa1": { - "name": "findDevices", - "canvasName": "findDevices", - "summary": "Get Kentik Devices", - "description": "Gets all Kentik devices", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": -444 - } - }, - "f1f0": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Find Kentik Device by Name", - "description": "Find Kentik device by name", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "6544148b2c883d00f315fdd3", - "variableMap": { - "kentikDevices": "$var.2aa1.result", - "deviceName": "$var.job.deviceName" - }, - "options": { - "extractOutput": true - } - }, - "outgoing": { - "deviceFilter": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2208, - "y": -336 - } - } - }, - "transitions": { - "workflow_start": { - "2aa1": { - "state": "success", - "type": "standard" - } - }, - "workflow_end": {}, - "efe2": { - "f120": { - "state": "success", - "type": "standard" - } - }, - "c4ab": { - "926b": { - "state": "success", - "type": "standard" - }, - "93a8": { - "type": "standard", - "state": "failure" - } - }, - "f120": { - "35e4": { - "state": "success", - "type": "standard" - } - }, - "6f53": { - "c4ab": { - "state": "success", - "type": "standard" - } - }, - "35e4": { - "6f53": { - "state": "success", - "type": "standard" - } - }, - "926b": { - "workflow_end": { - "state": "success", - "type": "standard" - } - }, - "93a8": { - "workflow_end": { - "state": "success", - "type": "standard" - } - }, - "2aa1": { - "f1f0": { - "state": "success", - "type": "standard" - } - }, - "f1f0": { - "efe2": { - "state": "success", - "type": "standard" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "startTime": { - "title": "timeObject", - "type": "object", - "properties": { - "formatString": { - "title": "formatString", - "type": "string", - "examples": [ - "YYYY-MM-DDTHH:mm:ss.SSSSSSZZ" - ] - }, - "time": { - "title": "timeString", - "type": "string", - "examples": [ - "2019-01-01T14:28:21.886000-0700" - ] - } - } - }, - "deviceName": { - "type": "string", - "examples": [ - "deviceName" - ] - } - }, - "required": [ - "adapterId", - "startTime", - "deviceName" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "startTime": { - "title": "timeObject", - "type": "object", - "properties": { - "formatString": { - "title": "formatString", - "type": "string", - "examples": [ - "YYYY-MM-DDTHH:mm:ss.SSSSSSZZ" - ] - }, - "time": { - "title": "timeString", - "type": "string", - "examples": [ - "2019-01-01T14:28:21.886000-0700" - ] - } - } - }, - "deviceName": { - "type": "string", - "examples": [ - "deviceName" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - }, - "testResult": { - "title": "output", - "type": [ - "array", - "string", - "boolean", - "number", - "object" - ] - } - } - }, - "type": "automation", - "font_size": 12, - "errorHandler": null, - "preAutomationTime": 0, - "sla": 0, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.46.0-2023.1.19.0", - "last_updated": "2025-01-24T11:15:29.202Z", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 4, - "reference": "cbdf0309-f6e6-462b-8c68-e486e67a1881", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding - Reset", - "document": { - "name": "Device Onboarding - Reset", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": -720, - "y": -516 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": -720, - "y": 300 - } - }, - "e202": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Remove Provisioning", - "description": "Remove Provisioning", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Push Configuration to Device - IAG", - "variables": { - "device": { - "task": "8bc3", - "value": "deviceName" - }, - "templateName": { - "task": "static", - "value": "IOS-XE Flow Config - Reset - Kentik - Example" - }, - "templateVariables": { - "task": "static", - "value": { - "test": "test" - } - }, - "autoApprove": { - "task": "static", - "value": "true" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": -720, - "y": -276 - } - }, - "10bc": { - "name": "deleteDevice", - "canvasName": "deleteDevice", - "summary": "Archive Device", - "description": "Archive device in Kentik", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "deviceId": "$var.cd87.return_data", - "adapter_id": "$var.8bc3.kentikAdapter" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -720, - "y": 72 - } - }, - "cd87": { - "name": "query", - "canvasName": "query", - "summary": "Query Device ID", - "description": "Query Device ID", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response.device.id", - "obj": "$var.f0d2.result" - }, - "outgoing": { - "return_data": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -720, - "y": -48 - } - }, - "f0d2": { - "name": "findDevice", - "canvasName": "findDevice", - "summary": "findDevice", - "description": "Returns a device object containing information about an individual device (see About Devices ). * Required fields.", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "deviceId": "$var.8bc3.deviceName", - "adapter_id": "$var.8bc3.kentikAdapter" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -720, - "y": -156 - } - }, - "959a": { - "name": "deleteDevice", - "canvasName": "deleteDevice", - "summary": "Delete Device", - "description": "Delete device in Kentik", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "deviceId": "$var.cd87.return_data", - "adapter_id": "$var.8bc3.kentikAdapter" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -720, - "y": 180 - } - }, - "8bc3": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Process Kentik Device Onboarding Reset Form Inputs", - "description": "Process inputs for Kentik device onboarding reset", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "653fe9a52c883d00f315fdd0", - "variableMap": { - "formData": "$var.job.formData" - }, - "options": { - "extractOutput": false, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "deviceName": null, - "kentikAdapter": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -720, - "y": -396 - } - } - }, - "transitions": { - "workflow_start": { - "8bc3": { - "state": "success", - "type": "standard" - } - }, - "workflow_end": {}, - "e202": { - "f0d2": { - "state": "success", - "type": "standard" - } - }, - "10bc": { - "959a": { - "state": "success", - "type": "standard" - } - }, - "cd87": { - "10bc": { - "state": "success", - "type": "standard" - } - }, - "f0d2": { - "cd87": { - "state": "success", - "type": "standard" - } - }, - "959a": { - "workflow_end": { - "state": "success", - "type": "standard" - } - }, - "8bc3": { - "e202": { - "state": "success", - "type": "standard" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "formData": { - "type": "object", - "properties": { - "deviceName": { - "type": "string", - "examples": [ - "IOS_Device_Name" - ] - }, - "kentikAdapter": { - "type": "string", - "examples": [ - "Kentik v5" - ] - } - }, - "required": [] - } - }, - "required": [ - "formData" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "formData": { - "type": "object", - "properties": { - "deviceName": { - "type": "string", - "examples": [ - "IOS_Device_Name" - ] - }, - "kentikAdapter": { - "type": "string", - "examples": [ - "Kentik v5" - ] - } - }, - "required": [] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - } - } - }, - "type": "automation", - "font_size": 12, - "errorHandler": null, - "preAutomationTime": 0, - "sla": 0, - "last_updated": "2025-01-24T11:15:29.202Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.46.0-2023.1.21", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 5, - "reference": "dbd85169-ef00-4ef9-a7c8-94a8c6b219c2", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding/Push Configuration to Device", - "document": { - "name": "Push Configuration to Device - IAG", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": -12, - "y": 588 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": -12, - "y": 1332 - } - }, - "ca47": { - "name": "sendConfig", - "canvasName": "sendConfig", - "summary": "Push Configuration to Device", - "description": "Send configuration to inventory nodes through a Gateway5 service", - "location": "Application", - "locationType": null, - "app": "GatewayManager", - "type": "automatic", - "displayName": "GatewayManager", - "variables": { - "incoming": { - "clusterId": "cluster-itential", - "config": "$var.4a43.configurationArray", - "inventory": "$var.4a43.deviceArray" - }, - "outgoing": { - "result": "" - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": -12, - "y": 1032 - } - }, - "b9ed": { - "name": "renderJinjaTemplate", - "canvasName": "renderJinjaTemplate", - "summary": "Renders Jinja Template", - "description": "Renders inputted Jinja Template with variables", - "location": "Application", - "locationType": null, - "app": "TemplateBuilder", - "type": "automatic", - "displayName": "TemplateBuilder", - "variables": { - "incoming": { - "name": "$var.job.templateName", - "context": "$var.job.templateVariables" - }, - "outgoing": { - "renderedTemplate": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": -12, - "y": 696 - } - }, - "7a4c": { - "name": "ViewData", - "canvasName": "ViewData", - "summary": "View Error", - "description": "Show configuration error and decision options", - "location": "Application", - "app": "WorkFlowEngine", - "displayName": "WorkFlowEngine", - "type": "manual", - "variables": { - "incoming": { - "header": "Configuration Error", - "message": "Pushing configuration to the intended device resulted in an error. See details below. Select \"Retry\" to retry pushing configuration to the device or select \"End Job\" to end the job.\n\n\n\n\n\n", - "body": "$var.ca47.result", - "variables": {}, - "btn_success": "Retry", - "btn_failure": "End Job" - }, - "outgoing": {}, - "error": "", - "decorators": [] - }, - "view": "/workflow_engine/task/ViewData", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": -348, - "y": 1164 - } - }, - "f14d": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Evaluate Success", - "description": "Evaluate Success", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "completed[0].response[*].status", - "operand_1": { - "variable": "stdout", - "task": "ca47" - }, - "operator": "!contains", - "operand_2": { - "variable": "FAILURE", - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": -12, - "y": 1164 - } - }, - "cba5": { - "name": "ViewData", - "canvasName": "ViewData", - "summary": "View Configuration", - "description": "Show the proposed configuration and decision options", - "location": "Application", - "app": "WorkFlowEngine", - "displayName": "WorkFlowEngine", - "type": "manual", - "variables": { - "incoming": { - "header": "View Configuration", - "message": "See configuration to push to device below. Select \"Continue\" to push the configuration or \"End Job\" to skip pushing configuration to the device and ending the job.\n\n\n\n ", - "body": "", - "variables": {}, - "btn_success": "Continue", - "btn_failure": "End Job" - }, - "outgoing": {}, - "error": "", - "decorators": [] - }, - "view": "/workflow_engine/task/ViewData", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 324, - "y": 924 - } - }, - "c4c9": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Check if autoApprove", - "description": "Run an evaluation for autoApprove", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "", - "operand_1": { - "variable": "autoApprove", - "task": "job", - "editable": true - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": -12, - "y": 924 - } - }, - "4a43": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Build IAG Device Configuration Push Data", - "description": "Builds inputs for pushing configuration to device over IAG", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "654104d02c883d00f315fdd1", - "variableMap": { - "renderedJinja2Template": "$var.b9ed.renderedTemplate", - "deviceName": "$var.job.device" - }, - "options": { - "extractOutput": false, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "configurationArray": null, - "deviceArray": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -12, - "y": 816 - } - } - }, - "transitions": { - "workflow_start": { - "b9ed": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "ca47": { - "f14d": { - "type": "standard", - "state": "success" - }, - "7a4c": { - "type": "standard", - "state": "error" - } - }, - "b9ed": { - "4a43": { - "state": "success", - "type": "standard" - } - }, - "7a4c": { - "b9ed": { - "type": "revert", - "state": "success" - }, - "workflow_end": { - "type": "standard", - "state": "failure" - } - }, - "f14d": { - "workflow_end": { - "type": "standard", - "state": "success" - }, - "7a4c": { - "type": "standard", - "state": "failure" - } - }, - "cba5": { - "ca47": { - "type": "standard", - "state": "success" - }, - "workflow_end": { - "type": "standard", - "state": "failure" - } - }, - "c4c9": { - "ca47": { - "type": "standard", - "state": "success" - }, - "cba5": { - "type": "standard", - "state": "failure" - } - }, - "4a43": { - "c4c9": { - "state": "success", - "type": "standard" - } - }, - "ed0d": {}, - "7a2f": {} - }, - "inputSchema": { - "type": "object", - "properties": { - "templateName": { - "type": "string", - "examples": [ - "Template name 1", - "Template name 2", - "Template name 3" - ] - }, - "templateVariables": { - "type": "object", - "examples": [ - { - "name": "John", - "DOB": "2000/1/1" - } - ] - }, - "autoApprove": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "device": { - "type": "string", - "examples": [ - "deviceName" - ] - } - }, - "required": [ - "templateName", - "templateVariables", - "autoApprove", - "device" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "templateName": { - "type": "string", - "examples": [ - "Template name 1", - "Template name 2", - "Template name 3" - ] - }, - "templateVariables": { - "type": "object", - "examples": [ - { - "name": "John", - "DOB": "2000/1/1" - } - ] - }, - "autoApprove": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "device": { - "type": "string", - "examples": [ - "deviceName" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - } - } - }, - "created": "2021-11-20T00:37:47.829Z", - "createdVersion": "5.40.5-2021.1.28.0", - "created_by": { - "provenance": "CloudAAA", - "username": "noreply@itential.com", - "firstname": "noreply", - "inactive": true - }, - "font_size": 12, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "last_updated": "2025-01-24T11:15:29.201Z", - "preAutomationTime": 0, - "sla": 0, - "type": "automation", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "canvasVersion": 3, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 6, - "reference": "17277d12-2950-4ff1-b789-eeea55a73f64", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding/Flow Test", - "document": { - "name": "Device Onboarding Flow Test", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": 2316, - "y": -324 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 2316, - "y": 264 - } - }, - "7c4b": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Generate Traffic", - "description": "Generate Traffic", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Command Template Runner", - "variables": { - "deviceName": { - "task": "job", - "value": "deviceName" - }, - "autoApprove": { - "task": "static", - "value": true - }, - "templateName": { - "task": "static", - "value": "Ping - IOS - Kentik - Example" - }, - "templateVariables": { - "task": "static", - "value": { - "address": "google.com", - "repeat": "1000" - } - }, - "reattempt": { - "task": "static", - "value": false - }, - "_id": { - "task": "job", - "value": "_id" - }, - "reattemptWaitTime": { - "task": "static", - "value": 0 - }, - "reattemptQuantity": { - "task": "static", - "value": 0 - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": 2316, - "y": -108 - } - }, - "c4ab": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Evaluate Time Difference", - "description": "Evaluate time difference", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "operand_1": { - "task": "0bcf", - "variable": "job_details" - }, - "operand_2": { - "task": "static", - "variable": "pass" - }, - "operator": "==", - "query": "testResult", - "rightQuery": "" - } - ] - } - ] - }, - "outgoing": { - "return_value": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2316, - "y": 120 - } - }, - "8dd3": { - "name": "delay", - "canvasName": "delay", - "summary": "Delay 10 seconds", - "description": "Delay job for 10 seconds", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "time": 10 - }, - "outgoing": { - "time_in_milliseconds": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 1992, - "y": 120 - } - }, - "0bcf": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Device Flow Test - Kentik", - "description": "Runs device flow test in Kentik", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Device Flow Test - Kentik - REST", - "variables": { - "deviceName": { - "task": "job", - "value": "deviceName" - }, - "autoApprove": { - "task": "static", - "value": true - }, - "templateName": { - "task": "static", - "value": "Ping - IOS" - }, - "templateVariables": { - "task": "static", - "value": { - "address": "google.com", - "repeat": "1000" - } - }, - "reattempt": { - "task": "static", - "value": false - }, - "_id": { - "task": "job", - "value": "_id" - }, - "reattemptWaitTime": { - "task": "static", - "value": 0 - }, - "reattemptQuantity": { - "task": "static", - "value": 0 - }, - "startTime": { - "task": "07ef", - "value": "time" - }, - "adapterId": { - "task": "job", - "value": "adapterId" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": 2316, - "y": 0 - } - }, - "07ef": { - "name": "getTime", - "canvasName": "getTime", - "summary": "Get Current Time", - "description": "Gets the current time", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "automatic", - "displayName": "Time", - "variables": { - "incoming": { - "timezone": "-11:00", - "offsetDuration": "", - "format": "" - }, - "outgoing": { - "time": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 2316, - "y": -216 - } - } - }, - "transitions": { - "workflow_start": { - "07ef": { - "state": "success", - "type": "standard" - } - }, - "workflow_end": {}, - "7c4b": { - "0bcf": { - "state": "success", - "type": "standard" - } - }, - "c4ab": { - "workflow_end": { - "state": "success", - "type": "standard" - }, - "8dd3": { - "state": "failure", - "type": "standard" - } - }, - "8dd3": { - "7c4b": { - "type": "revert", - "state": "success" - } - }, - "0bcf": { - "c4ab": { - "state": "success", - "type": "standard" - } - }, - "07ef": { - "7c4b": { - "state": "success", - "type": "standard" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "deviceName": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "_id": { - "title": "job_id", - "type": "string", - "examples": [ - "test" - ] - }, - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - }, - "required": [ - "deviceName", - "_id", - "adapterId" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "deviceName": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "initiator": { - "type": "string" - } - } - }, - "type": "automation", - "font_size": 12, - "errorHandler": null, - "preAutomationTime": 0, - "sla": 0, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.46.0-2023.1.21", - "last_updated": "2025-01-24T11:15:29.202Z", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 7, - "reference": "0bce0672-a7b9-444d-868d-ddde6a5a4e81", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding/Flow Test/Generate Traffic", - "document": { - "name": "Command Template Runner", - "tasks": { - "525": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Template Passed, Do Not Auto Approve", - "description": "The template passed but is not set to auto approve", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "", - "operand_1": { - "variable": "autoApprove", - "task": "job", - "editable": true - }, - "operator": "==", - "operand_2": { - "variable": false, - "task": "static" - } - }, - { - "query": "result", - "operand_1": { - "variable": "mop_template_results", - "task": "8ce4" - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 576, - "y": 648 - } - }, - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": 564, - "y": 120 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 588, - "y": 1224 - } - }, - "8ce4": { - "name": "RunCommandTemplate", - "canvasName": "RunCommandTemplate", - "summary": "Run Command Template Against Device", - "description": "Run Command Template against a device", - "location": "Application", - "locationType": null, - "app": "MOP", - "type": "automatic", - "displayName": "MOP", - "variables": { - "incoming": { - "template": "$var.job.templateName", - "variables": "$var.job.templateVariables", - "devices": "$var.927c.pushedArray" - }, - "outgoing": { - "mop_template_results": "$var.job.templateResults" - }, - "error": "$var.job.templateError", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": 564, - "y": 408 - } - }, - "81d8": { - "name": "viewTemplateResults", - "canvasName": "viewTemplateResults", - "summary": "View Command Template Results", - "description": "View the results of the command template", - "location": "Application", - "app": "MOP", - "displayName": "MOP", - "type": "manual", - "variables": { - "incoming": { - "mop_template_results": "$var.8ce4.mop_template_results" - }, - "outgoing": {}, - "error": "", - "decorators": [] - }, - "view": "/mop/task/viewTemplateResults", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 588, - "y": 840 - } - }, - "6bd2": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Template Failed, Do Not Reattempt", - "description": "The template did not pass, but should not be reattempted", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "result", - "operand_1": { - "variable": "mop_template_results", - "task": "8ce4" - }, - "operator": "==", - "operand_2": { - "variable": false, - "task": "static" - } - }, - { - "query": "", - "operand_1": { - "variable": "reattempt", - "task": "job", - "editable": true - }, - "operator": "==", - "operand_2": { - "variable": false, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 228, - "y": 408 - } - }, - "f1a7": { - "name": "ViewData", - "canvasName": "ViewData", - "summary": "Template Failure", - "description": "Show the template failure message and decision options", - "location": "Application", - "app": "WorkFlowEngine", - "displayName": "WorkFlowEngine", - "type": "manual", - "variables": { - "incoming": { - "header": "Template Failed", - "message": "$var.job.templateName", - "body": "The Command Template has failed. Do you want to retry or skip?", - "variables": {}, - "btn_success": "Retry", - "btn_failure": "Skip" - }, - "outgoing": {}, - "error": "", - "decorators": [] - }, - "view": "/workflow_engine/task/ViewData", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 1320, - "y": 852 - } - }, - "543a": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Template Errored, Check Reattempt", - "description": "The template encountered an error, check if it should be reattempted", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "", - "operand_1": { - "variable": "reattempt", - "task": "job", - "editable": true - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 1320, - "y": 408 - } - }, - "849c": { - "name": "reattempt", - "canvasName": "reattempt", - "summary": "Reattempt Template", - "description": "Reattempt the template after waiting the specified number of minutes", - "location": "Application", - "locationType": null, - "app": "MOP", - "type": "automatic", - "displayName": "MOP", - "variables": { - "incoming": { - "job_id": "$var.job._id", - "attemptID": "connection", - "minutes": "$var.job.reattemptWaitTime", - "attempts": "$var.job.reattemptQuantity" - }, - "outgoing": { - "response": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": 936, - "y": 840 - } - }, - "f884": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Template Failed, Reattempt", - "description": "The template did not pass, but should be reattempted", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "result", - "operand_1": { - "variable": "mop_template_results", - "task": "8ce4" - }, - "operator": "==", - "operand_2": { - "variable": false, - "task": "static" - } - }, - { - "query": "", - "operand_1": { - "variable": "reattempt", - "task": "job", - "editable": true - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 924, - "y": 648 - } - }, - "b1a0": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Template Passed, Auto Approve", - "description": "The template passed and is set to auto approve", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "", - "operand_1": { - "variable": "autoApprove", - "task": "job", - "editable": true - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - }, - { - "query": "result", - "operand_1": { - "variable": "mop_template_results", - "task": "8ce4" - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 216, - "y": 648 - } - }, - "5df9": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Check Template Result", - "description": "Check if the template resulted in a pass or fail", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "result", - "operand_1": { - "variable": "mop_template_results", - "task": "8ce4", - "editable": true - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 588, - "y": 1020 - } - }, - "927c": { - "name": "arrayPush", - "canvasName": "push", - "summary": "Build Device Array", - "description": "Put the device name into an array as required by the \"RunCommandTemplate\" task", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "automatic", - "displayName": "Array", - "variables": { - "incoming": { - "arr": [], - "elementN": "$var.job.deviceName" - }, - "outgoing": { - "pushedArray": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": 564, - "y": 276 - } - } - }, - "transitions": { - "525": { - "81d8": { - "type": "standard", - "state": "success" - } - }, - "workflow_start": { - "927c": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "8ce4": { - "525": { - "type": "standard", - "state": "success" - }, - "543a": { - "type": "standard", - "state": "error" - }, - "f884": { - "type": "standard", - "state": "success" - }, - "b1a0": { - "type": "standard", - "state": "success" - }, - "6bd2": { - "type": "standard", - "state": "success" - } - }, - "81d8": { - "8ce4": { - "type": "revert", - "state": "failure" - }, - "5df9": { - "type": "standard", - "state": "success" - } - }, - "6bd2": { - "81d8": { - "type": "standard", - "state": "success" - } - }, - "f1a7": { - "workflow_end": { - "type": "standard", - "state": "failure" - }, - "8ce4": { - "type": "revert", - "state": "success" - } - }, - "543a": { - "849c": { - "type": "standard", - "state": "success" - }, - "f1a7": { - "type": "standard", - "state": "failure" - } - }, - "849c": { - "8ce4": { - "type": "revert", - "state": "success" - }, - "f1a7": { - "type": "standard", - "state": "error" - } - }, - "f884": { - "849c": { - "type": "standard", - "state": "success" - } - }, - "b1a0": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "5df9": { - "workflow_end": { - "type": "standard", - "state": "success" - }, - "f1a7": { - "type": "standard", - "state": "failure" - } - }, - "927c": { - "8ce4": { - "type": "standard", - "state": "success" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "autoApprove": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "templateName": { - "title": "template", - "type": "string", - "examples": [ - "show version" - ] - }, - "templateVariables": { - "type": "object", - "properties": {}, - "examples": [ - { - "device_name": "my-device1" - } - ] - }, - "reattempt": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "_id": { - "title": "job_id", - "type": "string", - "examples": [ - "test" - ] - }, - "reattemptWaitTime": { - "title": "minutes", - "type": "integer", - "examples": [ - 1 - ] - }, - "reattemptQuantity": { - "title": "attempts", - "type": "integer", - "examples": [ - 2 - ] - }, - "deviceName": { - "type": [ - "array", - "string", - "boolean", - "integer", - "number", - "object" - ], - "title": "elementN", - "examples": [ - "Device3" - ] - } - }, - "required": [ - "autoApprove", - "templateName", - "templateVariables", - "reattempt", - "_id", - "reattemptWaitTime", - "reattemptQuantity", - "deviceName" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "autoApprove": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "templateName": { - "title": "template", - "type": "string", - "examples": [ - "show version" - ] - }, - "templateVariables": { - "type": "object", - "properties": {}, - "examples": [ - { - "device_name": "my-device1" - } - ] - }, - "reattempt": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "reattemptWaitTime": { - "title": "minutes", - "type": "integer", - "examples": [ - 1 - ] - }, - "reattemptQuantity": { - "title": "attempts", - "type": "integer", - "examples": [ - 2 - ] - }, - "deviceName": { - "type": [ - "array", - "string", - "boolean", - "integer", - "number", - "object" - ], - "title": "elementN", - "examples": [ - "Device3" - ] - }, - "initiator": { - "type": "string" - }, - "templateResults": { - "type": "object", - "properties": { - "raw": { - "type": "string", - "examples": [ - "show version" - ] - }, - "all_pass_flag": { - "type": "boolean" - }, - "evaluated": { - "type": "string", - "examples": [ - "show version" - ] - }, - "parameters": { - "type": "object", - "properties": {} - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "rule": { - "type": "string", - "examples": [ - "show version" - ] - }, - "eval": { - "type": "string", - "examples": [ - "contains" - ] - }, - "raw": { - "type": "string", - "examples": [ - "show version" - ] - }, - "result": { - "type": "boolean" - } - } - } - }, - "device": { - "type": "string", - "examples": [ - "device1" - ] - }, - "response": { - "type": "string", - "examples": [ - "version: 10.0.0" - ] - }, - "result": { - "type": "boolean" - } - } - }, - "templateError": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - } - }, - "created": "2021-11-19T22:24:44.051Z", - "createdVersion": "5.40.5-2021.1.28.0", - "created_by": { - "provenance": "CloudAAA", - "username": "noreply@itential.com", - "firstname": "noreply", - "inactive": true - }, - "font_size": 12, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "last_updated": "2025-01-24T11:15:29.203Z", - "preAutomationTime": 0, - "sla": 0, - "type": "automation", - "canvasVersion": 3, - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 8, - "reference": "21ab74f8-066c-4f64-8a67-214c2ffb0b99", - "type": "workflow", - "folder": "/Create Device", - "document": { - "name": "Create Device", - "tasks": { - "3598": { - "name": "query", - "canvasName": "query", - "summary": "Query Created Kentik Device", - "description": "Query device created in Kentik", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response.device", - "obj": "$var.07a6.result" - }, - "outgoing": { - "return_data": "$var.job.device" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -360, - "y": -384 - } - }, - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": -360, - "y": -816 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": -360, - "y": -276 - } - }, - "07a6": { - "name": "createDevice", - "canvasName": "createDevice", - "summary": "Create Device - Kentik", - "description": "Creates device in Kentik", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "body": "$var.6a97.devicePayload", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": null - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -360, - "y": -492 - } - }, - "89a2": { - "name": "findSites", - "canvasName": "findSites", - "summary": "Get Kentik Sites", - "description": "Gets list of Kentik sites", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -360, - "y": -708 - } - }, - "6a97": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Build Create Device Data - Kentik", - "description": "Builds inputs to create device in Kentik", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "64f3937db3e59e00cc64337a", - "variableMap": { - "name": "$var.job.name", - "type": "$var.job.type", - "description": "$var.job.description", - "planId": "$var.job.planId", - "sampleRate": "$var.job.sampleRate", - "sendingIPs": "$var.job.sendingIPs", - "snmpIP": "$var.job.snmpIP", - "snmpCommunity": "$var.job.snmpCommunity", - "snmpConfUsername": "$var.job.snmpConfUsername", - "snmpConfAuthenticationProtocol": "$var.job.snmpConfAuthenticationProtocol", - "snmpConfAuthenticationPassphrase": "$var.job.snmpConfAuthenticationPassphrase", - "snmpPrivacyProtocol": "$var.job.snmpPrivacyProtocol", - "snmpPrivacyPassphrase": "$var.job.snmpPrivacyPassphrase", - "bgpType": "$var.job.bgpType", - "bgpNeighborIP": "$var.job.bgpNeighborIP", - "bgpNeighborIP6": "$var.job.bgpNeighborIP6", - "bgpNeighborASN": "$var.job.bgpNeighborASN", - "bgpNeighborPassword": "$var.job.bgpNeighborPassword", - "siteInfo": "$var.89a2.result", - "siteName": "$var.job.siteName" - }, - "options": { - "extractOutput": true, - "validateIncoming": false, - "revertToDefaultValue": true - } - }, - "outgoing": { - "devicePayload": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -360, - "y": -600 - } - } - }, - "transitions": { - "3598": { - "workflow_end": { - "state": "success", - "type": "standard" - } - }, - "workflow_start": { - "89a2": { - "state": "success", - "type": "standard" - } - }, - "workflow_end": {}, - "07a6": { - "3598": { - "state": "success", - "type": "standard" - } - }, - "89a2": { - "6a97": { - "state": "success", - "type": "standard" - } - }, - "6a97": { - "07a6": { - "state": "success", - "type": "standard" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "name": { - "type": "string", - "examples": [ - "test-device" - ] - }, - "type": { - "type": "string", - "examples": [ - "router" - ] - }, - "description": { - "type": "string", - "examples": [ - "my device" - ] - }, - "planId": { - "type": "integer", - "examples": [ - 44662 - ] - }, - "sampleRate": { - "type": "integer", - "examples": [ - 1 - ] - }, - "sendingIPs": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - } - }, - "snmpIP": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - }, - "snmpCommunity": { - "type": "string", - "examples": [ - "kentikSNMP" - ] - }, - "snmpConfUsername": { - "type": "string", - "examples": [ - "kentik" - ] - }, - "snmpConfAuthenticationProtocol": { - "type": "string", - "examples": [ - "SHA" - ] - }, - "snmpConfAuthenticationPassphrase": { - "type": "string", - "examples": [ - "Pass" - ] - }, - "snmpPrivacyProtocol": { - "type": "string", - "examples": [ - "AES" - ] - }, - "snmpPrivacyPassphrase": { - "type": "string", - "examples": [ - "AESPassword" - ] - }, - "bgpType": { - "type": "string", - "examples": [ - "device" - ] - }, - "bgpNeighborIP": { - "type": "string", - "examples": [ - "209.1.1.1" - ], - "format": "ipv4" - }, - "bgpNeighborIP6": { - "type": "string", - "examples": [ - "ff44::ffff" - ], - "format": "ipv6" - }, - "bgpNeighborASN": { - "type": "string", - "examples": [ - "1" - ] - }, - "bgpNeighborPassword": { - "type": "string", - "examples": [ - "pass" - ] - }, - "siteName": { - "type": "string", - "examples": [ - "mySite" - ] - } - }, - "required": [ - "adapterId", - "name", - "type", - "description", - "planId", - "sampleRate", - "sendingIPs", - "snmpIP", - "snmpCommunity", - "snmpConfUsername", - "snmpConfAuthenticationProtocol", - "snmpConfAuthenticationPassphrase", - "snmpPrivacyProtocol", - "snmpPrivacyPassphrase", - "bgpType", - "bgpNeighborIP", - "bgpNeighborIP6", - "bgpNeighborASN", - "bgpNeighborPassword", - "siteName" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "name": { - "type": "string", - "examples": [ - "test-device" - ] - }, - "type": { - "type": "string", - "examples": [ - "router" - ] - }, - "description": { - "type": "string", - "examples": [ - "my device" - ] - }, - "planId": { - "type": "integer", - "examples": [ - 44662 - ] - }, - "sampleRate": { - "type": "integer", - "examples": [ - 1 - ] - }, - "sendingIPs": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - } - }, - "snmpIP": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - }, - "snmpCommunity": { - "type": "string", - "examples": [ - "kentikSNMP" - ] - }, - "snmpConfUsername": { - "type": "string", - "examples": [ - "kentik" - ] - }, - "snmpConfAuthenticationProtocol": { - "type": "string", - "examples": [ - "SHA" - ] - }, - "snmpConfAuthenticationPassphrase": { - "type": "string", - "examples": [ - "Pass" - ] - }, - "snmpPrivacyProtocol": { - "type": "string", - "examples": [ - "AES" - ] - }, - "snmpPrivacyPassphrase": { - "type": "string", - "examples": [ - "AESPassword" - ] - }, - "bgpType": { - "type": "string", - "examples": [ - "device" - ] - }, - "bgpNeighborIP": { - "type": "string", - "examples": [ - "209.1.1.1" - ], - "format": "ipv4" - }, - "bgpNeighborIP6": { - "type": "string", - "examples": [ - "ff44::ffff" - ], - "format": "ipv6" - }, - "bgpNeighborASN": { - "type": "string", - "examples": [ - "1" - ] - }, - "bgpNeighborPassword": { - "type": "string", - "examples": [ - "pass" - ] - }, - "siteName": { - "type": "string", - "examples": [ - "mySite" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - }, - "device": { - "title": "return_data", - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "examples": [ - "value" - ] - } - } - }, - "type": "automation", - "font_size": 12, - "errorHandler": null, - "preAutomationTime": 0, - "sla": 0, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.46.0-2023.1.14.0", - "last_updated": "2025-01-24T11:15:29.203Z", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 9, - "reference": "ba3a5da7-864a-4ea1-8023-b4b543a8cb65", - "type": "workflow", - "folder": "/Sample Use Cases/AWS Blocked Traffic Event", - "document": { - "name": "AWS Blocked Traffic Event", - "tasks": { - "1232": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Create Incident - ServiceNow", - "description": "Create Incident - ServiceNow", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Create Incident - ServiceNow", - "variables": { - "summary": { - "editable": true, - "task": "5847", - "value": "serviceNowSummary" - }, - "comments": { - "editable": true, - "task": "572f", - "value": "serviceNowComments" - }, - "adapterId": { - "task": "job", - "value": "serviceNowAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": null - } - }, - "groups": [], - "actor": "job", - "nodeLocation": { - "x": -5292, - "y": 2052 - } - }, - "1587": { - "name": "stub", - "canvasName": "stub", - "summary": "Blocked Traffic Path", - "description": "Blocked Traffic Path", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "automatic", - "displayName": "Tools", - "variables": { - "incoming": { - "type": "success", - "delay": "", - "response": "" - }, - "outgoing": { - "response": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -4428, - "y": 1224 - } - }, - "4257": { - "name": "transformation", - "canvasName": "transformation", - "summary": "AWS Blocked Traffic Event", - "description": "Build AWS blocked traffic data", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "649dd079d8cf7a00af456027", - "variableMap": { - "iapURL": "$var.job.iapUrl", - "serviceNowURL": "$var.job.serviceNowUrl", - "dimensions": "$var.job.Dimensions", - "links": "$var.job.Links", - "jobId": "$var.job._id", - "alarmPolicyName": "$var.job.AlarmPolicyName", - "serviceNowChangeSysId": "$var.d6d4.return_data", - "serviceNowIncidentSysId": "$var.9e2a.return_data" - }, - "options": { - "extractOutput": false, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "teamsMessageStart": null, - "teamsMessageStartSuccess": null, - "teamsMessageStartFailure": null, - "serviceNowSummary": null, - "serviceNowComments": null, - "seviceNowChangeComments": null, - "securityGroupFilter": null, - "sourceIpCIDR": null, - "sourceIP": null - }, - "decorators": [] - }, - "groups": [], - "task_name": "AWS Blocked Traffic Event", - "retrySettings": null, - "nodeLocation": { - "x": -5292, - "y": 2280 - } - }, - "5847": { - "name": "transformation", - "canvasName": "transformation", - "summary": "AWS Blocked Traffic Event", - "description": "Build AWS blocked traffic event data", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "649dd079d8cf7a00af456027", - "variableMap": { - "iapURL": "$var.job.iapUrl", - "serviceNowURL": "$var.job.serviceNowUrl", - "dimensions": "$var.job.Dimensions", - "links": "$var.job.Links", - "jobId": "$var.job._id", - "alarmPolicyName": "$var.job.AlarmPolicyName", - "serviceNowChangeSysId": "pending", - "serviceNowIncidentSysId": "pending" - }, - "options": { - "extractOutput": false, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "teamsMessageStart": null, - "teamsMessageStartSuccess": null, - "teamsMessageStartFailure": null, - "serviceNowSummary": null, - "serviceNowComments": null, - "seviceNowChangeComments": null, - "securityGroupFilter": null, - "sourceIpCIDR": null, - "sourceIP": null - }, - "decorators": [] - }, - "groups": [], - "task_name": "AWS Blocked Traffic Event", - "retrySettings": null, - "nodeLocation": { - "x": -4908, - "y": 876 - } - }, - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": -4908, - "y": 660 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": -4908, - "y": 2664 - } - }, - "7c58": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Create Change Request", - "description": "Create Change Request", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Create Change Request - ServiceNow", - "variables": { - "title": { - "editable": true, - "task": "5847", - "value": "serviceNowSummary" - }, - "summary": { - "editable": true, - "task": "5847", - "value": "serviceNowSummary" - }, - "description": { - "editable": true, - "task": "5847", - "value": "serviceNowSummary" - }, - "comments": { - "editable": true, - "task": "5847", - "value": "seviceNowChangeComments" - }, - "assignmentGroup": { - "editable": true, - "task": "static", - "value": "" - }, - "adapterId": { - "task": "job", - "value": "serviceNowAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": null - } - }, - "groups": [], - "actor": "job", - "nodeLocation": { - "x": -4908, - "y": 1128 - } - }, - "8c16": { - "name": "describeSecurityGroups", - "canvasName": "describeSecurityGroups", - "summary": "Describe SG", - "description": "Get Security Group to confirm the source ingress is missing", - "location": "Adapter", - "locationType": "Awsec2", - "app": "Awsec2", - "type": "automatic", - "displayName": "Awsec2", - "variables": { - "incoming": { - "filter": "$var.5847.securityGroupFilter", - "groupId": "", - "groupName": "", - "dryRun": false, - "nextToken": "", - "maxResults": "", - "adapter_id": "$var.job.awsEC2Adapter" - }, - "outgoing": { - "result": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": -4908, - "y": 1776 - } - }, - "f484": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Send Notification MSTeams - Event", - "description": "Send Teams Notification", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Send Notification - Microsoft - Teams - REST", - "variables": { - "text": { - "editable": true, - "task": "572f", - "value": "teamsMessageStart" - }, - "title": { - "editable": true, - "task": "572f", - "value": "serviceNowSummary" - }, - "webhookKey": { - "task": "job", - "value": "allPolicyEventsWebhookUrl" - }, - "adapterId": { - "task": "job", - "value": "msTeamsAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": null - } - }, - "groups": [], - "actor": "job", - "nodeLocation": { - "x": -4908, - "y": 1644 - } - }, - "d6d4": { - "name": "query", - "canvasName": "query", - "summary": "Query Change Request sysid", - "description": "Query Change Request sysid", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "createdCR.response.id", - "obj": "$var.7c58.job_details" - }, - "outgoing": { - "return_data": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": -4908, - "y": 1392 - } - }, - "fbe8": { - "name": "authorizeSecurityGroupIngress", - "canvasName": "authorizeSecurityGroupIngress", - "summary": "Authorize Ingress on SG", - "description": "Authorize Ingress on SG for Web Server", - "location": "Adapter", - "locationType": "Awsec2", - "app": "Awsec2", - "type": "automatic", - "displayName": "Awsec2", - "variables": { - "incoming": { - "cidrIp": "$var.5847.sourceIpCIDR", - "fromPort": 80, - "groupId": "$var.d861.return_data", - "groupName": "", - "ipPermissions": "", - "ipProtocol": "tcp", - "sourceSecurityGroupName": "", - "sourceSecurityGroupOwnerId": "", - "toPort": 80, - "dryRun": false, - "adapter_id": "$var.job.awsEC2Adapter" - }, - "outgoing": { - "result": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": -4908, - "y": 2172 - } - }, - "d861": { - "name": "query", - "canvasName": "query", - "summary": "Query Security Group ID", - "description": "Query Security Group ID", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response.DescribeSecurityGroupsResponse.securityGroupInfo.item.groupId", - "obj": "$var.8c16.result" - }, - "outgoing": { - "return_data": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": -4908, - "y": 1908 - } - }, - "c038": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Eval Src IP in SG", - "description": "Run an evaluation to ensure the Source IP does not already exist in the Security Group", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "response.DescribeSecurityGroupsResponse.securityGroupInfo.item.ipPermissions.item.ipRanges.item.cidrIp", - "operand_1": { - "variable": "result", - "task": "8c16" - }, - "operator": "!contains", - "operand_2": { - "variable": "sourceIpCIDR", - "task": "5847" - }, - "rightQuery": "" - }, - { - "query": "response.DescribeSecurityGroupsResponse.securityGroupInfo.item.ipPermissions.item.ipRanges.item.cidrIp", - "operand_1": { - "variable": "result", - "task": "8c16" - }, - "operator": "!=", - "operand_2": { - "variable": "sourceIpCIDR", - "task": "5847" - }, - "rightQuery": "" - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": -4908, - "y": 2040 - } - }, - "572f": { - "name": "transformation", - "canvasName": "transformation", - "summary": "AWS Blocked Traffic Event", - "description": "Build AWS blocked traffic event data", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "649dd079d8cf7a00af456027", - "variableMap": { - "iapURL": "$var.job.iapUrl", - "serviceNowURL": "$var.job.serviceNowUrl", - "dimensions": "$var.job.Dimensions", - "links": "$var.job.Links", - "jobId": "$var.job._id", - "alarmPolicyName": "$var.job.AlarmPolicyName", - "serviceNowChangeSysId": "$var.d6d4.return_data", - "serviceNowIncidentSysId": "pending" - }, - "options": { - "extractOutput": false, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "teamsMessageStart": null, - "teamsMessageStartSuccess": null, - "teamsMessageStartFailure": null, - "serviceNowSummary": null, - "serviceNowComments": null, - "seviceNowChangeComments": null, - "securityGroupFilter": null, - "sourceIpCIDR": null, - "sourceIP": null - }, - "decorators": [] - }, - "groups": [], - "task_name": "AWS Blocked Traffic Event", - "retrySettings": null, - "nodeLocation": { - "x": -4908, - "y": 1500 - } - }, - "9e2a": { - "name": "query", - "canvasName": "query", - "summary": "Query Incident sysid", - "description": "Query incidentId from incident", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "createdIncident.response.id", - "obj": "$var.1232.job_details" - }, - "outgoing": { - "return_data": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": -5292, - "y": 2172 - } - }, - "7dc": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Send Notification MSTeams - Success", - "description": "Send Teams Notification", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Send Notification - Microsoft - Teams - REST", - "variables": { - "text": { - "editable": true, - "task": "572f", - "value": "teamsMessageStartSuccess" - }, - "title": { - "editable": true, - "task": "572f", - "value": "serviceNowSummary" - }, - "webhookKey": { - "task": "job", - "value": "policyAutomatedAuthorizationWebhookUrl" - }, - "adapterId": { - "task": "job", - "value": "msTeamsAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": null - } - }, - "groups": [], - "actor": "job", - "nodeLocation": { - "x": -4908, - "y": 2424 - } - }, - "79f3": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Send Notification MSTeams - Failure", - "description": "Send Teams Notification", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Send Notification - Microsoft - Teams - REST", - "variables": { - "text": { - "editable": true, - "task": "4257", - "value": "teamsMessageStartFailure" - }, - "title": { - "editable": true, - "task": "4257", - "value": "serviceNowSummary" - }, - "webhookKey": { - "task": "job", - "value": "policyAutomatedFailureWebhookUrl" - }, - "fileName": { - "task": "4257", - "value": "teamsMessageStart" - }, - "adapterId": { - "task": "job", - "value": "msTeamsAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": null - } - }, - "groups": [], - "actor": "job", - "nodeLocation": { - "x": -5292, - "y": 2400 - } - }, - "f3ec": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Update Change Request - ServiceNow", - "description": "Update Change Request - ServiceNow", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Update Change Request - ServiceNow", - "variables": { - "crNumber": { - "editable": true, - "task": "e365", - "value": "return_data" - }, - "comments": { - "editable": true, - "task": "fbe8", - "value": "result" - }, - "state": { - "editable": true, - "task": "static", - "value": "" - }, - "adapterId": { - "task": "job", - "value": "serviceNowAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": null - } - }, - "groups": [], - "actor": "job", - "nodeLocation": { - "x": -4908, - "y": 2292 - } - }, - "e365": { - "name": "query", - "canvasName": "query", - "summary": "Query Change Request number", - "description": "Query Change Request number", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "createdCR.response.number", - "obj": "$var.7c58.job_details" - }, - "outgoing": { - "return_data": null - }, - "error": "", - "decorators": [] - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": -4908, - "y": 1272 - } - }, - "fd52": { - "name": "newVariable", - "canvasName": "newVariable", - "summary": "List of Permitted IPs", - "description": "List of valid IPs to approve traffic against. Can replace with call to external service to get valid IPs", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "name": "allowedIPList", - "value": [ - "10.10.10.10" - ] - }, - "outgoing": { - "value": null - } - }, - "groups": [], - "nodeLocation": { - "x": -4908, - "y": 768 - } - }, - "2a1a": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Eval Src IP in Allowed List", - "description": "Run an evaluation to ensure the source IP is allowed to be added to the SG ingress", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "", - "operand_1": { - "variable": "allowedIPList", - "task": "job" - }, - "operator": "contains", - "operand_2": { - "variable": "sourceIP", - "task": "5847" - }, - "rightQuery": "" - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": -4908, - "y": 984 - } - }, - "5c3": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Send Notification MSTeams Failure - Allowed List", - "description": "Send Teams Notification", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "Send Notification - Microsoft - Teams - REST", - "variables": { - "text": { - "editable": true, - "task": "b2b8", - "value": "teamsDeniedMessage" - }, - "title": { - "editable": true, - "task": "5847", - "value": "serviceNowSummary" - }, - "webhookKey": { - "task": "job", - "value": "allPolicyEventsWebhookUrl" - }, - "adapterId": { - "task": "job", - "value": "msTeamsAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": null - } - }, - "groups": [], - "actor": "job", - "nodeLocation": { - "x": -4428, - "y": 1092 - } - }, - "b2b8": { - "name": "transformation", - "canvasName": "transformation", - "summary": "AWS Blocked Traffic Event - Allowed List Error", - "description": "Build AWS blocked traffic event allowed list data", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "649e1ee2d8cf7a00af456028", - "variableMap": { - "links": "$var.job.Links", - "dimensions": "$var.job.Dimensions", - "jobId": "$var.job._id", - "allowedIPList": "$var.job.allowedIPList", - "iapUrl": "$var.job.iapUrl" - }, - "options": { - "extractOutput": true, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "teamsDeniedMessage": null - }, - "decorators": [] - }, - "groups": [], - "task_name": "AWS Blocked Traffic Event - Allowed List Error", - "retrySettings": null, - "nodeLocation": { - "x": -4428, - "y": 984 - } - } - }, - "transitions": { - "1232": { - "9e2a": { - "type": "standard", - "state": "success" - } - }, - "1587": { - "workflow_end": { - "state": "success", - "type": "standard" - } - }, - "4257": { - "79f3": { - "type": "standard", - "state": "success" - } - }, - "5847": { - "2a1a": { - "type": "standard", - "state": "success" - } - }, - "workflow_start": { - "fd52": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "7c58": { - "e365": { - "type": "standard", - "state": "success" - } - }, - "8c16": { - "d861": { - "type": "standard", - "state": "success" - } - }, - "f484": { - "8c16": { - "type": "standard", - "state": "success" - } - }, - "d6d4": { - "572f": { - "type": "standard", - "state": "success" - } - }, - "fbe8": { - "f3ec": { - "type": "standard", - "state": "success" - } - }, - "d861": { - "c038": { - "type": "standard", - "state": "success" - } - }, - "c038": { - "1232": { - "type": "standard", - "state": "failure" - }, - "fbe8": { - "type": "standard", - "state": "success" - } - }, - "572f": { - "f484": { - "type": "standard", - "state": "success" - } - }, - "9e2a": { - "4257": { - "type": "standard", - "state": "success" - } - }, - "7dc": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "79f3": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "f3ec": { - "7dc": { - "state": "success", - "type": "standard" - } - }, - "e365": { - "d6d4": { - "state": "success", - "type": "standard" - } - }, - "fd52": { - "5847": { - "type": "standard", - "state": "success" - } - }, - "2a1a": { - "b2b8": { - "type": "standard", - "state": "failure" - }, - "7c58": { - "type": "standard", - "state": "success" - } - }, - "5c3": { - "1587": { - "state": "success", - "type": "standard" - } - }, - "b2b8": { - "5c3": { - "type": "standard", - "state": "success" - } - }, - "84f7": {}, - "71ef": {} - }, - "inputSchema": { - "type": "object", - "properties": { - "serviceNowAdapter": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "iapUrl": { - "type": "string", - "examples": [ - "https://iap_1:3443" - ] - }, - "serviceNowUrl": { - "type": "string", - "examples": [ - "https://servicenow_dev.com" - ] - }, - "Dimensions": { - "type": "object", - "properties": { - "AS_src": { - "type": "string", - "examples": [ - "198465" - ] - }, - "IP_dst": { - "type": "string", - "examples": [ - "10.0.18.252" - ], - "format": "ipv4" - }, - "IP_src": { - "type": "string", - "examples": [ - "45.129.14.30" - ], - "format": "ipv4" - }, - "kt_aws_dst_sg": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - }, - "Links": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal.kentik.com/v4/library/dashboards/18392" - ] - } - }, - "required": [] - } - }, - "_id": { - "type": "string", - "examples": [ - "7517dfb1b5fd4af2bac87a02" - ] - }, - "AlarmPolicyName": { - "type": "string", - "examples": [ - "Web Server Traffic Rejections" - ] - }, - "awsEC2Adapter": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "allPolicyEventsWebhookUrl": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "msTeamsAdapter": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "policyAutomatedAuthorizationWebhookUrl": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "policyAutomatedFailureWebhookUrl": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - }, - "required": [ - "serviceNowAdapter", - "iapUrl", - "serviceNowUrl", - "Dimensions", - "Links", - "_id", - "AlarmPolicyName", - "awsEC2Adapter", - "allPolicyEventsWebhookUrl", - "msTeamsAdapter", - "policyAutomatedAuthorizationWebhookUrl", - "policyAutomatedFailureWebhookUrl" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "serviceNowAdapter": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "iapUrl": { - "type": "string", - "examples": [ - "https://iap_1:3443" - ] - }, - "serviceNowUrl": { - "type": "string", - "examples": [ - "https://servicenow_dev.com" - ] - }, - "Dimensions": { - "type": "object", - "properties": { - "AS_src": { - "type": "string", - "examples": [ - "198465" - ] - }, - "IP_dst": { - "type": "string", - "examples": [ - "10.0.18.252" - ], - "format": "ipv4" - }, - "IP_src": { - "type": "string", - "examples": [ - "45.129.14.30" - ], - "format": "ipv4" - }, - "kt_aws_dst_sg": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - }, - "Links": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal.kentik.com/v4/library/dashboards/18392" - ] - } - }, - "required": [] - } - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "AlarmPolicyName": { - "type": "string", - "examples": [ - "Web Server Traffic Rejections" - ] - }, - "awsEC2Adapter": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "allPolicyEventsWebhookUrl": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "msTeamsAdapter": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "policyAutomatedAuthorizationWebhookUrl": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "policyAutomatedFailureWebhookUrl": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "initiator": { - "type": "string" - }, - "allowedIPList": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "type": "automation", - "font_size": 12, - "last_updated": "2025-01-24T11:15:29.204Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.44.64-2022.1.33.0", - "preAutomationTime": 0, - "sla": 0, - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 10, - "reference": "2f2ad285-135c-4d84-a928-eba7543b6917", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "name": "Device Onboarding", - "tasks": { - "8555": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Provision IOS-XE", - "description": "Provision IOS-XE", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "@66d032bd21161b4df2717499: Push Configuration to Device - IAG", - "variables": { - "templateName": { - "task": "static", - "value": "@66d0d43721161b4df27174c4: IOS-XE Flow Config - Kentik Example" - }, - "templateVariables": { - "task": "af00", - "value": "job_details" - }, - "autoApprove": { - "task": "static", - "value": [] - }, - "device": { - "task": "static", - "value": "" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": 492 - } - }, - "8885": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Kentik Device ID to Netbox Asset Tag", - "description": "Kentik Device ID to Netbox Asset Tag", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "650b63ef64654800d3248063", - "variableMap": { - "netboxDevice": "$var.df1c.return_data", - "kentikDevice": "$var.4d8e.return_data" - }, - "options": { - "extractOutput": true, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "netboxId": null, - "netboxDevice": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": -12 - } - }, - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -1152 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": 876 - } - }, - "d9bb": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Create Device - Kentik", - "description": "Create device in Kentik", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "@66d032bd21161b4df2717499: Create Device", - "variables": { - "adapterId": { - "task": "cca9", - "value": "serviceNowAdapter" - }, - "name": { - "task": "babf", - "value": "name" - }, - "type": { - "task": "babf", - "value": "type" - }, - "description": { - "task": "babf", - "value": "description" - }, - "planId": { - "task": "babf", - "value": "planId" - }, - "sampleRate": { - "task": "babf", - "value": "sampleRate" - }, - "sendingIPs": { - "task": "babf", - "value": "sendingIPs" - }, - "snmpIP": { - "task": "babf", - "value": "snmpIP" - }, - "snmpCommunity": { - "task": "babf", - "value": "snmpCommunity" - }, - "snmpConfUsername": { - "task": "babf", - "value": "snmpConfUsername" - }, - "snmpConfAuthenticationProtocol": { - "task": "babf", - "value": "snmpConfAuthenticationProtocol" - }, - "snmpConfAuthenticationPassphrase": { - "task": "babf", - "value": "snmpConfAuthenticationPassphrase" - }, - "snmpPrivacyProtocol": { - "task": "babf", - "value": "snmpPrivacyProtocol" - }, - "snmpPrivacyPassphrase": { - "task": "babf", - "value": "snmpPrivacyPassphrase" - }, - "bgpType": { - "task": "babf", - "value": "bgpType" - }, - "bgpNeighborIP": { - "task": "babf", - "value": "bgpNeighborIP" - }, - "bgpNeighborIP6": { - "task": "babf", - "value": "bgpNeighborIP6" - }, - "bgpNeighborASN": { - "task": "babf", - "value": "bgpNeighborASN" - }, - "bgpNeighborPassword": { - "task": "babf", - "value": "bgpNeighborPassword" - }, - "siteName": { - "task": "babf", - "value": "siteName" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -252 - } - }, - "4d8e": { - "name": "query", - "canvasName": "query", - "summary": "Query Kentik Device Object", - "description": "Query Kentik Device Object", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "device", - "obj": "$var.d9bb.job_details" - }, - "outgoing": { - "return_data": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1596, - "y": -120 - } - }, - "df1c": { - "name": "query", - "canvasName": "query", - "summary": "Query Netbox Device Object", - "description": "Query Netbox Device Object", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response.results[0]", - "obj": "$var.c00a.result" - }, - "outgoing": { - "return_data": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1272, - "y": -132 - } - }, - "596f": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Kentik IOS-XE Config JST", - "description": "Kentik IOS-XE Config JST", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "650b873164654800d3248064", - "variableMap": { - "netboxDevice": "$var.df1c.return_data", - "jobId": "$var.job._id", - "vrfGatewayIP": "$var.babf.type", - "kentikCompanySettings": "$var.d15b.result" - }, - "options": { - "extractOutput": true, - "validateIncoming": false, - "revertToDefaultValue": true - } - }, - "outgoing": { - "templateVars": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": 360 - } - }, - "d15b": { - "name": "genericAdapterRequestNoBasePath", - "canvasName": "genericAdapterRequestNoBasePath", - "summary": "Get Kentik Company Settings (Flow IP/Port)", - "description": "Makes the requested generic call", - "location": "Adapter", - "locationType": "KentikV5", - "app": "KentikV5", - "type": "automatic", - "displayName": "Kentik v5", - "variables": { - "incoming": { - "uriPath": "/api/ui/companySettings", - "restMethod": "GET", - "queryData": "", - "requestBody": "", - "addlHeaders": "", - "adapter_id": "$var.cca9.kentikAdapter" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": 240 - } - }, - "babf": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Device Onboarding - Demo", - "description": "Device Onboarding - Demo", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "650b4bab64654800d3248062", - "variableMap": { - "netbox": "$var.c00a.result", - "planId": 44662, - "jobId": "$var.job._id", - "serviceNowSysId": "$var.0e61.return_data", - "iapURL": "$var.cca9.iapURL", - "serviceNowURL": "$var.cca9.serviceNowURL" - }, - "options": { - "extractOutput": false, - "validateIncoming": false, - "revertToDefaultValue": true - } - }, - "outgoing": { - "type": null, - "name": null, - "description": null, - "planId": null, - "sampleRate": null, - "sendingIPs": null, - "snmpIP": null, - "snmpCommunity": null, - "snmpConfUsername": null, - "snmpConfAuthenticationProtocol": null, - "snmpConfAuthenticationPassphrase": null, - "snmpPrivacyProtocol": null, - "snmpPrivacyPassphrase": null, - "bgpType": null, - "bgpNeighborIP": null, - "bgpNeighborIP6": null, - "bgpNeighborASN": null, - "bgpNeighborPassword": null, - "siteName": null, - "teamsMessageStart": null, - "teamsMessageEnd": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -528 - } - }, - "c00a": { - "name": "getDcimDevices", - "canvasName": "getDcimDevices", - "summary": "Get Device - Netbox", - "description": "Overrides ListModelMixin to allow processing ExportTemplates.", - "location": "Adapter", - "locationType": "NetboxV33", - "app": "NetboxV33", - "type": "automatic", - "displayName": "NetboxV3", - "variables": { - "incoming": { - "id": "", - "name": "", - "assetTag": "", - "face": "", - "position": "", - "airflow": "", - "vcPosition": "", - "vcPriority": "", - "created": "", - "lastUpdated": "", - "q": "", - "tag": "", - "tenantGroupId": "", - "tenantGroup": "", - "tenantId": "", - "tenant": "", - "contact": "", - "contactRole": "", - "contactGroup": "", - "localContextData": "", - "manufacturerId": "", - "manufacturer": "", - "deviceTypeId": "", - "roleId": "", - "role": "", - "parentDeviceId": "", - "platformId": "", - "platform": "", - "regionId": "", - "region": "", - "siteGroupId": "", - "siteGroup": "", - "siteId": "", - "site": "", - "locationId": "", - "rackId": "", - "clusterId": "", - "model": "", - "status": "", - "isFullDepth": "", - "macAddress": "", - "serial": "", - "hasPrimaryIp": "", - "virtualChassisId": "", - "virtualChassisMember": "", - "consolePorts": "", - "consoleServerPorts": "", - "powerPorts": "", - "powerOutlets": "", - "interfaces": "", - "passThroughPorts": "", - "moduleBays": "", - "deviceBays": "", - "idN": "", - "idLte": "", - "idLt": "", - "idGte": "", - "idGt": "", - "nameN": "", - "nameIc": "", - "nameNic": "", - "nameIew": "", - "nameNiew": "", - "nameIsw": "", - "nameNisw": "", - "nameIe": "", - "nameNie": "", - "assetTagN": "", - "assetTagIc": "", - "assetTagNic": "", - "assetTagIew": "", - "assetTagNiew": "", - "assetTagIsw": "", - "assetTagNisw": "", - "assetTagIe": "", - "assetTagNie": "", - "faceN": "", - "positionN": "", - "positionLte": "", - "positionLt": "", - "positionGte": "", - "positionGt": "", - "airflowN": "", - "vcPositionN": "", - "vcPositionLte": "", - "vcPositionLt": "", - "vcPositionGte": "", - "vcPositionGt": "", - "vcPriorityN": "", - "vcPriorityLte": "", - "vcPriorityLt": "", - "vcPriorityGte": "", - "vcPriorityGt": "", - "createdN": "", - "createdLte": "", - "createdLt": "", - "createdGte": "", - "createdGt": "", - "lastUpdatedN": "", - "lastUpdatedLte": "", - "lastUpdatedLt": "", - "lastUpdatedGte": "", - "lastUpdatedGt": "", - "tagN": "", - "tenantGroupIdN": "", - "tenantGroupN": "", - "tenantIdN": "", - "tenantN": "", - "contactN": "", - "contactRoleN": "", - "contactGroupN": "", - "manufacturerIdN": "", - "manufacturerN": "", - "deviceTypeIdN": "", - "roleIdN": "", - "roleN": "", - "parentDeviceIdN": "", - "platformIdN": "", - "platformN": "", - "regionIdN": "", - "regionN": "", - "siteGroupIdN": "", - "siteGroupN": "", - "siteIdN": "", - "siteN": "", - "locationIdN": "", - "rackIdN": "", - "clusterIdN": "", - "modelN": "", - "statusN": "", - "macAddressN": "", - "macAddressIc": "", - "macAddressNic": "", - "macAddressIew": "", - "macAddressNiew": "", - "macAddressIsw": "", - "macAddressNisw": "", - "macAddressIe": "", - "macAddressNie": "", - "serialN": "", - "serialIc": "", - "serialNic": "", - "serialIew": "", - "serialNiew": "", - "serialIsw": "", - "serialNisw": "", - "serialIe": "", - "serialNie": "", - "virtualChassisIdN": "", - "ordering": "", - "limit": "", - "offset": "", - "adapter_id": "$var.cca9.netBoxAdapter" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -660 - } - }, - "ebfd": { - "name": "patchDcimDevicesId", - "canvasName": "patchDcimDevicesId", - "summary": "Update Netbox with Kentik ID", - "description": "dcim_devices_partial_update", - "location": "Adapter", - "locationType": "NetboxV33", - "app": "NetboxV33", - "type": "automatic", - "displayName": "NetboxV3", - "variables": { - "incoming": { - "id": "$var.8885.netboxId", - "data": "$var.8885.netboxDevice", - "adapter_id": "$var.cca9.netBoxAdapter" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": 120 - } - }, - "7c4b": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Device Flow Test", - "description": "Device flow test", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "@66d032bd21161b4df2717499: Device Onboarding Flow Test", - "variables": { - "deviceName": { - "task": "cca9", - "value": "deviceName" - }, - "adapterId": { - "task": "cca9", - "value": "kentikAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": 612 - } - }, - "af00": { - "name": "childJob", - "canvasName": "childJob", - "summary": "Create Change Request", - "description": "Create Change Request", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "@66d032bd21161b4df2717499: Create Change Request - ServiceNow", - "variables": { - "adapterId": { - "task": "cca9", - "value": "serviceNowAdapter" - }, - "title": { - "task": "cca9", - "value": "serviceNowSummary" - }, - "summary": { - "task": "cca9", - "value": "serviceNowSummary" - }, - "description": { - "task": "cca9", - "value": "serviceNowComments" - }, - "comments": { - "task": "cca9", - "value": "serviceNowComments" - }, - "assignmentGroup": { - "task": "static", - "value": [] - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -900 - } - }, - "0e61": { - "name": "query", - "canvasName": "query", - "summary": "Get ServiceNow Sys ID", - "description": "Get ServiceNow Sys ID", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "createdCR.response.id", - "obj": "$var.af00.job_details" - }, - "outgoing": { - "return_data": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -780 - } - }, - "b9a5": { - "name": "childJob", - "canvasName": "childJob", - "summary": "MS Teams Start Message", - "description": "MS Teams Start Message", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "@66d032bd21161b4df2717499: Send Notification - Microsoft - Teams", - "variables": { - "text": { - "task": "cca9", - "value": "serviceNowComments" - }, - "title": { - "task": "cca9", - "value": "serviceNowSummary" - }, - "webhookKey": { - "task": "job", - "value": "webhookKey" - }, - "adapterId": { - "task": "cca9", - "value": "msTeamsAdapter" - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -396 - } - }, - "c7fc": { - "name": "childJob", - "canvasName": "childJob", - "summary": "MS Teams End Message", - "description": "MS Teams End Message", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "task": "", - "workflow": "@66d032bd21161b4df2717499: Send Notification - Microsoft - Teams", - "variables": { - "text": { - "task": "static", - "value": [] - }, - "title": { - "task": "static", - "value": [] - }, - "webhookKey": { - "task": "static", - "value": [] - }, - "adapterId": { - "task": "static", - "value": [] - } - }, - "data_array": "", - "transformation": "", - "loopType": "" - }, - "outgoing": { - "job_details": "" - } - }, - "actor": "job", - "groups": [], - "nodeLocation": { - "x": -1416, - "y": 744 - } - }, - "cca9": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Process Kentik Device Onboarding Form Inputs", - "description": "Process Kentik device onboarding form inputs", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "653fc12f2c883d00f315fdcf", - "variableMap": { - "formData": "$var.job.formData", - "itentialJobId": "$var.job._id" - }, - "options": { - "extractOutput": false, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "serviceNowComments": null, - "serviceNowSummary": null, - "deviceName": null, - "iapURL": null, - "serviceNowURL": null, - "deviceOnboardingWebhookURL": null, - "serviceNowAdapter": null, - "netBoxAdapter": null, - "msTeamsAdapter": null, - "kentikAdapter": null - }, - "decorators": [] - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": -1440, - "y": -1032 - } - } - }, - "transitions": { - "8555": { - "7c4b": { - "state": "success", - "type": "standard" - } - }, - "8885": { - "ebfd": { - "state": "success", - "type": "standard" - } - }, - "workflow_start": { - "cca9": { - "state": "success", - "type": "standard" - } - }, - "workflow_end": {}, - "d9bb": { - "4d8e": { - "state": "success", - "type": "standard" - }, - "df1c": { - "state": "success", - "type": "standard" - } - }, - "4d8e": { - "8885": { - "state": "success", - "type": "standard" - } - }, - "df1c": { - "8885": { - "state": "success", - "type": "standard" - } - }, - "596f": { - "8555": { - "state": "success", - "type": "standard" - } - }, - "d15b": { - "596f": { - "state": "success", - "type": "standard" - } - }, - "babf": { - "b9a5": { - "state": "success", - "type": "standard" - } - }, - "c00a": { - "babf": { - "state": "success", - "type": "standard" - } - }, - "ebfd": { - "d15b": { - "state": "success", - "type": "standard" - } - }, - "7c4b": { - "c7fc": { - "state": "success", - "type": "standard" - } - }, - "af00": { - "0e61": { - "state": "success", - "type": "standard" - } - }, - "0e61": { - "c00a": { - "state": "success", - "type": "standard" - } - }, - "b9a5": { - "d9bb": { - "state": "success", - "type": "standard" - } - }, - "c7fc": { - "workflow_end": { - "state": "success", - "type": "standard" - } - }, - "cca9": { - "af00": { - "state": "success", - "type": "standard" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "_id": { - "type": "string", - "examples": [ - "afdaf323r4" - ] - }, - "webhookKey": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "formData": { - "type": "object", - "properties": { - "deviceName": { - "type": "string", - "examples": [ - "IOS_Device_Name" - ] - }, - "iapUrl": { - "type": "string", - "examples": [ - "https://iap_01:3443" - ] - }, - "serviceNowUrl": { - "type": "string", - "examples": [ - "https://servicenow_dev.com" - ] - }, - "deviceOnboardingWebhookUrl": { - "type": "string", - "examples": [ - "webhookURL" - ] - }, - "serviceNowAdapter": { - "type": "string", - "examples": [ - "ServiceNow" - ] - }, - "netBoxAdapter": { - "type": "string", - "examples": [ - "NetboxV3" - ] - }, - "msTeamsAdapter": { - "type": "string", - "examples": [ - "MS Teams" - ] - }, - "kentikAdapter": { - "type": "string", - "examples": [ - "Kentik v5" - ] - } - }, - "required": [] - } - }, - "required": [ - "_id", - "webhookKey", - "formData" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "webhookKey": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "formData": { - "type": "object", - "properties": { - "deviceName": { - "type": "string", - "examples": [ - "IOS_Device_Name" - ] - }, - "iapUrl": { - "type": "string", - "examples": [ - "https://iap_01:3443" - ] - }, - "serviceNowUrl": { - "type": "string", - "examples": [ - "https://servicenow_dev.com" - ] - }, - "deviceOnboardingWebhookUrl": { - "type": "string", - "examples": [ - "webhookURL" - ] - }, - "serviceNowAdapter": { - "type": "string", - "examples": [ - "ServiceNow" - ] - }, - "netBoxAdapter": { - "type": "string", - "examples": [ - "NetboxV3" - ] - }, - "msTeamsAdapter": { - "type": "string", - "examples": [ - "MS Teams" - ] - }, - "kentikAdapter": { - "type": "string", - "examples": [ - "Kentik v5" - ] - } - }, - "required": [] - }, - "initiator": { - "type": "string" - } - } - }, - "type": "automation", - "font_size": 12, - "errorHandler": null, - "preAutomationTime": 0, - "sla": 0, - "last_updated": "2025-01-24T11:15:29.204Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.46.0-2023.1.14.0", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "created": "1970-01-01T00:00:00.000Z", - "canvasVersion": 3, - "created_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 11, - "reference": "f0d86ceb-4c74-4dfd-bdd0-baaf968d7702", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "name": "Update Change Request - ServiceNow", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": -624, - "y": 444 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": -624, - "y": 1020 - } - }, - "c345": { - "name": "ViewData", - "canvasName": "ViewData", - "summary": "Show ServiceNow Error", - "description": "Show update change request error and decision options", - "location": "Application", - "app": "WorkFlowEngine", - "displayName": "Tools", - "type": "manual", - "variables": { - "incoming": { - "header": "ServiceNow Error", - "message": "", - "body": "$var.job.serviceNowError", - "variables": {}, - "btn_success": "OK", - "btn_failure": "" - }, - "outgoing": {}, - "error": "", - "decorators": [] - }, - "view": "/workflow_engine/task/ViewData", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": -228, - "y": 900 - } - }, - "2ad1": { - "name": "updateChangeRequest", - "canvasName": "updateChangeRequest", - "summary": "Update Change Request", - "description": "Update change request state", - "location": "Adapter", - "locationType": "Servicenow", - "app": "Servicenow", - "type": "automatic", - "displayName": "Servicenow", - "variables": { - "incoming": { - "changeId": "$var.e4c7.crSysId", - "body": "$var.e4c7.crUpdatePayload", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "$var.job.updatedCR" - }, - "error": "$var.job.serviceNowError", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": -624, - "y": 912 - } - }, - "fd22": { - "name": "getChangeRequests", - "canvasName": "getChangeRequests", - "summary": "Get Change Request", - "description": "Get change request with query parameters provided", - "location": "Adapter", - "locationType": "Servicenow", - "app": "Servicenow", - "type": "automatic", - "displayName": "Servicenow", - "variables": { - "incoming": { - "sysparmQuery": "$var.ade8.merged_object", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": null - }, - "error": "$var.job.serviceNowError", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": -624, - "y": 684 - } - }, - "ade8": { - "name": "merge", - "canvasName": "merge", - "summary": "Build sysparmQuery", - "description": "Build sysparmQuery", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "data_to_merge": [ - { - "key": "number", - "value": { - "task": "job", - "variable": "crNumber", - "editable": true - } - } - ] - }, - "outgoing": { - "merged_object": null - } - }, - "groups": [], - "nodeLocation": { - "x": -624, - "y": 576 - } - }, - "e4c7": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Build CR Update Payload - ServiceNow", - "description": "Build change request update payload", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "621a5d367393d9019373d137", - "variableMap": { - "changeRequestResponse": "$var.fd22.result", - "comments": "$var.job.comments", - "state": "$var.job.state" - }, - "options": { - "extractOutput": false, - "validateIncoming": false, - "revertToDefaultValue": true - } - }, - "outgoing": { - "crSysId": null, - "crUpdatePayload": null - } - }, - "groups": [], - "task_name": "Build CR Update Payload - ServiceNow", - "retrySettings": null, - "nodeLocation": { - "x": -624, - "y": 792 - } - } - }, - "transitions": { - "workflow_start": { - "ade8": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "c345": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "2ad1": { - "workflow_end": { - "type": "standard", - "state": "success" - }, - "c345": { - "type": "standard", - "state": "error" - } - }, - "fd22": { - "c345": { - "type": "standard", - "state": "error" - }, - "e4c7": { - "type": "standard", - "state": "success" - } - }, - "ade8": { - "fd22": { - "type": "standard", - "state": "success" - } - }, - "e4c7": { - "2ad1": { - "type": "standard", - "state": "success" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "crNumber": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "comments": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "adapterId", - "crNumber", - "comments", - "state" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "crNumber": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "comments": { - "type": "string" - }, - "state": { - "type": "string" - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - }, - "serviceNowError": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "updatedCR": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - } - }, - "created": "2022-02-26T16:54:56.153Z", - "createdVersion": "5.40.5-2021.1.52.0", - "created_by": { - "provenance": "CloudAAA", - "username": "noreply@itential.com", - "firstname": "noreply", - "inactive": true - }, - "font_size": 12, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "last_updated": "2025-01-24T11:15:29.204Z", - "preAutomationTime": 0, - "sla": 0, - "type": "automation", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "canvasVersion": 3, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 12, - "reference": "1078cde5-dbc8-43eb-8171-84ff2823d45e", - "type": "workflow", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "name": "Create Change Request - ServiceNow", - "tasks": { - "workflow_start": { - "name": "workflow_start", - "groups": [], - "nodeLocation": { - "x": 600, - "y": 876 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 600, - "y": 1332 - } - }, - "cc49": { - "name": "createChangeRequest", - "canvasName": "createChangeRequest", - "summary": "Create Change Request", - "description": "Create the change with the information provided and return the change number for future reference.", - "location": "Adapter", - "locationType": "Servicenow", - "app": "Servicenow", - "type": "automatic", - "displayName": "Servicenow", - "variables": { - "incoming": { - "body": "$var.aab9.merged_object", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "$var.job.createdCR" - }, - "error": "$var.job.serviceNowError", - "decorators": [] - }, - "groups": [], - "actor": "Pronghorn", - "scheduled": false, - "nodeLocation": { - "x": 600, - "y": 1104 - } - }, - "12f6": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Verify CR Creation Successful", - "description": "CR Creation Successful?", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "response.number", - "operand_1": { - "variable": "result", - "task": "cc49" - }, - "operator": "contains", - "operand_2": { - "variable": "CHG", - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, - "groups": [], - "nodeLocation": { - "x": 600, - "y": 1212 - } - }, - "c345": { - "name": "ViewData", - "canvasName": "ViewData", - "summary": "Show ServiceNow Error", - "description": "Show create change request error and decision options", - "location": "Application", - "app": "WorkFlowEngine", - "displayName": "Tools", - "type": "manual", - "variables": { - "incoming": { - "header": "Create Change Request Error", - "message": "Unable to create change request", - "body": "$var.job.serviceNowError", - "variables": {}, - "btn_success": "OK", - "btn_failure": "" - }, - "outgoing": {}, - "error": "", - "decorators": [] - }, - "view": "/workflow_engine/task/ViewData", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 912, - "y": 1200 - } - }, - "aab9": { - "name": "merge", - "canvasName": "merge", - "summary": "Build CR Creation Payload", - "description": "Build CR Creation Payload", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "data_to_merge": [ - { - "key": "title", - "value": { - "task": "job", - "variable": "title", - "editable": true - } - }, - { - "key": "summary", - "value": { - "task": "job", - "variable": "summary", - "editable": true - } - }, - { - "key": "description", - "value": { - "task": "job", - "variable": "description", - "editable": true - } - }, - { - "key": "comments", - "value": { - "task": "job", - "variable": "comments", - "editable": true - } - }, - { - "key": "assignment_group", - "value": { - "task": "job", - "variable": "assignmentGroup", - "editable": true - } - } - ] - }, - "outgoing": { - "merged_object": null - } - }, - "groups": [], - "nodeLocation": { - "x": 600, - "y": 1000 - } - } - }, - "transitions": { - "workflow_start": { - "aab9": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "cc49": { - "12f6": { - "type": "standard", - "state": "success" - }, - "c345": { - "type": "standard", - "state": "error" - } - }, - "12f6": { - "c345": { - "type": "standard", - "state": "failure" - }, - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "c345": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "aab9": { - "cc49": { - "type": "standard", - "state": "success" - } - } - }, - "inputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "title": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "summary": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "description": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "comments": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "assignmentGroup": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - }, - "required": [ - "adapterId", - "title", - "summary", - "description", - "comments", - "assignmentGroup" - ] - }, - "outputSchema": { - "type": "object", - "properties": { - "adapterId": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "title": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "summary": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "description": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "comments": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "assignmentGroup": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "_id": { - "type": "string", - "pattern": "^[0-9a-f]{24}$" - }, - "initiator": { - "type": "string" - }, - "createdCR": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - }, - "serviceNowError": { - "type": [ - "array", - "boolean", - "null", - "number", - "object", - "string" - ] - } - } - }, - "created": "2022-02-26T16:32:36.505Z", - "createdVersion": "5.40.5-2021.1.52.0", - "created_by": { - "provenance": "CloudAAA", - "username": "noreply@itential.com", - "firstname": "noreply", - "inactive": true - }, - "font_size": 12, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "last_updated": "2025-01-24T11:15:29.210Z", - "preAutomationTime": 0, - "sla": 0, - "type": "automation", - "last_updated_by": { - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" - }, - "canvasVersion": 3, - "tags": [], - "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 13, - "reference": "653feae116329e00e57b12eb", - "type": "jsonForm", - "folder": "/Sample Use Cases/Device Onboarding - Reset", - "document": { - "id": "653feae116329e00e57b12eb", - "created": "2023-10-30T17:41:53.008Z", - "createdBy": "admin@itential", - "lastUpdated": "2025-01-24T11:15:29.210Z", - "lastUpdatedBy": "admin@itential", - "name": "Device Onboarding Reset", - "description": "", - "struct": { - "type": "array", - "items": [ - { - "nodeId": "c10b70ba-7714-41ce-8dc1-8918c67de15d", - "type": "string", - "title": "Device", - "description": "Select a Cisco IOS device to onboard to Kentik", - "placeholder": "Select a Cisco IOS device to onboard to Kentik", - "required": true, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "customKey": "deviceName", - "readOnly": false, - "method": "POST", - "uniqueItems": false, - "base": "/configuration_manager", - "originalHref": "/devices/ ", - "href": "/devices/ ", - "body": { - "options": { - "filter": { - "name": "", - "ostype": "cisco-ios" - }, - "start": 0, - "limit": 10000, - "sort": [ - { - "name": 1 - } - ], - "order": "ascending" - } - }, - "sourcePointer": "/list", - "sourceKeyPointer": "/name", - "labelKeyPointer": "", - "helper": "Select a Cisco IOS device to onboard to Kentik" - }, - { - "nodeId": "d4953942-223b-4025-92f0-4b004b78ecd5", - "type": "string", - "title": "Kentik Adapter", - "description": "Select Kentik adapter to use for job", - "placeholder": "Select Kentik adapter to use for job", - "required": true, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "helper": "Select Kentik adapter to use for job", - "method": "GET", - "uniqueItems": false, - "base": "/adapters", - "originalHref": "/:name", - "href": "/ ", - "sourcePointer": "/results", - "sourceKeyPointer": "/data/name" - } - ] - }, - "schema": { - "title": "Device Onboarding Reset - Kentik - Example", - "description": "", - "type": "object", - "required": [ - "deviceName", - "kentikAdapter" - ], - "properties": { - "deviceName": { - "type": "string", - "title": "Device", - "_id": "/properties/deviceName", - "description": "Select a Cisco IOS device to onboard to Kentik", - "enum": [], - "enumNames": [] - }, - "kentikAdapter": { - "type": "string", - "title": "Kentik Adapter", - "_id": "/properties/kentikAdapter", - "description": "Select Kentik adapter to use for job", - "enum": [], - "enumNames": [] - } - } - }, - "uiSchema": { - "deviceName": { - "ui:placeholder": "Select a Cisco IOS device to onboard to Kentik", - "ui:help": "Select a Cisco IOS device to onboard to Kentik" - }, - "kentikAdapter": { - "ui:placeholder": "Select Kentik adapter to use for job", - "ui:help": "Select Kentik adapter to use for job" - } - }, - "bindingSchema": { - "properties": { - "deviceName": { - "binding:method": "POST", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:body": { - "options": { - "filter": { - "name": "", - "ostype": "cisco-ios" - }, - "start": 0, - "limit": 10000, - "sort": [ - { - "name": 1 - } - ], - "order": "ascending" - } - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/configuration_manager", - "links": [ - { - "rel": "collection", - "href": "/devices/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/list", - "keyPointer": "/name" - } - }, - "kentikAdapter": { - "binding:method": "GET", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/adapters", - "links": [ - { - "rel": "collection", - "href": "/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/results", - "keyPointer": "/data/name" - } - } - } - }, - "validationSchema": {}, - "version": "2020.1" - } - }, - { - "iid": 14, - "reference": "650deb7bc3bb0900c56fcf48", - "type": "jsonForm", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "id": "650deb7bc3bb0900c56fcf48", - "created": "2023-09-22T19:31:07.384Z", - "createdBy": "admin@itential", - "lastUpdated": "2025-01-24T11:15:29.211Z", - "lastUpdatedBy": "admin@itential", - "name": "Device Onboarding", - "description": "", - "struct": { - "type": "array", - "items": [ - { - "nodeId": "c10b70ba-7714-41ce-8dc1-8918c67de15d", - "type": "string", - "title": "Device", - "description": "Select a Cisco IOS device to onboard to Kentik", - "placeholder": "Select a Cisco IOS device to onboard to Kentik", - "required": true, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "customKey": "deviceName", - "readOnly": false, - "method": "POST", - "uniqueItems": false, - "base": "/configuration_manager", - "originalHref": "/devices/ ", - "href": "/devices/ ", - "body": { - "options": { - "filter": { - "name": "", - "ostype": "cisco-ios" - }, - "start": 0, - "limit": 10000, - "sort": [ - { - "name": 1 - } - ], - "order": "ascending" - } - }, - "sourcePointer": "/list", - "sourceKeyPointer": "/name", - "labelKeyPointer": "", - "helper": "Select a Cisco IOS device to onboard to Kentik" - }, - { - "nodeId": "279d1a52-86d3-41b0-b157-52a2fc885381", - "type": "string", - "title": "IAP URL", - "description": "IAP URL to use for hyperlink in ServiceNow and MS Teams to job for onboarding device", - "placeholder": "Enter IAP URL for ServiceNow hyperlink", - "required": true, - "readOnly": false, - "binding": false, - "rel": "item", - "targetPointer": "/default", - "customKey": false, - "disabled": false, - "readonly": false, - "helper": "IAP URL to use for hyperlink in ServiceNow and MS Teams to job for onboarding device. For example, https://iap_01:3443", - "default": "", - "href": null, - "base": null, - "sourceKeyPointer": null, - "sourcePointer": null, - "method": null, - "transformation": null - }, - { - "nodeId": "cd8b5983-b2e5-4b0a-b3e1-1b33ca85175b", - "type": "string", - "title": "ServiceNow URL", - "description": "", - "placeholder": "Enter ServiceNow URL for MS Teams notification message", - "required": true, - "readOnly": false, - "binding": false, - "rel": "item", - "targetPointer": "/default", - "helper": "ServiceNow URL for MS Teams notification message. For example, https://servicenow_dev.com" - }, - { - "nodeId": "fb4ee7a3-5ace-41a9-a06a-da47eee459af", - "type": "string", - "title": "ServiceNow Adapter", - "description": "Select ServiceNow adapter to use for job", - "placeholder": "Select ServiceNow adapter to use for job", - "required": true, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "method": "GET", - "uniqueItems": false, - "base": "/adapters", - "href": "/ ", - "originalHref": "/:name", - "sourcePointer": "/results", - "sourceKeyPointer": "/data/name", - "variables": [], - "customKey": false, - "helper": "Select ServiceNow adapter to use for job" - }, - { - "nodeId": "4f9e321a-a775-400e-8376-8ed20bc8470e", - "type": "string", - "title": "NetBox Adapter", - "description": "Select NetBox adapter to use for job", - "placeholder": "Select NetBox adapter to use for job", - "required": true, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "helper": "Select NetBox adapter to use for job", - "method": "GET", - "uniqueItems": false, - "base": "/adapters", - "originalHref": "/:name", - "href": "/ ", - "sourcePointer": "/results", - "sourceKeyPointer": "/data/name" - }, - { - "nodeId": "29e494c4-40c1-4039-977f-3559e0544290", - "type": "string", - "title": "MS Teams Adapter", - "description": "Select MS Teams adapter to use for job", - "placeholder": "Select MS Teams adapter to use for job", - "required": true, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "helper": "Select MS Teams adapter to use for job", - "method": "GET", - "uniqueItems": false, - "base": "/adapters", - "originalHref": "/:name", - "href": "/ ", - "sourcePointer": "/results", - "sourceKeyPointer": "/data/name" - }, - { - "nodeId": "d4953942-223b-4025-92f0-4b004b78ecd5", - "type": "string", - "title": "Kentik Adapter", - "description": "Select Kentik adapter to use for job", - "placeholder": "Select Kentik adapter to use for job", - "required": true, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "helper": "Select Kentik adapter to use for job", - "method": "GET", - "uniqueItems": false, - "base": "/adapters", - "originalHref": "/:name", - "href": "/ ", - "sourcePointer": "/results", - "sourceKeyPointer": "/data/name" - }, - { - "nodeId": "1c252b04-f1fb-482e-8890-81f488c03727", - "type": "string", - "title": "Device Onboarding Webhook URL", - "description": "", - "placeholder": "Enter MS Teams Incoming Webhook URL for Device Onboarding channel", - "required": true, - "readOnly": false, - "binding": false, - "rel": "item", - "targetPointer": "/default", - "default": "", - "helper": "MS Teams Incoming Webhook URL for Device Onboarding channel. See https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook?tabs=dotnet#create-incoming-webhooks-1 for more information about creating Incoming Webhooks in MS Teams", - "disabled": false, - "readonly": false, - "href": null, - "base": null, - "sourceKeyPointer": null, - "sourcePointer": null, - "method": null, - "transformation": null - } - ] - }, - "schema": { - "title": "Device Onboarding - Kentik - Example", - "description": "", - "type": "object", - "required": [ - "deviceName", - "iapUrl", - "serviceNowUrl", - "serviceNowAdapter", - "netBoxAdapter", - "msTeamsAdapter", - "kentikAdapter", - "deviceOnboardingWebhookUrl" - ], - "properties": { - "deviceName": { - "type": "string", - "title": "Device", - "_id": "/properties/deviceName", - "description": "Select a Cisco IOS device to onboard to Kentik", - "enum": [], - "enumNames": [] - }, - "iapUrl": { - "type": "string", - "title": "IAP URL", - "_id": "/properties/iapUrl", - "description": "IAP URL to use for hyperlink in ServiceNow and MS Teams to job for onboarding device", - "default": "" - }, - "serviceNowUrl": { - "type": "string", - "title": "ServiceNow URL", - "_id": "/properties/serviceNowUrl", - "description": "" - }, - "serviceNowAdapter": { - "type": "string", - "title": "ServiceNow Adapter", - "_id": "/properties/serviceNowAdapter", - "description": "Select ServiceNow adapter to use for job", - "enum": [], - "enumNames": [] - }, - "netBoxAdapter": { - "type": "string", - "title": "NetBox Adapter", - "_id": "/properties/netBoxAdapter", - "description": "Select NetBox adapter to use for job", - "enum": [], - "enumNames": [] - }, - "msTeamsAdapter": { - "type": "string", - "title": "MS Teams Adapter", - "_id": "/properties/msTeamsAdapter", - "description": "Select MS Teams adapter to use for job", - "enum": [], - "enumNames": [] - }, - "kentikAdapter": { - "type": "string", - "title": "Kentik Adapter", - "_id": "/properties/kentikAdapter", - "description": "Select Kentik adapter to use for job", - "enum": [], - "enumNames": [] - }, - "deviceOnboardingWebhookUrl": { - "type": "string", - "title": "Device Onboarding Webhook URL", - "_id": "/properties/deviceOnboardingWebhookUrl", - "description": "", - "default": "" - } - } - }, - "uiSchema": { - "deviceName": { - "ui:placeholder": "Select a Cisco IOS device to onboard to Kentik", - "ui:help": "Select a Cisco IOS device to onboard to Kentik" - }, - "iapUrl": { - "ui:placeholder": "Enter IAP URL for ServiceNow hyperlink", - "ui:help": "IAP URL to use for hyperlink in ServiceNow and MS Teams to job for onboarding device. For example, https://iap_01:3443" - }, - "serviceNowUrl": { - "ui:placeholder": "Enter ServiceNow URL for MS Teams notification message", - "ui:help": "ServiceNow URL for MS Teams notification message. For example, https://servicenow_dev.com" - }, - "serviceNowAdapter": { - "ui:placeholder": "Select ServiceNow adapter to use for job", - "ui:help": "Select ServiceNow adapter to use for job" - }, - "netBoxAdapter": { - "ui:placeholder": "Select NetBox adapter to use for job", - "ui:help": "Select NetBox adapter to use for job" - }, - "msTeamsAdapter": { - "ui:placeholder": "Select MS Teams adapter to use for job", - "ui:help": "Select MS Teams adapter to use for job" - }, - "kentikAdapter": { - "ui:placeholder": "Select Kentik adapter to use for job", - "ui:help": "Select Kentik adapter to use for job" - }, - "deviceOnboardingWebhookUrl": { - "ui:placeholder": "Enter MS Teams Incoming Webhook URL for Device Onboarding channel", - "ui:help": "MS Teams Incoming Webhook URL for Device Onboarding channel. See https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook?tabs=dotnet#create-incoming-webhooks-1 for more information about creating Incoming Webhooks in MS Teams" - } - }, - "bindingSchema": { - "properties": { - "deviceName": { - "binding:method": "POST", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:body": { - "options": { - "filter": { - "name": "", - "ostype": "cisco-ios" - }, - "start": 0, - "limit": 10000, - "sort": [ - { - "name": 1 - } - ], - "order": "ascending" - } - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/configuration_manager", - "links": [ - { - "rel": "collection", - "href": "/devices/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/list", - "keyPointer": "/name" - } - }, - "serviceNowAdapter": { - "binding:method": "GET", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/adapters", - "links": [ - { - "rel": "collection", - "href": "/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/results", - "keyPointer": "/data/name" - } - }, - "netBoxAdapter": { - "binding:method": "GET", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/adapters", - "links": [ - { - "rel": "collection", - "href": "/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/results", - "keyPointer": "/data/name" - } - }, - "msTeamsAdapter": { - "binding:method": "GET", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/adapters", - "links": [ - { - "rel": "collection", - "href": "/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/results", - "keyPointer": "/data/name" - } - }, - "kentikAdapter": { - "binding:method": "GET", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/adapters", - "links": [ - { - "rel": "collection", - "href": "/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/results", - "keyPointer": "/data/name" - } - } - } - }, - "validationSchema": {}, - "version": "2020.1" - } - }, - { - "iid": 15, - "reference": "649e07e65874d100a9c27745", - "type": "jsonForm", - "folder": "/Sample Use Cases/AWS Blocked Traffic Event - Reset", - "document": { - "id": "649e07e65874d100a9c27745", - "created": "2023-06-29T22:38:30.293Z", - "createdBy": "admin@itential", - "lastUpdated": "2025-01-24T11:15:29.210Z", - "lastUpdatedBy": "admin@itential", - "name": "AWS Blocked Traffic Event - Reset", - "description": "", - "struct": { - "type": "array", - "items": [ - { - "nodeId": "3a57efed-da4d-4a5b-bcc6-a3f39fd10f07", - "type": "string", - "title": "Source IP", - "description": "", - "placeholder": "Enter source IP", - "required": false, - "readOnly": false, - "binding": false, - "rel": "item", - "targetPointer": "/default", - "customKey": "sourceIP", - "format": "ipv4" - }, - { - "nodeId": "4b3a56ed-88d7-44b6-9f25-bbeb497fbe55", - "type": "string", - "title": "AWS EC2 Adapter", - "description": "Adapter to use to connect to AWS", - "placeholder": "Select adapter to use to connect to AWS", - "required": false, - "enum": [], - "enumNames": [], - "binding": true, - "rel": "collection", - "targetPointer": "/enum", - "customKey": "awsEC2Adapter", - "helper": "Adapter to use to connect to AWS", - "method": "GET", - "uniqueItems": false, - "base": "/adapters", - "originalHref": "/:name", - "href": "/ ", - "sourcePointer": "/results", - "sourceKeyPointer": "/data/name" - }, - { - "nodeId": "51211815-79e0-45e5-81a2-be07211bfcfd", - "type": "string", - "title": "AWS Security Group", - "description": "AWS security group to update to remove allowed source IP", - "placeholder": "Enter AWS security group to update", - "required": false, - "readOnly": false, - "binding": false, - "rel": "item", - "targetPointer": "/default", - "customKey": "awsSecurityGroup", - "helper": "AWS security group to update to remove allowed source IP" - } - ] - }, - "schema": { - "title": "AWS Blocked Traffic Event - Reset - Kentik Example", - "description": "", - "type": "object", - "required": [], - "properties": { - "sourceIP": { - "type": "string", - "title": "Source IP", - "_id": "/properties/sourceIP", - "description": "", - "format": "ipv4" - }, - "awsEC2Adapter": { - "type": "string", - "title": "AWS EC2 Adapter", - "_id": "/properties/awsEC2Adapter", - "description": "Adapter to use to connect to AWS", - "enum": [], - "enumNames": [] - }, - "awsSecurityGroup": { - "type": "string", - "title": "AWS Security Group", - "_id": "/properties/awsSecurityGroup", - "description": "AWS security group to update to remove allowed source IP" - } - } - }, - "uiSchema": { - "sourceIP": { - "ui:placeholder": "Enter source IP" - }, - "awsEC2Adapter": { - "ui:placeholder": "Select adapter to use to connect to AWS", - "ui:help": "Adapter to use to connect to AWS" - }, - "awsSecurityGroup": { - "ui:placeholder": "Enter AWS security group to update", - "ui:help": "AWS security group to update to remove allowed source IP" - } - }, - "bindingSchema": { - "properties": { - "awsEC2Adapter": { - "binding:method": "GET", - "binding:link": { - "$ref": "/links", - "rel": "collection" - }, - "binding:target": { - "propertyPointer": "/enum" - }, - "binding:hyperSchema": { - "type": "object", - "base": "/adapters", - "links": [ - { - "rel": "collection", - "href": "/ ", - "targetMediaType": "application/json", - "targetSchema": { - "$ref": "#" - }, - "variables": [] - } - ] - }, - "binding:source": { - "propertyPointer": "/results", - "keyPointer": "/data/name" - } - } - } - }, - "validationSchema": {}, - "version": "2020.1" - } - }, - { - "iid": 16, - "reference": "@66d032bd21161b4df2717499: Ping - IOS - Kentik - Example", - "type": "mopCommandTemplate", - "folder": "/Sample Use Cases/Device Onboarding/Flow Test/Generate Traffic", - "document": { - "tags": [], - "name": "Ping - IOS - Kentik - Example", - "os": "", - "passRule": true, - "ignoreWarnings": false, - "commands": [ - { - "command": "ping repeat ", - "passRule": true, - "rules": [ - { - "rule": "Success", - "eval": "contains", - "severity": "error" - } - ] - } - ], - "created": 1724920509992, - "createdBy": "noreply@itential.com", - "lastUpdated": 1737717329210, - "lastUpdatedBy": "admin@itential" - } - }, - { - "iid": 17, - "reference": "650c882163272b00a0986426", - "type": "template", - "folder": "/Sample Use Cases/Device Onboarding - Reset", - "document": { - "_id": "650c882163272b00a0986426", - "command": "", - "template": "conf t\n\ninterface GigabitEthernet1\n no ip flow monitor itential-monitor input\ninterface GigabitEthernet1.33\n no ip flow monitor itential-monitor input\nno snmp-server community kentikSNMP RO \nno sampler itential-sampler\nno flow monitor itential-monitor\nno flow exporter itential-exporter\nno flow record itential-flow\n", - "type": "jinja2", - "name": "IOS-XE Flow Config - Reset - Kentik - Example", - "version": 1, - "tags": [], - "data": "{\n}", - "group": "Kentik", - "description": "https://github.com/kentik/config-snippets/blob/0a48bdcb627a68c6bc2a7d7736012eeb341557bc/Cisco/IOS-XE/netflow-9.conf", - "created": "2023-10-26T17:40:37.396Z", - "lastUpdated": "2025-01-24T11:15:29.212Z", - "createdBy": null, - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false - } - } - }, - { - "iid": 18, - "reference": "64ff5f12285e4a009f064820", - "type": "template", - "folder": "/Sample Use Cases/Device Onboarding/Push Configuration to Device", - "document": { - "_id": "64ff5f12285e4a009f064820", - "command": "", - "template": "conf t\n\nsnmp-server community {{snmpCommunity}} RO \n\n! if using a specific netflow records\n! else use netflow-original which comes by default\nflow record {{customFlowRecord}}\n match ipv4 tos\n match ipv4 protocol\n match ipv4 source address\n match ipv4 destination address\n match transport source-port\n match transport destination-port\n match interface input\n collect routing source as\n collect routing destination as\n collect routing next-hop address ipv4\n collect transport tcp flags\n collect interface output\n collect counter bytes\n collect counter packets\n collect timestamp sys-uptime first\n collect timestamp sys-uptime last\n!\nsampler {{netflowSampler}}\n mode random 1 out-of {{deviceSampleRate+1}}\n!\nflow exporter {{exporter}}\n ! Direct export to Kentik Flow Ingest (without Flow Proxy)\n description {{publicFlowIngestDescription}}\n destination {{kentikIngestIP}} {% if vrfName %}vrf {{vrfName}}{% endif %} \n source {{sourceInterface}}\n transport udp {{kentikIngestUDPPort}}\n version 9\n!\n!\nflow monitor {{flowMonitor}}\n exporter {{exporter}}\n cache timeout inactive 10\n cache timeout active 60\n ! if using custom Netflow records\n record {{customFlowRecord}}\n ! if using standard default Netflow records\n record netflow-original\nexit\n{% for i in sourceInterfaces %}\ninterface {{i}}\n ip flow monitor {{flowMonitor}} input\n{% endfor %}\n\n{% if vrfName %} \n! Add a route to Kentik Ingest IP if in the in case it has no route to it\nip route vrf {{vrfName}} {{kentikIngestIP}} 255.255.255.255 {{vrfGatewayIP}}\n{% endif %} \n\nexit\n\n", - "type": "jinja2", - "name": "IOS-XE Flow Config - Kentik - Example", - "version": 1, - "tags": [], - "data": "{\n \"snmpCommunity\": \"kentikSNMP\",\n \"customFlowRecord\": \"itential-flow\",\n \"netflowSampler\": \"itential-sampler\",\n \"deviceSampleRate\": 1,\n \"exporter\": \"itential-exporter\",\n \"publicFlowIngestDescription\": \"4e076f80f88b4e089de43072\",\n \"kentikIngestIP\": \"208.76.14.230\",\n \"kentikIngestUDPPort\": \"20013\",\n \"vrfName\": \"itential-vrf\",\n \"vrfGatewayIP\": \"10.10.10.10\",\n \"flowMonitor\": \"itential-monitor\",\n \"sourceInterface\":\"GigabitEthernet1\",\n \"sourceInterfaces\": [\n \"GigabitEthernet1\",\n \"GigabitEthernet1.33\"\n ]\n}", - "group": "Kentik", - "description": "https://github.com/kentik/config-snippets/blob/0a48bdcb627a68c6bc2a7d7736012eeb341557bc/Cisco/IOS-XE/netflow-9.conf", - "created": "2023-10-26T17:40:18.940Z", - "lastUpdated": "2025-01-24T11:15:29.212Z", - "createdBy": null, - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential", - "firstname": "admin@itential", - "inactive": false - } - } - }, - { - "iid": 19, - "reference": "653fe9a52c883d00f315fdd0", - "type": "transformation", - "folder": "/Sample Use Cases/Device Onboarding - Reset", - "document": { - "_id": "653fe9a52c883d00f315fdd0", - "name": "Process Kentik Device Onboarding Reset Form Inputs", - "description": "Process Kentik form inputs for device onboarding", - "incoming": [ - { - "$id": "formData", - "type": "object", - "properties": { - "deviceName": { - "type": "string", - "examples": [ - "IOS_Device_Name" - ] - }, - "kentikAdapter": { - "type": "string", - "examples": [ - "Kentik v5" - ] - } - }, - "required": [] - } - ], - "outgoing": [ - { - "$id": "deviceName", - "type": "string" - }, - { - "$id": "kentikAdapter", - "type": "string" - } - ], - "steps": [ - { - "id": 12, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/kentikAdapter" - }, - "to": { - "location": "outgoing", - "name": "kentikAdapter", - "ptr": "" - }, - "context": "#" - }, - { - "id": 13, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/deviceName" - }, - "to": { - "location": "outgoing", - "name": "deviceName", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "comments": [], - "view": { - "col": 1, - "row": 5 - }, - "created": "2025-01-23T20:43:50.557Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.211Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 20, - "reference": "649e1ee2d8cf7a00af456028", - "type": "transformation", - "folder": "/Sample Use Cases/AWS Blocked Traffic Event", - "document": { - "_id": "649e1ee2d8cf7a00af456028", - "name": "AWS Blocked Traffic Event - Allowed List Error", - "description": "", - "incoming": [ - { - "$id": "links", - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal.kentik.com/v4/library/dashboards/18392" - ] - } - }, - "required": [] - } - }, - { - "$id": "dimensions", - "type": "object", - "properties": { - "AS_src": { - "type": "string", - "examples": [ - "198465" - ] - }, - "IP_dst": { - "type": "string", - "examples": [ - "13.13.13.13" - ], - "format": "ipv4" - }, - "IP_src": { - "type": "string", - "examples": [ - "45.129.14.30" - ], - "format": "ipv4" - }, - "kt_aws_dst_sg": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - }, - { - "$id": "jobId", - "type": "string", - "examples": [ - "7517dfb1b5fd4af2bac87a02" - ] - }, - { - "$id": "allowedIPList", - "type": "array", - "items": { - "type": "string", - "examples": [ - "10.10.10.10" - ], - "format": "ipv4" - } - }, - { - "$id": "iapUrl", - "type": "string", - "examples": [ - "https://iap_01:3443" - ] - } - ], - "outgoing": [ - { - "$id": "teamsDeniedMessage", - "type": "string" - } - ], - "steps": [ - { - "id": 11, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/kt_aws_dst_sg" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 17, - "type": "assign", - "from": { - "location": "incoming", - "name": "jobId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/6/value" - }, - "context": "#" - }, - { - "id": 19, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_dst" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/8/value" - }, - "context": "#" - }, - { - "id": 20, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/AS_src" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/9/value" - }, - "context": "#" - }, - { - "id": 23, - "type": "assign", - "from": { - "location": "incoming", - "name": "links", - "ptr": "" - }, - "to": { - "location": "method", - "name": 22, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 27, - "type": "assign", - "from": { - "location": "incoming", - "name": "links", - "ptr": "" - }, - "to": { - "location": "method", - "name": 26, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 38, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_src" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/7/value" - }, - "context": "#" - }, - { - "id": 45, - "type": "assign", - "from": { - "location": "incoming", - "name": "allowedIPList", - "ptr": "" - }, - "to": { - "location": "method", - "name": 44, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 49, - "type": "assign", - "from": { - "location": "incoming", - "name": "iapUrl", - "ptr": "" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/5/value" - }, - "context": "#" - }, - { - "id": 22, - "type": "method", - "library": "Array", - "method": "getIndex", - "args": [ - null, - 0 - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#" - }, - { - "id": 26, - "type": "method", - "library": "Array", - "method": "getIndex", - "args": [ - null, - 1 - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 44, - "type": "method", - "library": "Array", - "method": "map", - "args": [ - null, - "formatAllowedIPs" - ], - "view": { - "row": 4, - "col": 1 - }, - "context": "#" - }, - { - "id": 25, - "type": "assign", - "from": { - "location": "method", - "name": 22, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 24, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 29, - "type": "assign", - "from": { - "location": "method", - "name": 26, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 28, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 31, - "type": "assign", - "from": { - "location": "method", - "name": 22, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 30, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 33, - "type": "assign", - "from": { - "location": "method", - "name": 26, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 32, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 47, - "type": "assign", - "from": { - "location": "method", - "name": 44, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 46, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 24, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Name" - ], - "view": { - "row": 1, - "col": 2 - }, - "context": "#" - }, - { - "id": 28, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Value" - ], - "view": { - "row": 2, - "col": 3 - }, - "context": "#" - }, - { - "id": 30, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Value" - ], - "view": { - "row": 1, - "col": 3 - }, - "context": "#" - }, - { - "id": 32, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Name" - ], - "view": { - "row": 2, - "col": 2 - }, - "context": "#" - }, - { - "id": 46, - "type": "method", - "library": "Array", - "method": "join", - "args": [ - null, - " " - ], - "view": { - "row": 4, - "col": 2 - }, - "context": "#" - }, - { - "id": 36, - "type": "assign", - "from": { - "location": "method", - "name": 32, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/4/value" - }, - "context": "#" - }, - { - "id": 37, - "type": "assign", - "from": { - "location": "method", - "name": 28, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/3/value" - }, - "context": "#" - }, - { - "id": 48, - "type": "assign", - "from": { - "location": "method", - "name": 46, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/10/value" - }, - "context": "#" - }, - { - "id": 50, - "type": "assign", - "from": { - "location": "method", - "name": 24, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 51, - "type": "assign", - "from": { - "location": "method", - "name": 30, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 9, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "An alert has been captured in Kentik about a blocked Security Group (${securityGroupName}) for the Web Server.\n
\n \n\nHowever, the auto remediation request was ignored since the source IP is not part of the allowed IP List:\n
\n", - "args": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "view": { - "row": 3, - "col": 4 - }, - "context": "#" - }, - { - "id": 40, - "type": "assign", - "from": { - "location": "template", - "name": 9, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "teamsDeniedMessage", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [ - { - "incoming": [ - { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Label": { - "type": "string", - "examples": [ - "Open in Dashboard" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal%2Ekentik%2Ecom/v4/library/dashboards/18392" - ] - } - }, - "required": [], - "$id": "element" - }, - { - "title": "index", - "type": "number", - "optional": true, - "$id": "index" - }, - { - "$id": "array", - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Label": { - "type": "string", - "examples": [ - "Open in Dashboard" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal%2Ekentik%2Ecom/v4/library/dashboards/18392" - ] - } - }, - "required": [] - }, - "optional": true - } - ], - "outgoing": [ - { - "title": "return", - "type": "boolean", - "$id": "return" - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "element", - "ptr": "/Name" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "incoming", - "name": "thisArg", - "ptr": "" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Equality", - "method": "equality", - "args": [ - null, - null - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "return", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "name": "\u0192_query_1", - "view": { - "col": 2, - "row": 4 - }, - "id": "\u0192_query_1", - "comments": [] - }, - { - "incoming": [ - { - "type": "string", - "examples": [ - "10%2E10%2E10%2E10" - ], - "format": "ipv4", - "$id": "currentValue" - }, - { - "title": "index", - "type": "number", - "optional": true, - "$id": "index" - }, - { - "$id": "array", - "type": "array", - "items": { - "type": "string", - "examples": [ - "10%2E10%2E10%2E10" - ], - "format": "ipv4" - }, - "optional": true - } - ], - "outgoing": [ - { - "title": "newValue", - "type": [ - "array", - "boolean", - "number", - "integer", - "string", - "object", - "null" - ], - "editable": true, - "$id": "newValue" - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "currentValue", - "ptr": "" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "String", - "method": "concat", - "args": [ - "
  • ", - null, - "
  • " - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "newValue", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "name": "formatAllowedIPs", - "view": { - "col": 2, - "row": 3 - }, - "id": "formatAllowedIPs", - "comments": [] - } - ], - "comments": [], - "view": { - "col": 4, - "row": 9 - }, - "created": "2025-01-23T20:43:50.564Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.213Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 21, - "reference": "649dd079d8cf7a00af456027", - "type": "transformation", - "folder": "/Sample Use Cases/AWS Blocked Traffic Event", - "document": { - "_id": "649dd079d8cf7a00af456027", - "name": "AWS Blocked Traffic Event", - "description": "", - "incoming": [ - { - "$id": "iapURL", - "type": "string", - "examples": [ - "https://iap_1:3443" - ] - }, - { - "$id": "serviceNowURL", - "type": "string", - "examples": [ - "https://servicenow_dev.com" - ] - }, - { - "$id": "dimensions", - "type": "object", - "properties": { - "AS_src": { - "type": "string", - "examples": [ - "198465" - ] - }, - "IP_dst": { - "type": "string", - "examples": [ - "10.0.18.252" - ], - "format": "ipv4" - }, - "IP_src": { - "type": "string", - "examples": [ - "45.129.14.30" - ], - "format": "ipv4" - }, - "kt_aws_dst_sg": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - }, - { - "$id": "links", - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal.kentik.com/v4/library/dashboards/18392" - ] - } - }, - "required": [] - } - }, - { - "$id": "jobId", - "type": "string", - "examples": [ - "7517dfb1b5fd4af2bac87a02" - ] - }, - { - "$id": "alarmPolicyName", - "type": "string", - "examples": [ - "Web Server Traffic Rejections" - ] - }, - { - "$id": "serviceNowChangeSysId", - "type": "string", - "examples": [ - "afdafadfA" - ] - }, - { - "$id": "serviceNowIncidentSysId", - "type": "string", - "examples": [ - "f298220c87b6611035617558dabb3563" - ] - } - ], - "outgoing": [ - { - "$id": "teamsMessageStart", - "type": "string" - }, - { - "$id": "teamsMessageStartSuccess", - "type": "string" - }, - { - "$id": "teamsMessageStartFailure", - "type": "string" - }, - { - "$id": "serviceNowSummary", - "type": "string", - "examples": [ - "servicenow summary" - ] - }, - { - "$id": "serviceNowComments", - "type": "string", - "examples": [ - "servicenow comments" - ] - }, - { - "$id": "seviceNowChangeComments", - "type": "string", - "examples": [ - "servicenow change comments" - ] - }, - { - "$id": "securityGroupFilter", - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "group-name" - ] - }, - "Value": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - } - }, - { - "$id": "sourceIpCIDR", - "type": "string", - "examples": [ - "45%2E129%2E14%2E30" - ], - "format": "ipv4" - }, - { - "$id": "sourceIP", - "type": "string", - "examples": [ - "10%2E10%2E10%2E10" - ], - "format": "ipv4" - } - ], - "steps": [ - { - "id": 10, - "type": "assign", - "from": { - "location": "incoming", - "name": "alarmPolicyName", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "serviceNowSummary", - "ptr": "" - }, - "context": "#" - }, - { - "id": 66, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_src" - }, - "to": { - "location": "outgoing", - "name": "sourceIP", - "ptr": "" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Object", - "method": "setProperty", - "args": [ - {}, - "Name", - "group-name" - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/kt_aws_dst_sg" - }, - "to": { - "location": "method", - "name": 2, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 11, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/kt_aws_dst_sg" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 17, - "type": "assign", - "from": { - "location": "incoming", - "name": "jobId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/6/value" - }, - "context": "#" - }, - { - "id": 18, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_src" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/9/value" - }, - "context": "#" - }, - { - "id": 19, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_dst" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/10/value" - }, - "context": "#" - }, - { - "id": 20, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/AS_src" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/11/value" - }, - "context": "#" - }, - { - "id": 23, - "type": "assign", - "from": { - "location": "incoming", - "name": "links", - "ptr": "" - }, - "to": { - "location": "method", - "name": 22, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 27, - "type": "assign", - "from": { - "location": "incoming", - "name": "links", - "ptr": "" - }, - "to": { - "location": "method", - "name": 26, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 39, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_src" - }, - "to": { - "location": "method", - "name": 38, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 41, - "type": "assign", - "from": { - "location": "incoming", - "name": "serviceNowChangeSysId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/8/value" - }, - "context": "#" - }, - { - "id": 56, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/kt_aws_dst_sg" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 61, - "type": "assign", - "from": { - "location": "incoming", - "name": "jobId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/6/value" - }, - "context": "#" - }, - { - "id": 62, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_src" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/7/value" - }, - "context": "#" - }, - { - "id": 63, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/IP_dst" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/8/value" - }, - "context": "#" - }, - { - "id": 64, - "type": "assign", - "from": { - "location": "incoming", - "name": "dimensions", - "ptr": "/AS_src" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/9/value" - }, - "context": "#" - }, - { - "id": 67, - "type": "assign", - "from": { - "location": "incoming", - "name": "serviceNowURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/7/value" - }, - "context": "#" - }, - { - "id": 68, - "type": "assign", - "from": { - "location": "incoming", - "name": "iapURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/5/value" - }, - "context": "#" - }, - { - "id": 69, - "type": "assign", - "from": { - "location": "incoming", - "name": "iapURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/5/value" - }, - "context": "#" - }, - { - "id": 79, - "type": "assign", - "from": { - "location": "incoming", - "name": "serviceNowURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 78, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 2, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 22, - "type": "method", - "library": "Array", - "method": "getIndex", - "args": [ - null, - 0 - ], - "view": { - "row": 4, - "col": 1 - }, - "context": "#" - }, - { - "id": 26, - "type": "method", - "library": "Array", - "method": "getIndex", - "args": [ - null, - 1 - ], - "view": { - "row": 5, - "col": 1 - }, - "context": "#" - }, - { - "id": 38, - "type": "method", - "library": "String", - "method": "concat", - "args": [ - null, - "/32" - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 25, - "type": "assign", - "from": { - "location": "method", - "name": 22, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 24, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 29, - "type": "assign", - "from": { - "location": "method", - "name": 26, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 28, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 31, - "type": "assign", - "from": { - "location": "method", - "name": 22, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 30, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 33, - "type": "assign", - "from": { - "location": "method", - "name": 26, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 32, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 2, - "type": "method", - "library": "Object", - "method": "setProperty", - "args": [ - null, - "Value", - null - ], - "view": { - "row": 3, - "col": 2 - }, - "context": "#" - }, - { - "id": 24, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Value" - ], - "view": { - "row": 4, - "col": 2 - }, - "context": "#" - }, - { - "id": 28, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Value" - ], - "view": { - "row": 5, - "col": 2 - }, - "context": "#" - }, - { - "id": 30, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Name" - ], - "view": { - "row": 2, - "col": 2 - }, - "context": "#" - }, - { - "id": 32, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "Name" - ], - "view": { - "row": 1, - "col": 2 - }, - "context": "#" - }, - { - "id": 6, - "type": "assign", - "from": { - "location": "method", - "name": 2, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 5, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 34, - "type": "assign", - "from": { - "location": "method", - "name": 24, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 35, - "type": "assign", - "from": { - "location": "method", - "name": 30, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 36, - "type": "assign", - "from": { - "location": "method", - "name": 32, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/4/value" - }, - "context": "#" - }, - { - "id": 37, - "type": "assign", - "from": { - "location": "method", - "name": 28, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 9, - "ptr": "/args/3/value" - }, - "context": "#" - }, - { - "id": 57, - "type": "assign", - "from": { - "location": "method", - "name": 24, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 58, - "type": "assign", - "from": { - "location": "method", - "name": 30, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 70, - "type": "assign", - "from": { - "location": "method", - "name": 28, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/3/value" - }, - "context": "#" - }, - { - "id": 71, - "type": "assign", - "from": { - "location": "method", - "name": 32, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 55, - "ptr": "/args/4/value" - }, - "context": "#" - }, - { - "id": 5, - "type": "method", - "library": "Array", - "method": "push", - "args": [ - [] - ], - "view": { - "row": 5, - "col": 5 - }, - "context": "#" - }, - { - "id": 55, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "[code]An alert has been captured in Kentik about a blocked Security Group (${securityGroupName}) for the Web Server.\n
    \n \n[/code]", - "args": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "view": { - "row": 3, - "col": 4 - }, - "context": "#" - }, - { - "id": 9, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "An alert has been captured in Kentik about a blocked Security Group (${securityGroupName}) for the Web Server.\n
    \n", - "args": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "view": { - "row": 1, - "col": 4 - }, - "context": "#" - }, - { - "id": 73, - "type": "assign", - "from": { - "location": "template", - "name": 9, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 72, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 76, - "type": "assign", - "from": { - "location": "template", - "name": 9, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 75, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 80, - "type": "assign", - "from": { - "location": "template", - "name": 9, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 78, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 83, - "type": "assign", - "from": { - "location": "template", - "name": 9, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 82, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 72, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "${renderedTeamsMessage}
    An automated attempt to remediate the problem will now occur.", - "args": [ - null - ], - "view": { - "row": 1, - "col": 5 - }, - "context": "#" - }, - { - "id": 75, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "${renderedTeamsMessage}
    Remediation Successful! Security Group has been altered to authorize ingress traffic.", - "args": [ - null - ], - "view": { - "row": 2, - "col": 5 - }, - "context": "#" - }, - { - "id": 82, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "[code]${renderedTeamsMessage}[/code]", - "args": [ - null - ], - "view": { - "row": 4, - "col": 5 - }, - "context": "#" - }, - { - "id": 78, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "${renderedTeamsMessage}
    Remediation Failed! Security Group already includes source IP.
    ServiceNow Incident Opened: ServiceNow Incident", - "args": [ - null, - null - ], - "view": { - "row": 3, - "col": 5 - }, - "context": "#" - }, - { - "id": 40, - "type": "assign", - "from": { - "location": "method", - "name": 38, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "sourceIpCIDR", - "ptr": "" - }, - "context": "#" - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "method", - "name": 5, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "securityGroupFilter", - "ptr": "" - }, - "context": "#" - }, - { - "id": 65, - "type": "assign", - "from": { - "location": "template", - "name": 55, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "seviceNowChangeComments", - "ptr": "" - }, - "context": "#" - }, - { - "id": 74, - "type": "assign", - "from": { - "location": "template", - "name": 72, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "teamsMessageStart", - "ptr": "" - }, - "context": "#" - }, - { - "id": 77, - "type": "assign", - "from": { - "location": "template", - "name": 75, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "teamsMessageStartSuccess", - "ptr": "" - }, - "context": "#" - }, - { - "id": 84, - "type": "assign", - "from": { - "location": "template", - "name": 82, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "serviceNowComments", - "ptr": "" - }, - "context": "#" - }, - { - "id": 81, - "type": "assign", - "from": { - "location": "template", - "name": 78, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "teamsMessageStartFailure", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [ - { - "incoming": [ - { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Label": { - "type": "string", - "examples": [ - "Open in Dashboard" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal%2Ekentik%2Ecom/v4/library/dashboards/18392" - ] - } - }, - "required": [], - "$id": "element" - }, - { - "title": "index", - "type": "number", - "optional": true, - "$id": "index" - }, - { - "$id": "array", - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "DashboardAlarmURL" - ] - }, - "Label": { - "type": "string", - "examples": [ - "Open in Dashboard" - ] - }, - "Value": { - "type": "string", - "examples": [ - "https://portal%2Ekentik%2Ecom/v4/library/dashboards/18392" - ] - } - }, - "required": [] - }, - "optional": true - } - ], - "outgoing": [ - { - "title": "return", - "type": "boolean", - "$id": "return" - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "element", - "ptr": "/Name" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "incoming", - "name": "thisArg", - "ptr": "" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Equality", - "method": "equality", - "args": [ - null, - null - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "return", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "name": "\u0192_query_1", - "view": { - "col": 2, - "row": 4 - }, - "id": "\u0192_query_1", - "comments": [] - } - ], - "comments": [], - "view": { - "col": 5, - "row": 9 - }, - "created": "2025-01-23T20:43:50.568Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.214Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 22, - "reference": "621a5d367393d9019373d137", - "type": "transformation", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "_id": "621a5d367393d9019373d137", - "name": "Build CR Update Payload - ServiceNow", - "description": "", - "incoming": [ - { - "$id": "changeRequestResponse", - "type": "object", - "properties": { - "response": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "examples": [ - "a68d46e49712011015c5b4b3f153af9e" - ] - }, - "current_state": { - "type": "string", - "examples": [ - "-5" - ] - } - }, - "required": [] - } - } - }, - "required": [] - }, - { - "$id": "comments", - "type": "string" - }, - { - "$id": "state", - "type": "string" - } - ], - "outgoing": [ - { - "$id": "crSysId", - "type": "string" - }, - { - "$id": "crUpdatePayload", - "type": "object", - "properties": { - "comments": { - "type": "string" - }, - "state": { - "type": "integer", - "examples": [ - 0 - ] - } - }, - "required": [] - } - ], - "steps": [ - { - "id": 4, - "type": "assign", - "from": { - "location": "incoming", - "name": "comments", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "crUpdatePayload", - "ptr": "/comments" - } - }, - { - "id": 5, - "type": "method", - "library": "String", - "method": "toLowerCase", - "args": [ - null - ], - "view": { - "row": 3, - "col": 1 - } - }, - { - "id": 6, - "type": "assign", - "from": { - "location": "incoming", - "name": "state", - "ptr": "" - }, - "to": { - "location": "method", - "name": 5, - "ptr": "/args/0/value" - } - }, - { - "id": 7, - "type": "method", - "library": "JSON", - "method": "parse", - "args": [ - "{ \"new\": -5, \"assess\": -4, \"authorize\": -3, \"scheduled\": -2, \"implement\": -1, \"review\": 0, \"closed\": -6, \"canceled\": -7 }", - null - ], - "view": { - "row": 4, - "col": 1 - } - }, - { - "id": 8, - "type": "method", - "library": "Object", - "method": "optional chaining", - "args": [ - null, - null - ], - "view": { - "row": 3, - "col": 2 - } - }, - { - "id": 9, - "type": "assign", - "from": { - "location": "method", - "name": 7, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 8, - "ptr": "/args/0/value" - } - }, - { - "id": 10, - "type": "assign", - "from": { - "location": "method", - "name": 5, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 8, - "ptr": "/args/1/value" - } - }, - { - "id": 17, - "type": "method", - "library": "Logical", - "method": "nullish", - "args": [ - null, - null - ], - "view": { - "row": 3, - "col": 3 - } - }, - { - "id": 18, - "type": "assign", - "from": { - "location": "method", - "name": 8, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 17, - "ptr": "/args/0/value" - } - }, - { - "id": 20, - "type": "assign", - "from": { - "location": "method", - "name": 17, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "crUpdatePayload", - "ptr": "/state" - } - }, - { - "id": 21, - "type": "method", - "library": "Number", - "method": "parseInt", - "args": [ - null, - null - ], - "view": { - "row": 2, - "col": 2 - } - }, - { - "id": 23, - "type": "assign", - "from": { - "location": "method", - "name": 21, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 17, - "ptr": "/args/1/value" - } - }, - { - "id": 24, - "type": "method", - "library": "Array", - "method": "getIndex", - "args": [ - null, - 0 - ], - "view": { - "row": 1, - "col": 1 - } - }, - { - "id": 25, - "type": "assign", - "from": { - "location": "incoming", - "name": "changeRequestResponse", - "ptr": "/response" - }, - "to": { - "location": "method", - "name": 24, - "ptr": "/args/0/value" - } - }, - { - "id": 26, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "current_state" - ], - "view": { - "row": 2, - "col": 1 - } - }, - { - "id": 27, - "type": "assign", - "from": { - "location": "method", - "name": 24, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 26, - "ptr": "/args/0/value" - } - }, - { - "id": 28, - "type": "assign", - "from": { - "location": "method", - "name": 26, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 21, - "ptr": "/args/0/value" - } - }, - { - "id": 29, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "id" - ], - "view": { - "row": 1, - "col": 2 - } - }, - { - "id": 30, - "type": "assign", - "from": { - "location": "method", - "name": 24, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 29, - "ptr": "/args/0/value" - } - }, - { - "id": 31, - "type": "assign", - "from": { - "location": "method", - "name": 29, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "crSysId", - "ptr": "" - } - } - ], - "functions": [], - "comments": [], - "view": { - "col": 3, - "row": 5 - }, - "created": "2025-01-23T20:43:50.570Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.213Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 23, - "reference": "654104d02c883d00f315fdd1", - "type": "transformation", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "_id": "654104d02c883d00f315fdd1", - "name": "Build IAG Device Configuration Push Data", - "description": "Builds inputs for pushing configuration to device over IAG", - "incoming": [ - { - "$id": "renderedJinja2Template", - "type": "object", - "properties": { - "renderedTemplate": { - "type": "string", - "examples": [ - "banner" - ] - } - }, - "required": [] - }, - { - "$id": "deviceName", - "type": "string", - "examples": [ - "deviceName" - ] - } - ], - "outgoing": [ - { - "$id": "configurationArray", - "type": "array" - }, - { - "$id": "deviceArray", - "type": "array" - } - ], - "steps": [ - { - "id": 1, - "type": "declaration", - "library": "Array", - "method": "new Array", - "args": [ - null - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#", - "polymorphIndex": 0 - }, - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "deviceName", - "ptr": "" - }, - "to": { - "location": "declaration", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "declaration", - "library": "Array", - "method": "new Array", - "args": [ - null - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#", - "polymorphIndex": 0 - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "incoming", - "name": "renderedJinja2Template", - "ptr": "/renderedTemplate" - }, - "to": { - "location": "declaration", - "name": 3, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "declaration", - "name": 3, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "configurationArray", - "ptr": "" - }, - "context": "#" - }, - { - "id": 6, - "type": "assign", - "from": { - "location": "declaration", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "deviceArray", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "comments": [], - "view": { - "col": 1, - "row": 5 - }, - "created": "2025-01-23T20:43:50.583Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.214Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 24, - "reference": "650b63ef64654800d3248063", - "type": "transformation", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "_id": "650b63ef64654800d3248063", - "name": "Device ID to Netbox Asset Tag - Kentik - Example", - "description": "", - "incoming": [ - { - "$id": "netboxDevice", - "type": "object", - "properties": { - "id": { - "type": "integer", - "examples": [ - 3 - ] - } - }, - "required": [] - }, - { - "$id": "kentikDevice", - "type": "object", - "properties": { - "id": { - "type": "string", - "examples": [ - "167024" - ] - } - }, - "required": [] - } - ], - "outgoing": [ - { - "$id": "netboxId", - "type": "integer", - "examples": [ - 3 - ] - }, - { - "$id": "netboxDevice", - "type": "object", - "properties": { - "asset_tag": { - "type": "string", - "examples": [ - "123" - ] - } - }, - "required": [] - } - ], - "steps": [ - { - "id": 5, - "type": "assign", - "from": { - "location": "incoming", - "name": "netboxDevice", - "ptr": "/id" - }, - "to": { - "location": "outgoing", - "name": "netboxId", - "ptr": "" - }, - "context": "#" - }, - { - "id": 6, - "type": "assign", - "from": { - "location": "incoming", - "name": "kentikDevice", - "ptr": "/id" - }, - "to": { - "location": "outgoing", - "name": "netboxDevice", - "ptr": "/asset_tag" - }, - "context": "#" - } - ], - "functions": [], - "comments": [], - "view": { - "col": 1, - "row": 5 - }, - "created": "2025-01-23T20:43:50.639Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.213Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 25, - "reference": "64f3937db3e59e00cc64337a", - "type": "transformation", - "folder": "/Create Device", - "document": { - "_id": "64f3937db3e59e00cc64337a", - "name": "Create Device - Kentik", - "description": "", - "incoming": [ - { - "$id": "name", - "type": "string", - "examples": [ - "test-device" - ] - }, - { - "$id": "type", - "type": "string", - "examples": [ - "router" - ] - }, - { - "$id": "description", - "type": "string", - "examples": [ - "my device" - ] - }, - { - "$id": "planId", - "type": "integer", - "examples": [ - 44662 - ] - }, - { - "$id": "sampleRate", - "type": "integer", - "examples": [ - 1 - ] - }, - { - "$id": "sendingIPs", - "type": "array", - "items": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - } - }, - { - "$id": "snmpIP", - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - }, - { - "$id": "snmpCommunity", - "type": "string", - "examples": [ - "kentikSNMP" - ] - }, - { - "$id": "snmpConfUsername", - "type": "string", - "examples": [ - "kentik" - ] - }, - { - "$id": "snmpConfAuthenticationProtocol", - "type": "string", - "examples": [ - "SHA" - ] - }, - { - "$id": "snmpConfAuthenticationPassphrase", - "type": "string", - "examples": [ - "Pass" - ] - }, - { - "$id": "snmpPrivacyProtocol", - "type": "string", - "examples": [ - "AES" - ] - }, - { - "$id": "snmpPrivacyPassphrase", - "type": "string", - "examples": [ - "AESPassword" - ] - }, - { - "$id": "bgpType", - "type": "string", - "examples": [ - "device" - ] - }, - { - "$id": "bgpNeighborIP", - "type": "string", - "examples": [ - "209.1.1.1" - ], - "format": "ipv4" - }, - { - "$id": "bgpNeighborIP6", - "type": "string", - "examples": [ - "ff44::ffff" - ], - "format": "ipv6" - }, - { - "$id": "bgpNeighborASN", - "type": "string", - "examples": [ - "1" - ] - }, - { - "$id": "bgpNeighborPassword", - "type": "string", - "examples": [ - "pass" - ] - }, - { - "$id": "siteInfo", - "type": "object", - "properties": { - "response": { - "type": "object", - "properties": { - "sites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": [ - "integer", - "number" - ], - "examples": [ - 18245 - ] - }, - "site_name": { - "type": "string", - "examples": [ - "ATL HQ" - ] - }, - "lat": { - "type": [ - "number", - "null" - ], - "examples": [ - 33.7914918 - ] - }, - "lon": { - "type": [ - "number", - "null" - ], - "examples": [ - -84.3898086 - ] - }, - "company_id": { - "type": [ - "integer", - "number" - ], - "examples": [ - 180173 - ] - } - }, - "required": [] - } - } - }, - "required": [] - } - }, - "required": [] - }, - { - "$id": "siteName", - "type": "string", - "examples": [ - "mySite" - ] - } - ], - "outgoing": [ - { - "$id": "devicePayload", - "type": "object", - "properties": { - "device": { - "type": "object", - "properties": { - "device_name": { - "type": "string", - "examples": [ - "test1d" - ] - }, - "device_type": { - "type": "string", - "examples": [ - "router" - ] - }, - "device_description": { - "type": "string", - "examples": [ - "New Test Device" - ] - }, - "plan_id": { - "type": "integer", - "examples": [ - 44662 - ] - }, - "site_id": { - "type": "integer", - "examples": [ - 10170 - ] - }, - "device_sample_rate": { - "type": "integer", - "examples": [ - 1024 - ] - }, - "sending_ips": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - } - }, - "device_snmp_ip": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - }, - "device_snmp_community": { - "type": "string", - "examples": [ - "kentikSNMP" - ] - }, - "minimize_snmp": { - "type": "boolean", - "examples": [ - true, - false - ] - }, - "device_snmp_v3_conf": { - "type": "object", - "properties": { - "UserName": { - "type": "string", - "examples": [ - "kentik" - ] - }, - "AuthenticationProtocol": { - "type": "string", - "examples": [ - "SHA" - ] - }, - "AuthenticationPassphrase": { - "type": "string", - "examples": [ - "Password" - ] - }, - "PrivacyProtocol": { - "type": "string", - "examples": [ - "AES" - ] - }, - "PrivacyPassphrase": { - "type": "string", - "examples": [ - "AESPassword" - ] - } - }, - "required": [] - }, - "device_bgp_type": { - "type": "string", - "examples": [ - "device" - ] - }, - "device_bgp_neighbor_ip": { - "type": "string", - "examples": [ - "209.1.1.1" - ], - "format": "ipv4" - }, - "device_bgp_neighbor_ip6": { - "type": "string", - "examples": [ - "ff44::ffff" - ], - "format": "ipv6" - }, - "device_bgp_neighbor_asn": { - "type": "string", - "examples": [ - "1" - ] - }, - "device_bgp_password": { - "type": "string", - "examples": [ - "KentikMD5" - ] - } - }, - "required": [] - } - }, - "required": [] - } - ], - "steps": [ - { - "id": 1, - "type": "assign", - "from": { - "location": "incoming", - "name": "name", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_name" - }, - "context": "#" - }, - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "type", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_type" - }, - "context": "#" - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "incoming", - "name": "description", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_description" - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "incoming", - "name": "planId", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/plan_id" - }, - "context": "#" - }, - { - "id": 6, - "type": "assign", - "from": { - "location": "incoming", - "name": "sampleRate", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_sample_rate" - }, - "context": "#" - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "incoming", - "name": "sendingIPs", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/sending_ips" - }, - "context": "#" - }, - { - "id": 8, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpIP", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_snmp_ip" - }, - "context": "#" - }, - { - "id": 9, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpCommunity", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_snmp_community" - }, - "context": "#" - }, - { - "id": 17, - "type": "assign", - "from": { - "location": "incoming", - "name": "bgpType", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_bgp_type" - }, - "context": "#" - }, - { - "id": 18, - "type": "assign", - "from": { - "location": "incoming", - "name": "bgpNeighborIP", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_bgp_neighbor_ip" - }, - "context": "#" - }, - { - "id": 19, - "type": "assign", - "from": { - "location": "incoming", - "name": "bgpNeighborIP6", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_bgp_neighbor_ip6" - }, - "context": "#" - }, - { - "id": 20, - "type": "assign", - "from": { - "location": "incoming", - "name": "bgpNeighborASN", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_bgp_neighbor_asn" - }, - "context": "#" - }, - { - "id": 21, - "type": "assign", - "from": { - "location": "incoming", - "name": "bgpNeighborPassword", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_bgp_password" - }, - "context": "#" - }, - { - "id": 10, - "type": "declaration", - "library": "Boolean", - "method": "new Boolean", - "args": [ - false - ], - "view": { - "row": 3, - "col": 3 - }, - "context": "#" - }, - { - "id": 23, - "type": "assign", - "from": { - "location": "incoming", - "name": "siteInfo", - "ptr": "/response/sites" - }, - "to": { - "location": "method", - "name": 22, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 24, - "type": "assign", - "from": { - "location": "incoming", - "name": "siteName", - "ptr": "" - }, - "to": { - "location": "method", - "name": 22, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 30, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpConfUsername", - "ptr": "" - }, - "to": { - "location": "method", - "name": 29, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 41, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpConfUsername", - "ptr": "" - }, - "to": { - "location": "template", - "name": 38, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 42, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpConfAuthenticationProtocol", - "ptr": "" - }, - "to": { - "location": "template", - "name": 38, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 43, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpConfAuthenticationPassphrase", - "ptr": "" - }, - "to": { - "location": "template", - "name": 38, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 44, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpPrivacyProtocol", - "ptr": "" - }, - "to": { - "location": "template", - "name": 38, - "ptr": "/args/3/value" - }, - "context": "#" - }, - { - "id": 45, - "type": "assign", - "from": { - "location": "incoming", - "name": "snmpPrivacyPassphrase", - "ptr": "" - }, - "to": { - "location": "template", - "name": 38, - "ptr": "/args/4/value" - }, - "context": "#" - }, - { - "id": 29, - "type": "method", - "library": "String", - "method": "length", - "args": [ - null - ], - "view": { - "row": 4, - "col": 1 - }, - "context": "#" - }, - { - "id": 22, - "type": "method", - "library": "Array", - "method": "find", - "args": [ - null, - "\u0192_query_1", - null - ], - "view": { - "row": 9, - "col": 1 - }, - "context": "#" - }, - { - "id": 32, - "type": "assign", - "from": { - "location": "method", - "name": 29, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 31, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 26, - "type": "assign", - "from": { - "location": "method", - "name": 22, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 25, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 31, - "type": "method", - "library": "Relational", - "method": "greaterThan", - "args": [ - null, - 0 - ], - "view": { - "row": 4, - "col": 2 - }, - "context": "#" - }, - { - "id": 25, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "id" - ], - "view": { - "row": 9, - "col": 3 - }, - "context": "#" - }, - { - "id": 36, - "type": "assign", - "from": { - "location": "method", - "name": 31, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 35, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 38, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "{\n \"UserName\": \"${userName}\",\n \"AuthenticationProtocol\": \"${authenticationProtocol}\",\n \"AuthenticationPassphrase\": \"${authenticationPassphrase}\",\n \"PrivacyProtocol\": \"${privacyProtocol}\",\n \"PrivacyPassphrase\": \"${privacyPassphrase}\"\n}", - "args": [ - null, - null, - null, - null, - null - ], - "view": { - "row": 5, - "col": 1 - }, - "context": "#" - }, - { - "id": 40, - "type": "assign", - "from": { - "location": "template", - "name": 38, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 39, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 39, - "type": "method", - "library": "JSON", - "method": "parse", - "args": [ - null, - null - ], - "view": { - "row": 5, - "col": 2 - }, - "context": "#" - }, - { - "id": 46, - "type": "assign", - "from": { - "location": "method", - "name": 39, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 35, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 35, - "type": "method", - "library": "Conditional", - "method": "ternary", - "args": [ - null, - null, - {} - ], - "view": { - "row": 4, - "col": 3 - }, - "context": "#" - }, - { - "id": 11, - "type": "assign", - "from": { - "location": "declaration", - "name": 10, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/minimize_snmp" - }, - "context": "#" - }, - { - "id": 27, - "type": "assign", - "from": { - "location": "method", - "name": 25, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/site_id" - }, - "context": "#" - }, - { - "id": 47, - "type": "assign", - "from": { - "location": "method", - "name": 35, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "devicePayload", - "ptr": "/device/device_snmp_v3_conf" - }, - "context": "#" - } - ], - "functions": [ - { - "incoming": [ - { - "type": "object", - "properties": { - "id": { - "type": [ - "integer", - "number" - ], - "examples": [ - 18245 - ] - }, - "site_name": { - "type": "string", - "examples": [ - "ATL HQ" - ] - }, - "lat": { - "type": [ - "number", - "null" - ], - "examples": [ - 33.7914918 - ] - }, - "lon": { - "type": [ - "number", - "null" - ], - "examples": [ - -84.3898086 - ] - }, - "company_id": { - "type": [ - "integer", - "number" - ], - "examples": [ - 180173 - ] - } - }, - "required": [], - "$id": "element" - }, - { - "title": "index", - "type": "number", - "optional": true, - "$id": "index" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": [ - "integer", - "number" - ], - "examples": [ - 18245 - ] - }, - "site_name": { - "type": "string", - "examples": [ - "ATL HQ" - ] - }, - "lat": { - "type": [ - "number", - "null" - ], - "examples": [ - 33.7914918 - ] - }, - "lon": { - "type": [ - "number", - "null" - ], - "examples": [ - -84.3898086 - ] - }, - "company_id": { - "type": [ - "integer", - "number" - ], - "examples": [ - 180173 - ] - } - }, - "required": [] - }, - "$id": "array", - "optional": true - }, - { - "$id": "constantValue1", - "type": "string", - "isConstValue": true - } - ], - "outgoing": [ - { - "title": "return", - "type": "boolean", - "$id": "return" - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "element", - "ptr": "/site_name" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "incoming", - "name": "constantValue1", - "ptr": "" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Equality", - "method": "equality", - "args": [ - null, - null - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "return", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "name": "\u0192_query_1", - "view": { - "col": 2, - "row": 4 - }, - "id": "\u0192_query_1", - "comments": [] - } - ], - "comments": [], - "view": { - "col": 5, - "row": 10 - }, - "created": "2025-01-23T20:43:50.571Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.215Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 26, - "reference": "650b4bab64654800d3248062", - "type": "transformation", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "_id": "650b4bab64654800d3248062", - "name": "Device Onboarding - Kentik - Example", - "description": "", - "incoming": [ - { - "$id": "netbox", - "type": "object", - "properties": { - "response": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "examples": [ - 1 - ] - }, - "next": { - "type": "null" - }, - "previous": { - "type": "null" - }, - "results": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [] - } - }, - "required": [] - }, - { - "$id": "planId", - "type": "integer", - "examples": [ - 44662 - ] - }, - { - "$id": "jobId", - "type": "string", - "examples": [ - "123safaf" - ] - }, - { - "$id": "serviceNowSysId", - "type": "string", - "examples": [ - "adbafd23e34" - ] - }, - { - "$id": "iapURL", - "type": "string", - "examples": [ - "https://iap_01:3443" - ] - }, - { - "$id": "serviceNowURL", - "type": "string", - "examples": [ - "https://servicenow_instance.com" - ] - } - ], - "outgoing": [ - { - "$id": "type", - "type": "string", - "examples": [ - "router" - ] - }, - { - "$id": "name", - "type": "string", - "examples": [ - "test-device" - ] - }, - { - "$id": "description", - "type": "string", - "examples": [ - "my device" - ] - }, - { - "$id": "planId", - "type": "integer", - "examples": [ - 44662 - ] - }, - { - "$id": "sampleRate", - "type": "integer", - "examples": [ - 1 - ] - }, - { - "$id": "sendingIPs", - "type": "array", - "items": { - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - } - }, - { - "$id": "snmpIP", - "type": "string", - "examples": [ - "192.168.178.1" - ], - "format": "ipv4" - }, - { - "$id": "snmpCommunity", - "type": "string", - "examples": [ - "kentikSNMP" - ] - }, - { - "$id": "snmpConfUsername", - "type": "string", - "examples": [ - "kentik" - ] - }, - { - "$id": "snmpConfAuthenticationProtocol", - "type": "string", - "examples": [ - "SHA" - ] - }, - { - "$id": "snmpConfAuthenticationPassphrase", - "type": "string", - "examples": [ - "Pass" - ] - }, - { - "$id": "snmpPrivacyProtocol", - "type": "string", - "examples": [ - "AES" - ] - }, - { - "$id": "snmpPrivacyPassphrase", - "type": "string", - "examples": [ - "AESPassword" - ] - }, - { - "$id": "bgpType", - "type": "string", - "examples": [ - "device" - ] - }, - { - "$id": "bgpNeighborIP", - "type": "string", - "examples": [ - "209.1.1.1" - ], - "format": "ipv4" - }, - { - "$id": "bgpNeighborIP6", - "type": "string", - "examples": [ - "ff44::ffff" - ], - "format": "ipv6" - }, - { - "$id": "bgpNeighborASN", - "type": "string", - "examples": [ - "1" - ] - }, - { - "$id": "bgpNeighborPassword", - "type": "string", - "examples": [ - "pass" - ] - }, - { - "$id": "siteName", - "type": "string", - "examples": [ - "mySite" - ] - }, - { - "$id": "teamsMessageStart", - "type": "string" - }, - { - "$id": "teamsMessageEnd", - "type": "string" - } - ], - "steps": [ - { - "id": 13, - "type": "assign", - "from": { - "location": "incoming", - "name": "planId", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "planId", - "ptr": "" - }, - "context": "#" - }, - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "netbox", - "ptr": "/response/results" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 6, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - "router" - ], - "view": { - "row": 1, - "col": 3 - }, - "context": "#" - }, - { - "id": 45, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - null - ], - "view": { - "row": 7, - "col": 6 - }, - "context": "#" - }, - { - "id": 52, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - "none" - ], - "view": { - "row": 6, - "col": 6 - }, - "context": "#" - }, - { - "id": 66, - "type": "assign", - "from": { - "location": "incoming", - "name": "jobId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 63, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 67, - "type": "assign", - "from": { - "location": "incoming", - "name": "serviceNowSysId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 63, - "ptr": "/args/4/value" - }, - "context": "#" - }, - { - "id": 74, - "type": "assign", - "from": { - "location": "incoming", - "name": "jobId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 71, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 75, - "type": "assign", - "from": { - "location": "incoming", - "name": "serviceNowSysId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 71, - "ptr": "/args/4/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Array", - "method": "getIndex", - "args": [ - null, - 0 - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 3, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 9, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 8, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 39, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 38, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "name" - ], - "view": { - "row": 1, - "col": 2 - }, - "context": "#" - }, - { - "id": 8, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "config_context" - ], - "view": { - "row": 2, - "col": 2 - }, - "context": "#" - }, - { - "id": 38, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "site" - ], - "view": { - "row": 1, - "col": 4 - }, - "context": "#" - }, - { - "id": 11, - "type": "assign", - "from": { - "location": "method", - "name": 8, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 10, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 16, - "type": "assign", - "from": { - "location": "method", - "name": 8, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 15, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 19, - "type": "assign", - "from": { - "location": "method", - "name": 8, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 18, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 22, - "type": "assign", - "from": { - "location": "method", - "name": 8, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 21, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 41, - "type": "assign", - "from": { - "location": "method", - "name": 38, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 40, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 55, - "type": "assign", - "from": { - "location": "method", - "name": 8, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 54, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 65, - "type": "assign", - "from": { - "location": "method", - "name": 3, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 63, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 76, - "type": "assign", - "from": { - "location": "method", - "name": 3, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 72, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 10, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "description" - ], - "view": { - "row": 2, - "col": 3 - }, - "context": "#" - }, - { - "id": 15, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "sampleRate" - ], - "view": { - "row": 3, - "col": 3 - }, - "context": "#" - }, - { - "id": 18, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "snmpCommunity" - ], - "view": { - "row": 4, - "col": 3 - }, - "context": "#" - }, - { - "id": 21, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "snmpV3Conf" - ], - "view": { - "row": 4, - "col": 1 - }, - "context": "#" - }, - { - "id": 40, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "name" - ], - "view": { - "row": 2, - "col": 4 - }, - "context": "#" - }, - { - "id": 54, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "ipAddress" - ], - "view": { - "row": 1, - "col": 5 - }, - "context": "#" - }, - { - "id": 72, - "type": "method", - "library": "String", - "method": "toLowerCase", - "args": [ - null - ], - "view": { - "row": 7, - "col": 1 - }, - "context": "#" - }, - { - "id": 24, - "type": "assign", - "from": { - "location": "method", - "name": 21, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 23, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 27, - "type": "assign", - "from": { - "location": "method", - "name": 21, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 26, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 29, - "type": "assign", - "from": { - "location": "method", - "name": 21, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 28, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 33, - "type": "assign", - "from": { - "location": "method", - "name": 21, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 32, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 36, - "type": "assign", - "from": { - "location": "method", - "name": 21, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 35, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 56, - "type": "assign", - "from": { - "location": "method", - "name": 54, - "ptr": "/return" - }, - "to": { - "location": "declaration", - "name": 43, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 73, - "type": "assign", - "from": { - "location": "method", - "name": 72, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 71, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 23, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "userName" - ], - "view": { - "row": 3, - "col": 2 - }, - "context": "#" - }, - { - "id": 26, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "authenticationProtocol" - ], - "view": { - "row": 4, - "col": 2 - }, - "context": "#" - }, - { - "id": 28, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "authenticationPassphrase" - ], - "view": { - "row": 5, - "col": 3 - }, - "context": "#" - }, - { - "id": 32, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "privacyProtocol" - ], - "view": { - "row": 5, - "col": 1 - }, - "context": "#" - }, - { - "id": 35, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "privacyPassphrase" - ], - "view": { - "row": 5, - "col": 2 - }, - "context": "#" - }, - { - "id": 43, - "type": "declaration", - "library": "Array", - "method": "new Array", - "args": [ - null - ], - "view": { - "row": 1, - "col": 6 - }, - "context": "#", - "polymorphIndex": 0 - }, - { - "id": 63, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "Device Onboarding has begun for device ${deviceName}.\n
    \n", - "args": [ - null, - null, - null, - null, - null - ], - "view": { - "row": 6, - "col": 1 - }, - "context": "#" - }, - { - "id": 71, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "Device Onboarding has completed for device ${deviceName}. Traffic flow is being captured and can be seen in Kentik.\n
    \n", - "args": [ - null, - null, - null, - null, - null - ], - "view": { - "row": 7, - "col": 2 - }, - "context": "#" - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "declaration", - "name": 6, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "type", - "ptr": "" - }, - "context": "#" - }, - { - "id": 48, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "bgpNeighborIP", - "ptr": "" - }, - "context": "#" - }, - { - "id": 49, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "bgpNeighborIP6", - "ptr": "" - }, - "context": "#" - }, - { - "id": 50, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "bgpNeighborASN", - "ptr": "" - }, - "context": "#" - }, - { - "id": 51, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "bgpNeighborPassword", - "ptr": "" - }, - "context": "#" - }, - { - "id": 53, - "type": "assign", - "from": { - "location": "declaration", - "name": 52, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "bgpType", - "ptr": "" - }, - "context": "#" - }, - { - "id": 57, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "snmpConfUsername", - "ptr": "" - }, - "context": "#" - }, - { - "id": 58, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "snmpConfAuthenticationProtocol", - "ptr": "" - }, - "context": "#" - }, - { - "id": 59, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "snmpConfAuthenticationPassphrase", - "ptr": "" - }, - "context": "#" - }, - { - "id": 60, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "snmpPrivacyPassphrase", - "ptr": "" - }, - "context": "#" - }, - { - "id": 61, - "type": "assign", - "from": { - "location": "declaration", - "name": 45, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "snmpPrivacyProtocol", - "ptr": "" - }, - "context": "#" - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "method", - "name": 3, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "name", - "ptr": "" - }, - "context": "#" - }, - { - "id": 12, - "type": "assign", - "from": { - "location": "method", - "name": 10, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "description", - "ptr": "" - }, - "context": "#" - }, - { - "id": 17, - "type": "assign", - "from": { - "location": "method", - "name": 15, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "sampleRate", - "ptr": "" - }, - "context": "#" - }, - { - "id": 20, - "type": "assign", - "from": { - "location": "method", - "name": 18, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "snmpCommunity", - "ptr": "" - }, - "context": "#" - }, - { - "id": 42, - "type": "assign", - "from": { - "location": "method", - "name": 40, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "siteName", - "ptr": "" - }, - "context": "#" - }, - { - "id": 62, - "type": "assign", - "from": { - "location": "method", - "name": 54, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "snmpIP", - "ptr": "" - }, - "context": "#" - }, - { - "id": 44, - "type": "assign", - "from": { - "location": "declaration", - "name": 43, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "sendingIPs", - "ptr": "" - }, - "context": "#" - }, - { - "id": 77, - "type": "assign", - "from": { - "location": "template", - "name": 63, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "teamsMessageStart", - "ptr": "" - }, - "context": "#" - }, - { - "id": 78, - "type": "assign", - "from": { - "location": "template", - "name": 71, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "teamsMessageEnd", - "ptr": "" - }, - "context": "#" - }, - { - "id": 79, - "type": "assign", - "from": { - "location": "incoming", - "name": "iapURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 71, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 80, - "type": "assign", - "from": { - "location": "incoming", - "name": "serviceNowURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 71, - "ptr": "/args/3/value" - }, - "context": "#" - }, - { - "id": 81, - "type": "assign", - "from": { - "location": "incoming", - "name": "iapURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 63, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 82, - "type": "assign", - "from": { - "location": "incoming", - "name": "serviceNowURL", - "ptr": "" - }, - "to": { - "location": "template", - "name": 63, - "ptr": "/args/3/value" - }, - "context": "#" - } - ], - "functions": [], - "comments": [], - "view": { - "col": 6, - "row": 8 - }, - "created": "2025-01-23T20:43:50.613Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.214Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 27, - "reference": "6544148b2c883d00f315fdd3", - "type": "transformation", - "folder": "/Device Flow Test", - "document": { - "_id": "6544148b2c883d00f315fdd3", - "name": "Find Kentik Device by Name", - "description": "Find Kentik Device by Name", - "incoming": [ - { - "$id": "kentikDevices", - "type": "object", - "properties": { - "response": { - "type": "object", - "properties": { - "devices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "examples": [ - "165963" - ] - }, - "device_name": { - "type": "string", - "examples": [ - "test" - ] - }, - "device_type": { - "type": "string", - "examples": [ - "router" - ] - } - }, - "required": [] - } - } - }, - "required": [] - } - }, - "required": [] - }, - { - "$id": "deviceName", - "type": "string", - "examples": [ - "deviceName" - ] - } - ], - "outgoing": [ - { - "$id": "deviceFilter", - "type": "string", - "examples": [ - "device" - ] - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "kentikDevices", - "ptr": "/response/devices" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 10, - "type": "assign", - "from": { - "location": "incoming", - "name": "deviceName", - "ptr": "" - }, - "to": { - "location": "method", - "name": 9, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 9, - "type": "method", - "library": "String", - "method": "toLowerCase", - "args": [ - null - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 11, - "type": "assign", - "from": { - "location": "method", - "name": 9, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Array", - "method": "find", - "args": [ - null, - "findDevice", - null - ], - "view": { - "row": 1, - "col": 2 - }, - "context": "#" - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 4, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 4, - "type": "method", - "library": "Object", - "method": "getProperty", - "args": [ - null, - "id" - ], - "view": { - "row": 1, - "col": 3 - }, - "context": "#" - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "method", - "name": 4, - "ptr": "/return" - }, - "to": { - "location": "template", - "name": 6, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 6, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "response[${deviceId}].metadata.status.flow_last_seen", - "args": [ - null - ], - "view": { - "row": 1, - "col": 4 - }, - "context": "#" - }, - { - "id": 8, - "type": "assign", - "from": { - "location": "template", - "name": 6, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "deviceFilter", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [ - { - "incoming": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "examples": [ - "165963" - ] - }, - "device_name": { - "type": "string", - "examples": [ - "test" - ] - }, - "device_type": { - "type": "string", - "examples": [ - "router" - ] - } - }, - "required": [], - "$id": "element" - }, - { - "title": "index", - "type": "number", - "optional": true, - "$id": "index" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "examples": [ - "165963" - ] - }, - "device_name": { - "type": "string", - "examples": [ - "test" - ] - }, - "device_type": { - "type": "string", - "examples": [ - "router" - ] - } - }, - "required": [] - }, - "$id": "array", - "optional": true - }, - { - "$id": "constantValue1", - "type": "string", - "isConstValue": true - } - ], - "outgoing": [ - { - "title": "return", - "type": "boolean", - "$id": "return" - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "element", - "ptr": "/device_name" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "incoming", - "name": "constantValue1", - "ptr": "" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Equality", - "method": "identity", - "args": [ - null, - null - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "return", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "name": "findDevice", - "view": { - "col": 1, - "row": 4 - }, - "id": "findDevice", - "comments": [] - } - ], - "comments": [], - "view": { - "col": 4, - "row": 5 - }, - "created": "2025-01-23T20:43:50.638Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.215Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 28, - "reference": "650b873164654800d3248064", - "type": "transformation", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "_id": "650b873164654800d3248064", - "name": "IOS-XE Config - Kentik - Example", - "description": "", - "incoming": [ - { - "$id": "netboxDevice", - "type": "object", - "properties": { - "id": { - "type": "integer", - "examples": [ - 3 - ] - }, - "url": { - "type": "string", - "examples": [ - "https://35.169.244.112/api/dcim/devices/3/" - ] - }, - "display": { - "type": "string", - "examples": [ - "ATLSWITCH01" - ] - }, - "name": { - "type": "string", - "examples": [ - "ATLSWITCH01" - ] - }, - "device_type": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "examples": [ - 1 - ] - }, - "url": { - "type": "string", - "examples": [ - "https://35.169.244.112/api/dcim/device-types/1/" - ] - }, - "display": { - "type": "string", - "examples": [ - "IOS" - ] - }, - "manufacturer": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "examples": [ - 1 - ] - }, - "url": { - "type": "string", - "examples": [ - "https://35.169.244.112/api/dcim/manufacturers/1/" - ] - }, - "display": { - "type": "string", - "examples": [ - "Cisco" - ] - }, - "name": { - "type": "string", - "examples": [ - "Cisco" - ] - }, - "slug": { - "type": "string", - "examples": [ - "cisco" - ] - } - }, - "required": [] - }, - "model": { - "type": "string", - "examples": [ - "IOS" - ] - }, - "slug": { - "type": "string", - "examples": [ - "ios" - ] - } - }, - "required": [] - }, - "device_role": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "examples": [ - 2 - ] - }, - "url": { - "type": "string", - "examples": [ - "https://35.169.244.112/api/dcim/device-roles/2/" - ] - }, - "display": { - "type": "string", - "examples": [ - "Data Center" - ] - }, - "name": { - "type": "string", - "examples": [ - "Data Center" - ] - }, - "slug": { - "type": "string", - "examples": [ - "data-center" - ] - } - }, - "required": [] - }, - "tenant": { - "type": "null" - }, - "platform": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "examples": [ - 1 - ] - }, - "url": { - "type": "string", - "examples": [ - "https://35.169.244.112/api/dcim/platforms/1/" - ] - }, - "display": { - "type": "string", - "examples": [ - "CIsco IOS" - ] - }, - "name": { - "type": "string", - "examples": [ - "CIsco IOS" - ] - }, - "slug": { - "type": "string", - "examples": [ - "cisco-ios" - ] - } - }, - "required": [] - }, - "serial": { - "type": "string", - "examples": [ - "12345" - ] - }, - "asset_tag": { - "type": "null" - }, - "site": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "examples": [ - 2 - ] - }, - "url": { - "type": "string", - "examples": [ - "https://35.169.244.112/api/dcim/sites/2/" - ] - }, - "display": { - "type": "string", - "examples": [ - "ATL HQ" - ] - }, - "name": { - "type": "string", - "examples": [ - "ATL HQ" - ] - }, - "slug": { - "type": "string", - "examples": [ - "atl-hq" - ] - } - }, - "required": [] - }, - "location": { - "type": "null" - }, - "rack": { - "type": "null" - }, - "position": { - "type": "null" - }, - "face": { - "type": "null" - }, - "parent_device": { - "type": "null" - }, - "status": { - "type": "object", - "properties": { - "value": { - "type": "string", - "examples": [ - "active" - ] - }, - "label": { - "type": "string", - "examples": [ - "Active" - ] - } - }, - "required": [] - }, - "airflow": { - "type": "null" - }, - "primary_ip": { - "type": "null" - }, - "primary_ip4": { - "type": "null" - }, - "primary_ip6": { - "type": "null" - }, - "cluster": { - "type": "null" - }, - "virtual_chassis": { - "type": "null" - }, - "vc_position": { - "type": "null" - }, - "vc_priority": { - "type": "null" - }, - "comments": { - "type": "string", - "examples": [ - "Used for Partner testing, Kentik" - ] - }, - "local_context_data": { - "type": "object", - "properties": { - "ipAddress": { - "type": "string", - "examples": [ - "3.230.106.58" - ], - "format": "ipv4" - }, - "sampleRate": { - "type": "integer", - "examples": [ - 1 - ] - }, - "snmpV3Conf": { - "type": "object", - "properties": { - "userName": { - "type": "string", - "examples": [ - "kentik" - ] - }, - "privacyProtocol": { - "type": "string", - "examples": [ - "AES" - ] - }, - "privacyPassphrase": { - "type": "string", - "examples": [ - "AESPassword" - ] - }, - "authenticationProtocol": { - "type": "string", - "examples": [ - "SHA" - ] - }, - "authenticationPassphrase": { - "type": "string", - "examples": [ - "Password" - ] - } - }, - "required": [] - }, - "description": { - "type": "string", - "examples": [ - "New Test Device" - ] - }, - "snmpCommunity": { - "type": "string", - "examples": [ - "kentikSNMP" - ] - } - }, - "required": [] - }, - "tags": { - "type": "array" - }, - "custom_fields": { - "type": "object", - "properties": {}, - "required": [] - }, - "config_context": { - "type": "object", - "properties": { - "ipAddress": { - "type": "string", - "examples": [ - "3.230.106.58" - ], - "format": "ipv4" - }, - "sampleRate": { - "type": "integer", - "examples": [ - 1 - ] - }, - "snmpV3Conf": { - "type": "object", - "properties": { - "userName": { - "type": "string", - "examples": [ - "kentik" - ] - }, - "privacyProtocol": { - "type": "string", - "examples": [ - "AES" - ] - }, - "privacyPassphrase": { - "type": "string", - "examples": [ - "AESPassword" - ] - }, - "authenticationProtocol": { - "type": "string", - "examples": [ - "SHA" - ] - }, - "authenticationPassphrase": { - "type": "string", - "examples": [ - "Password" - ] - } - }, - "required": [] - }, - "description": { - "type": "string", - "examples": [ - "New Test Device" - ] - }, - "snmpCommunity": { - "type": "string", - "examples": [ - "kentikSNMP" - ] - } - }, - "required": [] - }, - "created": { - "type": "string", - "examples": [ - "2023-09-02T20:38:21.063282Z" - ], - "format": "date-time" - }, - "last_updated": { - "type": "string", - "examples": [ - "2023-09-20T16:53:12.254929Z" - ], - "format": "date-time" - } - }, - "required": [] - }, - { - "$id": "jobId", - "type": "string", - "examples": [ - "afdaf323r4" - ] - }, - { - "$id": "vrfGatewayIP", - "type": "string", - "examples": [ - "10.10.10.123" - ], - "format": "ipv4" - }, - { - "$id": "kentikCompanySettings", - "type": "object", - "properties": { - "response": { - "type": "object", - "properties": { - "company_max_fps": { - "type": "integer", - "examples": [ - 4000 - ] - }, - "flow_ips": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "208.76.14.230" - ], - "format": "ipv4" - } - }, - "port": { - "type": "string", - "examples": [ - "20013" - ] - }, - "access_control": { - "type": "object", - "properties": { - "remote_portal_access_allowed": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "0.0.0.0/0" - ] - } - }, - "remote_agent_access_allowed": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "0.0.0.0/0" - ] - } - }, - "remote_api_access_allowed": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "10.10.10.10" - ], - "format": "ipv4" - } - }, - "remote_login_allowed": { - "type": "array" - } - }, - "required": [] - }, - "edition": { - "type": "string", - "examples": [ - "premier" - ] - }, - "tags": { - "type": "array" - }, - "currency": { - "type": "string", - "examples": [ - "USD" - ] - } - }, - "required": [] - } - }, - "required": [] - } - ], - "outgoing": [ - { - "$id": "templateVars", - "type": "object", - "properties": { - "snmpCommunity": { - "type": "string", - "examples": [ - "kentikSNMP" - ] - }, - "customFlowRecord": { - "type": "string", - "examples": [ - "itential-flow" - ] - }, - "netflowSampler": { - "type": "string", - "examples": [ - "itential-sampler" - ] - }, - "deviceSampleRate": { - "type": "integer", - "examples": [ - 1 - ] - }, - "exporter": { - "type": "string", - "examples": [ - "itential-exporter" - ] - }, - "publicFlowIngestDescription": { - "type": "string", - "examples": [ - "iap-job-id" - ] - }, - "kentikIngestIP": { - "type": "string", - "examples": [ - "208.76.14.230" - ], - "format": "ipv4" - }, - "kentikIngestUDPPort": { - "type": "string", - "examples": [ - "20013" - ] - }, - "vrfName": { - "type": "string", - "examples": [ - "itential-vrf" - ] - }, - "vrfGatewayIP": { - "type": "string", - "examples": [ - "10.10.10.123" - ], - "format": "ipv4" - }, - "flowMonitor": { - "type": "string", - "examples": [ - "itential-monitor" - ] - }, - "sourceInterface": { - "type": "string", - "examples": [ - "GigabitEthernet1" - ] - }, - "sourceInterfaces": { - "type": "array", - "items": { - "type": "string", - "examples": [ - "GigabitEthernet1" - ] - } - } - }, - "required": [] - } - ], - "steps": [ - { - "id": 1, - "type": "assign", - "from": { - "location": "incoming", - "name": "netboxDevice", - "ptr": "/local_context_data/snmpCommunity" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/snmpCommunity" - }, - "context": "#" - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "incoming", - "name": "netboxDevice", - "ptr": "/config_context/sampleRate" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/deviceSampleRate" - }, - "context": "#" - }, - { - "id": 9, - "type": "assign", - "from": { - "location": "incoming", - "name": "jobId", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/publicFlowIngestDescription" - }, - "context": "#" - }, - { - "id": 14, - "type": "assign", - "from": { - "location": "incoming", - "name": "vrfGatewayIP", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/vrfGatewayIP" - }, - "context": "#" - }, - { - "id": 2, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - "itential-flow" - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - "itential-sampler" - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 6, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - "itential-exporter" - ], - "view": { - "row": 3, - "col": 1 - }, - "context": "#" - }, - { - "id": 12, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - null - ], - "view": { - "row": 4, - "col": 1 - }, - "context": "#" - }, - { - "id": 15, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - "itential-monitor" - ], - "view": { - "row": 5, - "col": 1 - }, - "context": "#" - }, - { - "id": 17, - "type": "declaration", - "library": "Array", - "method": "new Array", - "args": [ - "GigabitEthernet1", - "GigabitEthernet1.33" - ], - "view": { - "row": 4, - "col": 2 - }, - "context": "#", - "polymorphIndex": 0 - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "declaration", - "name": 2, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/customFlowRecord" - }, - "context": "#" - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "declaration", - "name": 4, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/netflowSampler" - }, - "context": "#" - }, - { - "id": 8, - "type": "assign", - "from": { - "location": "declaration", - "name": 6, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/exporter" - }, - "context": "#" - }, - { - "id": 13, - "type": "assign", - "from": { - "location": "declaration", - "name": 12, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/vrfName" - }, - "context": "#" - }, - { - "id": 16, - "type": "assign", - "from": { - "location": "declaration", - "name": 15, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/flowMonitor" - }, - "context": "#" - }, - { - "id": 18, - "type": "assign", - "from": { - "location": "declaration", - "name": 17, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/sourceInterfaces" - }, - "context": "#" - }, - { - "id": 19, - "type": "method", - "library": "Array", - "method": "getIndex", - "args": [ - null, - 0 - ], - "view": { - "row": 3, - "col": 2 - }, - "context": "#" - }, - { - "id": 20, - "type": "assign", - "from": { - "location": "incoming", - "name": "kentikCompanySettings", - "ptr": "/response/flow_ips" - }, - "to": { - "location": "method", - "name": 19, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 21, - "type": "assign", - "from": { - "location": "method", - "name": 19, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/kentikIngestIP" - }, - "context": "#" - }, - { - "id": 22, - "type": "assign", - "from": { - "location": "incoming", - "name": "kentikCompanySettings", - "ptr": "/response/port" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/kentikIngestUDPPort" - }, - "context": "#" - }, - { - "id": 23, - "type": "declaration", - "library": "String", - "method": "new String", - "args": [ - "GigabitEthernet1" - ], - "view": { - "row": 1, - "col": 2 - }, - "context": "#" - }, - { - "id": 24, - "type": "assign", - "from": { - "location": "declaration", - "name": 23, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "templateVars", - "ptr": "/sourceInterface" - }, - "context": "#" - } - ], - "functions": [], - "comments": [], - "view": { - "col": 2, - "row": 6 - }, - "created": "2025-01-23T20:43:50.627Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.216Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 29, - "reference": "654144da2c883d00f315fdd2", - "type": "transformation", - "folder": "/Sample Use Cases/AWS Blocked Traffic Event - Reset", - "document": { - "_id": "654144da2c883d00f315fdd2", - "name": "Process AWS Blocked Traffic Event - Reset Inputs", - "description": "Processes AWS blocked traffic event - reset inputs", - "incoming": [ - { - "$id": "formData", - "type": "object", - "properties": { - "sourceIP": { - "type": "string", - "examples": [ - "10.10.10.10" - ] - }, - "awsEC2Adapter": { - "type": "string", - "examples": [ - "AWS" - ] - }, - "awsSecurityGroup": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - } - ], - "outgoing": [ - { - "$id": "cidrSourceIP", - "type": "string", - "examples": [ - "10.10.10.10" - ] - }, - { - "$id": "awsEC2Adapter", - "type": "string", - "examples": [ - "AWS" - ] - }, - { - "$id": "securityGroupSearchData", - "type": "array" - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/awsEC2Adapter" - }, - "to": { - "location": "outgoing", - "name": "awsEC2Adapter", - "ptr": "" - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/sourceIP" - }, - "to": { - "location": "template", - "name": 3, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/awsSecurityGroup" - }, - "to": { - "location": "function", - "name": 6, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "${sourceIP}/32", - "args": [ - null - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#" - }, - { - "id": 6, - "type": "function", - "function": "createSecurityGroupSearch", - "args": [ - null - ], - "view": { - "row": 2, - "col": 1 - }, - "context": "#" - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "template", - "name": 3, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "cidrSourceIP", - "ptr": "" - }, - "context": "#" - }, - { - "id": 8, - "type": "assign", - "from": { - "location": "function", - "name": 6, - "ptr": "/return/securityGroupSearchData" - }, - "to": { - "location": "outgoing", - "name": "securityGroupSearchData", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [ - { - "incoming": [ - { - "$id": "securityGroupName", - "type": "string", - "examples": [ - "securityGroupName" - ] - } - ], - "outgoing": [ - { - "$id": "securityGroupSearchData", - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "examples": [ - "group-name" - ] - }, - "Value": { - "type": "string", - "examples": [ - "webserver-kentik" - ] - } - }, - "required": [] - } - } - ], - "steps": [ - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "securityGroupName", - "ptr": "" - }, - "to": { - "location": "method", - "name": 1, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 1, - "type": "method", - "library": "Object", - "method": "setProperty", - "args": [ - { - "Name": "group-name" - }, - "Value", - null - ], - "view": { - "row": 1, - "col": 1 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "method", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "declaration", - "name": 3, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 3, - "type": "declaration", - "library": "Array", - "method": "new Array", - "args": [ - null - ], - "view": { - "row": 1, - "col": 2 - }, - "context": "#", - "polymorphIndex": 0 - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "declaration", - "name": 3, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "securityGroupSearchData", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "name": "createSecurityGroupSearch", - "view": { - "col": 2, - "row": 4 - }, - "id": "createSecurityGroupSearch", - "comments": [] - } - ], - "comments": [], - "view": { - "col": 1, - "row": 5 - }, - "created": "2025-01-23T20:43:50.649Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.254Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 30, - "reference": "653fc12f2c883d00f315fdcf", - "type": "transformation", - "folder": "/Sample Use Cases/Device Onboarding", - "document": { - "_id": "653fc12f2c883d00f315fdcf", - "name": "Process Kentik Device Onboarding Form Inputs", - "description": "Process Kentik form inputs for device onboarding", - "incoming": [ - { - "$id": "formData", - "type": "object", - "properties": { - "deviceName": { - "type": "string", - "examples": [ - "IOS_Device_Name" - ] - }, - "iapUrl": { - "type": "string", - "examples": [ - "https://iap_01:3443" - ] - }, - "serviceNowUrl": { - "type": "string", - "examples": [ - "https://servicenow_dev.com" - ] - }, - "deviceOnboardingWebhookUrl": { - "type": "string", - "examples": [ - "webhookURL" - ] - }, - "serviceNowAdapter": { - "type": "string", - "examples": [ - "ServiceNow" - ] - }, - "netBoxAdapter": { - "type": "string", - "examples": [ - "NetboxV3" - ] - }, - "msTeamsAdapter": { - "type": "string", - "examples": [ - "MS Teams" - ] - }, - "kentikAdapter": { - "type": "string", - "examples": [ - "Kentik v5" - ] - } - }, - "required": [] - }, - { - "$id": "itentialJobId", - "type": "string" - } - ], - "outgoing": [ - { - "$id": "serviceNowComments", - "type": "string" - }, - { - "$id": "serviceNowSummary", - "type": "string" - }, - { - "$id": "deviceName", - "type": "string", - "examples": [ - "IOS_Device_Name" - ] - }, - { - "$id": "iapURL", - "type": "string", - "examples": [ - "https://iap_01:3443" - ] - }, - { - "$id": "serviceNowURL", - "type": "string", - "examples": [ - "https://servicenow_dev.com" - ] - }, - { - "$id": "deviceOnboardingWebhookURL", - "type": "string" - }, - { - "$id": "serviceNowAdapter", - "type": "string", - "examples": [ - "ServiceNow" - ] - }, - { - "$id": "netBoxAdapter", - "type": "string", - "examples": [ - "NetBox" - ] - }, - { - "$id": "msTeamsAdapter", - "type": "string" - }, - { - "$id": "kentikAdapter", - "type": "string" - } - ], - "steps": [ - { - "id": 1, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "[code] Device Onboarding has begun for device ${deviceName}.
    [/code]", - "args": [ - null, - null, - null - ], - "view": { - "row": 1, - "col": 2 - }, - "context": "#" - }, - { - "id": 2, - "type": "assign", - "from": { - "location": "template", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "serviceNowComments", - "ptr": "" - }, - "context": "#" - }, - { - "id": 3, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "Kentik Device Onboarding: ${deviceName}", - "args": [ - null - ], - "view": { - "row": 2, - "col": 2 - }, - "context": "#" - }, - { - "id": 4, - "type": "assign", - "from": { - "location": "template", - "name": 3, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "serviceNowSummary", - "ptr": "" - }, - "context": "#" - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/deviceName" - }, - "to": { - "location": "template", - "name": 1, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 6, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/deviceName" - }, - "to": { - "location": "template", - "name": 3, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/iapUrl" - }, - "to": { - "location": "template", - "name": 1, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 8, - "type": "assign", - "from": { - "location": "incoming", - "name": "itentialJobId", - "ptr": "" - }, - "to": { - "location": "template", - "name": 1, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 9, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/serviceNowAdapter" - }, - "to": { - "location": "outgoing", - "name": "serviceNowAdapter", - "ptr": "" - }, - "context": "#" - }, - { - "id": 10, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/netBoxAdapter" - }, - "to": { - "location": "outgoing", - "name": "netBoxAdapter", - "ptr": "" - }, - "context": "#" - }, - { - "id": 11, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/msTeamsAdapter" - }, - "to": { - "location": "outgoing", - "name": "msTeamsAdapter", - "ptr": "" - }, - "context": "#" - }, - { - "id": 12, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/kentikAdapter" - }, - "to": { - "location": "outgoing", - "name": "kentikAdapter", - "ptr": "" - }, - "context": "#" - }, - { - "id": 13, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/deviceOnboardingWebhookUrl" - }, - "to": { - "location": "outgoing", - "name": "deviceOnboardingWebhookURL", - "ptr": "" - }, - "context": "#" - }, - { - "id": 14, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/serviceNowUrl" - }, - "to": { - "location": "outgoing", - "name": "serviceNowURL", - "ptr": "" - }, - "context": "#" - }, - { - "id": 15, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/iapUrl" - }, - "to": { - "location": "outgoing", - "name": "iapURL", - "ptr": "" - }, - "context": "#" - }, - { - "id": 16, - "type": "assign", - "from": { - "location": "incoming", - "name": "formData", - "ptr": "/deviceName" - }, - "to": { - "location": "outgoing", - "name": "deviceName", - "ptr": "" - }, - "context": "#" - } - ], - "functions": [], - "comments": [], - "view": { - "col": 2, - "row": 5 - }, - "created": "2025-01-23T20:43:50.615Z", - "createdBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-24T11:15:29.254Z", - "lastUpdatedBy": { - "_id": "66d1e2b552e6dc384b5d6626", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, { "iid": 31, "reference": "b2dc14e4-41d2-43b2-a9da-80b9f63e5187", @@ -20839,190 +5169,6 @@ } ], "folders": [ - { - "nodeType": "folder", - "name": "Create Device", - "children": [ - { - "iid": 8, - "nodeType": "component" - }, - { - "iid": 25, - "nodeType": "component" - } - ] - }, - { - "nodeType": "folder", - "name": "Device Flow Test", - "children": [ - { - "iid": 27, - "nodeType": "component" - }, - { - "iid": 3, - "nodeType": "component" - } - ] - }, - { - "nodeType": "folder", - "name": "Sample Use Cases", - "children": [ - { - "nodeType": "folder", - "name": "AWS Blocked Traffic Event", - "children": [ - { - "iid": 9, - "nodeType": "component" - }, - { - "iid": 21, - "nodeType": "component" - }, - { - "iid": 20, - "nodeType": "component" - }, - { - "iid": 0, - "nodeType": "component" - } - ] - }, - { - "nodeType": "folder", - "name": "AWS Blocked Traffic Event - Reset", - "children": [ - { - "iid": 15, - "nodeType": "component" - }, - { - "iid": 2, - "nodeType": "component" - }, - { - "iid": 29, - "nodeType": "component" - } - ] - }, - { - "nodeType": "folder", - "name": "Device Onboarding", - "children": [ - { - "iid": 14, - "nodeType": "component" - }, - { - "iid": 10, - "nodeType": "component" - }, - { - "iid": 30, - "nodeType": "component" - }, - { - "iid": 22, - "nodeType": "component" - }, - { - "iid": 12, - "nodeType": "component" - }, - { - "iid": 26, - "nodeType": "component" - }, - { - "iid": 1, - "nodeType": "component" - }, - { - "iid": 24, - "nodeType": "component" - }, - { - "iid": 28, - "nodeType": "component" - }, - { - "iid": 23, - "nodeType": "component" - }, - { - "nodeType": "folder", - "name": "Push Configuration to Device", - "children": [ - { - "iid": 5, - "nodeType": "component" - }, - { - "iid": 18, - "nodeType": "component" - } - ] - }, - { - "nodeType": "folder", - "name": "Flow Test", - "children": [ - { - "iid": 6, - "nodeType": "component" - }, - { - "nodeType": "folder", - "name": "Generate Traffic", - "children": [ - { - "iid": 7, - "nodeType": "component" - }, - { - "iid": 16, - "nodeType": "component" - } - ] - } - ] - }, - { - "iid": 11, - "nodeType": "component" - } - ] - }, - { - "nodeType": "folder", - "name": "Device Onboarding - Reset", - "children": [ - { - "iid": 13, - "nodeType": "component" - }, - { - "iid": 4, - "nodeType": "component" - }, - { - "iid": 19, - "nodeType": "component" - }, - { - "iid": 17, - "nodeType": "component" - } - ] - } - ] - }, { "nodeType": "folder", "name": "Devices", @@ -21137,4 +5283,4 @@ "iid": 63, "thumbnail": "data:image/png;base64,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", "backgroundColor": "#FFFFFF" -} \ No newline at end of file +}