Security Commands¶
The security command group provides comprehensive security analysis tools for
Structum projects, including code vulnerability scanning and dependency auditing.
Overview¶
Security commands are provided by the structum-cli-tools plugin and require installation:
pip install structum-cli-tools
This adds three security commands to the Structum CLI:
scan()- Quick code vulnerability scan (Bandit)audit()- Full audit with dependency check (Bandit + Safety)report()- Generate JSON security report
Commands¶
security scan¶
Run static analysis security scan on Python code using Bandit.
Options:
targetDirectory or file to scan (default: current directory)
--skip-tests / --include-testsSkip test files from scanning (default: skip)
Examples:
# Scan entire project
structum security scan
# Scan specific package
structum security scan packages/auth/
# Include test files
structum security scan --include-tests
What It Checks:
SQL injection vulnerabilities
Hardcoded passwords/secrets
Insecure
eval()/exec()usageWeak cryptographic practices
Shell injection risks
Pickle usage (arbitrary code execution)
Assert usage in production code
security audit¶
Comprehensive two-phase security audit: code scan + dependency vulnerabilities.
Options:
--deps / --no-depsInclude dependency vulnerability check (default: yes)
Examples:
# Full audit (recommended for CI/CD)
structum security audit
# Code scan only
structum security audit --no-deps
Phases:
- Code Scan (Bandit)
Same analysis as
security scanChecks all Python source files
- Dependency Check (Safety)
Queries CVE database
Reports known vulnerabilities in dependencies
Includes severity levels
security report¶
Generate machine-readable JSON security report for CI/CD integration.
Options:
--output/-oOutput file path (default:
security-report.json)
Examples:
# Default output
structum security report
# Custom path
structum security report --output reports/sec-scan.json
# Use in CI/CD
structum security report -o artifacts/security.json
Report Contents:
List of all findings with severity (HIGH/MEDIUM/LOW)
File locations and line numbers
Confidence levels
Remediation suggestions
Summary statistics
CI/CD Integration¶
GitHub Actions Example¶
name: Security Scan
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
pip install structum-cli-tools
- name: Security Audit
run: structum security audit
- name: Generate Report
if: failure()
run: structum security report -o security-report.json
- name: Upload Report
if: failure()
uses: actions/upload-artifact@v3
with:
name: security-report
path: security-report.json
Exit Codes¶
All security commands use standard exit codes:
0- No vulnerabilities found1- Vulnerabilities detected or tool error
Remediation¶
When vulnerabilities are found:
Review the Bandit output for severity and confidence
Assess if the vulnerability is a false positive
Fix the code or add
# noseccomment if false positiveRe-scan to verify fix
For dependency vulnerabilities:
Check if newer versions available
Update dependencies in
pyproject.tomlTest thoroughly after updates
Re-audit to confirm fix
See Also¶
Security Scanning Best Practices - Best practices guide
Testing Commands - Testing commands
structum.cli.check()- Code quality checks