Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
f0249f8
Initial commit
tzemicheal Jan 28, 2025
429f2f5
Update to NAT 1.4.0 (#172)
efajardo-nv Feb 5, 2026
64c760d
Initial cve-agent-v3 NAT migration
efajardo-nv Mar 11, 2026
2367002
Add MIGRATION_PLAN.md
efajardo-nv Mar 11, 2026
11132d9
Use generic paths in pipeline_input.json example
efajardo-nv Mar 11, 2026
608e982
Add tools missed in migration
efajardo-nv Mar 11, 2026
c910664
Migrate v3 benchmarks to NAT eval
efajardo-nv Mar 12, 2026
3dff0aa
Add v3 caching behavior
efajardo-nv Mar 12, 2026
bbd5a9a
Fix caching for GHSA IDs
efajardo-nv Mar 12, 2026
4117efc
multi-package CVE support, pre-triage enhancements, early-exit reports
efajardo-nv Mar 12, 2026
6132f6c
Update to official NAT 1.5 release
efajardo-nv Mar 13, 2026
656b11a
Fix Go binary detection and VEX requires_configuration override
Mar 17, 2026
08331b1
Merge branch 'main' into 'cve-agent-v3'
asaboo-nv Mar 17, 2026
fe64356
Separate Go binary walk limit from extraction limit (MAX_FILES → MAX_…
asaboo-nv Apr 3, 2026
e48213a
Merge branch 'fix/go-binary-scan-limits' into 'cve-agent-v3'
efajardo-nv Apr 3, 2026
e973090
Docker Compose and README updates
efajardo-nv Apr 3, 2026
e4a4e1e
Merge branch 'docker-compose-update' into 'cve-agent-v3'
efajardo-nv Apr 3, 2026
ba3366a
Concurrency improvements and remove deprecation warnings
efajardo-nv Apr 9, 2026
925242f
Merge branch 'feature/cache-concurrency-coalescing' into 'cve-agent-v3'
efajardo-nv Apr 9, 2026
35ce23d
Update installation instructions in readme
efajardo-nv Apr 14, 2026
32f002d
Merge branch 'docs/update-readme-installation' into 'cve-agent-v3'
efajardo-nv Apr 14, 2026
7dcd0b4
Update the morpheus labels to match what we think is the golden answe…
hsin-c Apr 22, 2026
cd4f126
Merge branch 'hsin-morpheus-label-update' into 'cve-agent-v3'
efajardo-nv Apr 22, 2026
b5b7f16
Add RH python eval dataset
efajardo-nv Apr 28, 2026
f1a1609
Merge branch 'rh-exploitiq-dataset' into 'cve-agent-v3'
hsin-c Apr 28, 2026
9eba31b
Made output_dir default come from the workflow while letting input en…
shawn-davis May 11, 2026
59850f0
Apply 2 suggestion(s) to 1 file(s)
shawn-davis May 19, 2026
565ed6a
Merge branch '6-output_dir-parameter-in-the-config-workflow-section-d…
hsin-c May 20, 2026
9a77716
Updated the quick start guide to reflect the new workflow
shawn-davis May 26, 2026
be153dd
Made some grammar tweaks to the README and replaced the ascii art wit…
shawn-davis May 27, 2026
517e819
Automatic Container Extraction
asaboo-nv May 27, 2026
f2740f1
Merge branch 'feat/container-filesystem-extraction-tool' into 'cve-ag…
efajardo-nv May 27, 2026
f68eac6
Merge branch 'cve-agent-v3' into 'readme_updates'
shawn-davis May 27, 2026
74c304b
Merge cve-agent-v3 into new_quick_start
shawn-davis May 27, 2026
9840fe5
Switched out skopeo for crane
shawn-davis May 27, 2026
bc3c225
feat: add Deep Agents CVE researcher
shawn-davis May 28, 2026
26c7b38
Attempt at AIQ directly in CVE researcher
shawn-davis May 28, 2026
a14775c
Multi-CVE pipeline input/output and workflow refactor
efajardo-nv May 29, 2026
09a8bd1
Merge branch 'feature/multi-cve-per-request' into 'cve-agent-v3'
efajardo-nv May 29, 2026
ee30d5f
Added relaxed vex categorizer prompt
shawn-davis May 29, 2026
9f997b5
Merge branch 'relaxed_vex_categorization' into 'cve-agent-v3'
hsin-c May 29, 2026
10c1ef9
Add AIQ submodule
shawn-davis May 29, 2026
255b322
Inline CVE report prompt in AIQ researcher
shawn-davis Jun 1, 2026
c057440
Merge branch 'cve-agent-v3' into readme_updates
shawn-davis Jun 1, 2026
9e31bbd
Upgrade NeMo Agent Toolkit (NAT) from 1.5 to 1.7
efajardo-nv Jun 2, 2026
293f3e4
Merge branch 'nat-1.7-update' into 'cve-agent-v3'
efajardo-nv Jun 2, 2026
8614a33
docs: clarify README instructions
shawn-davis Jun 3, 2026
8923068
docs: refresh deploy notebooks for current NAT workflow
shawn-davis Jun 4, 2026
cf4de61
Updated NV_BASE_URL defaults to include `/v1`
shawn-davis Jun 4, 2026
bc9a06b
Update CVE deployment notebooks
shawn-davis Jun 4, 2026
399a26a
Fix deployment notebook env template
shawn-davis Jun 5, 2026
48552db
feat(cve): integrate AIQ CVE researcher
shawn-davis Jun 15, 2026
0baea5e
Merge branch 'cve-agent-v3' into deep-research
shawn-davis Jun 15, 2026
2922f27
Remove standalone CVE deep researcher
shawn-davis Jun 16, 2026
bc9d528
Use AIQ CVE researcher as primary implementation
shawn-davis Jun 16, 2026
278bb4e
Reorganize deploy tooling, slim Docker image, fix verify_ssl regression
efajardo-nv Jun 16, 2026
6bf2a1d
Merge branch 'deployment-updates' into 'cve-agent-v3'
shawn-davis Jun 16, 2026
8d349de
Merge branch 'deep-research' into aiq_integration
shawn-davis Jun 16, 2026
0c6243d
Merge branch 'deploy_notebook_updates' into aiq_integration
shawn-davis Jun 16, 2026
51e36ee
Merge branch 'new_quick_start' into aiq_integration
shawn-davis Jun 16, 2026
36a1b76
Merge branch 'readme_updates' into aiq_integration
shawn-davis Jun 16, 2026
f1948c7
Update install docs and eval datasets
shawn-davis Jun 16, 2026
884ea88
Improve setup documentation
shawn-davis Jun 16, 2026
56273b8
Clean notebook outputs and PB eval path
shawn-davis Jun 17, 2026
b0bbd9e
Align quick start with PipelineInput schema
shawn-davis Jun 29, 2026
d007e98
Removed MIGRATION_PLAN.md
shawn-davis Jun 29, 2026
51d7c35
Updated eval workflows to work out of the box.
shawn-davis Jul 2, 2026
88ac1dc
Move CVE researcher into local NAT plugin
shawn-davis Jul 8, 2026
9bca532
Update NIM deployment defaults and VEX example docs
shawn-davis Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Exclude local virtual environment from Docker build context
.venv/
venv/
env/
ENV/

# Exclude other local development files
.vscode/
.idea/
*.pyc
__pycache__/
.pytest_cache/
.mypy_cache/
*.egg-info/
dist/
build/

# Exclude temporary and cache directories
.tmp/
.cache/
*.log

# SSL certificates must never be baked into the image
deploy/nginx/*.pem
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
NVIDIA_API_KEY=
NV_BASE_URL=https://inference-api.nvidia.com/v1
TAVILY_API_KEY=
122 changes: 122 additions & 0 deletions .github/workflows/test-deploy-cve-notebook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: Test Deploy CVE Notebook

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
run-notebook:
runs-on: arc-runners-org-nvidia-ai-bp-1-gpu
env:
NOTEBOOK_PATH: ./deploy/1_Deploy_CVE.ipynb
PYTHON_VERSION: 3.12
steps:
- name: Checkout BP repository
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip'
cache-dependency-path: |
requirements.txt
**/*.ipynb

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install python-dotenv
pip install --upgrade pip ipython ipykernel
ipython kernel install --name "python3" --user

# Get System Info
echo "===================== System Info ====================="
more /etc/os-release
docker version
docker compose version

- name: Run Jupyter Notebook
env:
GHSA_API_KEY: ${{ secrets.GHSA_API_KEY }}
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}
SERPAPI_API_KEY: ${{ secrets.SERPAPI_API_KEY }}
NVIDIA_API_KEY: ${{ secrets.NVIDIA_API_KEY }}
run: |
OUTPUT_NOTEBOOK="result.ipynb"
echo "Executing notebook: $NOTEBOOK_PATH"
papermill "$NOTEBOOK_PATH" "$OUTPUT_NOTEBOOK" --log-output --log-level DEBUG

- name: Convert result to html format
if: always()
run: |
OUTPUT_NOTEBOOK="result.ipynb"
jupyter nbconvert --to html "$OUTPUT_NOTEBOOK"


- name: Run Test Code
if: always()
env:
TEST_DOCKER_PULL_KEY: ${{ secrets.TEST_DOCKER_PULL_KEY }}
run: |
# Check if the HTML files exist before running tests
if [ ! -f "./result.html" ]; then
echo "Warning: result.html not found"
fi

# Run the test and capture the exit code
echo "$TEST_DOCKER_PULL_KEY" |docker login nvcr.io --username '$oauthtoken' --password-stdin
docker run --rm \
-v ./result.html:/app/input/vulnerability_analysis/Launchable-VACS-2.1.0-result.html \
-v "$(pwd):/workspace" \
nvcr.io/rw983xdqtcdp/auto_test_team/blueprint-github-test-image:latest \
pytest -m vacs --disable-warnings --html=/workspace/vacs.html --self-contained-html

- name: Upload the result notebook as artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: result notebook and pytest
path: |
result.html
vacs.html
retention-days: 30

- name: Set result output
id: set_result
if: always()
run: |
echo "RESULT=$(if [ ${{ job.status }} == 'success' ]; then echo 'PASS'; else echo 'FAIL'; fi)" >> $GITHUB_OUTPUT

- name: Send mail
uses: dawidd6/action-send-mail@6e71c855c9a091d80a519621b9fd3e8d252ca40c
if: always()
with:
server_address: smtp.gmail.com
server_port: 587
username: ${{ secrets.SMTP_USERNAME }}
password: ${{ secrets.SMTP_PASSWORD }}

# Email details
subject: "QA Test Workflow Result for ${{ github.repository }}"
to: Github-Action-Blueprint-QA@nvidia.com
from: github-workflow-notification@gmail.com
html_body: |
<p>Hello,</p>

<p>The workflow for repository: <strong>${{ github.repository }}</strong> has completed.<br>
<strong>Result:</strong> ${{ steps.set_result.outputs.RESULT }}</p>

<p>You can review the details on GitHub:<br>
<a href="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}">${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}</a></p>

<p>Thanks!</p>
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
###### Place new entries directly below this line! ######
outputs/

# Ignore anything in the ./.tmp directory
.tmp/
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "aiq"]
path = aiq
url = https://github.com/NVIDIA-AI-Blueprints/aiq.git
branch = develop
Loading