prowler-provider | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / prowler-provider

prowler-provider

maintained by prowler-cloud

star 12.9k account_tree 2k verified_user MIT License
bolt View GitHub

name: prowler-provider description: > Creates new Prowler cloud providers or adds services to existing providers. Trigger: When extending Prowler SDK provider architecture (adding a new provider or a new service to an existing provider). license: Apache-2.0 metadata: author: prowler-cloud version: "1.0" scope: [root, sdk] auto_invoke: - "Adding new providers" - "Adding services to existing providers" allowed-tools: Read, Edit, Write, Glob, Grep, Bash, WebFetch, WebSearch, Task

When to Use

Use this skill when:

  • Adding a new cloud provider to Prowler
  • Adding a new service to an existing provider
  • Understanding the provider architecture pattern

Provider Architecture Pattern

Every provider MUST follow this structure:

prowler/providers/{provider}/
├── __init__.py
├── {provider}_provider.py      # Main provider class
├── models.py                   # Provider-specific models
├── config.py                   # Provider configuration
├── exceptions/                 # Provider-specific exceptions
├── lib/
│   ├── service/               # Base service class
│   ├── arguments/             # CLI arguments parser
│   └── mutelist/              # Mutelist functionality
└── services/
    └── {service}/
        ├── {service}_service.py   # Resource fetcher
        ├── {service}_client.py    # Python singleton instance
        └── {check_name}/          # Individual checks
            ├── {check_name}.py
            └── {check_name}.metadata.json

Provider Class Template

from prowler.providers.common.provider import Provider

class {Provider}Provider(Provider):
    """Provider class for {Provider} cloud platform."""

    def __init__(self, arguments):
        super().__init__(arguments)
        self.session = self._setup_session(arguments)
        self.regions = self._get_regions()

    def _setup_session(self, arguments):
        """Provider-specific authentication."""
        # Implement credential handling
        pass

    def _get_regions(self):
        """Get available regions for provider."""
        # Return list of regions
        pass

Service Class Template

from prowler.providers.{provider}.lib.service.service import {Provider}Service

class {Service}({Provider}Service):
    """Service class for {service} resources."""

    def __init__(self, provider):
        super().__init__(provider)
        self.{resources} = []
        self._fetch_{resources}()

    def _fetch_{resources}(self):
        """Fetch {resource} data from API."""
        try:
            response = self.client.list_{resources}()
            for item in response:
                self.{resources}.append(
                    {Resource}(
                        id=item["id"],
                        name=item["name"],
                        region=item.get("region"),
                    )
                )
        except Exception as e:
            logger.error(f"Error fetching {resources}: {e}")

Service Client Template

from prowler.providers.{provider}.services.{service}.{service}_service import {Service}

{service}_client = {Service}

Supported Providers

Current providers:

  • AWS (Amazon Web Services)
  • Azure (Microsoft Azure)
  • GCP (Google Cloud Platform)
  • Kubernetes
  • GitHub
  • M365 (Microsoft 365)
  • OracleCloud (Oracle Cloud Infrastructure)
  • AlibabaCloud
  • MongoDB Atlas
  • NHN (NHN Cloud)
  • LLM (Language Model providers)
  • IaC (Infrastructure as Code)

Commands

# Run provider
poetry run python prowler-cli.py {provider}

# List services for provider
poetry run python prowler-cli.py {provider} --list-services

# List checks for provider
poetry run python prowler-cli.py {provider} --list-checks

# Run specific service
poetry run python prowler-cli.py {provider} --services {service}

# Debug mode
poetry run python prowler-cli.py {provider} --log-level DEBUG

Resources

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 12.9k
GitHub Forks 2k
Created Jan 2026
Last Updated 4个月前
tools tools cloud

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.