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.
- {runbooks-0.7.5 → runbooks-0.7.7}/PKG-INFO +4 -2
- {runbooks-0.7.5 → runbooks-0.7.7}/pyproject.toml +51 -33
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/__init__.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/base.py +5 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/__init__.py +2 -2
- runbooks-0.7.7/src/runbooks/cfat/assessment/compliance.py +847 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/__init__.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/cli.py +63 -1
- runbooks-0.7.7/src/runbooks/finops/dashboard_runner.py +919 -0
- runbooks-0.7.7/src/runbooks/finops/helpers.py +786 -0
- runbooks-0.7.7/src/runbooks/finops/optimizer.py +822 -0
- runbooks-0.7.7/src/runbooks/inventory/collectors/aws_comprehensive.py +435 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/discovery.md +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/main.py +158 -12
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/__init__.py +2 -2
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/__init__.py +2 -2
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/acm_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/base.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cloudtrail_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cognito_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/dynamodb_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_unattached_ebs_volumes.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/kms_enable_key_rotation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/kms_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/lambda_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/multi_account.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/rds_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/requirements.txt +2 -2
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_block_public_access.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_enable_access_logging.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_encryption.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_remediation.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/__init__.py +1 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/PKG-INFO +4 -2
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/SOURCES.txt +15 -51
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/requires.txt +3 -1
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/top_level.txt +0 -1
- runbooks-0.7.5/.actrc +0 -6
- runbooks-0.7.5/.gitignore +0 -202
- runbooks-0.7.5/.gitmodules +0 -3
- runbooks-0.7.5/.pre-commit-config.yaml +0 -10
- runbooks-0.7.5/.python-version +0 -1
- runbooks-0.7.5/CHANGELOG.md +0 -38
- runbooks-0.7.5/Quickstart.md +0 -68
- runbooks-0.7.5/README.docs.md +0 -19
- runbooks-0.7.5/Taskfile.yaml +0 -750
- runbooks-0.7.5/docker-build-push.sh +0 -64
- runbooks-0.7.5/execute_landing_page.py +0 -181
- runbooks-0.7.5/output/dev/landing-page/css/styles.css +0 -551
- runbooks-0.7.5/output/dev/landing-page/index.html +0 -178
- runbooks-0.7.5/output/dev/landing-page/js/main.js +0 -100
- runbooks-0.7.5/references/.gitkeep +0 -0
- runbooks-0.7.5/reports/.gitkeep +0 -0
- runbooks-0.7.5/reports/figures/.gitkeep +0 -0
- runbooks-0.7.5/src/jupyter-agent/.env +0 -2
- runbooks-0.7.5/src/jupyter-agent/.env.template +0 -2
- runbooks-0.7.5/src/jupyter-agent/.gitattributes +0 -35
- runbooks-0.7.5/src/jupyter-agent/.gradio/certificate.pem +0 -31
- runbooks-0.7.5/src/jupyter-agent/README.md +0 -16
- runbooks-0.7.5/src/jupyter-agent/__main__.log +0 -8
- runbooks-0.7.5/src/jupyter-agent/app.py +0 -256
- runbooks-0.7.5/src/jupyter-agent/cloudops-agent.png +0 -0
- runbooks-0.7.5/src/jupyter-agent/ds-system-prompt.txt +0 -154
- runbooks-0.7.5/src/jupyter-agent/jupyter-agent.png +0 -0
- runbooks-0.7.5/src/jupyter-agent/llama3_template.jinja +0 -123
- runbooks-0.7.5/src/jupyter-agent/requirements.txt +0 -9
- runbooks-0.7.5/src/jupyter-agent/tmp/4ojbs8a02ir/jupyter-agent.ipynb +0 -68
- runbooks-0.7.5/src/jupyter-agent/tmp/cm5iasgpm3p/jupyter-agent.ipynb +0 -91
- runbooks-0.7.5/src/jupyter-agent/tmp/crqbsseag5/jupyter-agent.ipynb +0 -91
- runbooks-0.7.5/src/jupyter-agent/tmp/hohanq1u097/jupyter-agent.ipynb +0 -57
- runbooks-0.7.5/src/jupyter-agent/tmp/jns1sam29wm/jupyter-agent.ipynb +0 -53
- runbooks-0.7.5/src/jupyter-agent/tmp/jupyter-agent.ipynb +0 -27
- runbooks-0.7.5/src/jupyter-agent/utils.py +0 -409
- runbooks-0.7.5/src/main.python101.py +0 -115
- runbooks-0.7.5/src/runbooks/finops/dashboard_runner.py +0 -448
- runbooks-0.7.5/src/runbooks/finops/helpers.py +0 -355
- runbooks-0.7.5/src/runbooks/inventory/aws_organization.png +0 -0
- runbooks-0.7.5/uv.lock +0 -5257
- {runbooks-0.7.5 → runbooks-0.7.7}/LICENSE +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/MANIFEST.in +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/README.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/setup.cfg +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/conftest.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/__main__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/README.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/app.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/asana-import.csv +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/cfat-checks.csv +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/cfat.txt +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/collectors.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/jira-import.csv +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/runner.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/assessment/validators.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/cli.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/asana-import.csv +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cfat-checks.csv +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cfat.txt +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/checks-output.png +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cloudshell-console-run.png +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cloudshell-download.png +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/cloudshell-output.png +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/downloadfile.png +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/jira-import.csv +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/open-cloudshell.png +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/docs/report-header.png +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/models.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/package-lock.json +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/package.json +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/report.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/exporters.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/formatters.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/reporting/templates.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/run-assessment.sh +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/runner.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-cloudtrail-existence.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-config-existence.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-control-tower.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-ec2-existence.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-iam-users.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-legacy-cur.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-org-cloudformation.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/check-vpc-existence.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-asanaimport.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-backlog.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-jiraimport.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/create-report.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/define-account-type.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-enabled-org-policy-types.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-enabled-org-services.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-idc-info.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-da-accounts.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-details.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-member-accounts.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-org-ous.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/get-regions.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/actions/zip-assessment.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/src/types/index.d.ts +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_cli.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_integration.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_models.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tests/test_reporting.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/tsconfig.json +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/cfat/webpack.config.cjs +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/config.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/README.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/aws_client.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/cost_processor.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/main.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/profile_processor.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/types.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/finops/visualisations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/.gitignore +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/ArgumentsClass.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/LandingZone/delete_lz.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/README.md +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/common_test_data.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/common_test_functions.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/script_test_data.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/setup.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/src.py +0 -0
- /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
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_cfn_describe_stacks.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_ec2_describe_instances.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_lambda_list_functions.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_moto_integration_example.py +0 -0
- {runbooks-0.7.5/src/runbooks/inventory/tests → runbooks-0.7.7/src/runbooks/inventory/Tests}/test_org_list_accounts.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/account_class.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/all_my_instances_wrapper.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/aws_decorators.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/check_cloudtrail_compliance.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/check_controltower_readiness.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/check_landingzone_readiness.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/cloudtrail.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/aws_compute.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/aws_management.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/aws_networking.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/collectors/base.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/core/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/core/collector.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/core/formatter.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/draw_org_structure.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/ec2_vpc_utils.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_cfn_drift_detection.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_cfn_orphaned_stacks.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_cfn_stackset_drift.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_ec2_security_groups.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_landingzone_versions.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/find_vpc_flow_logs.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/inventory.sh +0 -0
- /runbooks-0.7.5/src/runbooks/inventory/Inventory_Modules.py → /runbooks-0.7.7/src/runbooks/inventory/inventory_modules.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stacks.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stackset_operation_results.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stackset_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_cfn_stacksets.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_config_recorders_delivery_channels.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ds_directories.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ec2_availability_zones.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ec2_ebs_volumes.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ec2_instances.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ecs_clusters_and_tasks.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_elbs_load_balancers.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_enis_network_interfaces.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_guardduty_detectors.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_iam_policies.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_iam_roles.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_iam_saml_providers.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_lambda_functions.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_org_accounts.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_org_accounts_users.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_rds_db_instances.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_route53_hosted_zones.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_servicecatalog_provisioned_products.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_sns_topics.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_ssm_parameters.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_vpc_subnets.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/list_vpcs.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/account.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/inventory.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/models/resource.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/recover_cfn_stack_ids.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/requirements.txt +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/run_on_multi_accounts.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/aws_helpers.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/threading_utils.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/utils/validation.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/inventory/verify_ec2_security_groups.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/base.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/cloudformation_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/cloudwatch_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/dynamodb_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/ec2_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/iam_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/s3_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/tagging_operations.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/operate/tags.json +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/CLAUDE.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/DOME9.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/README.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/Tests/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/Tests/update_policy.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/acm_cert_expired_unused.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/api_gateway_list.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cloudtrail_s3_modifications.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cognito_active_users.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/cognito_user_password_reset.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/commons.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/dynamodb_optimize.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/dynamodb_server_side_encryption.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_public_ips.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_subnet_disable_auto_ip_assignment.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/ec2_unused_security_groups.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/lambda_list.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/rds_instance_list.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/rds_snapshot_list.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_bucket_public_access.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_disable_static_website_hosting.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_downloader.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_force_ssl_secure_policy.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_list.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/s3_object_search.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/scan_for_phrase.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/remediation/workspaces_list.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/README.md +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/account_level_bucket_public_access.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/alternate_contacts.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/bucket_public_access.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/cloudwatch_alarm_configuration.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/direct_attached_policy.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/guardduty_enabled.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/iam_password_policy.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/iam_user_mfa.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/multi_region_instance_usage.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/multi_region_trail.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/root_access_key.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/root_mfa.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/root_usage.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/trail_enabled.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/checklist/trusted_advisor.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/config-origin.json +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/config.json +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/permission.json +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_generator.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_en.html +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_jp.html +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_kr.html +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/report_template_vn.html +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/run_script.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/security_baseline_tester.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/common.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/enums.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/language.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/level_const.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/security/utils/permission_list.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/utils/__init__.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks/utils/logger.py +0 -0
- {runbooks-0.7.5 → runbooks-0.7.7}/src/runbooks.egg-info/dependency_links.txt +0 -0
- {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.
|
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.
|
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.
|
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",
|
53
|
-
"werkzeug>=3.1.0",
|
54
|
-
"markdown>=3.7.0",
|
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.
|
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",
|
65
|
-
"reportlab>=3.6.1",
|
66
|
-
"requests>=2.32.0",
|
67
|
-
"packaging>=21.0",
|
68
|
-
"pyyaml>=6.0.2",
|
69
|
-
|
70
|
-
|
71
|
-
"
|
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
|
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=
|
198
|
+
"--maxfail=5",
|
203
199
|
"--durations=10",
|
204
|
-
|
205
|
-
#
|
206
|
-
|
207
|
-
|
208
|
-
|
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.
|
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
|
-
|
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.
|
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.
|
56
|
+
__version__ = "0.7.6"
|
57
57
|
__author__ = "CloudOps Runbooks Team"
|
58
58
|
|
59
59
|
# Public API exports
|