How to Monitor Dependency Vulnerabilities with OpenClaw in Paradime

Feb 26, 2026

Table of Contents

Automate Dependency Vulnerability Scanning with Paradime, OpenClaw, and OSV/NVD APIs

Every open-source dependency you ship is a liability until you prove it's clean. Most data teams discover critical CVEs only after an incident—not before. This guide gives you a repeatable, outcome-driven workflow: measure → identify → fix → validate savings—wired into Paradime's Bolt scheduler and powered by an OpenClaw AI agent that scans your GitHub repos against the NVD and OSV vulnerability databases daily.

By the end of this walkthrough, you will have a fully operational pipeline that:

  • Reads dependency files (requirements.txt, package.json, packages.yml) from every repo in your GitHub org

  • Checks each package and version against the NIST NVD and Google OSV vulnerability databases

  • Alerts your team on Slack whenever a Critical or High severity CVE is found

  • Runs on a daily cron schedule via Paradime Bolt—zero manual babysitting

What Is Paradime?

Paradime is the all-in-one AI platform that replaces dbt Cloud™. It provides a dbt™-native workspace where analytics and data engineering teams code, ship, fix, and scale data pipelines—all from one place.

Key capabilities relevant to this guide:

Feature

What It Does

Code IDE

AI-native IDE with DinoAI for dbt™ and Python development

Bolt

Production scheduler for dbt™ orchestration, CI/CD, and custom jobs

Radar

FinOps module for Snowflake/BigQuery cost reduction

Environment Variables

Secure secrets management for Bolt schedules

Bolt is the scheduling backbone of this workflow. It supports cron-based triggers, on-merge triggers, API triggers, and chained schedule triggers—all configurable as code via YAML or through the UI.

What Is OpenClaw?

OpenClaw is an open-source autonomous AI agent that runs on your own hardware and integrates with messaging platforms like Slack, WhatsApp, Telegram, Discord, and Microsoft Teams.

OpenClaw uses Skills—directories containing a SKILL.md file with YAML frontmatter and Markdown instructions—to teach the agent how to use tools. Skills can invoke bash commands, call APIs, and chain complex workflows.

Skills are configured in ~/.openclaw/openclaw.json:

The key advantage: OpenClaw agents can execute real commands on your infrastructure, making them ideal for automated security scanning workflows that need to call multiple APIs and parse structured data.

Architecture Overview

Before diving into the implementation, here's the end-to-end architecture:

Figure 1: End-to-end dependency vulnerability scanning workflow orchestrated by Paradime Bolt and executed by an OpenClaw agent.

Setup: openclaw-sdk + GitHub API + NVD/OSV API

Prerequisites

Tool

Version

Purpose

OpenClaw

Latest (npm i -g openclaw)

AI agent runtime

Node.js

18+

OpenClaw runtime

curl / jq

System

API calls and JSON parsing

GitHub PAT

repo scope

Read dependency files from repos

NVD API Key

Request here

Higher rate limits for NVD queries

Step 1: Install OpenClaw

Verify the installation:

Step 2: Create the Skill Directory

Step 3: Obtain API Credentials

  1. GitHub Personal Access Token: Go to github.com/settings/tokens → Generate new token → Select repo scope.

  2. NVD API Key (optional but recommended for rate limits): Request at nvd.nist.gov.

  3. Slack Incoming Webhook: Create a Slack App → Enable Incoming Webhooks → Add to channel → Copy URL.

Environment Variables: GITHUB_TOKEN, OPENCLAW_API_KEY, SLACK_WEBHOOK_URL

Configure in OpenClaw

Add your credentials to ~/.openclaw/openclaw.json:

Configure in Paradime Bolt

For Bolt to trigger the OpenClaw agent, it needs the same secrets at the schedule level:

  1. Navigate to Settings → Workspaces → Environment Variables in Paradime

  2. In the Bolt Schedules section, click Add New

  3. Add each variable:

Variable Name

Value

Description

GITHUB_TOKEN

ghp_xxxxx

GitHub Personal Access Token

NVD_API_KEY

nvd-key-xxx

NIST NVD API key

SLACK_WEBHOOK_URL

https://hooks.slack.com/...

Slack channel webhook

Tip: You can override environment variables at the schedule level if you need different credentials per schedule—for example, scanning staging vs. production repos.

Figure 2: Environment variable precedence—schedule-level overrides take priority over global workspace values.

Script: Read Dependency Files, Check Vulnerability Databases, Alert on Critical/High CVEs

