Shodan · Arazzo Workflow

Shodan Alert With Notifier

Version 1.0.0

Create a notifier, attach it via an alert, and arm a trigger for delivery.

1 workflow 1 source API 1 provider
View Spec View on GitHub SecuritySearchInternetDevicesIoTVulnerabilitiesCVEAttack SurfaceThreat IntelligenceReconnaissanceNetworkDNSScanningPublic APIsArazzoWorkflows

Provider

shodan

Workflows

alert-with-notifier
Stand up a notifier and a triggered network alert in one flow.
Creates a notifier, creates a network alert on the supplied IP ranges, and enables a trigger so the alert can deliver events to the notifier.
3 steps inputs: alertName, apiKey, description, ips, notifierArgs, provider, trigger outputs: alertId, notifierId
1
createNotifier
createNotifier
Create a notifier for receiving alert events.
2
createAlert
createAlert
Create a network alert over the supplied IP ranges.
3
enableTrigger
enableAlertTrigger
Enable the requested trigger so the alert begins delivering events.

Source API Descriptions

Arazzo Workflow Specification

shodan-alert-with-notifier-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Shodan Alert With Notifier
  summary: Create a notifier, attach it via an alert, and arm a trigger for delivery.
  description: >-
    A notification-wired monitoring pattern. The workflow creates a notifier for
    receiving alerts, creates a network alert over the supplied IP ranges, and
    enables a trigger so events on the monitored ranges are delivered. Every
    step spells out its request inline so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: shodanRest
  url: ../openapi/shodan-rest-openapi.yml
  type: openapi
workflows:
- workflowId: alert-with-notifier
  summary: Stand up a notifier and a triggered network alert in one flow.
  description: >-
    Creates a notifier, creates a network alert on the supplied IP ranges, and
    enables a trigger so the alert can deliver events to the notifier.
  inputs:
    type: object
    required:
    - apiKey
    - provider
    - description
    - notifierArgs
    - alertName
    - ips
    - trigger
    properties:
      apiKey:
        type: string
        description: Shodan API key passed as the `key` query parameter.
      provider:
        type: string
        description: The notifier provider type (e.g. "email", "slack").
      description:
        type: string
        description: A human-readable description for the notifier.
      notifierArgs:
        type: object
        description: Provider-specific configuration arguments for the notifier.
      alertName:
        type: string
        description: A human-readable name for the network alert.
      ips:
        type: array
        items:
          type: string
        description: The IP ranges to monitor with this alert.
      trigger:
        type: string
        description: The trigger name to enable on the alert.
  steps:
  - stepId: createNotifier
    description: >-
      Create a notifier for receiving alert events.
    operationId: createNotifier
    requestBody:
      contentType: application/json
      payload:
        provider: $inputs.provider
        description: $inputs.description
        args: $inputs.notifierArgs
    parameters:
    - name: key
      in: query
      value: $inputs.apiKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      notifierId: $response.body#/id
  - stepId: createAlert
    description: >-
      Create a network alert over the supplied IP ranges.
    operationId: createAlert
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.alertName
        filters:
          ip: $inputs.ips
    parameters:
    - name: key
      in: query
      value: $inputs.apiKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      alertId: $response.body#/id
  - stepId: enableTrigger
    description: >-
      Enable the requested trigger so the alert begins delivering events.
    operationId: enableAlertTrigger
    parameters:
    - name: key
      in: query
      value: $inputs.apiKey
    - name: id
      in: path
      value: $steps.createAlert.outputs.alertId
    - name: trigger
      in: path
      value: $inputs.trigger
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      success: $response.body#/success
  outputs:
    notifierId: $steps.createNotifier.outputs.notifierId
    alertId: $steps.createAlert.outputs.alertId