guardrails-security


Nameguardrails-security JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/guardrails/guardrails-security
SummaryAI-powered security scanner for modern development workflows
upload_time2025-10-26 00:58:03
maintainerNone
docs_urlNone
authorGuardRails Team
requires_python>=3.8
licenseNone
keywords security scanner vulnerability ai gemini devsecops code-analysis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🛡️ GuardRails Security Scanner (Python)

**AI-powered security scanner for modern development workflows**

GuardRails uses advanced AI (Gemini) to detect security vulnerabilities in your code, providing detailed explanations and fix suggestions.

## 🚀 Quick Start

```bash
# Install from PyPI
pip install guardrails-security

# Or install from source
pip install git+https://github.com/guardrails/guardrails-security.git

# Scan your code
guardrails scan .

# Initialize in your project
guardrails init
```

## 📋 Features

- ✅ **AI-Powered Analysis** - Uses Gemini AI for intelligent vulnerability detection
- ✅ **Multi-Language Support** - Python, JavaScript, TypeScript, Java, Go, PHP, Ruby, C#
- ✅ **Detailed Fix Suggestions** - Get specific code fixes for each vulnerability
- ✅ **CI/CD Integration** - Easy integration with GitHub Actions, GitLab CI, etc.
- ✅ **Git Hooks** - Automatic scanning before commits
- ✅ **Multiple Output Formats** - Text, JSON, table formats
- ✅ **Configurable** - Customize scan rules and ignore patterns

## 🔧 Installation

### From PyPI (Recommended)
```bash
pip install guardrails-security
```

### From Source
```bash
git clone https://github.com/guardrails/guardrails-security.git
cd guardrails-security
pip install -e .
```

### Development Installation
```bash
git clone https://github.com/guardrails/guardrails-security.git
cd guardrails-security
pip install -e ".[dev]"
```

## 📖 Usage

### Basic Scanning

```bash
# Scan current directory
guardrails scan .

# Scan specific file
guardrails scan app.py

# Scan with JSON output
guardrails scan . --format json

# Save report to file
guardrails scan . --output security-report.json
```

### CI/CD Integration

```bash
# Fail build on critical issues
guardrails scan . --fail-on-critical

# Generate JSON report for CI
guardrails scan . --format json --output guardrails-report.json
```

### Git Hooks

```bash
# Install pre-commit hook
guardrails install-hook

# Install hook that blocks commits on critical issues
guardrails install-hook --fail-on-critical
```

### Project Initialization

```bash
# Initialize GuardRails in your project
guardrails init
```

This creates:
- `guardrails.config.json` - Configuration file
- `.guardrailsignore` - Ignore patterns
- Updates `requirements.txt` if it exists

## ⚙️ Configuration

Create a `guardrails.config.json` file:

```json
{
  "version": "1.0.0",
  "scan": {
    "extensions": [".py", ".js", ".ts", ".jsx", ".tsx", ".java", ".go"],
    "ignore": ["node_modules/**", ".git/**", "dist/**", "build/**"],
    "failOnCritical": true
  },
  "ci": {
    "enabled": true,
    "output": "guardrails-report.json"
  }
}
```

## 🔗 CI/CD Integration

### GitHub Actions

```yaml
name: Security Scan
on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.9'
      - name: Install GuardRails
        run: pip install guardrails-security
      - name: Run Security Scan
        run: guardrails scan . --fail-on-critical
```

### GitLab CI

```yaml
security_scan:
  stage: test
  image: python:3.9
  script:
    - pip install guardrails-security
    - guardrails scan . --format json --output guardrails-report.json
  artifacts:
    reports:
      junit: guardrails-report.json
```

### Makefile Integration

```makefile
.PHONY: security-scan
security-scan:
	guardrails scan . --fail-on-critical

.PHONY: security-report
security-report:
	guardrails scan . --format json --output security-report.json
```

## 🎯 Supported Languages

- **Python** - `.py`
- **JavaScript/TypeScript** - `.js`, `.ts`, `.jsx`, `.tsx`
- **Java** - `.java`
- **Go** - `.go`
- **PHP** - `.php`
- **Ruby** - `.rb`
- **C#** - `.cs`

## 🔍 Vulnerability Types

GuardRails detects:

