Safeguard CLI
CLI Usage
Learn how to use the Safeguard CLI for common tasks
CLI Usage
This guide covers common CLI commands and workflows for generating SBOMs, scanning for vulnerabilities, and enforcing security policies.
Command Structure
safeguard <command> [subcommand] [options]SBOM Generation
Generate from Source Code
# Current directory
safeguard sbom generate --source .
# Specific directory
safeguard sbom generate --source /path/to/project
# With project name and version
safeguard sbom generate --source . --name "my-app" --version "1.0.0"Generate from Container Image
# Public image
safeguard sbom generate --image nginx:latest
# Private registry
safeguard sbom generate --image myregistry.azurecr.io/myapp:v1
# With registry credentials
safeguard sbom generate --image myregistry.azurecr.io/myapp:v1 \
--registry-user $USER \
--registry-password $PASSWORDGenerate from Existing SBOM
# Analyze and enrich an existing SBOM
safeguard sbom analyze --input existing-sbom.jsonOutput Formats
# CycloneDX JSON (default)
safeguard sbom generate --source . --format cyclonedx-json
# CycloneDX XML
safeguard sbom generate --source . --format cyclonedx-xml
# SPDX JSON
safeguard sbom generate --source . --format spdx-json
# SPDX Tag-Value
safeguard sbom generate --source . --format spdx-tv
# Save to file
safeguard sbom generate --source . --output sbom.jsonVulnerability Scanning
Basic Scan
# Scan current directory
safeguard scan --source .
# Scan and output results
safeguard scan --source . --output results.jsonScan Options
# Include development dependencies
safeguard scan --source . --include-dev
# Set severity threshold
safeguard scan --source . --severity high
# Output in different formats
safeguard scan --source . --format sarif --output results.sarif
safeguard scan --source . --format junit --output results.xml
safeguard scan --source . --format tableScan Container Images
safeguard scan --image nginx:latest
safeguard scan --image myregistry.azurecr.io/myapp:v1Security Gates
Check Against Policy
# Use default policy
safeguard gate check --source .
# Use named policy
safeguard gate check --source . --policy production
# Fail on specific severity
safeguard gate check --source . --fail-on critical
safeguard gate check --source . --fail-on highGate Options
# Allow approved exceptions
safeguard gate check --source . --allow-exceptions
# Output detailed results
safeguard gate check --source . --verbose
# Generate report
safeguard gate check --source . --report gate-report.htmlProject Management
List Projects
safeguard project list
safeguard project list --organization my-orgUpload SBOM
safeguard project upload --sbom sbom.json --name "my-app" --version "1.0.0"Get Project Details
safeguard project get --name "my-app" --version "1.0.0"Delete Project
safeguard project delete --name "my-app" --version "1.0.0"Authentication Commands
# Interactive login
safeguard auth login
# Check authentication status
safeguard auth status
# Logout
safeguard auth logout
# Use API key
safeguard auth set-key YOUR_API_KEYConfiguration Commands
# Initialize configuration
safeguard config init
# View current configuration
safeguard config show
# Set configuration values
safeguard config set default_format spdx-json
safeguard config set output_dir ./sbom
# Get specific value
safeguard config get default_formatCommon Workflows
CI/CD Pipeline Workflow
#!/bin/bash
# Generate SBOM
safeguard sbom generate --source . --name "$PROJECT_NAME" --version "$VERSION" --output sbom.json
# Upload to Safeguard.sh
safeguard project upload --sbom sbom.json --name "$PROJECT_NAME" --version "$VERSION"
# Run security gate
safeguard gate check --source . --policy production --fail-on high
# Exit code indicates pass/failLocal Development Workflow
# Quick scan during development
safeguard scan --source . --format table
# Generate SBOM before commit
safeguard sbom generate --source . --output sbom.json
# Check against team policy
safeguard gate check --source . --policy developmentContainer Build Workflow
# Build container
docker build -t myapp:latest .
# Scan container
safeguard scan --image myapp:latest
# Generate container SBOM
safeguard sbom generate --image myapp:latest --output container-sbom.json
# Check security gate
safeguard gate check --image myapp:latest --policy productionExit Codes
| Code | Description |
|---|---|
0 | Success, no issues found |
1 | Policy violations or vulnerabilities found |
2 | Authentication error |
3 | Configuration error |
4 | Network error |
5 | Invalid input |
Environment Variables
| Variable | Description |
|---|---|
SAFEGUARD_API_KEY | API key for authentication |
SAFEGUARD_ORG | Default organization ID |
SAFEGUARD_CONFIG | Path to config file |
SAFEGUARD_OUTPUT_DIR | Default output directory |
SAFEGUARD_FORMAT | Default output format |
SAFEGUARD_DEBUG | Enable debug logging |
Getting Help
# General help
safeguard --help
# Command-specific help
safeguard sbom --help
safeguard scan --help
safeguard gate --help
safeguard project --help