mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-05 03:12:14 +00:00
Replace pre-commit with prek, a faster Rust-based alternative that is 7x faster for installation and 6x faster for execution while being fully compatible with .pre-commit-config.yaml. Changes: - Remove pre-commit from pyproject.toml dev dependencies - Update scripts/setup-git-hooks.sh to use prek - Update developer documentation (introduction.mdx) - Update security documentation (software-security.mdx) - Update AGENTS.md files with new commands - Regenerate poetry.lock prek is installed as a standalone tool via: - pipx install prek (recommended) - brew install prek - uv tool install prek Benchmarks on Prowler codebase: - Cold install: 25.18s → 3.42s (7.37x faster) - Warm execution: 87.53s → 14.80s (5.92x faster) - Cache size: 170MB → 154MB (9.4% smaller)
158 lines
4.8 KiB
TOML
158 lines
4.8 KiB
TOML
[build-system]
|
|
build-backend = "poetry.core.masonry.api"
|
|
requires = ["poetry-core>=2.0"]
|
|
|
|
# https://peps.python.org/pep-0621/
|
|
[project]
|
|
authors = [{name = "Toni de la Fuente", email = "toni@blyx.com"}]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.9",
|
|
"License :: OSI Approved :: Apache Software License"
|
|
]
|
|
dependencies = [
|
|
"awsipranges==0.3.3",
|
|
"alive-progress==3.3.0",
|
|
"azure-identity==1.21.0",
|
|
"azure-keyvault-keys==4.10.0",
|
|
"azure-mgmt-applicationinsights==4.1.0",
|
|
"azure-mgmt-authorization==4.0.0",
|
|
"azure-mgmt-compute==34.0.0",
|
|
"azure-mgmt-containerregistry==12.0.0",
|
|
"azure-mgmt-containerservice==34.1.0",
|
|
"azure-mgmt-cosmosdb==9.7.0",
|
|
"azure-mgmt-databricks==2.0.0",
|
|
"azure-mgmt-keyvault==10.3.1",
|
|
"azure-mgmt-monitor==6.0.2",
|
|
"azure-mgmt-network==28.1.0",
|
|
"azure-mgmt-rdbms==10.1.0",
|
|
"azure-mgmt-postgresqlflexibleservers==1.1.0",
|
|
"azure-mgmt-recoveryservices==3.1.0",
|
|
"azure-mgmt-recoveryservicesbackup==9.2.0",
|
|
"azure-mgmt-resource==23.3.0",
|
|
"azure-mgmt-search==9.1.0",
|
|
"azure-mgmt-security==7.0.0",
|
|
"azure-mgmt-sql==3.0.1",
|
|
"azure-mgmt-storage==22.1.1",
|
|
"azure-mgmt-subscription==3.1.1",
|
|
"azure-mgmt-web==8.0.0",
|
|
"azure-mgmt-apimanagement==5.0.0",
|
|
"azure-mgmt-loganalytics==12.0.0",
|
|
"azure-monitor-query==2.0.0",
|
|
"azure-storage-blob==12.24.1",
|
|
"cloudflare==4.3.1",
|
|
"boto3==1.40.61",
|
|
"botocore==1.40.61",
|
|
"colorama==0.4.6",
|
|
"cryptography==44.0.1",
|
|
"dash==3.1.1",
|
|
"dash-bootstrap-components==2.0.3",
|
|
"detect-secrets==1.5.0",
|
|
"dulwich==0.23.0",
|
|
"google-api-python-client==2.163.0",
|
|
"google-auth-httplib2>=0.1,<0.3",
|
|
"jsonschema==4.23.0",
|
|
"kubernetes==32.0.1",
|
|
"markdown==3.9.0",
|
|
"microsoft-kiota-abstractions==1.9.2",
|
|
"msgraph-sdk==1.23.0",
|
|
"numpy==2.0.2",
|
|
"pandas==2.2.3",
|
|
"py-ocsf-models==0.5.0",
|
|
"pydantic (>=2.0,<3.0)",
|
|
"pygithub==2.5.0",
|
|
"python-dateutil (>=2.9.0.post0,<3.0.0)",
|
|
"pytz==2025.1",
|
|
"schema==0.7.5",
|
|
"shodan==1.31.0",
|
|
"slack-sdk==3.39.0",
|
|
"tabulate==0.9.0",
|
|
"tzlocal==5.3.1",
|
|
"py-iam-expand==0.1.0",
|
|
"h2==4.3.0",
|
|
"oci==2.160.3",
|
|
"alibabacloud_credentials==1.0.3",
|
|
"alibabacloud_ram20150501==1.2.0",
|
|
"alibabacloud_tea_openapi==0.4.1",
|
|
"alibabacloud_sts20150401==1.1.6",
|
|
"alibabacloud_vpc20160428==6.13.0",
|
|
"alibabacloud_ecs20140526==7.2.5",
|
|
"alibabacloud_sas20181203==6.1.0",
|
|
"alibabacloud_oss20190517==1.0.6",
|
|
"alibabacloud-gateway-oss-util==0.0.3",
|
|
"alibabacloud_actiontrail20200706==2.4.1",
|
|
"alibabacloud_cs20151215==6.1.0",
|
|
"alibabacloud-rds20140815==12.0.0",
|
|
"alibabacloud-sls20201230==5.9.0"
|
|
]
|
|
description = "Prowler is an Open Source security tool to perform AWS, GCP and Azure security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains hundreds of controls covering CIS, NIST 800, NIST CSF, CISA, RBI, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, GXP, AWS Well-Architected Framework Security Pillar, AWS Foundational Technical Review (FTR), ENS (Spanish National Security Scheme) and your custom security frameworks."
|
|
license = "Apache-2.0"
|
|
maintainers = [{name = "Prowler Engineering", email = "engineering@prowler.com"}]
|
|
name = "prowler"
|
|
readme = "README.md"
|
|
requires-python = ">3.9.1,<3.13"
|
|
version = "5.18.0"
|
|
|
|
[project.scripts]
|
|
prowler = "prowler.__main__:prowler"
|
|
|
|
[project.urls]
|
|
"Changelog" = "https://github.com/prowler-cloud/prowler/releases"
|
|
"Documentation" = "https://docs.prowler.com"
|
|
"Homepage" = "https://github.com/prowler-cloud/prowler"
|
|
"Issue tracker" = "https://github.com/prowler-cloud/prowler/issues"
|
|
|
|
[tool.poetry]
|
|
packages = [
|
|
{include = "prowler"},
|
|
{include = "dashboard"}
|
|
]
|
|
requires-poetry = ">=2.0"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
bandit = "1.8.3"
|
|
black = "25.1.0"
|
|
coverage = "7.6.12"
|
|
docker = "7.1.0"
|
|
flake8 = "7.1.2"
|
|
freezegun = "1.5.1"
|
|
marshmallow = ">=3.15.0,<4.0.0"
|
|
mock = "5.2.0"
|
|
moto = {extras = ["all"], version = "5.1.11"}
|
|
openapi-schema-validator = "0.6.3"
|
|
openapi-spec-validator = "0.7.1"
|
|
# Note: prek (pre-commit alternative) is installed as a standalone tool via pipx/brew
|
|
# See: https://github.com/j178/prek
|
|
pylint = "3.3.4"
|
|
pytest = "8.3.5"
|
|
pytest-cov = "6.0.0"
|
|
pytest-env = "1.1.5"
|
|
pytest-randomly = "3.16.0"
|
|
pytest-xdist = "3.6.1"
|
|
safety = "3.7.0"
|
|
filelock = [
|
|
{version = "3.20.3", python = ">=3.10"},
|
|
{version = "3.19.1", python = "<3.10"}
|
|
]
|
|
vulture = "2.14"
|
|
|
|
[tool.poetry-version-plugin]
|
|
source = "init"
|
|
|
|
[tool.poetry_bumpversion.file."prowler/config/config.py"]
|
|
replace = 'prowler_version = "{new_version}"'
|
|
search = 'prowler_version = "{current_version}"'
|
|
|
|
[tool.pytest.ini_options]
|
|
pythonpath = [
|
|
"."
|
|
]
|
|
|
|
[tool.pytest_env]
|
|
# For Moto and Boto3 while testing AWS
|
|
AWS_ACCESS_KEY_ID = 'testing'
|
|
AWS_DEFAULT_REGION = 'us-east-1'
|
|
AWS_SECRET_ACCESS_KEY = 'testing'
|
|
AWS_SECURITY_TOKEN = 'testing'
|
|
AWS_SESSION_TOKEN = 'testing'
|