- **SQL Injection** - Database query vulnerabilities
- **XSS (Cross-Site Scripting)** - Web application vulnerabilities
- **Hardcoded Credentials** - Exposed passwords and API keys
- **Insecure Dependencies** - Vulnerable third-party packages
- **Authentication Issues** - Weak authentication mechanisms
- **Authorization Flaws** - Access control problems
- **Data Exposure** - Sensitive data leaks
- **Cryptographic Issues** - Weak encryption and hashing

## 📊 Output Formats

### Text Format (Default)
```
🛡️  GuardRails Security Report
═══════════════════════════════════════

📊 Security Score: 75/100
📁 Files Scanned: 15
🚨 Total Issues: 3

📋 Issues by Severity:
   🔴 Critical: 1
   🟡 High: 1
   🔵 Medium: 1
   🟢 Low: 0

🔍 Detailed Findings:

1. SQL INJECTION
   📁 File: src/database.py:25
   ⚠️  Potential SQL injection detected
   💡 Fix: Use parameterized queries to prevent SQL injection...
```

### JSON Format
```json
{
  "securityScore": 75,
  "summary": {
    "totalFiles": 15,
    "vulnerabilities": 3,
    "critical": 1,
    "high": 1,
    "medium": 1,
    "low": 0
  },
  "findings": [
    {
      "id": "sql-injection-123",
      "type": "SQL_INJECTION",
      "severity": "CRITICAL",
      "file": "src/database.py",
      "line": 25,
      "message": "Potential SQL injection detected",
      "fix": "Use parameterized queries...",
      "analysis": "Detailed AI analysis..."
    }
  ]
}
```

## 🛠️ API Usage

```python
from guardrails import GuardRailsScanner

# Initialize scanner
scanner = GuardRailsScanner(
    api_key="your-api-key",  # Optional for local server
    base_url="https://api.guardrails.dev"  # Or local server
)

# Scan directory
results = scanner.scan("./src")

# Check for critical issues
if scanner.has_critical_issues(results):
    print("Critical security issues found!")
    exit(1)

# Get formatted report
report = scanner.format_report(results, "text")
print(report)

# Check server status
status = scanner.check_server_status()
print(f"Server status: {status['status']}")
```

## 🔧 Command Line Options

```bash
guardrails scan <target> [options]

Options:
  -f, --format <format>     Output format (text, json, table)
  -o, --output <file>       Output file path
  --fail-on-critical        Exit with error code if critical issues found
  --ignore <patterns>       Ignore patterns (comma-separated)
  --extensions <exts>       File extensions to scan (comma-separated)
  --api-key <key>           GuardRails API key
  --server <url>            GuardRails server URL
  --timeout <seconds>       Request timeout
  -h, --help                Display help
  -V, --version             Display version
```

## 🌐 Server Setup

GuardRails requires a backend server for AI analysis:

```bash
# Clone the repository
git clone https://github.com/guardrails/guardrails.git
cd guardrails

# Install dependencies
pip install -r requirements.txt

# Set up environment
cp env.example .env
# Edit .env with your Gemini API key

# Start the server
python -m guardrails.server
```

## 📈 Business Model

GuardRails offers multiple pricing tiers:

### 🆓 Free Tier
- Individual developers
- Public repositories
- 100 scans/month
- Basic vulnerability detection

### 💼 Team ($49/month)
- Up to 5 developers
- Private repositories
- 1,000 scans/month
- AI-powered fix suggestions
- CI/CD integration

### 🏢 Enterprise ($299/month)
- Unlimited developers
- Unlimited scans
- Advanced reporting
- Priority support
- Custom rules

### 🏛️ Enterprise+ ($999/month)
- On-premise deployment
- SLA guarantee
- Dedicated support
- Custom integrations

## 🤝 Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md).

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request

## 📄 License

MIT License - see [LICENSE](LICENSE) file.

## 🔗 Links

- **Website**: https://guardrails.dev
- **Documentation**: https://docs.guardrails.dev
- **GitHub**: https://github.com/guardrails/guardrails-security
- **PyPI**: https://pypi.org/project/guardrails-security/
- **Support**: support@guardrails.dev

## 🆘 Support

- **Documentation**: https://docs.guardrails.dev
- **Issues**: https://github.com/guardrails/guardrails-security/issues
- **Email**: support@guardrails.dev
- **Discord**: https://discord.gg/guardrails

---

