JFrog · Arazzo Workflow

JFrog Xray Triage Violation

Version 1.0.0

Query Xray violations and create an ignore rule when any are found.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub ArtifactoryCI/CDContainer RegistryDevOpsMLOpsPackage ManagementSecuritySoftware Supply ChainArazzoWorkflows

Provider

jfrog

Workflows

triage-violation
Fetch violations and create an ignore rule for a known CVE.
Retrieves violations for a watch, and when at least one is returned creates a time-bound ignore rule for the supplied CVE, then reads it back.
3 steps inputs: cve, expirationDate, minSeverity, watchName outputs: ruleId, totalViolations
1
getViolations
Query security violations for the watch at or above the supplied minimum severity.
2
createIgnoreRule
Create a time-bound ignore rule for the supplied CVE scoped to the watch.
3
verifyRule
Read the ignore rule back to confirm it was created.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: JFrog Xray Triage Violation
  summary: Query Xray violations and create an ignore rule when any are found.
  description: >-
    A security triage flow. The workflow queries violations for a watch above a
    minimum severity, then branches: when violations exist it creates an ignore
    rule (for example to accept a documented risk) and confirms it, and when no
    violations exist it ends. 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: ignoreRulesApi
  url: ../openapi/jfrog-ignore-rules-api-openapi.yml
  type: openapi
- name: violationsApi
  url: ../openapi/jfrog-violations-api-openapi.yml
  type: openapi
workflows:
- workflowId: triage-violation
  summary: Fetch violations and create an ignore rule for a known CVE.
  description: >-
    Retrieves violations for a watch, and when at least one is returned creates
    a time-bound ignore rule for the supplied CVE, then reads it back.
  inputs:
    type: object
    required:
    - watchName
    - minSeverity
    - cve
    - expirationDate
    properties:
      watchName:
        type: string
        description: The watch whose violations to query.
      minSeverity:
        type: string
        description: The minimum severity to filter violations by.
      cve:
        type: string
        description: The CVE identifier to create an ignore rule for.
      expirationDate:
        type: string
        description: The expiration date-time for the ignore rule.
  steps:
  - stepId: getViolations
    description: >-
      Query security violations for the watch at or above the supplied minimum
      severity.
    operationId: getViolations
    requestBody:
      contentType: application/json
      payload:
        filters:
          type: security
          watch_name: $inputs.watchName
          min_severity: $inputs.minSeverity
        pagination:
          limit: 25
          offset: 0
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      total: $response.body#/total_violations
      violations: $response.body#/violations
    onSuccess:
    - name: hasViolations
      type: goto
      stepId: createIgnoreRule
      criteria:
      - context: $response.body
        condition: $.total_violations > 0
        type: jsonpath
    - name: clean
      type: end
      criteria:
      - context: $response.body
        condition: $.total_violations == 0
        type: jsonpath
  - stepId: createIgnoreRule
    description: >-
      Create a time-bound ignore rule for the supplied CVE scoped to the watch.
    operationId: createIgnoreRule
    requestBody:
      contentType: application/json
      payload:
        notes: Created by the triage-violation workflow
        expiration_date: $inputs.expirationDate
        cves:
        - cve: $inputs.cve
        watches:
        - $inputs.watchName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      ruleId: $response.body#/id
  - stepId: verifyRule
    description: >-
      Read the ignore rule back to confirm it was created.
    operationId: getIgnoreRule
    parameters:
    - name: ruleId
      in: path
      value: $steps.createIgnoreRule.outputs.ruleId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      id: $response.body#/id
  outputs:
    ruleId: $steps.createIgnoreRule.outputs.ruleId
    totalViolations: $steps.getViolations.outputs.total

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/jfrog-xray-triage-violation-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.