StylusFrost
be49fd8c4e
Merge branch 'master' into PROWLER-1391-provider-contract-dynamic-discovery
2026-04-28 14:48:21 +02:00
StylusFrost
15d8f1642e
test(sdk): unit tests for tool_wrapper leaf module
2026-04-28 14:45:07 +02:00
baggers27
13d983450c
fix(azure): broken link for minimum TLS version ( #10916 )
2026-04-28 14:23:00 +02:00
Daniel Barranquero
8b368e1343
feat(aws): add bedrock_guardrails_configured security check ( #10844 )
2026-04-28 14:16:19 +02:00
StylusFrost
79f12f3617
refactor(sdk): extract is_tool_wrapper_provider to leaf module to break import cycle
2026-04-28 13:57:27 +02:00
StylusFrost
6715361246
fix(sdk): restore dynamic external providers help in CLI epilog
2026-04-28 12:47:50 +02:00
StylusFrost
45e946cd87
Merge branch 'master' into PROWLER-1391-provider-contract-dynamic-discovery
2026-04-28 12:42:18 +02:00
Prowler Bot
c76a9baa20
chore(ui): Bump version to v5.26.0 ( #10912 )
...
Co-authored-by: prowler-bot <179230569+prowler-bot@users.noreply.github.com >
2026-04-28 12:35:54 +02:00
Prowler Bot
30e2813e02
chore(docs): Bump version to v5.25.0 ( #10909 )
...
Co-authored-by: prowler-bot <179230569+prowler-bot@users.noreply.github.com >
2026-04-28 12:35:32 +02:00
Prowler Bot
0f874c6ffd
chore(sdk): Bump version to v5.26.0 ( #10910 )
...
Co-authored-by: prowler-bot <179230569+prowler-bot@users.noreply.github.com >
2026-04-28 12:35:21 +02:00
Prowler Bot
2242689295
chore(api): Bump version to v1.27.0 ( #10913 )
...
Co-authored-by: prowler-bot <179230569+prowler-bot@users.noreply.github.com >
2026-04-28 12:34:43 +02:00
StylusFrost
7836905b82
fix(sdk): consult Provider.is_tool_wrapper_provider in check discovery
2026-04-28 12:20:42 +02:00
StylusFrost
52f6653ccf
fix(sdk): use equality not substring in provider dispatch chain
2026-04-28 11:54:23 +02:00
StylusFrost
a5de6608ae
fix(sdk): restore llm in parser usage line to match epilog
2026-04-28 10:50:43 +02:00
Hugo Pereira Brito
e252058af4
fix(m365): exclude guest users from entra_users_mfa_capable ( #10785 )
2026-04-28 08:58:16 +01:00
Pepe Fagoaga
37e6c9761f
chore: changelog for v5.25.0 ( #10900 )
2026-04-28 08:47:20 +02:00
Pepe Fagoaga
ebe666bec7
chore(boto3): configure user agent extra via env ( #10904 )
2026-04-28 08:01:11 +02:00
Pepe Fagoaga
7df2703db1
fix(aws): get organization's metadata with assumed role ( #10894 )
2026-04-27 22:15:11 +01:00
Kay Agahd
67234210ba
feat(aws): add check secretsmanager_has_restrictive_resource_policy ( #6985 )
2026-04-27 21:49:34 +01:00
Josema Camacho
15ca69942d
fix(api): align get_compliance_frameworks with Compliance.get_bulk ( #10903 )
2026-04-27 18:10:08 +02:00
Adrián Peña
df76efc197
fix(api): skip null service/region in scan summary aggregation ( #10902 )
2026-04-27 17:46:46 +02:00
Hugo Pereira Brito
3441ad7f70
fix(sdk): align googleworkspace finding resources ( #10901 )
2026-04-27 15:17:29 +01:00
Hugo Pereira Brito
059b71d34b
feat(ui): add View Resource action to findings drawer ( #10847 )
2026-04-27 13:19:18 +01:00
lydiavilchez
013809919c
feat(googleworkspace): add Gmail service with first batch of checks ( #10683 )
2026-04-27 13:49:07 +02:00
Daniel Barranquero
368d9c1519
fix(admincenter): restrict admincenter group visibility check to Unified groups ( #10899 )
2026-04-27 13:23:03 +02:00
Adrián Peña
fb6da427f8
fix(api): prevent /tmp saturation from compliance report generation ( #10874 )
2026-04-27 11:05:34 +02:00
Adrián Peña
65fd3335d3
fix(api): reaggregate resource inventory and attack surface after muting findings ( #10843 )
2026-04-27 11:03:28 +02:00
César Arroba
d6288be472
chore(ci): align sdk-bump-version PR titles with other bump workflows ( #10897 )
2026-04-27 10:20:56 +02:00
César Arroba
0cddb71d1c
fix(ci): simplify docs-bump-version to a single master-only PR ( #10896 )
2026-04-27 10:20:47 +02:00
Andoni Alonso
af2930130c
fix(check): break circular import between config and check.utils ( #10895 )
2026-04-27 10:11:50 +02:00
Andoni Alonso
b668770480
feat(github): add zizmor GitHub Actions scanning as a service of the GitHub provider ( #10607 )
2026-04-27 08:55:07 +02:00
Andoni Alonso
f31c5717e9
chore(devex): add worktrunk worktree bootstrap config ( #10867 )
2026-04-27 08:45:04 +02:00
StylusFrost
1cdce02397
fix(sdk): use startswith("-") to detect CLI flags so external provider names with hyphens are not misparsed
2026-04-24 20:59:07 +02:00
StylusFrost
a31fe9b618
Merge branch 'master' into PROWLER-1391-provider-contract-dynamic-discovery
...
Conflict in prowler/config/config.py resolved by combining both branches:
- HEAD: external compliance discovery via entry points (PROWLER-1391)
- master: multi-provider framework JSONs scanned at top-level compliance/ (#10300 )
Order: built-in per-provider -> built-in multi-provider -> external entry points.
Built-ins first so they win on name collisions against external registrations.
Supporting external plug-ins to register multi-provider frameworks is tracked
in PROWLER-1444.
2026-04-24 20:54:22 +02:00
StylusFrost
907166d88a
fix(sdk): discriminate builtin vs external providers via find_spec for clearer import errors
2026-04-24 20:33:38 +02:00
StylusFrost
0883baad78
fix(sdk): external providers with --service and external checks for new services
2026-04-24 20:18:20 +02:00
StylusFrost
cf70d1f9f8
fix(sdk): honor from_cli_args return value in init_global_provider fallback
2026-04-24 18:51:57 +02:00
StylusFrost
60e7657081
feat(sdk): wire is_external_tool_provider property to execution and metadata validators
2026-04-24 18:23:42 +02:00
StylusFrost
e8487d0686
fix(sdk): unwrap namespaced config for all built-in and external providers
...
load_and_validate_config_file only detected the namespaced format for 5
hardcoded providers (aws, gcp, azure, kubernetes, m365). For every other
built-in (github, nhn, vercel, cloudflare, iac, llm, image, mongodbatlas,
oraclecloud, openstack, alibabacloud, googleworkspace) and for any
external plug-in, the full YAML was returned wrapped instead of the
provider's own block.
Replace the hardcoded list with a dynamic check: if the file has a
top-level key matching the provider and its value is a dict, unwrap it.
Keep the legacy flat format for AWS only (historical, pre-multicloud)
and identify it by the absence of nested-dict top-level values, which
prevents cross-provider config leakage when a namespaced file has no
section for the requested provider.
2026-04-24 18:01:47 +02:00
Alejandro Bailo
4788dcade2
fix(ui): polish shared table pagination and provider spacing ( #10891 )
2026-04-24 15:40:40 +02:00
Alejandro Bailo
22a6cc9e73
fix(ui): align resources filters and resource drawer behavior ( #10861 )
2026-04-24 15:03:47 +02:00
Pablo Fernandez Guerra (PFE)
06bb382f8e
chore(ui): add knip for dead code detection ( #10654 )
...
Co-authored-by: Pablo F.G <pablo.fernandez@prowler.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-24 14:45:59 +02:00
Pedro Martín
d4ece2b43e
feat(sdk): add multi-provider compliance framework JSONs ( #10300 )
...
Co-authored-by: Alan Buscaglia <gentlemanprogramming@gmail.com >
2026-04-24 13:27:31 +02:00
César Arroba
b97d68fbd5
fix(ci): also gate cache-dependency-path on enable-cache in setup-python-poetry ( #10885 )
2026-04-24 12:38:13 +02:00
César Arroba
ca79300440
fix(ci): poetry cache post-step failure on release workflows ( #10881 )
2026-04-24 11:57:30 +02:00
Pepe Fagoaga
7a0e107617
chore(api): changelog for v5.24.4 ( #10882 )
2026-04-24 11:57:02 +02:00
César Arroba
6d3fcec5da
ci: bump docs version against master on patch releases ( #10879 )
2026-04-24 11:49:14 +02:00
César Arroba
ce1cf51d37
fix(ci): allow github.com egress in backport workflow ( #10876 )
2026-04-24 10:00:55 +02:00
Pablo Fernandez Guerra (PFE)
3554859a5c
fix(ui): load every Attack Paths scan before displaying the selector ( #10864 )
...
Co-authored-by: Pablo F.G <pablo.fernandez@prowler.com >
Co-authored-by: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com >
Co-authored-by: Pepe Fagoaga <pepe@prowler.com >
2026-04-24 09:41:47 +02:00
Daniel Barranquero
80d62f355f
fix(alibabacloud): fix CS service SDK compatibility and harden Alibaba provider ( #10871 )
2026-04-24 09:26:09 +02:00