**Made with ❤️ by the GuardRails team**

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/guardrails/guardrails-security",
    "name": "guardrails-security",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "security, scanner, vulnerability, ai, gemini, devsecops, code-analysis",
    "author": "GuardRails Team",
    "author_email": "team@guardrails.dev",
    "download_url": "https://files.pythonhosted.org/packages/bb/9c/4f1b4dc1d6d09522217bad95c1e728f53ecc4193ccbd3ca2d76668df25f0/guardrails_security-1.0.1.tar.gz",
    "platform": null,
    "description": "# \ud83d\udee1\ufe0f GuardRails Security Scanner (Python)\n\n**AI-powered security scanner for modern development workflows**\n\nGuardRails uses advanced AI (Gemini) to detect security vulnerabilities in your code, providing detailed explanations and fix suggestions.\n\n## \ud83d\ude80 Quick Start\n\n```bash\n# Install from PyPI\npip install guardrails-security\n\n# Or install from source\npip install git+https://github.com/guardrails/guardrails-security.git\n\n# Scan your code\nguardrails scan .\n\n# Initialize in your project\nguardrails init\n```\n\n## \ud83d\udccb Features\n\n- \u2705 **AI-Powered Analysis** - Uses Gemini AI for intelligent vulnerability detection\n- \u2705 **Multi-Language Support** - Python, JavaScript, TypeScript, Java, Go, PHP, Ruby, C#\n- \u2705 **Detailed Fix Suggestions** - Get specific code fixes for each vulnerability\n- \u2705 **CI/CD Integration** - Easy integration with GitHub Actions, GitLab CI, etc.\n- \u2705 **Git Hooks** - Automatic scanning before commits\n- \u2705 **Multiple Output Formats** - Text, JSON, table formats\n- \u2705 **Configurable** - Customize scan rules and ignore patterns\n\n## \ud83d\udd27 Installation\n\n### From PyPI (Recommended)\n```bash\npip install guardrails-security\n```\n\n### From Source\n```bash\ngit clone https://github.com/guardrails/guardrails-security.git\ncd guardrails-security\npip install -e .\n```\n\n### Development Installation\n```bash\ngit clone https://github.com/guardrails/guardrails-security.git\ncd guardrails-security\npip install -e \".[dev]\"\n```\n\n## \ud83d\udcd6 Usage\n\n### Basic Scanning\n\n```bash\n# Scan current directory\nguardrails scan .\n\n# Scan specific file\nguardrails scan app.py\n\n# Scan with JSON output\nguardrails scan . --format json\n\n# Save report to file\nguardrails scan . --output security-report.json\n```\n\n### CI/CD Integration\n\n```bash\n# Fail build on critical issues\nguardrails scan . --fail-on-critical\n\n# Generate JSON report for CI\nguardrails scan . --format json --output guardrails-report.json\n```\n\n### Git Hooks\n\n```bash\n# Install pre-commit hook\nguardrails install-hook\n\n# Install hook that blocks commits on critical issues\nguardrails install-hook --fail-on-critical\n```\n\n### Project Initialization\n\n```bash\n# Initialize GuardRails in your project\nguardrails init\n```\n\nThis creates:\n- `guardrails.config.json` - Configuration file\n- `.guardrailsignore` - Ignore patterns\n- Updates `requirements.txt` if it exists\n\n## \u2699\ufe0f Configuration\n\nCreate a `guardrails.config.json` file:\n\n```json\n{\n  \"version\": \"1.0.0\",\n  \"scan\": {\n    \"extensions\": [\".py\", \".js\", \".ts\", \".jsx\", \".tsx\", \".java\", \".go\"],\n    \"ignore\": [\"node_modules/**\", \".git/**\", \"dist/**\", \"build/**\"],\n    \"failOnCritical\": true\n  },\n  \"ci\": {\n    \"enabled\": true,\n    \"output\": \"guardrails-report.json\"\n  }\n}\n```\n\n## \ud83d\udd17 CI/CD Integration\n\n### GitHub Actions\n\n```yaml\nname: Security Scan\non: [push, pull_request]\n\njobs:\n  security:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - name: Setup Python\n        uses: actions/setup-python@v2\n        with:\n          python-version: '3.9'\n      - name: Install GuardRails\n        run: pip install guardrails-security\n      - name: Run Security Scan\n        run: guardrails scan . --fail-on-critical\n```\n\n### GitLab CI\n\n```yaml\nsecurity_scan:\n  stage: test\n  image: python:3.9\n  script:\n    - pip install guardrails-security\n    - guardrails scan . --format json --output guardrails-report.json\n  artifacts:\n    reports:\n      junit: guardrails-report.json\n```\n\n### Makefile Integration\n\n```makefile\n.PHONY: security-scan\nsecurity-scan:\n\tguardrails scan . --fail-on-critical\n\n.PHONY: security-report\nsecurity-report:\n\tguardrails scan . --format json --output security-report.json\n```\n\n## \ud83c\udfaf Supported Languages\n\n- **Python** - `.py`\n- **JavaScript/TypeScript** - `.js`, `.ts`, `.jsx`, `.tsx`\n- **Java** - `.java`\n- **Go** - `.go`\n- **PHP** - `.php`\n- **Ruby** - `.rb`\n- **C#** - `.cs`\n\n## \ud83d\udd0d Vulnerability Types\n\nGuardRails detects:\n\n- **SQL Injection** - Database query vulnerabilities\n- **XSS (Cross-Site Scripting)** - Web application vulnerabilities\n- **Hardcoded Credentials** - Exposed passwords and API keys\n- **Insecure Dependencies** - Vulnerable third-party packages\n- **Authentication Issues** - Weak authentication mechanisms\n- **Authorization Flaws** - Access control problems\n- **Data Exposure** - Sensitive data leaks\n- **Cryptographic Issues** - Weak encryption and hashing\n\n## \ud83d\udcca Output Formats\n\n### Text Format (Default)\n```\n\ud83d\udee1\ufe0f  GuardRails Security Report\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n\ud83d\udcca Security Score: 75/100\n\ud83d\udcc1 Files Scanned: 15\n\ud83d\udea8 Total Issues: 3\n\n\ud83d\udccb Issues by Severity:\n   \ud83d\udd34 Critical: 1\n   \ud83d\udfe1 High: 1\n   \ud83d\udd35 Medium: 1\n   \ud83d\udfe2 Low: 0\n\n\ud83d\udd0d Detailed Findings:\n\n1. SQL INJECTION\n   \ud83d\udcc1 File: src/database.py:25\n   \u26a0\ufe0f  Potential SQL injection detected\n   \ud83d\udca1 Fix: Use parameterized queries to prevent SQL injection...\n```\n\n### JSON Format\n```json\n{\n  \"securityScore\": 75,\n  \"summary\": {\n    \"totalFiles\": 15,\n    \"vulnerabilities\": 3,\n    \"critical\": 1,\n    \"high\": 1,\n    \"medium\": 1,\n    \"low\": 0\n  },\n  \"findings\": [\n    {\n      \"id\": \"sql-injection-123\",\n      \"type\": \"SQL_INJECTION\",\n      \"severity\": \"CRITICAL\",\n      \"file\": \"src/database.py\",\n      \"line\": 25,\n      \"message\": \"Potential SQL injection detected\",\n      \"fix\": \"Use parameterized queries...\",\n      \"analysis\": \"Detailed AI analysis...\"\n    }\n  ]\n}\n```\n\n## \ud83d\udee0\ufe0f API Usage\n\n```python\nfrom guardrails import GuardRailsScanner\n\n# Initialize scanner\nscanner = GuardRailsScanner(\n    api_key=\"your-api-key\",  # Optional for local server\n    base_url=\"https://api.guardrails.dev\"  # Or local server\n)\n\n# Scan directory\nresults = scanner.scan(\"./src\")\n\n# Check for critical issues\nif scanner.has_critical_issues(results):\n    print(\"Critical security issues found!\")\n    exit(1)\n\n# Get formatted report\nreport = scanner.format_report(results, \"text\")\nprint(report)\n\n# Check server status\nstatus = scanner.check_server_status()\nprint(f\"Server status: {status['status']}\")\n```\n\n## \ud83d\udd27 Command Line Options\n\n```bash\nguardrails scan <target> [options]\n\nOptions:\n  -f, --format <format>     Output format (text, json, table)\n  -o, --output <file>       Output file path\n  --fail-on-critical        Exit with error code if critical issues found\n  --ignore <patterns>       Ignore patterns (comma-separated)\n  --extensions <exts>       File extensions to scan (comma-separated)\n  --api-key <key>           GuardRails API key\n  --server <url>            GuardRails server URL\n  --timeout <seconds>       Request timeout\n  -h, --help                Display help\n  -V, --version             Display version\n```\n\n## \ud83c\udf10 Server Setup\n\nGuardRails requires a backend server for AI analysis:\n\n```bash\n# Clone the repository\ngit clone https://github.com/guardrails/guardrails.git\ncd guardrails\n\n# Install dependencies\npip install -r requirements.txt\n\n# Set up environment\ncp env.example .env\n# Edit .env with your Gemini API key\n\n# Start the server\npython -m guardrails.server\n```\n\n## \ud83d\udcc8 Business Model\n\nGuardRails offers multiple pricing tiers:\n\n### \ud83c\udd93 Free Tier\n- Individual developers\n- Public repositories\n- 100 scans/month\n- Basic vulnerability detection\n\n### \ud83d\udcbc Team ($49/month)\n- Up to 5 developers\n- Private repositories\n- 1,000 scans/month\n- AI-powered fix suggestions\n- CI/CD integration\n\n### \ud83c\udfe2 Enterprise ($299/month)\n- Unlimited developers\n- Unlimited scans\n- Advanced reporting\n- Priority support\n- Custom rules\n\n### \ud83c\udfdb\ufe0f Enterprise+ ($999/month)\n- On-premise deployment\n- SLA guarantee\n- Dedicated support\n- Custom integrations\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md).\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests\n5. Submit a pull request\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](LICENSE) file.\n\n## \ud83d\udd17 Links\n\n- **Website**: https://guardrails.dev\n- **Documentation**: https://docs.guardrails.dev\n- **GitHub**: https://github.com/guardrails/guardrails-security\n- **PyPI**: https://pypi.org/project/guardrails-security/\n- **Support**: support@guardrails.dev\n\n## \ud83c\udd98 Support\n\n- **Documentation**: https://docs.guardrails.dev\n- **Issues**: https://github.com/guardrails/guardrails-security/issues\n- **Email**: support@guardrails.dev\n- **Discord**: https://discord.gg/guardrails\n\n---\n\n**Made with \u2764\ufe0f by the GuardRails team**\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "AI-powered security scanner for modern development workflows",
    "version": "1.0.1",
    "project_urls": {
        "Bug Reports": "https://github.com/guardrails/guardrails-security/issues",
        "Documentation": "https://docs.guardrails.dev",
        "Homepage": "https://guardrails.dev",
        "Source": "https://github.com/guardrails/guardrails-security"
    },
    "split_keywords": [
        "security",
        " scanner",
        " vulnerability",
        " ai",
        " gemini",
        " devsecops",
        " code-analysis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "83a671754d9288269ae082c9232bd5c82c6d0d18317eac70494c4f2d6cf2977e",
                "md5": "dc0e4d4929510c12cf3bdcccdb0c37e0",
                "sha256": "a3ccb3f3e1bcbb6657c9e2b21ea69c0bfbc02a2205b7b4e1ee71c84e7b3e3593"
            },
            "downloads": -1,
            "filename": "guardrails_security-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dc0e4d4929510c12cf3bdcccdb0c37e0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 11846,
            "upload_time": "2025-10-26T00:58:01",
            "upload_time_iso_8601": "2025-10-26T00:58:01.538749Z",
            "url": "https://files.pythonhosted.org/packages/83/a6/71754d9288269ae082c9232bd5c82c6d0d18317eac70494c4f2d6cf2977e/guardrails_security-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bb9c4f1b4dc1d6d09522217bad95c1e728f53ecc4193ccbd3ca2d76668df25f0",
                "md5": "42fd0b845fce8672f1ece475e70dd7a2",
                "sha256": "3cb8fbbe93623caa46e8ac9ddb5b2af067593c29c43b95e507d6ffe42f0fc15f"
            },
            "downloads": -1,
            "filename": "guardrails_security-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "42fd0b845fce8672f1ece475e70dd7a2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13648,
            "upload_time": "2025-10-26T00:58:03",
            "upload_time_iso_8601": "2025-10-26T00:58:03.379300Z",
            "url": "https://files.pythonhosted.org/packages/bb/9c/4f1b4dc1d6d09522217bad95c1e728f53ecc4193ccbd3ca2d76668df25f0/guardrails_security-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-26 00:58:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "guardrails",
    "github_project": "guardrails-security",
    "github_not_found": true,
    "lcname": "guardrails-security"
}
        
Elapsed time: 1.41443s