chore(cli): add banner about Prowler Cloud (#11528)

This commit is contained in:
Pedro Martín
2026-06-10 18:19:50 +02:00
committed by GitHub
parent ec0bb53839
commit 3c8fde25ee
2 changed files with 44 additions and 6 deletions
+6 -2
View File
@@ -19,7 +19,7 @@ from prowler.config.config import (
orange_color,
sarif_file_suffix,
)
from prowler.lib.banner import print_banner
from prowler.lib.banner import print_banner, print_prowler_cloud_banner
from prowler.lib.check.check import (
exclude_checks_to_run,
exclude_services_to_run,
@@ -202,7 +202,7 @@ def prowler():
if not args.no_banner:
legend = args.verbose or getattr(args, "fixer", None)
print_banner(legend)
print_banner(legend, provider)
# We treat the compliance framework as another output format
if compliance_framework:
@@ -1476,6 +1476,10 @@ def prowler():
f"\nDetailed compliance results are in {Fore.YELLOW}{output_options.output_directory}/compliance/{Style.RESET_ALL}\n"
)
# Promote Prowler Cloud as the last thing the user sees after the results
if not args.no_banner and not args.only_logs:
print_prowler_cloud_banner(provider)
# If custom checks were passed, remove the modules
if checks_folder:
remove_custom_checks_module(checks_folder, provider)
+38 -4
View File
@@ -3,12 +3,13 @@ from colorama import Fore, Style
from prowler.config.config import banner_color, orange_color, prowler_version, timestamp
def print_banner(legend: bool = False):
def print_banner(legend: bool = False, provider: str = None):
"""
Prints the banner with optional legend for color codes.
Parameters:
- legend (bool): Flag to indicate whether to print the color legend or not. Default is False.
- provider (str): The provider being scanned, used to tailor the Prowler Cloud banner.
Returns:
- None
@@ -20,13 +21,12 @@ def print_banner(legend: bool = False):
| .__/|_| \___/ \_/\_/ |_|\___|_|v{prowler_version}
|_|{Fore.BLUE} Get the most at https://cloud.prowler.com {Style.RESET_ALL}
{Fore.GREEN}New! Send findings from Prowler CLI to Prowler Cloud{Style.RESET_ALL}
{Fore.GREEN}More details here: goto.prowler.com/import-findings{Style.RESET_ALL}
{Fore.YELLOW}Date: {timestamp.strftime("%Y-%m-%d %H:%M:%S")}{Style.RESET_ALL}
"""
print(banner)
print_prowler_cloud_banner(provider)
if legend:
print(
f"""
@@ -37,3 +37,37 @@ def print_banner(legend: bool = False):
- {Fore.RED}FAIL (Fix required){Style.RESET_ALL}
"""
)
def print_prowler_cloud_banner(provider: str = None):
"""
Prints a promotional banner highlighting what Prowler Cloud adds on top of
the open-source CLI.
Shown at the start and end of a scan to let users know about the managed
platform capabilities they are missing (attack paths, AI, organizations,
continuous scanning, integrations and live compliance dashboards).
Parameters:
- provider (str): The provider that was scanned, used to tailor the message.
Returns:
- None
"""
check = f"{Fore.GREEN}✓{Style.RESET_ALL}"
bar = f"{banner_color}│{Style.RESET_ALL}"
print(
f"""
{bar} {Style.BRIGHT}You're getting a snapshot. Prowler Cloud gives you the full picture.{Style.RESET_ALL}
{bar}
{bar} {check} {Style.BRIGHT}Attack Path Visualization{Style.RESET_ALL} - see how attackers chain risks to reach your crown jewels
{bar} {check} {Style.BRIGHT}Lighthouse AI + MCP{Style.RESET_ALL} - autonomous triage, prioritization and remediation
{bar} {check} {Style.BRIGHT}Organizations{Style.RESET_ALL} - all your AWS accounts under one organization
{bar} {check} {Style.BRIGHT}Continuous scanning{Style.RESET_ALL} - scheduled scans with history, trends and alerts
{bar} {check} {Style.BRIGHT}Integrations{Style.RESET_ALL} - Jira, Slack, AWS Security Hub, Amazon S3, SSO and RBAC
{bar} {check} {Style.BRIGHT}Reports{Style.RESET_ALL} - download ready-to-share PDF reports
{bar} {check} {Style.BRIGHT}Live compliance{Style.RESET_ALL} - dashboards for 50+ frameworks, always up to date
{bar}
{bar} {Fore.BLUE}Start free at cloud.prowler.com{Style.RESET_ALL}
"""
)