Vulnerability Vines AI — Jenkins Plugin

⚡️ AI-assisted DAST for CI/CD — launch scans, gate builds, and publish gorgeous reports.

🌐 Vines Cloud (production): https://vines.rosebird.org

🌿 What is Rocheston Vulnerability Vines AI?

Vines AI is a modern, AI‑assisted Dynamic Application Security Testing (DAST) platform by Rocheston. This Jenkins plugin integrates Vines directly into your pipelines so you can:

🤖 How AI powers scans & reports

🚀 Installation

  1. Manage Jenkins → Plugins → Available → search vulnerability-vines-aiInstall.
  2. Create a Secret text credential with your Vines API token (ID example: VINES_TOKEN).
  3. Ensure your controller/agent can reach https://vines.rosebird.org.

Manual (offline): upload HPI from Releases or from Jenkins repo:

https://repo.jenkins-ci.org/releases/io/jenkins/plugins/vulnerability-vines-ai/<VERSION>/vulnerability-vines-ai-<VERSION>.hpi

Minimum Jenkins: 2.479.3+

✨ Quick Start

Freestyle job

  1. Add build step Vulnerability Vines AI.
  2. Server URL: https://vines.rosebird.org
  3. Target URL: https://app.example.com
  4. Credentials: VINES_TOKEN (Secret text)
  5. (Optional) Enable Gates and adjust thresholds.
  6. Build → view KPIs, open the full report link.

Minimal Pipeline

pipeline {
  agent any
  stages {
    stage('Vines Scan') {
      steps {
        vinesScan(
          serverUrl:     'https://vines.rosebird.org',
          targetUrl:     'https://app.example.com',
          credentialsId: 'VINES_TOKEN'
        )
      }
    }
  }
}

🔒 Gates (Pass/Fail policies)

Block unsafe builds with policy thresholds:

GateMeaningDefault
failOnCriticalFail if ≥1 Criticaltrue
failOnHighFail if ≥1 Hightrue
failOnMediumMark UNSTABLE if ≥1 Mediumfalse
maxCvssFail if maximum CVSS is above cutoff7.0

🛠️ Pipeline with gates & preflight

vinesScan(
  serverUrl:     'https://vines.rosebird.org',
  targetUrl:     'https://shop.example.com',
  credentialsId: 'VINES_TOKEN',
  preflight:     true,
  gates: [
    failOnCritical: true,
    failOnHigh:     true,
    failOnMedium:   false,
    maxCvss:        7.0
  ],
  timeoutMinutes: 60
)

Using results programmatically

def r = vinesScan(serverUrl:'https://vines.rosebird.org',
                  targetUrl:'https://api.example.com',
                  credentialsId:'VINES_TOKEN',
                  preflight:true)
echo "Scan ${r.scanId} -> Crit:${r.critical} High:${r.high} MaxCVSS:${r.maxCvss}"
echo "Full report: ${r.reportUrl}"
if (r.critical > 0 || r.high > 0) { error('Risk too high') }

🧭 KPI chips & risk boxes

Gruvbox‑tinted examples you’ll see in console & reports:

Critical High Medium Low Max CVSS

🧩 Pipeline examples

Matrix build (Linux + Windows)

parallel linux: {
  node('linux') {
    vinesScan(serverUrl:'https://vines.rosebird.org', targetUrl:'https://app.example.com', credentialsId:'VINES_TOKEN')
  }
}, windows: {
  node('windows') {
    vinesScan(serverUrl:'https://vines.rosebird.org', targetUrl:'https://app.example.com', credentialsId:'VINES_TOKEN')
  }
}

Post‑scan gate in Groovy

def r = vinesScan(serverUrl:'https://vines.rosebird.org', targetUrl:'https://app.example.com', credentialsId:'VINES_TOKEN')
if (r.critical > 0 || r.high > 0 || r.maxCvss > 7.0) {
  error("Vines gate failed — Crit:${r.critical}, High:${r.high}, Max:${r.maxCvss}")
}

Timeout & preflight controls

vinesScan(
  serverUrl:'https://vines.rosebird.org',
  targetUrl:'https://dev.example.com',
  credentialsId:'VINES_TOKEN',
  preflight:true, timeoutMinutes:90
)

🧪 Examples of scans

⚙️ Global configuration & JCasC

Manage Jenkins → System defaults:

JCasC Example

unclassified:
  vulnerabilityVinesAi:
    serverUrl: "https://vines.rosebird.org"
    credentialsId: "VINES_TOKEN"
    defaultPreflight: true
    defaultTimeoutMinutes: 60

🛠️ Troubleshooting

📦 Metadata

👤 Maintainer

Haja Mo (rocheston) — creator of Rocheston Vulnerability Vines AI.

Contributions welcome — open issues/PRs and keep docs consistent with the UI/Snippet Generator.

Apache License 2.0 © Rocheston • Designed with ❤️ by Haja Mo