runbooks 0.7.5__tar.gz → 0.7.7__tar.gz

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 (307) hide show
  1. {runbooks-0.7.5 → runbooks-0.7.7}/PKG-INFO +4 -2
  2. {runbooks-0.7.5 → runbooks-0.7.7}/pyproject.toml +51 -33
  3. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/__init__.py +1 -1
  4. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/base.py +5 -1
  5. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/__init__.py +2 -2
  6. runbooks-0.7.7/src/runbooks/cfat/assessment/compliance.py +847 -0
  7. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/__init__.py +1 -1
  8. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/cli.py +63 -1
  9. runbooks-0.7.7/src/runbooks/finops/dashboard_runner.py +919 -0
  10. runbooks-0.7.7/src/runbooks/finops/helpers.py +786 -0
  11. runbooks-0.7.7/src/runbooks/finops/optimizer.py +822 -0
  12. runbooks-0.7.7/src/runbooks/inventory/collectors/aws_comprehensive.py +435 -0
  13. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/discovery.md +1 -1
  14. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/main.py +158 -12
  15. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/__init__.py +2 -2
  16. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/__init__.py +2 -2
  17. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/acm_remediation.py +1 -1
  18. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/base.py +1 -1
  19. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cloudtrail_remediation.py +1 -1
  20. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cognito_remediation.py +1 -1
  21. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/dynamodb_remediation.py +1 -1
  22. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_remediation.py +1 -1
  23. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_unattached_ebs_volumes.py +1 -1
  24. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/kms_enable_key_rotation.py +1 -1
  25. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/kms_remediation.py +1 -1
  26. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/lambda_remediation.py +1 -1
  27. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/multi_account.py +1 -1
  28. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/rds_remediation.py +1 -1
  29. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/requirements.txt +2 -2
  30. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_block_public_access.py +1 -1
  31. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_enable_access_logging.py +1 -1
  32. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_encryption.py +1 -1
  33. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_remediation.py +1 -1
  34. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/__init__.py +1 -1
  35. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/PKG-INFO +4 -2
  36. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/SOURCES.txt +15 -51
  37. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/requires.txt +3 -1
  38. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/top_level.txt +0 -1
  39. runbooks-0.7.5/.actrc +0 -6
  40. runbooks-0.7.5/.gitignore +0 -202
  41. runbooks-0.7.5/.gitmodules +0 -3
  42. runbooks-0.7.5/.pre-commit-config.yaml +0 -10
  43. runbooks-0.7.5/.python-version +0 -1
  44. runbooks-0.7.5/CHANGELOG.md +0 -38
  45. runbooks-0.7.5/Quickstart.md +0 -68
  46. runbooks-0.7.5/README.docs.md +0 -19
  47. runbooks-0.7.5/Taskfile.yaml +0 -750
  48. runbooks-0.7.5/docker-build-push.sh +0 -64
  49. runbooks-0.7.5/execute_landing_page.py +0 -181
  50. runbooks-0.7.5/output/dev/landing-page/css/styles.css +0 -551
  51. runbooks-0.7.5/output/dev/landing-page/index.html +0 -178
  52. runbooks-0.7.5/output/dev/landing-page/js/main.js +0 -100
  53. runbooks-0.7.5/references/.gitkeep +0 -0
  54. runbooks-0.7.5/reports/.gitkeep +0 -0
  55. runbooks-0.7.5/reports/figures/.gitkeep +0 -0
  56. runbooks-0.7.5/src/jupyter-agent/.env +0 -2
  57. runbooks-0.7.5/src/jupyter-agent/.env.template +0 -2
  58. runbooks-0.7.5/src/jupyter-agent/.gitattributes +0 -35
  59. runbooks-0.7.5/src/jupyter-agent/.gradio/certificate.pem +0 -31
  60. runbooks-0.7.5/src/jupyter-agent/README.md +0 -16
  61. runbooks-0.7.5/src/jupyter-agent/__main__.log +0 -8
  62. runbooks-0.7.5/src/jupyter-agent/app.py +0 -256
  63. runbooks-0.7.5/src/jupyter-agent/cloudops-agent.png +0 -0
  64. runbooks-0.7.5/src/jupyter-agent/ds-system-prompt.txt +0 -154
  65. runbooks-0.7.5/src/jupyter-agent/jupyter-agent.png +0 -0
  66. runbooks-0.7.5/src/jupyter-agent/llama3_template.jinja +0 -123
  67. runbooks-0.7.5/src/jupyter-agent/requirements.txt +0 -9
  68. runbooks-0.7.5/src/jupyter-agent/tmp/4ojbs8a02ir/jupyter-agent.ipynb +0 -68
  69. runbooks-0.7.5/src/jupyter-agent/tmp/cm5iasgpm3p/jupyter-agent.ipynb +0 -91
  70. runbooks-0.7.5/src/jupyter-agent/tmp/crqbsseag5/jupyter-agent.ipynb +0 -91
  71. runbooks-0.7.5/src/jupyter-agent/tmp/hohanq1u097/jupyter-agent.ipynb +0 -57
  72. runbooks-0.7.5/src/jupyter-agent/tmp/jns1sam29wm/jupyter-agent.ipynb +0 -53
  73. runbooks-0.7.5/src/jupyter-agent/tmp/jupyter-agent.ipynb +0 -27
  74. runbooks-0.7.5/src/jupyter-agent/utils.py +0 -409
  75. runbooks-0.7.5/src/main.python101.py +0 -115
  76. runbooks-0.7.5/src/runbooks/finops/dashboard_runner.py +0 -448
  77. runbooks-0.7.5/src/runbooks/finops/helpers.py +0 -355
  78. runbooks-0.7.5/src/runbooks/inventory/aws_organization.png +0 -0
  79. runbooks-0.7.5/uv.lock +0 -5257
  80. {runbooks-0.7.5 → runbooks-0.7.7}/LICENSE +0 -0
  81. {runbooks-0.7.5 → runbooks-0.7.7}/MANIFEST.in +0 -0
  82. {runbooks-0.7.5 → runbooks-0.7.7}/README.md +0 -0
  83. {runbooks-0.7.5 → runbooks-0.7.7}/setup.cfg +0 -0
  84. {runbooks-0.7.5 → runbooks-0.7.7}/src/conftest.py +0 -0
  85. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/__main__.py +0 -0
  86. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/README.md +0 -0
  87. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/app.ts +0 -0
  88. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/__init__.py +0 -0
  89. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/asana-import.csv +0 -0
  90. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/cfat-checks.csv +0 -0
  91. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/cfat.txt +0 -0
  92. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/collectors.py +0 -0
  93. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/jira-import.csv +0 -0
  94. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/runner.py +0 -0
  95. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/validators.py +0 -0
  96. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/cli.py +0 -0
  97. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/asana-import.csv +0 -0
  98. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cfat-checks.csv +0 -0
  99. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cfat.txt +0 -0
  100. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/checks-output.png +0 -0
  101. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cloudshell-console-run.png +0 -0
  102. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cloudshell-download.png +0 -0
  103. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cloudshell-output.png +0 -0
  104. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/downloadfile.png +0 -0
  105. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/jira-import.csv +0 -0
  106. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/open-cloudshell.png +0 -0
  107. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/report-header.png +0 -0
  108. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/models.py +0 -0
  109. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/package-lock.json +0 -0
  110. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/package.json +0 -0
  111. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/report.py +0 -0
  112. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/__init__.py +0 -0
  113. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/exporters.py +0 -0
  114. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/formatters.py +0 -0
  115. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/templates.py +0 -0
  116. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/run-assessment.sh +0 -0
  117. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/runner.py +0 -0
  118. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-cloudtrail-existence.ts +0 -0
  119. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-config-existence.ts +0 -0
  120. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-control-tower.ts +0 -0
  121. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-ec2-existence.ts +0 -0
  122. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-iam-users.ts +0 -0
  123. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-legacy-cur.ts +0 -0
  124. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-org-cloudformation.ts +0 -0
  125. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-vpc-existence.ts +0 -0
  126. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-asanaimport.ts +0 -0
  127. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-backlog.ts +0 -0
  128. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-jiraimport.ts +0 -0
  129. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-report.ts +0 -0
  130. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/define-account-type.ts +0 -0
  131. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-enabled-org-policy-types.ts +0 -0
  132. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-enabled-org-services.ts +0 -0
  133. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-idc-info.ts +0 -0
  134. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-da-accounts.ts +0 -0
  135. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-details.ts +0 -0
  136. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-member-accounts.ts +0 -0
  137. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-ous.ts +0 -0
  138. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-regions.ts +0 -0
  139. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/zip-assessment.ts +0 -0
  140. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/types/index.d.ts +0 -0
  141. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/__init__.py +0 -0
  142. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_cli.py +0 -0
  143. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_integration.py +0 -0
  144. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_models.py +0 -0
  145. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_reporting.py +0 -0
  146. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tsconfig.json +0 -0
  147. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/webpack.config.cjs +0 -0
  148. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/config.py +0 -0
  149. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/README.md +0 -0
  150. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/aws_client.py +0 -0
  151. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/cost_processor.py +0 -0
  152. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/main.py +0 -0
  153. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/profile_processor.py +0 -0
  154. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/types.py +0 -0
  155. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/visualisations.py +0 -0
  156. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/.gitignore +0 -0
  157. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/ArgumentsClass.py +0 -0
  158. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/LandingZone/delete_lz.py +0 -0
  159. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/README.md +0 -0
  160. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/common_test_data.py +0 -0
  161. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/common_test_functions.py +0 -0
  162. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/script_test_data.py +0 -0
  163. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/setup.py +0 -0
  164. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/src.py +0 -0
  165. /runbooks-0.7.5/src/runbooks/inventory/tests/test_inventory_modules.py → /runbooks-0.7.7/src/runbooks/inventory/Tests/test_Inventory_Modules.py +0 -0
  166. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_cfn_describe_stacks.py +0 -0
  167. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_ec2_describe_instances.py +0 -0
  168. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_lambda_list_functions.py +0 -0
  169. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_moto_integration_example.py +0 -0
  170. {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_org_list_accounts.py +0 -0
  171. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/__init__.py +0 -0
  172. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/account_class.py +0 -0
  173. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/all_my_instances_wrapper.py +0 -0
  174. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/aws_decorators.py +0 -0
  175. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/check_cloudtrail_compliance.py +0 -0
  176. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/check_controltower_readiness.py +0 -0
  177. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/check_landingzone_readiness.py +0 -0
  178. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/cloudtrail.md +0 -0
  179. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/__init__.py +0 -0
  180. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/aws_compute.py +0 -0
  181. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/aws_management.py +0 -0
  182. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/aws_networking.py +0 -0
  183. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/base.py +0 -0
  184. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/core/__init__.py +0 -0
  185. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/core/collector.py +0 -0
  186. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/core/formatter.py +0 -0
  187. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/draw_org_structure.py +0 -0
  188. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/ec2_vpc_utils.py +0 -0
  189. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_cfn_drift_detection.py +0 -0
  190. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_cfn_orphaned_stacks.py +0 -0
  191. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_cfn_stackset_drift.py +0 -0
  192. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_ec2_security_groups.py +0 -0
  193. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_landingzone_versions.py +0 -0
  194. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_vpc_flow_logs.py +0 -0
  195. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/inventory.sh +0 -0
  196. /runbooks-0.7.5/src/runbooks/inventory/Inventory_Modules.py → /runbooks-0.7.7/src/runbooks/inventory/inventory_modules.py +0 -0
  197. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stacks.py +0 -0
  198. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stackset_operation_results.py +0 -0
  199. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stackset_operations.py +0 -0
  200. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stacksets.py +0 -0
  201. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_config_recorders_delivery_channels.py +0 -0
  202. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ds_directories.py +0 -0
  203. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ec2_availability_zones.py +0 -0
  204. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ec2_ebs_volumes.py +0 -0
  205. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ec2_instances.py +0 -0
  206. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ecs_clusters_and_tasks.py +0 -0
  207. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_elbs_load_balancers.py +0 -0
  208. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_enis_network_interfaces.py +0 -0
  209. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_guardduty_detectors.py +0 -0
  210. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_iam_policies.py +0 -0
  211. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_iam_roles.py +0 -0
  212. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_iam_saml_providers.py +0 -0
  213. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_lambda_functions.py +0 -0
  214. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_org_accounts.py +0 -0
  215. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_org_accounts_users.py +0 -0
  216. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_rds_db_instances.py +0 -0
  217. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_route53_hosted_zones.py +0 -0
  218. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_servicecatalog_provisioned_products.py +0 -0
  219. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_sns_topics.py +0 -0
  220. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ssm_parameters.py +0 -0
  221. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_vpc_subnets.py +0 -0
  222. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_vpcs.py +0 -0
  223. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/__init__.py +0 -0
  224. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/account.py +0 -0
  225. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/inventory.py +0 -0
  226. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/resource.py +0 -0
  227. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/recover_cfn_stack_ids.py +0 -0
  228. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/requirements.txt +0 -0
  229. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/run_on_multi_accounts.py +0 -0
  230. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/__init__.py +0 -0
  231. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/aws_helpers.py +0 -0
  232. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/threading_utils.py +0 -0
  233. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/validation.py +0 -0
  234. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/verify_ec2_security_groups.py +0 -0
  235. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/base.py +0 -0
  236. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/cloudformation_operations.py +0 -0
  237. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/cloudwatch_operations.py +0 -0
  238. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/dynamodb_operations.py +0 -0
  239. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/ec2_operations.py +0 -0
  240. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/iam_operations.py +0 -0
  241. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/s3_operations.py +0 -0
  242. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/tagging_operations.py +0 -0
  243. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/tags.json +0 -0
  244. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/CLAUDE.md +0 -0
  245. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/DOME9.md +0 -0
  246. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/README.md +0 -0
  247. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/Tests/__init__.py +0 -0
  248. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/Tests/update_policy.py +0 -0
  249. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/acm_cert_expired_unused.py +0 -0
  250. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/api_gateway_list.py +0 -0
  251. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cloudtrail_s3_modifications.py +0 -0
  252. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cognito_active_users.py +0 -0
  253. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cognito_user_password_reset.py +0 -0
  254. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/commons.py +0 -0
  255. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/dynamodb_optimize.py +0 -0
  256. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/dynamodb_server_side_encryption.py +0 -0
  257. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_public_ips.py +0 -0
  258. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_subnet_disable_auto_ip_assignment.py +0 -0
  259. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_unused_security_groups.py +0 -0
  260. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/lambda_list.py +0 -0
  261. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/rds_instance_list.py +0 -0
  262. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/rds_snapshot_list.py +0 -0
  263. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_bucket_public_access.py +0 -0
  264. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_disable_static_website_hosting.py +0 -0
  265. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_downloader.py +0 -0
  266. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_force_ssl_secure_policy.py +0 -0
  267. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_list.py +0 -0
  268. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_object_search.py +0 -0
  269. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/scan_for_phrase.py +0 -0
  270. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/workspaces_list.py +0 -0
  271. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/README.md +0 -0
  272. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/__init__.py +0 -0
  273. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/account_level_bucket_public_access.py +0 -0
  274. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/alternate_contacts.py +0 -0
  275. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/bucket_public_access.py +0 -0
  276. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/cloudwatch_alarm_configuration.py +0 -0
  277. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/direct_attached_policy.py +0 -0
  278. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/guardduty_enabled.py +0 -0
  279. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/iam_password_policy.py +0 -0
  280. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/iam_user_mfa.py +0 -0
  281. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/multi_region_instance_usage.py +0 -0
  282. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/multi_region_trail.py +0 -0
  283. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/root_access_key.py +0 -0
  284. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/root_mfa.py +0 -0
  285. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/root_usage.py +0 -0
  286. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/trail_enabled.py +0 -0
  287. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/trusted_advisor.py +0 -0
  288. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/config-origin.json +0 -0
  289. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/config.json +0 -0
  290. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/permission.json +0 -0
  291. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_generator.py +0 -0
  292. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_en.html +0 -0
  293. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_jp.html +0 -0
  294. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_kr.html +0 -0
  295. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_vn.html +0 -0
  296. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/run_script.py +0 -0
  297. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/security_baseline_tester.py +0 -0
  298. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/__init__.py +0 -0
  299. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/common.py +0 -0
  300. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/enums.py +0 -0
  301. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/language.py +0 -0
  302. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/level_const.py +0 -0
  303. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/permission_list.py +0 -0
  304. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/utils/__init__.py +0 -0
  305. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/utils/logger.py +0 -0
  306. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/dependency_links.txt +0 -0
  307. {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runbooks
3
- Version: 0.7.5
3
+ Version: 0.7.7
4
4
  Summary: CloudOps Automation Toolkit with Enhanced Cloud Foundations Assessment for DevOps and SRE teams.
5
5
  Author-email: Maintainers <nnthanh101@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -34,8 +34,9 @@ Requires-Dist: markdown>=3.7.0
34
34
  Requires-Dist: prettytable>=3.16.0
35
35
  Requires-Dist: simplejson>=3.20.1
36
36
  Requires-Dist: python-dateutil>=2.9.0
37
- Requires-Dist: loguru>=0.7.5
37
+ Requires-Dist: loguru>=0.7.3
38
38
  Requires-Dist: tqdm>=4.67.1
39
+ Requires-Dist: graphviz>=0.20.1
39
40
  Requires-Dist: rich>=14.0.0
40
41
  Requires-Dist: reportlab>=3.6.1
41
42
  Requires-Dist: requests>=2.32.0
@@ -43,6 +44,7 @@ Requires-Dist: packaging>=21.0
43
44
  Requires-Dist: pyyaml>=6.0.2
44
45
  Requires-Dist: jmespath>=1.0.1
45
46
  Requires-Dist: urllib3<1.27,>=1.26.18
47
+ Requires-Dist: mcp>=1.12.3
46
48
  Dynamic: license-file
47
49
 
48
50
  # 🚀 CloudOps Runbooks - Enterprise AWS Automation Toolkit
@@ -13,7 +13,7 @@
13
13
  ## Metadata: https://docs.astral.sh/uv/concepts/projects/config/
14
14
  name = "runbooks"
15
15
  ## Enhanced with AWS Operations integration, unified CLI architecture, and comprehensive service operations
16
- version = "0.7.5"
16
+ version = "0.7.7"
17
17
  description = "CloudOps Automation Toolkit with Enhanced Cloud Foundations Assessment for DevOps and SRE teams."
18
18
  readme = "README.md"
19
19
  requires-python = ">=3.11,<3.14"
@@ -41,38 +41,33 @@ dependencies = [
41
41
  "boto3>=1.35.40",
42
42
  "botocore>=1.35.40",
43
43
  "diagrams>=0.24.4",
44
-
45
44
  ## CLI Framework
46
45
  "click>=8.2.1",
47
-
48
46
  ## Data Models and Validation
49
47
  "pydantic>=2.10.0",
50
-
51
48
  ## CFAT-specific additions for enhanced assessment
52
- "jinja2>=3.1.4", # HTML report templating (also used by security module)
53
- "werkzeug>=3.1.0", # Web server for interactive reports
54
- "markdown>=3.7.0", # Markdown processing for reports
55
-
49
+ "jinja2>=3.1.4", # HTML report templating (also used by security module)
50
+ "werkzeug>=3.1.0", # Web server for interactive reports
51
+ "markdown>=3.7.0", # Markdown processing for reports
56
52
  ## Utilities: Logging & Monitoring
57
53
  "prettytable>=3.16.0",
58
54
  "simplejson>=3.20.1",
59
55
  "python-dateutil>=2.9.0",
60
- "loguru>=0.7.5",
56
+ "loguru>=0.7.3",
61
57
  "tqdm>=4.67.1",
62
-
58
+ "graphviz>=0.20.1", # Organization diagram generation
63
59
  ## FinOps module dependencies (simplified and aligned)
64
- "rich>=14.0.0", # Rich text and beautiful formatting in the terminal
65
- "reportlab>=3.6.1", # PDF generation
66
- "requests>=2.32.0", # HTTP requests for version checking
67
- "packaging>=21.0", # Core utilities for Python packages
68
- "pyyaml>=6.0.2", # YAML parsing
69
-
70
- ## Security Module Dependencies
71
- "jmespath>=1.0.1", # JSON query parsing for AWS responses
72
- "urllib3>=1.26.18,<1.27", # HTTP library (compatible with awscli)
73
-
60
+ "rich>=14.0.0", # Rich text and beautiful formatting in the terminal
61
+ "reportlab>=3.6.1", # PDF generation
62
+ "requests>=2.32.0", # HTTP requests for version checking
63
+ "packaging>=21.0", # Core utilities for Python packages
64
+ "pyyaml>=6.0.2", # YAML parsing
65
+ ## Security Module Dependencies
66
+ "jmespath>=1.0.1", # JSON query parsing for AWS responses
67
+ "urllib3>=1.26.18,<1.27", # HTTP library (compatible with awscli)
74
68
  ## 1xOps/CloudOps-Runbooks: https://pypi.org/project/runbooks/
75
69
  # "runbooks>=0.3.0"
70
+ "mcp>=1.12.3",
76
71
  ]
77
72
 
78
73
  ##─────────────────────────────────
@@ -183,61 +178,84 @@ analytics = [
183
178
  license-files = ["LICENSE"]
184
179
 
185
180
  [tool.pytest.ini_options]
186
- ## Pytest Configuration for AWS Cloud Foundations Inventory Scripts
187
- pythonpath = ["src"]
181
+ ## Pytest Configuration for CloudOps Runbooks Testing Framework
182
+ pythonpath = ["src", "src/runbooks", "src/runbooks/inventory"]
188
183
  testpaths = [
189
184
  "tests",
190
- "src/runbooks/inventory/tests"
185
+ "src/runbooks/inventory/tests",
186
+ "src/runbooks/*/tests"
191
187
  ]
192
188
  python_files = ["test_*.py", "*_test.py"]
193
189
  python_classes = ["Test*"]
194
190
  python_functions = ["test_*"]
195
191
 
196
- ## Test Discovery and Execution
192
+ ## Test Discovery and Execution
197
193
  addopts = [
198
194
  "--strict-markers",
199
195
  "--strict-config",
200
196
  "--verbose",
201
197
  "--tb=short",
202
- "--maxfail=3",
198
+ "--maxfail=5",
203
199
  "--durations=10",
204
- # Coverage options (uncomment when ready)
205
- # "--cov=src/runbooks/inventory",
206
- # "--cov-report=term-missing",
207
- # "--cov-report=html:htmlcov",
208
- # "--cov-fail-under=80",
200
+ "--disable-warnings",
201
+ # Coverage options (enabled for improved quality gates)
202
+ "--cov=src/runbooks",
203
+ "--cov-report=term-missing",
204
+ "--cov-report=html:htmlcov",
205
+ "--cov-fail-under=75",
206
+ # Performance and logging
207
+ "--capture=no",
209
208
  ]
210
209
 
211
- ## Test Markers for Organization
210
+ ## Test Markers for Organization (Enhanced for CloudOps)
212
211
  markers = [
213
212
  "functional: marks tests as functional tests (deselect with '-m \"not functional\"')",
214
- "integration: marks tests as integration tests",
213
+ "integration: marks tests as integration tests with moto AWS mocking",
215
214
  "unit: Unit tests (fast, no external dependencies)",
216
215
  "e2e: End-to-end tests (requires real AWS credentials)",
217
216
  "slow: Slow tests (long-running operations)",
217
+ "import_validation: Import validation tests for failed scripts",
218
218
  "aws_service: Tests specific AWS service interactions",
219
219
  "cli: Tests CLI argument parsing and validation",
220
220
  "inventory: Tests for inventory collection scripts",
221
+ "security: Tests for security baseline and assessment",
222
+ "cfat: Tests for Cloud Foundations Assessment Tool",
223
+ "finops: Tests for cost and usage analytics",
224
+ "remediation: Tests for AWS security remediation scripts",
225
+ "operate: Tests for AWS resource operations",
221
226
  "organizations: Tests for AWS Organizations functionality",
222
227
  "cloudformation: Tests for CloudFormation operations",
223
228
  "ec2: Tests for EC2 service operations",
224
229
  "iam: Tests for IAM service operations",
230
+ "s3: Tests for S3 service operations",
225
231
  "models: Tests for data model validation",
226
232
  "assessment: Tests for assessment engine functionality",
227
233
  "reporting: Tests for report generation",
234
+ "performance: Performance and benchmark tests",
235
+ "moto_aws: Tests using moto AWS service mocking",
228
236
  ]
229
237
 
230
- ## Filterwarnings for cleaner test output
238
+ ## Filterwarnings for cleaner test output (Enhanced)
231
239
  filterwarnings = [
232
240
  "ignore::DeprecationWarning",
233
241
  "ignore::PendingDeprecationWarning",
234
242
  "ignore:Call to deprecated create function:DeprecationWarning",
235
243
  "ignore::pytest.PytestCollectionWarning",
244
+ "ignore::pytest.PytestUnraisableExceptionWarning",
245
+ "ignore:.*unclosed.*:ResourceWarning",
246
+ "ignore:.*ssl.*:DeprecationWarning",
247
+ "ignore:.*urllib3.*:DeprecationWarning",
248
+ "ignore:.*boto.*:DeprecationWarning",
249
+ "ignore:.*aws.*:DeprecationWarning",
236
250
  ]
237
251
 
238
252
  ## Async test configuration
239
253
  asyncio_mode = "auto"
240
254
 
255
+ ## Test timeout settings (commented out - requires pytest-timeout)
256
+ # timeout = 300
257
+ # timeout_method = "thread"
258
+
241
259
 
242
260
  [project.scripts]
243
261
  ## CLI Commands
@@ -67,7 +67,7 @@ try:
67
67
  __version__ = _pkg_version("runbooks")
68
68
  except Exception:
69
69
  # Fallback if metadata is unavailable during editable installs
70
- __version__ = "0.7.5"
70
+ __version__ = "0.7.6"
71
71
 
72
72
  # Core module exports
73
73
  from runbooks.config import RunbooksConfig, load_config, save_config
@@ -5,6 +5,7 @@ This module provides common base classes and utilities used across
5
5
  all Cloud Foundations components including CFAT, inventory, and organizations.
6
6
  """
7
7
 
8
+ import os
8
9
  from abc import ABC, abstractmethod
9
10
  from datetime import datetime
10
11
  from pathlib import Path
@@ -86,7 +87,10 @@ class CloudFoundationsBase(ABC):
86
87
 
87
88
  def _create_session(self) -> boto3.Session:
88
89
  """Create boto3 session with appropriate configuration."""
89
- session_kwargs = {"profile_name": self.profile}
90
+ # Use environment variable first, then profile parameter, then default
91
+ profile = os.environ.get('AWS_PROFILE') or self.profile
92
+
93
+ session_kwargs = {"profile_name": profile}
90
94
  if self.region:
91
95
  session_kwargs["region_name"] = self.region
92
96
 
@@ -34,7 +34,7 @@ Example:
34
34
  print(f"Critical Issues: {report.summary.critical_issues}")
35
35
  ```
36
36
 
37
- Version: 0.7.5 (Latest with enhanced CLI integration, rust tooling, and modern dependency stack)
37
+ Version: 0.7.6 (Latest with enhanced CLI integration, rust tooling, and modern dependency stack)
38
38
  """
39
39
 
40
40
  # Core assessment engine
@@ -53,7 +53,7 @@ from runbooks.cfat.models import (
53
53
  from runbooks.cfat.runner import AssessmentRunner
54
54
 
55
55
  # Version info
56
- __version__ = "0.7.5"
56
+ __version__ = "0.7.6"
57
57
  __author__ = "CloudOps Runbooks Team"
58
58
 
59
59
  # Public API exports