This is the core of the workflow. We'll build an OpenClaw skill that:

  1. Fetches dependency files from GitHub repos

  2. Parses package names and versions

  3. Queries OSV and NVD for known vulnerabilities

  4. Filters for Critical and High severity

  5. Sends a Slack alert

The SKILL.md File

Create ~/.openclaw/workspace/skills/vuln-scanner/SKILL.md:

The scan_deps.sh Script

Create ~/.openclaw/workspace/skills/vuln-scanner/scan_deps.sh:

Make the script executable:

The Measure → Identify → Fix → Validate Workflow

Figure 3: The repeatable Measure → Identify → Fix → Validate loop that runs every day via Bolt.

Each phase maps directly to the script:

Phase

What Happens

Script Output

Measure

Enumerate repos, fetch dependency files, count packages

[MEASURE] Found 42 repositories to scan

Identify

Query OSV/NVD per package+version, match against known CVEs

[IDENTIFY] ⚠️ CVE-2024-34064 (HIGH) found in jinja2@3.1.3

Fix

Filter for Critical/High, generate structured JSON report

[FIX] 7 Critical/High vulnerabilities found

Validate

Send Slack alert, log metrics, confirm delivery

[VALIDATE] Slack alert sent successfully

Bolt Schedule: Cron Daily

Now wire the OpenClaw vulnerability scanner into Paradime Bolt so it runs automatically every day.

Option 1: Schedules as Code (YAML)

Add the following to your paradime_schedules.yml:

Verify the schedule configuration:

Perform a dry run:

Option 2: Bolt UI

  1. Navigate to Bolt in Paradime

  2. Click Create Schedule

  3. Configure:

  4. Click Deploy

Trigger Type Cheatsheet

Bolt supports four trigger types:

Trigger

When to Use

Example

Scheduled Run

Fixed cadence (daily/hourly)

0 6 * * * — daily at 6 AM

On Run Completion

Chain after another schedule

Run vuln scan after dbt build completes

On Merge

Scan on every merge to main

Catch new dependencies immediately

Bolt API

Trigger programmatically

Kick off scan from CI/CD pipeline

Pro tip: For maximum coverage, combine a daily cron schedule with an On Merge trigger. The daily scan catches existing vulnerabilities; the on-merge scan catches new dependencies the moment they land.

Figure 4: Multiple trigger types feeding into a single Bolt schedule for comprehensive coverage.

Monitoring and Debugging

Once your schedule is live, Paradime provides rich observability tools to ensure your vulnerability scanner runs reliably.

Run Log History

Navigate to Bolt → Schedules → daily-dependency-vuln-scan → Run History to access:

  • Execution Time History: A 30-day graphical view showing success/error rates, execution duration trends, and skipped runs

  • Run History Table: Detailed list of all executions with Run ID, status (Success/Error/Skipped), trigger source, branch, timestamp, and duration

Analyzing Individual Runs

Click any Run ID to drill into:

Tab

What It Shows

Summary

Completion status, duration, success metrics, warnings/errors, and suggested corrective actions

Console Logs

Line-by-line command execution output—look for [MEASURE], [IDENTIFY], [FIX], and [VALIDATE] markers from the scanner script

Debug Logs

In-depth technical details—system interactions, resource allocation, connection status

Integration Logs

Payload sent to connected integrations (Slack, Jira, etc.) after the Bolt run completes

Artifacts

Each run produces downloadable artifacts:

  • Run SQL / Compiled SQL: Not applicable for this custom command, but available for dbt™ schedules

  • run_results.json: Execution outcomes

  • manifest.json: Project structure

Setting Up Alerts on Bolt Failures

If the scanner itself fails (network error, API rate limit, auth issue), configure Bolt notifications:

  1. In the schedule configuration, set Notifications → On Failure to your team's Slack channel or email

  2. This is separate from the vulnerability alerts—it monitors the health of the scanner itself

Figure 5: Dual notification strategy—the script alerts on vulnerabilities, Bolt alerts on scanner failures.

Troubleshooting Common Issues

1. GitHub API Rate Limiting

Symptom: 403 Forbidden or rate limit exceeded errors in Console Logs.

Fix:

  • Ensure GITHUB_TOKEN is set correctly—authenticated requests get 5,000 requests/hour vs. 60 unauthenticated

  • If scanning 100+ repos with many dependency files, add pagination and backoff logic to the script

  • Verify the token has repo scope

