runbooks 1.1.3__py3-none-any.whl → 1.1.5__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.
Files changed (247) hide show
  1. runbooks/__init__.py +31 -2
  2. runbooks/__init___optimized.py +18 -4
  3. runbooks/_platform/__init__.py +1 -5
  4. runbooks/_platform/core/runbooks_wrapper.py +141 -138
  5. runbooks/aws2/accuracy_validator.py +812 -0
  6. runbooks/base.py +7 -0
  7. runbooks/cfat/WEIGHT_CONFIG_README.md +1 -1
  8. runbooks/cfat/assessment/compliance.py +8 -8
  9. runbooks/cfat/assessment/runner.py +1 -0
  10. runbooks/cfat/cloud_foundations_assessment.py +227 -239
  11. runbooks/cfat/models.py +6 -2
  12. runbooks/cfat/tests/__init__.py +6 -1
  13. runbooks/cli/__init__.py +13 -0
  14. runbooks/cli/commands/cfat.py +274 -0
  15. runbooks/cli/commands/finops.py +1164 -0
  16. runbooks/cli/commands/inventory.py +379 -0
  17. runbooks/cli/commands/operate.py +239 -0
  18. runbooks/cli/commands/security.py +248 -0
  19. runbooks/cli/commands/validation.py +825 -0
  20. runbooks/cli/commands/vpc.py +310 -0
  21. runbooks/cli/registry.py +107 -0
  22. runbooks/cloudops/__init__.py +23 -30
  23. runbooks/cloudops/base.py +96 -107
  24. runbooks/cloudops/cost_optimizer.py +549 -547
  25. runbooks/cloudops/infrastructure_optimizer.py +5 -4
  26. runbooks/cloudops/interfaces.py +226 -227
  27. runbooks/cloudops/lifecycle_manager.py +5 -4
  28. runbooks/cloudops/mcp_cost_validation.py +252 -235
  29. runbooks/cloudops/models.py +78 -53
  30. runbooks/cloudops/monitoring_automation.py +5 -4
  31. runbooks/cloudops/notebook_framework.py +179 -215
  32. runbooks/cloudops/security_enforcer.py +125 -159
  33. runbooks/common/accuracy_validator.py +11 -0
  34. runbooks/common/aws_pricing.py +349 -326
  35. runbooks/common/aws_pricing_api.py +211 -212
  36. runbooks/common/aws_profile_manager.py +341 -0
  37. runbooks/common/aws_utils.py +75 -80
  38. runbooks/common/business_logic.py +127 -105
  39. runbooks/common/cli_decorators.py +36 -60
  40. runbooks/common/comprehensive_cost_explorer_integration.py +456 -464
  41. runbooks/common/cross_account_manager.py +198 -205
  42. runbooks/common/date_utils.py +27 -39
  43. runbooks/common/decorators.py +235 -0
  44. runbooks/common/dry_run_examples.py +173 -208
  45. runbooks/common/dry_run_framework.py +157 -155
  46. runbooks/common/enhanced_exception_handler.py +15 -4
  47. runbooks/common/enhanced_logging_example.py +50 -64
  48. runbooks/common/enhanced_logging_integration_example.py +65 -37
  49. runbooks/common/env_utils.py +16 -16
  50. runbooks/common/error_handling.py +40 -38
  51. runbooks/common/lazy_loader.py +41 -23
  52. runbooks/common/logging_integration_helper.py +79 -86
  53. runbooks/common/mcp_cost_explorer_integration.py +478 -495
  54. runbooks/common/mcp_integration.py +63 -74
  55. runbooks/common/memory_optimization.py +140 -118
  56. runbooks/common/module_cli_base.py +37 -58
  57. runbooks/common/organizations_client.py +176 -194
  58. runbooks/common/patterns.py +204 -0
  59. runbooks/common/performance_monitoring.py +67 -71
  60. runbooks/common/performance_optimization_engine.py +283 -274
  61. runbooks/common/profile_utils.py +248 -39
  62. runbooks/common/rich_utils.py +643 -92
  63. runbooks/common/sre_performance_suite.py +177 -186
  64. runbooks/enterprise/__init__.py +1 -1
  65. runbooks/enterprise/logging.py +144 -106
  66. runbooks/enterprise/security.py +187 -204
  67. runbooks/enterprise/validation.py +43 -56
  68. runbooks/finops/__init__.py +29 -33
  69. runbooks/finops/account_resolver.py +1 -1
  70. runbooks/finops/advanced_optimization_engine.py +980 -0
  71. runbooks/finops/automation_core.py +268 -231
  72. runbooks/finops/business_case_config.py +184 -179
  73. runbooks/finops/cli.py +660 -139
  74. runbooks/finops/commvault_ec2_analysis.py +157 -164
  75. runbooks/finops/compute_cost_optimizer.py +336 -320
  76. runbooks/finops/config.py +20 -20
  77. runbooks/finops/cost_optimizer.py +488 -622
  78. runbooks/finops/cost_processor.py +332 -214
  79. runbooks/finops/dashboard_runner.py +1006 -172
  80. runbooks/finops/ebs_cost_optimizer.py +991 -657
  81. runbooks/finops/elastic_ip_optimizer.py +317 -257
  82. runbooks/finops/enhanced_mcp_integration.py +340 -0
  83. runbooks/finops/enhanced_progress.py +40 -37
  84. runbooks/finops/enhanced_trend_visualization.py +3 -2
  85. runbooks/finops/enterprise_wrappers.py +230 -292
  86. runbooks/finops/executive_export.py +203 -160
  87. runbooks/finops/helpers.py +130 -288
  88. runbooks/finops/iam_guidance.py +1 -1
  89. runbooks/finops/infrastructure/__init__.py +80 -0
  90. runbooks/finops/infrastructure/commands.py +506 -0
  91. runbooks/finops/infrastructure/load_balancer_optimizer.py +866 -0
  92. runbooks/finops/infrastructure/vpc_endpoint_optimizer.py +832 -0
  93. runbooks/finops/markdown_exporter.py +338 -175
  94. runbooks/finops/mcp_validator.py +1952 -0
  95. runbooks/finops/nat_gateway_optimizer.py +1513 -482
  96. runbooks/finops/network_cost_optimizer.py +657 -587
  97. runbooks/finops/notebook_utils.py +226 -188
  98. runbooks/finops/optimization_engine.py +1136 -0
  99. runbooks/finops/optimizer.py +25 -29
  100. runbooks/finops/rds_snapshot_optimizer.py +367 -411
  101. runbooks/finops/reservation_optimizer.py +427 -363
  102. runbooks/finops/scenario_cli_integration.py +77 -78
  103. runbooks/finops/scenarios.py +1278 -439
  104. runbooks/finops/schemas.py +218 -182
  105. runbooks/finops/snapshot_manager.py +2289 -0
  106. runbooks/finops/tests/test_finops_dashboard.py +3 -3
  107. runbooks/finops/tests/test_reference_images_validation.py +2 -2
  108. runbooks/finops/tests/test_single_account_features.py +17 -17
  109. runbooks/finops/tests/validate_test_suite.py +1 -1
  110. runbooks/finops/types.py +3 -3
  111. runbooks/finops/validation_framework.py +263 -269
  112. runbooks/finops/vpc_cleanup_exporter.py +191 -146
  113. runbooks/finops/vpc_cleanup_optimizer.py +593 -575
  114. runbooks/finops/workspaces_analyzer.py +171 -182
  115. runbooks/hitl/enhanced_workflow_engine.py +1 -1
  116. runbooks/integration/__init__.py +89 -0
  117. runbooks/integration/mcp_integration.py +1920 -0
  118. runbooks/inventory/CLAUDE.md +816 -0
  119. runbooks/inventory/README.md +3 -3
  120. runbooks/inventory/Tests/common_test_data.py +30 -30
  121. runbooks/inventory/__init__.py +2 -2
  122. runbooks/inventory/cloud_foundations_integration.py +144 -149
  123. runbooks/inventory/collectors/aws_comprehensive.py +28 -11
  124. runbooks/inventory/collectors/aws_networking.py +111 -101
  125. runbooks/inventory/collectors/base.py +4 -0
  126. runbooks/inventory/core/collector.py +495 -313
  127. runbooks/inventory/discovery.md +2 -2
  128. runbooks/inventory/drift_detection_cli.py +69 -96
  129. runbooks/inventory/find_ec2_security_groups.py +1 -1
  130. runbooks/inventory/inventory_mcp_cli.py +48 -46
  131. runbooks/inventory/list_rds_snapshots_aggregator.py +192 -208
  132. runbooks/inventory/mcp_inventory_validator.py +549 -465
  133. runbooks/inventory/mcp_vpc_validator.py +359 -442
  134. runbooks/inventory/organizations_discovery.py +56 -52
  135. runbooks/inventory/rich_inventory_display.py +33 -32
  136. runbooks/inventory/unified_validation_engine.py +278 -251
  137. runbooks/inventory/vpc_analyzer.py +733 -696
  138. runbooks/inventory/vpc_architecture_validator.py +293 -348
  139. runbooks/inventory/vpc_dependency_analyzer.py +382 -378
  140. runbooks/inventory/vpc_flow_analyzer.py +3 -3
  141. runbooks/main.py +152 -9147
  142. runbooks/main_final.py +91 -60
  143. runbooks/main_minimal.py +22 -10
  144. runbooks/main_optimized.py +131 -100
  145. runbooks/main_ultra_minimal.py +7 -2
  146. runbooks/mcp/__init__.py +36 -0
  147. runbooks/mcp/integration.py +679 -0
  148. runbooks/metrics/dora_metrics_engine.py +2 -2
  149. runbooks/monitoring/performance_monitor.py +9 -4
  150. runbooks/operate/dynamodb_operations.py +3 -1
  151. runbooks/operate/ec2_operations.py +145 -137
  152. runbooks/operate/iam_operations.py +146 -152
  153. runbooks/operate/mcp_integration.py +1 -1
  154. runbooks/operate/networking_cost_heatmap.py +33 -10
  155. runbooks/operate/privatelink_operations.py +1 -1
  156. runbooks/operate/rds_operations.py +223 -254
  157. runbooks/operate/s3_operations.py +107 -118
  158. runbooks/operate/vpc_endpoints.py +1 -1
  159. runbooks/operate/vpc_operations.py +648 -618
  160. runbooks/remediation/base.py +1 -1
  161. runbooks/remediation/commons.py +10 -7
  162. runbooks/remediation/commvault_ec2_analysis.py +71 -67
  163. runbooks/remediation/ec2_unattached_ebs_volumes.py +1 -0
  164. runbooks/remediation/multi_account.py +24 -21
  165. runbooks/remediation/rds_snapshot_list.py +91 -65
  166. runbooks/remediation/remediation_cli.py +92 -146
  167. runbooks/remediation/universal_account_discovery.py +83 -79
  168. runbooks/remediation/workspaces_list.py +49 -44
  169. runbooks/security/__init__.py +19 -0
  170. runbooks/security/assessment_runner.py +1150 -0
  171. runbooks/security/baseline_checker.py +812 -0
  172. runbooks/security/cloudops_automation_security_validator.py +509 -535
  173. runbooks/security/compliance_automation_engine.py +17 -17
  174. runbooks/security/config/__init__.py +2 -2
  175. runbooks/security/config/compliance_config.py +50 -50
  176. runbooks/security/config_template_generator.py +63 -76
  177. runbooks/security/enterprise_security_framework.py +1 -1
  178. runbooks/security/executive_security_dashboard.py +519 -508
  179. runbooks/security/integration_test_enterprise_security.py +5 -3
  180. runbooks/security/multi_account_security_controls.py +959 -1210
  181. runbooks/security/real_time_security_monitor.py +422 -444
  182. runbooks/security/run_script.py +1 -1
  183. runbooks/security/security_baseline_tester.py +1 -1
  184. runbooks/security/security_cli.py +143 -112
  185. runbooks/security/test_2way_validation.py +439 -0
  186. runbooks/security/two_way_validation_framework.py +852 -0
  187. runbooks/sre/mcp_reliability_engine.py +6 -6
  188. runbooks/sre/production_monitoring_framework.py +167 -177
  189. runbooks/tdd/__init__.py +15 -0
  190. runbooks/tdd/cli.py +1071 -0
  191. runbooks/utils/__init__.py +14 -17
  192. runbooks/utils/logger.py +7 -2
  193. runbooks/utils/version_validator.py +51 -48
  194. runbooks/validation/__init__.py +6 -6
  195. runbooks/validation/cli.py +9 -3
  196. runbooks/validation/comprehensive_2way_validator.py +754 -708
  197. runbooks/validation/mcp_validator.py +906 -228
  198. runbooks/validation/terraform_citations_validator.py +104 -115
  199. runbooks/validation/terraform_drift_detector.py +447 -451
  200. runbooks/vpc/README.md +617 -0
  201. runbooks/vpc/__init__.py +8 -1
  202. runbooks/vpc/analyzer.py +577 -0
  203. runbooks/vpc/cleanup_wrapper.py +476 -413
  204. runbooks/vpc/cli_cloudtrail_commands.py +339 -0
  205. runbooks/vpc/cli_mcp_validation_commands.py +480 -0
  206. runbooks/vpc/cloudtrail_audit_integration.py +717 -0
  207. runbooks/vpc/config.py +92 -97
  208. runbooks/vpc/cost_engine.py +411 -148
  209. runbooks/vpc/cost_explorer_integration.py +553 -0
  210. runbooks/vpc/cross_account_session.py +101 -106
  211. runbooks/vpc/enhanced_mcp_validation.py +917 -0
  212. runbooks/vpc/eni_gate_validator.py +961 -0
  213. runbooks/vpc/heatmap_engine.py +190 -162
  214. runbooks/vpc/mcp_no_eni_validator.py +681 -640
  215. runbooks/vpc/nat_gateway_optimizer.py +358 -0
  216. runbooks/vpc/networking_wrapper.py +15 -8
  217. runbooks/vpc/pdca_remediation_planner.py +528 -0
  218. runbooks/vpc/performance_optimized_analyzer.py +219 -231
  219. runbooks/vpc/runbooks_adapter.py +1167 -241
  220. runbooks/vpc/tdd_red_phase_stubs.py +601 -0
  221. runbooks/vpc/test_data_loader.py +358 -0
  222. runbooks/vpc/tests/conftest.py +314 -4
  223. runbooks/vpc/tests/test_cleanup_framework.py +1022 -0
  224. runbooks/vpc/tests/test_cost_engine.py +0 -2
  225. runbooks/vpc/topology_generator.py +326 -0
  226. runbooks/vpc/unified_scenarios.py +1302 -1129
  227. runbooks/vpc/vpc_cleanup_integration.py +1943 -1115
  228. runbooks-1.1.5.dist-info/METADATA +328 -0
  229. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/RECORD +233 -200
  230. runbooks/finops/README.md +0 -414
  231. runbooks/finops/accuracy_cross_validator.py +0 -647
  232. runbooks/finops/business_cases.py +0 -950
  233. runbooks/finops/dashboard_router.py +0 -922
  234. runbooks/finops/ebs_optimizer.py +0 -956
  235. runbooks/finops/embedded_mcp_validator.py +0 -1629
  236. runbooks/finops/enhanced_dashboard_runner.py +0 -527
  237. runbooks/finops/finops_dashboard.py +0 -584
  238. runbooks/finops/finops_scenarios.py +0 -1218
  239. runbooks/finops/legacy_migration.py +0 -730
  240. runbooks/finops/multi_dashboard.py +0 -1519
  241. runbooks/finops/single_dashboard.py +0 -1113
  242. runbooks/finops/unlimited_scenarios.py +0 -393
  243. runbooks-1.1.3.dist-info/METADATA +0 -799
  244. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/WHEEL +0 -0
  245. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/entry_points.txt +0 -0
  246. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/licenses/LICENSE +0 -0
  247. {runbooks-1.1.3.dist-info → runbooks-1.1.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,248 @@
1
+ """
2
+ Security Commands Module - Security Assessment & Compliance
3
+
4
+ KISS Principle: Focused on security assessment and compliance operations
5
+ DRY Principle: Centralized security patterns and compliance frameworks
6
+
7
+ Extracted from main.py lines 4500-6000 for modular architecture.
8
+ Preserves 100% functionality while reducing main.py context overhead.
9
+ """
10
+
11
+ import click
12
+ from rich.console import Console
13
+
14
+ # Import common utilities and decorators
15
+ from runbooks.common.decorators import common_aws_options, common_output_options
16
+
17
+ console = Console()
18
+
19
+
20
+ def create_security_group():
21
+ """
22
+ Create the security command group with all subcommands.
23
+
24
+ Returns:
25
+ Click Group object with all security commands
26
+
27
+ Performance: Lazy creation only when needed by DRYCommandRegistry
28
+ Context Reduction: ~1500 lines extracted from main.py
29
+ """
30
+
31
+ @click.group(invoke_without_command=True)
32
+ @common_aws_options
33
+ @click.pass_context
34
+ def security(ctx, profile, region, dry_run):
35
+ """
36
+ Security assessment and compliance operations.
37
+
38
+ Comprehensive security baseline assessment with multi-framework compliance
39
+ and enterprise-grade reporting capabilities.
40
+
41
+ Compliance Frameworks:
42
+ • SOC2, PCI-DSS, HIPAA, ISO 27001
43
+ • AWS Well-Architected Security Pillar
44
+ • NIST Cybersecurity Framework
45
+ • CIS Benchmarks
46
+
47
+ Examples:
48
+ runbooks security assess --framework soc2
49
+ runbooks security baseline --all-checks
50
+ runbooks security report --format pdf --compliance hipaa
51
+ """
52
+ ctx.obj.update({"profile": profile, "region": region, "dry_run": dry_run})
53
+
54
+ if ctx.invoked_subcommand is None:
55
+ click.echo(ctx.get_help())
56
+
57
+ @security.command()
58
+ @common_aws_options
59
+ @click.option(
60
+ "--framework",
61
+ type=click.Choice(["soc2", "pci-dss", "hipaa", "iso27001", "well-architected"]),
62
+ multiple=True,
63
+ help="Compliance frameworks to assess",
64
+ )
65
+ @click.option("--all-checks", is_flag=True, help="Run all available security checks")
66
+ @click.option(
67
+ "--severity", type=click.Choice(["critical", "high", "medium", "low"]), help="Filter by minimum severity level"
68
+ )
69
+ @click.option(
70
+ "--export-format", type=click.Choice(["json", "csv", "pdf", "markdown"]), help="Export format for results"
71
+ )
72
+ @click.option(
73
+ "--language",
74
+ type=click.Choice(["en", "ja", "ko", "vi"]),
75
+ default="en",
76
+ help="Report language (English, Japanese, Korean, Vietnamese)",
77
+ )
78
+ @click.option("--all", is_flag=True, help="Use all available AWS profiles for multi-account security assessment")
79
+ @click.pass_context
80
+ def assess(ctx, profile, region, dry_run, framework, all_checks, severity, export_format, language, all):
81
+ """
82
+ Comprehensive security assessment with multi-framework compliance and universal profile support.
83
+
84
+ Enterprise Features:
85
+ • 15+ security checks across multiple frameworks
86
+ • Multi-language reporting (EN/JP/KR/VN)
87
+ • Risk scoring and prioritization
88
+ • Remediation recommendations with business impact
89
+ • Multi-account security assessment with --all flag
90
+
91
+ Examples:
92
+ runbooks security assess --framework soc2,pci-dss
93
+ runbooks security assess --all-checks --export-format pdf
94
+ runbooks security assess --severity critical --language ja
95
+ runbooks security assess --all --framework soc2 # Multi-account assessment
96
+ """
97
+ try:
98
+ from runbooks.security.assessment_runner import SecurityAssessmentRunner
99
+ from runbooks.common.profile_utils import get_profile_for_operation
100
+
101
+ # Use ProfileManager for dynamic profile resolution
102
+ resolved_profile = get_profile_for_operation("operational", profile)
103
+
104
+ assessment = SecurityAssessmentRunner(
105
+ profile=resolved_profile,
106
+ region=region,
107
+ frameworks=list(framework) if framework else None,
108
+ all_checks=all_checks,
109
+ severity_filter=severity,
110
+ language=language,
111
+ )
112
+
113
+ results = assessment.run_comprehensive_assessment()
114
+
115
+ if export_format:
116
+ assessment.export_results(results, format=export_format)
117
+
118
+ return results
119
+
120
+ except ImportError as e:
121
+ console.print(f"[red]❌ Security assessment module not available: {e}[/red]")
122
+ raise click.ClickException("Security assessment functionality not available")
123
+ except Exception as e:
124
+ console.print(f"[red]❌ Security assessment failed: {e}[/red]")
125
+ raise click.ClickException(str(e))
126
+
127
+ @security.command()
128
+ @common_aws_options
129
+ @click.option(
130
+ "--check-type",
131
+ type=click.Choice(["baseline", "advanced", "enterprise"]),
132
+ default="baseline",
133
+ help="Security check depth level",
134
+ )
135
+ @click.option("--include-remediation", is_flag=True, help="Include remediation recommendations")
136
+ @click.option("--auto-fix", is_flag=True, help="Automatically fix low-risk issues (with approval)")
137
+ @click.option("--all", is_flag=True, help="Use all available AWS profiles for multi-account baseline assessment")
138
+ @click.pass_context
139
+ def baseline(ctx, profile, region, dry_run, check_type, include_remediation, auto_fix, all):
140
+ """
141
+ Security baseline assessment and configuration validation with universal profile support.
142
+
143
+ Baseline Security Checks:
144
+ • IAM policy analysis and least privilege validation
145
+ • S3 bucket public access and encryption assessment
146
+ • VPC security group and NACL configuration review
147
+ • CloudTrail and logging configuration verification
148
+ • Encryption at rest and in transit validation
149
+
150
+ Examples:
151
+ runbooks security baseline --check-type enterprise
152
+ runbooks security baseline --include-remediation --auto-fix
153
+ runbooks security baseline --all --check-type enterprise # Multi-account assessment
154
+ """
155
+ try:
156
+ from runbooks.security.baseline_checker import SecurityBaselineChecker
157
+ from runbooks.common.profile_utils import get_profile_for_operation
158
+
159
+ # Use ProfileManager for dynamic profile resolution
160
+ resolved_profile = get_profile_for_operation("operational", profile)
161
+
162
+ baseline_checker = SecurityBaselineChecker(
163
+ profile=resolved_profile,
164
+ region=region,
165
+ check_type=check_type,
166
+ include_remediation=include_remediation,
167
+ auto_fix=auto_fix and not dry_run,
168
+ )
169
+
170
+ baseline_results = baseline_checker.run_baseline_assessment()
171
+
172
+ return baseline_results
173
+
174
+ except ImportError as e:
175
+ console.print(f"[red]❌ Security baseline module not available: {e}[/red]")
176
+ raise click.ClickException("Security baseline functionality not available")
177
+ except Exception as e:
178
+ console.print(f"[red]❌ Security baseline assessment failed: {e}[/red]")
179
+ raise click.ClickException(str(e))
180
+
181
+ @security.command()
182
+ @common_aws_options
183
+ @click.option(
184
+ "--format",
185
+ "report_format",
186
+ type=click.Choice(["pdf", "html", "markdown", "json"]),
187
+ multiple=True,
188
+ default=["pdf"],
189
+ help="Report formats",
190
+ )
191
+ @click.option(
192
+ "--compliance",
193
+ type=click.Choice(["soc2", "pci-dss", "hipaa", "iso27001"]),
194
+ multiple=True,
195
+ help="Include compliance mapping",
196
+ )
197
+ @click.option("--executive-summary", is_flag=True, help="Generate executive summary")
198
+ @click.option("--output-dir", default="./security_reports", help="Output directory")
199
+ @click.option("--all", is_flag=True, help="Use all available AWS profiles for multi-account security reporting")
200
+ @click.pass_context
201
+ def report(ctx, profile, region, dry_run, report_format, compliance, executive_summary, output_dir, all):
202
+ """
203
+ Generate comprehensive security compliance reports with universal profile support.
204
+
205
+ Enterprise Reporting Features:
206
+ • Executive-ready summary with risk quantification
207
+ • Compliance framework mapping and gap analysis
208
+ • Multi-language support for global enterprises
209
+ • Audit trail documentation and evidence collection
210
+ • Multi-account security reporting with --all flag
211
+
212
+ Examples:
213
+ runbooks security report --format pdf,html --executive-summary
214
+ runbooks security report --compliance soc2,hipaa --output-dir ./audit
215
+ runbooks security report --all --compliance soc2 # Multi-account reporting
216
+ """
217
+ try:
218
+ from runbooks.security.report_generator import SecurityReportGenerator
219
+ from runbooks.common.profile_utils import get_profile_for_operation
220
+
221
+ # Use ProfileManager for dynamic profile resolution
222
+ resolved_profile = get_profile_for_operation("operational", profile)
223
+
224
+ report_generator = SecurityReportGenerator(
225
+ profile=resolved_profile,
226
+ output_dir=output_dir,
227
+ compliance_frameworks=list(compliance) if compliance else None,
228
+ executive_summary=executive_summary,
229
+ )
230
+
231
+ report_results = {}
232
+ for format_type in report_format:
233
+ result = report_generator.generate_report(format=format_type)
234
+ report_results[format_type] = result
235
+
236
+ console.print(f"[green]✅ Successfully generated {len(report_format)} report format(s)[/green]")
237
+ console.print(f"[dim]Output directory: {output_dir}[/dim]")
238
+
239
+ return report_results
240
+
241
+ except ImportError as e:
242
+ console.print(f"[red]❌ Security report module not available: {e}[/red]")
243
+ raise click.ClickException("Security report functionality not available")
244
+ except Exception as e:
245
+ console.print(f"[red]❌ Security report generation failed: {e}[/red]")
246
+ raise click.ClickException(str(e))
247
+
248
+ return security