iam-policy-validator 1.0.1__py3-none-any.whl → 1.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iam-policy-validator
3
- Version: 1.0.1
3
+ Version: 1.0.3
4
4
  Summary: Validate AWS IAM policies for correctness and security using AWS Service Reference API
5
5
  Project-URL: Homepage, https://github.com/boogy/iam-policy-validator
6
6
  Project-URL: Documentation, https://github.com/boogy/iam-policy-validator/tree/main/docs
@@ -1,6 +1,6 @@
1
1
  iam_validator/__init__.py,sha256=APnMR3Fu4fHhxfsHBvUM2dJIwazgvLKQbfOsSgFPidg,693
2
2
  iam_validator/__main__.py,sha256=to_nz3n_IerJpVVZZ6WSFlFR5s_06J0csfPOTfQZG8g,197
3
- iam_validator/__version__.py,sha256=kL4t1_vn9qvzzYCbX87QQ1CtmJ4TgqHJCHyLYKjVNak,206
3
+ iam_validator/__version__.py,sha256=xkumSQPsulcb1i1qcSYPxf_hyoSt2pwqrjoqEFoAglc,206
4
4
  iam_validator/checks/__init__.py,sha256=q-_rIYGZJMjsiHK-R_3CbSUCBVGN5e137LPNDnMRZmw,841
5
5
  iam_validator/checks/action_condition_enforcement.py,sha256=3V8Wnz6BYnataKzuFMx8fHukVjzpIZaVfde9-RqZjPc,25357
6
6
  iam_validator/checks/action_validation.py,sha256=KbUw1SV-2nN-HtLlj3zrE6sdd0z8iAF0ubqz35Vwb7c,6921
@@ -21,7 +21,7 @@ iam_validator/core/aws_fetcher.py,sha256=fUCIMItIWmrbgsoVCz_9Oe5k3SjuXBlNBVwQ60I
21
21
  iam_validator/core/aws_global_conditions.py,sha256=ADVcMEWhgvDZWdBmRUQN3HB7a9OycbTLecXFAy3LPbo,5837
22
22
  iam_validator/core/check_registry.py,sha256=wXg4Yw5LJ-rAVLiPUIJOtw8Y49Q1PY00Zbu37LzyjHY,15477
23
23
  iam_validator/core/cli.py,sha256=T1SzPTu9vzk29Mey3kMfGJkE4hXTNY6ZrOsj8udDv3o,3140
24
- iam_validator/core/config_loader.py,sha256=VHa7rdq7v7y3vCHY9sTfRPZR5cerRLmVioOrHHqfiAw,14292
24
+ iam_validator/core/config_loader.py,sha256=k4D5TT_D6B9N8BbIEg0nE3wUXu0naFLHOVVJsjYZzh4,14880
25
25
  iam_validator/core/models.py,sha256=SUEbxDUtkX1uvgMy6-LPzomyGu82PTpXdDXZ9RKqfTY,9655
26
26
  iam_validator/core/policy_checks.py,sha256=xK5CntsEKVDgN27uIdQ92jCL97t7eBqOk0SChWU9cgw,23872
27
27
  iam_validator/core/policy_loader.py,sha256=TR7SpzlRG3TwH4HBGEFUuhNOmxIR8Cud2SQ-AmHWBpM,14040
@@ -38,8 +38,8 @@ iam_validator/core/formatters/sarif.py,sha256=tqp8g7RmUh0HRk-kKDaucx4sa-5I9ikgkS
38
38
  iam_validator/integrations/__init__.py,sha256=7Hlor_X9j0NZaEjFuSvoXAAuSKQ-zgY19Rk-Dz3JpKo,616
39
39
  iam_validator/integrations/github_integration.py,sha256=bKs94vNT4PmcmUPUeuY2WJFhCYpUY2SWiBP1vj-andA,25673
40
40
  iam_validator/integrations/ms_teams.py,sha256=t2PlWuTDb6GGH-eDU1jnOKd8D1w4FCB68bahGA7MJcE,14475
41
- iam_policy_validator-1.0.1.dist-info/METADATA,sha256=nnRHfQYtcG_wUE4a0HONqSWYFaOAzzEgMcLsAUfK4M0,31445
42
- iam_policy_validator-1.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
43
- iam_policy_validator-1.0.1.dist-info/entry_points.txt,sha256=8HtWd8O7mvPiPdZR5YbzY8or_qcqLM4-pKaFdhtFT8M,62
44
- iam_policy_validator-1.0.1.dist-info/licenses/LICENSE,sha256=AMnbFTBDcK4_MITe2wiQBkj0vg-jjBBhsc43ydC7tt4,1098
45
- iam_policy_validator-1.0.1.dist-info/RECORD,,
41
+ iam_policy_validator-1.0.3.dist-info/METADATA,sha256=r2LUdyRsOAwNYbOPAXEca66sYjBYEosBBRkQG9K2YWE,31445
42
+ iam_policy_validator-1.0.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
43
+ iam_policy_validator-1.0.3.dist-info/entry_points.txt,sha256=8HtWd8O7mvPiPdZR5YbzY8or_qcqLM4-pKaFdhtFT8M,62
44
+ iam_policy_validator-1.0.3.dist-info/licenses/LICENSE,sha256=AMnbFTBDcK4_MITe2wiQBkj0vg-jjBBhsc43ydC7tt4,1098
45
+ iam_policy_validator-1.0.3.dist-info/RECORD,,
@@ -3,5 +3,5 @@
3
3
  This file is the single source of truth for the package version.
4
4
  """
5
5
 
6
- __version__ = "1.0.0"
6
+ __version__ = "1.0.3"
7
7
  __version_info__ = tuple(int(part) for part in __version__.split("."))
@@ -30,7 +30,21 @@ class ValidatorConfig:
30
30
  config_dict: Dictionary loaded from YAML config file
31
31
  """
32
32
  self.config_dict = config_dict or {}
33
- self.checks_config = self.config_dict.get("checks", {})
33
+
34
+ # Support both nested and flat structure
35
+ # New flat structure: each check is a top-level key ending with "_check"
36
+ # Old nested structure: all checks under "checks" key
37
+ if "checks" in self.config_dict:
38
+ # Old nested structure
39
+ self.checks_config = self.config_dict.get("checks", {})
40
+ else:
41
+ # New flat structure - extract all keys ending with "_check"
42
+ self.checks_config = {
43
+ key.replace("_check", ""): value
44
+ for key, value in self.config_dict.items()
45
+ if key.endswith("_check") and isinstance(value, dict)
46
+ }
47
+
34
48
  self.custom_checks = self.config_dict.get("custom_checks", [])
35
49
  self.custom_checks_dir = self.config_dict.get("custom_checks_dir")
36
50
  self.settings = self.config_dict.get("settings", {})