IBM WebSphere · Arazzo Workflow

WebSphere Automation Vulnerability Remediation

Version 1.0.0

Find an open critical vulnerability, inspect it, and apply a fix.

1 workflow 1 source API 1 provider
View Spec View on GitHub Application ServerCloud NativeEnterprise JavaJ2EEMicroservicesMiddlewareArazzoWorkflows

Provider

websphere

Workflows

remediate-vulnerability
Inspect an open vulnerability and initiate a fix on the affected servers.
Lists open critical vulnerabilities, reads the target vulnerability, and initiates resolution by applying a fix to the supplied target servers.
3 steps inputs: fixId, serverIds, vulnerabilityId outputs: severity, taskId, vulnerabilityId
1
listOpenCritical
listVulnerabilities
List open critical vulnerabilities affecting managed servers so the target can be confirmed.
2
getVulnerability
getVulnerability
Read the target vulnerability to capture its severity, affected servers, and available fixes.
3
resolveVulnerability
resolveVulnerability
Initiate resolution of the vulnerability by applying the chosen fix to the target servers. Returns a task id for the asynchronous remediation.

Source API Descriptions

Arazzo Workflow Specification

websphere-vulnerability-remediation-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: WebSphere Automation Vulnerability Remediation
  summary: Find an open critical vulnerability, inspect it, and apply a fix.
  description: >-
    A WebSphere Automation security remediation flow. The workflow lists open
    critical vulnerabilities affecting managed servers, reads the chosen
    vulnerability to capture the affected servers and available fixes, and then
    initiates resolution by applying a fix to the targeted servers. 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: automationApi
  url: ../openapi/websphere-automation-rest-api.yml
  type: openapi
workflows:
- workflowId: remediate-vulnerability
  summary: Inspect an open vulnerability and initiate a fix on the affected servers.
  description: >-
    Lists open critical vulnerabilities, reads the target vulnerability, and
    initiates resolution by applying a fix to the supplied target servers.
  inputs:
    type: object
    required:
    - vulnerabilityId
    - fixId
    - serverIds
    properties:
      vulnerabilityId:
        type: string
        description: The vulnerability identifier to remediate.
      fixId:
        type: string
        description: The specific fix to apply.
      serverIds:
        type: array
        items:
          type: string
        description: Target servers for the fix.
  steps:
  - stepId: listOpenCritical
    description: >-
      List open critical vulnerabilities affecting managed servers so the target
      can be confirmed.
    operationId: listVulnerabilities
    parameters:
    - name: severity
      in: query
      value: critical
    - name: status
      in: query
      value: open
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      vulnerabilities: $response.body#/vulnerabilities
      totalCount: $response.body#/totalCount
  - stepId: getVulnerability
    description: >-
      Read the target vulnerability to capture its severity, affected servers,
      and available fixes.
    operationId: getVulnerability
    parameters:
    - name: vulnerabilityId
      in: path
      value: $inputs.vulnerabilityId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      severity: $response.body#/severity
      affectedServers: $response.body#/affectedServers
      availableFixes: $response.body#/availableFixes
  - stepId: resolveVulnerability
    description: >-
      Initiate resolution of the vulnerability by applying the chosen fix to the
      target servers. Returns a task id for the asynchronous remediation.
    operationId: resolveVulnerability
    parameters:
    - name: vulnerabilityId
      in: path
      value: $inputs.vulnerabilityId
    requestBody:
      contentType: application/json
      payload:
        action: apply-fix
        fixId: $inputs.fixId
        serverIds: $inputs.serverIds
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      taskId: $response.body#/taskId
      taskStatus: $response.body#/status
  outputs:
    vulnerabilityId: $inputs.vulnerabilityId
    severity: $steps.getVulnerability.outputs.severity
    taskId: $steps.resolveVulnerability.outputs.taskId