Skip to content

CLI - Interfaz de Línea de Comandos

El CLI (Command Line Interface) de RootCause es la herramienta principal para ejecutar análisis estático de código. Esta interfaz te permite escanear tu código, aplicar reglas personalizadas y generar reportes en diferentes formatos.

¿Qué es el CLI?

El CLI de RootCause es un ejecutable binario que proporciona todas las funcionalidades necesarias para:

  • Escanear código: Analizar archivos y directorios en busca de problemas de seguridad y calidad
  • Aplicar reglas: Usar reglas personalizadas para detectar patrones específicos
  • Generar reportes: Crear salidas en formato texto, JSON o SARIF
  • Gestionar reglas: Instalar, actualizar y gestionar conjuntos de reglas
  • Gestionar plugins: Instalar, configurar y usar plugins externos
  • Integrar con CI/CD: Fácil integración en pipelines de desarrollo

Ubicación del archivo de configuración

RootCause utiliza un archivo de configuración en formato TOML ubicado en:

  • Linux/macOS: ~/.config/rootcause/config.toml
  • Windows: %APPDATA%\rootcause\config.toml

Estructura del archivo de configuración (config.toml)

toml
# Configuración de caché
[cache]
cache_dir = "./cache"

# Configuración de reglas
[rules]
rule_dirs = [
  "/home/usuario/.config/rootcause/rules", 
  "./reglas-personalizadas"]

# Configuración de plugins
[plugins]
[plugins.nombre-plugin]
enabled = true
param1 = "valor1"
param2 = 123

Directorios por defecto

  • Reglas: ~/.config/rootcause/rules (Linux/macOS) o %APPDATA%\rootcause\rules (Windows)
  • Plugins: ~/.config/rootcause/plugins (Linux/macOS) o %APPDATA%\rootcause\plugins (Windows)

Comandos principales

scan

Comando principal para ejecutar análisis de código.

bash
rootcause scan <PATH> [OPTIONS]

rules

Gestionar conjuntos de reglas de análisis.

bash
rootcause rules <COMMAND> [OPTIONS]

plugins

Gestionar plugins para extender funcionalidades.

bash
rootcause plugins <COMMAND> [OPTIONS]

Opciones globales

Opciones disponibles en el CLI principal:

bash
rootcause --help

Salida de ayuda completa

bash
RootCause is a powerful Static Analysis Security Testing (SAST) tool that helps developers find security vulnerabilities, code quality issues, and compliance violations in their codebases.

Features:
 Multi-language support (Python, Rust, JavaScript, Java, Docker, YAML, etc.)
 Customizable rule sets with YAML, JSON, and OPA support
 Plugin architecture for extensibility
 Multiple output formats (Text, JSON, SARIF)
 CI/CD integration ready
 Real-time scanning and reporting

Examples:
  rootcause scan .                    # Scan current directory
  rootcause scan src/ --format json   # Scan with JSON output
  rootcause rules install <url>       # Install custom rules
  rootcause plugins list              # List installed plugins

Usage: rootcause <COMMAND>

Commands:
  scan     Scan code for security vulnerabilities and quality issues
  plugins  Manage plugins for extending RootCause functionality
  rules    Manage security rules and rule sets
  help     Print this message or the help of the given subcommand(s)

Options:
  -v, --version    Show version information
  -h, --help       Print help (see a summary with '-h')

Cada comando tiene sus propias opciones específicas. Usa --help después del comando para ver las opciones disponibles:

bash
rootcause scan --help
rootcause rules --help
rootcause plugins --help

Integración con CI/CD

El CLI está diseñado para integrarse fácilmente en pipelines de CI/CD:

yaml
# GitHub Actions
- name: Run RootCause Analysis
  run: |
    rootcause scan . --format sarif --fail-on medium > report.sarif

# GitLab CI
analyze:
  script:
    - rootcause scan . --format sarif --fail-on high > report.sarif
  artifacts:
    reports:
      sarif: report.sarif

Próximos pasos

RootCause - Modular Static Analysis Engine