2. NVD API Throttling

Symptom: Empty responses or 403 from NVD after ~5 requests.

Fix:

  • Without an API key: 5 requests per 30-second window

  • With an API key: 50 requests per 30-second window

  • The script includes a sleep 1 between requests—increase to sleep 6 if running without a key

  • Request a free NVD API key

3. OSV API Returns No Results

Symptom: {"vulns": []} for packages you know are vulnerable.

Fix:

  • Ecosystem names are case-sensitive: use PyPI (not pypi), npm (not NPM)

  • Ensure the version string is an exact match (e.g., 3.1.3 not >=3.1.0)

  • Test manually:

4. Slack Webhook Not Delivering

Symptom: Script says [VALIDATE] Slack alert sent successfully but no message in channel.

Fix:

  • Verify the webhook URL is still active (Slack deactivates unused webhooks)

  • Check the channel still exists and the Slack App is installed in it

  • Test the webhook directly:

5. OpenClaw Skill Not Loading

Symptom: Agent doesn't recognize the vuln_scanner skill.

Fix:

  • Verify the directory structure: ~/.openclaw/workspace/skills/vuln-scanner/SKILL.md must exist

  • Check that name in YAML frontmatter matches what you're invoking

  • Restart the OpenClaw gateway or ask the agent to "refresh skills"

  • Ensure enabled: true in ~/.openclaw/openclaw.json under skills.entries.vuln-scanner

6. Environment Variables Not Available in Bolt

Symptom: GITHUB_TOKEN is required error when Bolt runs the schedule.

Fix:

  • Environment variables must be created in Settings → Environment Variables → Bolt Schedules before they can be used

  • Only Admin roles can add or override environment variables

  • Schedule-level overrides take precedence over workspace-level values—check if an empty override is masking the global value

Quick Diagnostic Checklist

Figure 6: Step-by-step diagnostic flowchart for the most common failure modes.

Wrapping Up

You now have a production-grade dependency vulnerability scanner that:

Measures — Enumerates every dependency across your GitHub org automatically✅ Identifies — Cross-references each package+version against both NVD and OSV databases✅ Fixes — Surfaces only Critical and High severity CVEs with actionable context✅ Validates — Delivers Slack alerts and structured reports you can audit

The entire workflow runs hands-free on a daily Bolt cron schedule, with full observability through Bolt's run log history and run detail analysis.

What to Do Next

  1. Expand ecosystem coverage: Add parsers for go.mod, Cargo.toml, Gemfile.lock, and pom.xml to the scanner script

  2. Integrate with Jira/Linear: Instead of (or in addition to) Slack, create tickets for each Critical CVE automatically using Bolt's integration capabilities

  3. Add an On Merge trigger: Catch new vulnerable dependencies the moment they're merged, not just on the daily scan

  4. Track trends with dbt™: Store scan results in your warehouse and build dbt™ models to track vulnerability trends over time—measure whether your mean-time-to-remediation is actually improving

Key Resources

Resource

Link

Paradime Bolt Docs

docs.paradime.io/app-help/documentation/bolt

Bolt Trigger Types

docs.paradime.io/.../trigger-types

Bolt Environment Variables

docs.paradime.io/.../environment-variables

OpenClaw Skills Docs

docs.openclaw.ai/tools/skills

OpenClaw Skills Config

docs.openclaw.ai/tools/skills-config

OSV API

google.github.io/osv.dev/post-v1-query

NVD CVE API

nvd.nist.gov/developers/vulnerabilities

Cron Expression Help

crontab.guru

Stop discovering vulnerabilities after the breach. Start scanning proactively—every single day.

Interested to Learn More?
Try Out the Free 14-Days Trial

Stop Managing Pipelines. Start Shipping Them.

Join the teams that replaced manual dbt™ workflows with agentic AI. Free to start, no credit card required.

Stop Managing Pipelines. Start Shipping Them.

Join the teams that replaced manual dbt™ workflows with agentic AI. Free to start, no credit card required.

Stop Managing Pipelines. Start Shipping Them.

Join the teams that replaced manual dbt™ workflows with agentic AI. Free to start, no credit card required.

Copyright © 2026 Paradime Labs, Inc. Made with ❤️ in San Francisco ・ London

*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.

Copyright © 2026 Paradime Labs, Inc. Made with ❤️ in San Francisco ・ London

*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.

Copyright © 2026 Paradime Labs, Inc. Made with ❤️ in San Francisco ・ London

*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.