thothctl 0.18.2__tar.gz → 0.18.4__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.
- {thothctl-0.18.2 → thothctl-0.18.4}/PKG-INFO +1 -1
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_project_iac.md +51 -6
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/space_configuration.md +8 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/space_management.md +23 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/project/iac.py +12 -2
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/commands/iac.py +14 -6
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/org_policy_loader.py +33 -1
- thothctl-0.18.4/src/thothctl/version.py +2 -0
- thothctl-0.18.2/src/thothctl/version.py +0 -2
- {thothctl-0.18.2 → thothctl-0.18.4}/.devcontainer/Dockerfile +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/.devcontainer/README.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/.devcontainer/devcontainer.json +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/.github/workflows/docs.yml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/.github/workflows/python-publish.yml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/.gitignore +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/.pre-commit-config.yaml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/.readthedocs.yaml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/Dockerfile +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/LICENSE +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/README.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/catalog/catalog-info.yaml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/dashboard/README.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/ai-review/README.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/ai-review/agentcore.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/blast-radius.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_environment.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_space.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/cost-analysis.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/customizing_rules.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/deps-advanced.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/deps.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/drift-detection.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/plan.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/customizing_docs.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/document_iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/document_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/use_cases.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/generate/generate_components.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/generate/generate_stacks.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/init/init.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/init/init_space.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/inventory_iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/inventory_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/list/list_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/list/list_projects.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/list/list_spaces.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/mcp/mcp.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_cleanup.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_convert.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_upgrade.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/use_cases.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/remove/remove_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/remove/remove_project.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/remove/remove_space.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/scan_iac.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/scan_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/use_cases.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/concepts.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/cross_platform_support.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/framework_architecture.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/infrasctructure_composition.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/policy_as_code.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/roadmap_fdi.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/software_architecture.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/README.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/ai_dlc.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/check_command.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/inventory_command.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/tasks/create_template.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/iac_devsecops_use_case.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/automate_tasks_command.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/commnad_init.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/create_component.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/create_inventory.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/doc_command.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/document_project_code.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/framework/thothforge-framework.svg +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/framework/thothfr.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/iacpeerbot_summary.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/icon-light.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/icon.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/init_project.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/inventory_command.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/notification_img.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/report_dependencies.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/report_dependencies_summary.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/restore_inventory_version.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/reuse_project_pattern.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/scan_code.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/scan_command.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/stable/scan_report_example.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/sync_wk_command.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/transform_command.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/update_inventory_version.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/validate_command.png +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/validate_environment.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/validate_project.gif +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/includes/abbreviations.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/index.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/installation/linux_installation.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/installation/windows_installation.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/javascripts/tablesort.js +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/mcp.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/navigation.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/quick_start.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/requirements.txt +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/stylesheets/extra-enhanced.css +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/stylesheets/extra.css +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/telemetry.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/cli_commands_audit.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/for_developers.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/for_platform_engineers.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/github_templates.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/template_engine.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/linux_troubleshooting.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/macos_troubleshooting.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/troubleshooting.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/windows_troubleshooting.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/mkdocs.yaml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/pyproject.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/scripts/run_mcp_server.sh +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/application/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/autocomplete.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/decide.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/history.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/override.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/report.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/environment.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/iac.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/project.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/commands/iac.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/commands/component.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/commands/stacks.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/env.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/project.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/space.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/template.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/commands/check.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/commands/projects.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/commands/spaces.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/register.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/server.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/status.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/stop.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/cleanup.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/convert.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/upgrade.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/project.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/space.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/commands/iac.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/activate.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/show.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/update.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/upgrade/cli.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf.setup.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_home.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_module.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_project.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/common.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/constants.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/default_values.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/defaults.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/models.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/settings.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/template_config.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/template_configs.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/templates.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/validation.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/cli_ui.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/commands.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/config.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/github/get_github.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/pattern_names.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/logger.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/telemetry.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/version_tools.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/domain/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/domain/interfaces/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/domain/models/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/mcp/README.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/mcp/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/mcp/server.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/ai_agent.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/config/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/decision_engine.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/main.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/memory.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/orchestrator.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/safety/safety_guard.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/strands_agent.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/tracing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/environment/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/environment/check_environment.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/check_origin_version.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/check_project_structure.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/models.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/risk_assessment.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/rule_merger.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/dashboard/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/dashboard/data_loader.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/create_documentation.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/files_content.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/files_scan.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/iac_documentation.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/iac_grunt_info.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/config.yaml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_code.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_component.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_template.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/files_content.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/environment/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/environment/install_tools.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/project/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/project/project.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/example_space.toml +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/local_registry.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/space.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/changelog_parser.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/inventory_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/models.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/report_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/update_versions.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/version_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/README.md +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/simple_http_server.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/stdio_server.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/cleanup/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/conversion_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/get_project_data.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/post_init.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/project_converter.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/project_defaults.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/upgrade/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/compliance_review.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/import_reports.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/models.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/report_parser.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/sarif_output.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scan_history.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scan_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/checkov.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/kics.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/opa.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/scanners.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/trivy.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/templates/reports/inventory_report.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/templates/reports/inventory_report.js +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/templates/unified_report_styles.css +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/banner.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/create_html_reports.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/delete_directory.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/fix_report_styling.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/render_scan_report.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/report_html_utils.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/dashboard.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/index_report.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/individual_report.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/simple_report.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/crypto.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/modules_ops/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/platform_utils.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/template_loader.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/thoth_colors.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/wellcome_banner.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/conftest.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_agentcore_entrypoint.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_aws_pricing_client.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_azure_devops_pr_comments.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_bedrock_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cdk_language_selection.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_context_steering.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cost_analyzer.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cost_models.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cost_pr_comments.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_dashboard_loading_fix.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_dashboard_service.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_drift.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_drift_detection.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_ec2_pricing.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_github_pr_comments.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_iac_cost_integration.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_inventory_pr_comments.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_kics_scanner.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_mermaid_edge_labels.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_new_cost_providers.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_parallel_scan.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_platform_utils.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_pr_comment_publisher.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_provider_source_url_fix.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_provider_versions.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_scan_pr_comments.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_space_command.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_space_management.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_stack_optimizer.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_template_url_fix.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_terragrunt_parser.py +0 -0
- {thothctl-0.18.2 → thothctl-0.18.4}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: thothctl
|
|
3
|
-
Version: 0.18.
|
|
3
|
+
Version: 0.18.4
|
|
4
4
|
Summary: A CLI for Developer Control Plane. Accelerate your cloud IaC deployments.
|
|
5
5
|
Project-URL: SourceCode, https://github.com/thothforge/thothctl
|
|
6
6
|
Project-URL: HomePage, https://github.com/thothforge/thothctl
|
|
@@ -19,6 +19,7 @@ Options:
|
|
|
19
19
|
Project type: stack or module [default: stack]
|
|
20
20
|
--org-policy TEXT Organization policy source (Git URL or local path)
|
|
21
21
|
--enforcement [soft|hard] Enforcement mode: soft (report) or hard (fail pipeline)
|
|
22
|
+
--skip-org-policy Skip organizational policy check (project exceptions)
|
|
22
23
|
--help Show this message and exit.
|
|
23
24
|
```
|
|
24
25
|
|
|
@@ -26,9 +27,52 @@ Options:
|
|
|
26
27
|
|
|
27
28
|
ThothCTL can enforce organizational standards that projects **cannot override**. This ensures all projects in your organization follow the same structure, naming, and tagging rules — regardless of what individual `.thothcf.toml` files contain.
|
|
28
29
|
|
|
30
|
+
### Policy Resolution Order
|
|
31
|
+
|
|
32
|
+
ThothCTL resolves the org policy source in this order:
|
|
33
|
+
|
|
34
|
+
| Priority | Source | Example |
|
|
35
|
+
|----------|--------|---------|
|
|
36
|
+
| 1 | `--org-policy` flag | `--org-policy https://github.com/myorg/policies.git` |
|
|
37
|
+
| 2 | `THOTH_ORG_POLICY` env var | `export THOTH_ORG_POLICY=https://github.com/myorg/policies.git` |
|
|
38
|
+
| 3 | **Active space's `governance.policy_repo`** | Set via `thothctl space update <name> --policy-repo <url>` |
|
|
39
|
+
| 4 | None (skip org policy) | No org rules applied |
|
|
40
|
+
|
|
41
|
+
### Space Integration
|
|
42
|
+
|
|
43
|
+
When a space is active and has a `policy_repo` configured, organizational rules are loaded **automatically** — no flags or env vars needed:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 1. Configure your space with the org policy repo
|
|
47
|
+
thothctl space update platform-team --policy-repo https://github.com/myorg/org-policies.git
|
|
48
|
+
|
|
49
|
+
# 2. Activate the space
|
|
50
|
+
thothctl space activate platform-team
|
|
51
|
+
|
|
52
|
+
# 3. Run check — org rules load automatically
|
|
53
|
+
thothctl check project iac -p stack
|
|
54
|
+
|
|
55
|
+
# Output:
|
|
56
|
+
# 📜 Loading org policy from: /home/user/.thothcf/.policy_cache/abc123
|
|
57
|
+
# ✅ Organization policy check passed
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Skipping Org Policy (Project Exceptions)
|
|
61
|
+
|
|
62
|
+
Projects that have explicit exceptions from organizational rules can skip the check:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
thothctl check project iac -p stack --skip-org-policy
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
This is useful for:
|
|
69
|
+
- Experimental/prototype projects not yet conforming to standards
|
|
70
|
+
- Legacy projects with approved exceptions
|
|
71
|
+
- Third-party imported projects
|
|
72
|
+
|
|
29
73
|
### How It Works
|
|
30
74
|
|
|
31
|
-
1.
|
|
75
|
+
1. ThothCTL resolves the policy source (see resolution order above)
|
|
32
76
|
2. The repo contains `rules/base.toml` + `rules/<project_type>.toml`
|
|
33
77
|
3. ThothCTL merges org rules with project rules — **mandatory org rules cannot be weakened**
|
|
34
78
|
4. Violations are reported with enforcement level (mandatory = fail, recommended = warn)
|
|
@@ -36,7 +80,11 @@ ThothCTL can enforce organizational standards that projects **cannot override**.
|
|
|
36
80
|
### Usage
|
|
37
81
|
|
|
38
82
|
```bash
|
|
39
|
-
#
|
|
83
|
+
# Automatic via active space (preferred)
|
|
84
|
+
thothctl space activate platform-team
|
|
85
|
+
thothctl check project iac --enforcement hard
|
|
86
|
+
|
|
87
|
+
# Via env var (CI/CD)
|
|
40
88
|
export THOTH_ORG_POLICY=https://github.com/myorg/org-policies.git
|
|
41
89
|
thothctl check project iac --enforcement hard
|
|
42
90
|
|
|
@@ -44,11 +92,8 @@ thothctl check project iac --enforcement hard
|
|
|
44
92
|
export THOTH_ORG_POLICY=https://github.com/myorg/org-policies.git@v1.0
|
|
45
93
|
thothctl check project iac --enforcement hard
|
|
46
94
|
|
|
47
|
-
# Via flag
|
|
95
|
+
# Via flag (explicit override)
|
|
48
96
|
thothctl check project iac --org-policy /path/to/org-policies --enforcement hard
|
|
49
|
-
|
|
50
|
-
# Local path (development)
|
|
51
|
-
thothctl check project iac --org-policy ../org-iac-policies
|
|
52
97
|
```
|
|
53
98
|
|
|
54
99
|
### Enforcement Levels
|
|
@@ -111,8 +111,16 @@ Update an existing space's configuration:
|
|
|
111
111
|
|
|
112
112
|
```bash
|
|
113
113
|
thothctl space update my-space --vcs-provider github --orchestration-tool terragrunt
|
|
114
|
+
thothctl space update my-space --policy-repo https://github.com/myorg/iac-policies.git
|
|
114
115
|
```
|
|
115
116
|
|
|
117
|
+
Available options:
|
|
118
|
+
- `-d, --description` — New description
|
|
119
|
+
- `-vcs, --vcs-provider` — Version control provider (`azure_repos`, `github`, `gitlab`)
|
|
120
|
+
- `-ot, --orchestration-tool` — Orchestration tool (`terragrunt`, `terramate`, `none`)
|
|
121
|
+
- `-tr, --terraform-registry` — Terraform registry URL
|
|
122
|
+
- `-pr, --policy-repo` — Git repository URL or local path for organization-level IaC policies
|
|
123
|
+
|
|
116
124
|
### Deleting a Space
|
|
117
125
|
|
|
118
126
|
You can delete a space using the `thothctl remove space` command:
|
|
@@ -68,6 +68,29 @@ Usage: thothctl space show SPACE_NAME
|
|
|
68
68
|
Show space configuration summary
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
+
### Update Space Configuration
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Usage: thothctl space update SPACE_NAME [OPTIONS]
|
|
75
|
+
|
|
76
|
+
Update an existing space's configuration
|
|
77
|
+
|
|
78
|
+
Options:
|
|
79
|
+
-d, --description TEXT New description for the space
|
|
80
|
+
-vcs, --vcs-provider [azure_repos|github|gitlab]
|
|
81
|
+
-ot, --orchestration-tool [terragrunt|terramate|none]
|
|
82
|
+
-tr, --terraform-registry TEXT Terraform registry URL
|
|
83
|
+
-pr, --policy-repo TEXT Git URL or path for IaC policies
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Activate a Space
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Usage: thothctl space activate SPACE_NAME
|
|
90
|
+
|
|
91
|
+
Set a space as the active context
|
|
92
|
+
```
|
|
93
|
+
|
|
71
94
|
### List Projects with Space Information
|
|
72
95
|
|
|
73
96
|
```
|
|
@@ -188,7 +188,7 @@ class CheckProjectIaCCommand(ClickCommand):
|
|
|
188
188
|
|
|
189
189
|
try:
|
|
190
190
|
# Run org policy check if source is provided
|
|
191
|
-
org_violations = self._check_org_policy(directory, project_type, org_policy)
|
|
191
|
+
org_violations = self._check_org_policy(directory, project_type, org_policy, skip_org=kwargs.get('skip_org_policy', False))
|
|
192
192
|
|
|
193
193
|
# Capture stdout to format it nicely
|
|
194
194
|
captured_output = io.StringIO()
|
|
@@ -245,8 +245,12 @@ class CheckProjectIaCCommand(ClickCommand):
|
|
|
245
245
|
self.logger.error(f"Failed to execute IaC project check: {str(e)}")
|
|
246
246
|
raise
|
|
247
247
|
|
|
248
|
-
def _check_org_policy(self, directory: str, project_type: str, org_policy=None):
|
|
248
|
+
def _check_org_policy(self, directory: str, project_type: str, org_policy=None, skip_org: bool = False):
|
|
249
249
|
"""Check project against organizational policy if available."""
|
|
250
|
+
if skip_org:
|
|
251
|
+
self.console.print("[dim]📜 Org policy check skipped (--skip-org-policy)[/dim]")
|
|
252
|
+
return None
|
|
253
|
+
|
|
250
254
|
from .....services.check.org_policy_loader import get_org_policy_path, resolve_rules_dir
|
|
251
255
|
from .....services.check.rule_merger import load_org_rules, merge_with_project, evaluate
|
|
252
256
|
|
|
@@ -355,4 +359,10 @@ cli = CheckProjectIaCCommand.as_click_command(
|
|
|
355
359
|
type=click.Choice(["soft", "hard"], case_sensitive=False),
|
|
356
360
|
default="soft",
|
|
357
361
|
),
|
|
362
|
+
click.option(
|
|
363
|
+
"--skip-org-policy",
|
|
364
|
+
is_flag=True,
|
|
365
|
+
default=False,
|
|
366
|
+
help="Skip organizational policy check (use when project has explicit exceptions)",
|
|
367
|
+
),
|
|
358
368
|
)
|
|
@@ -52,6 +52,7 @@ class IaCInvCommand(ClickCommand):
|
|
|
52
52
|
framework_type: str = "auto",
|
|
53
53
|
complete: bool = False,
|
|
54
54
|
check_providers: bool = False,
|
|
55
|
+
check_provider_versions: bool = False,
|
|
55
56
|
check_schema_compatibility: bool = False,
|
|
56
57
|
provider_tool: str = "tofu",
|
|
57
58
|
project_name: Optional[str] = None,
|
|
@@ -101,7 +102,7 @@ class IaCInvCommand(ClickCommand):
|
|
|
101
102
|
framework_type=framework_type,
|
|
102
103
|
complete=complete,
|
|
103
104
|
check_providers=check_providers,
|
|
104
|
-
check_provider_versions=
|
|
105
|
+
check_provider_versions=check_provider_versions,
|
|
105
106
|
check_schema_compatibility=check_schema_compatibility,
|
|
106
107
|
provider_tool=provider_tool,
|
|
107
108
|
project_name=project_name,
|
|
@@ -181,8 +182,8 @@ class IaCInvCommand(ClickCommand):
|
|
|
181
182
|
self.ui.print_info("🔍 Schema compatibility analysis enabled - this may take additional time")
|
|
182
183
|
|
|
183
184
|
with self.ui.status_spinner("Creating infrastructure inventory..."):
|
|
184
|
-
#
|
|
185
|
-
effective_check_providers = check_providers or
|
|
185
|
+
# Enable provider checking if provider versions are requested
|
|
186
|
+
effective_check_providers = check_providers or check_provider_versions
|
|
186
187
|
|
|
187
188
|
inventory = await self.inventory_service.create_inventory(
|
|
188
189
|
source_directory=source_dir,
|
|
@@ -192,7 +193,7 @@ class IaCInvCommand(ClickCommand):
|
|
|
192
193
|
framework_type=framework_type,
|
|
193
194
|
complete=complete,
|
|
194
195
|
check_providers=effective_check_providers,
|
|
195
|
-
check_provider_versions=
|
|
196
|
+
check_provider_versions=check_provider_versions,
|
|
196
197
|
check_schema_compatibility=check_schema_compatibility,
|
|
197
198
|
provider_tool=provider_tool,
|
|
198
199
|
project_name=project_name,
|
|
@@ -510,7 +511,7 @@ cli = IaCInvCommand.as_click_command(
|
|
|
510
511
|
"--check-versions",
|
|
511
512
|
is_flag=True,
|
|
512
513
|
default=False,
|
|
513
|
-
help="Check latest versions for modules
|
|
514
|
+
help="Check latest versions for modules",
|
|
514
515
|
),
|
|
515
516
|
click.option(
|
|
516
517
|
"-updep",
|
|
@@ -557,7 +558,14 @@ cli = IaCInvCommand.as_click_command(
|
|
|
557
558
|
"--check-providers",
|
|
558
559
|
is_flag=True,
|
|
559
560
|
default=False,
|
|
560
|
-
help="Check and report provider information for each stack
|
|
561
|
+
help="Check and report provider information for each stack",
|
|
562
|
+
),
|
|
563
|
+
click.option(
|
|
564
|
+
"--check-provider-versions",
|
|
565
|
+
"-cpv",
|
|
566
|
+
is_flag=True,
|
|
567
|
+
default=False,
|
|
568
|
+
help="Check latest versions for providers (can be used independently or with --check-versions)",
|
|
561
569
|
),
|
|
562
570
|
click.option(
|
|
563
571
|
"--check-schema-compatibility",
|
|
@@ -16,12 +16,17 @@ def get_org_policy_path(org_policy: Optional[str] = None) -> Optional[str]:
|
|
|
16
16
|
Resolution:
|
|
17
17
|
1. Explicit --org-policy argument
|
|
18
18
|
2. THOTH_ORG_POLICY env var
|
|
19
|
-
3.
|
|
19
|
+
3. Active space's governance.policy_repo
|
|
20
|
+
4. None (no org policy)
|
|
20
21
|
|
|
21
22
|
Returns:
|
|
22
23
|
Absolute path to cached org policy repo, or None.
|
|
23
24
|
"""
|
|
24
25
|
source = org_policy or os.environ.get("THOTH_ORG_POLICY")
|
|
26
|
+
|
|
27
|
+
if not source:
|
|
28
|
+
source = _get_active_space_policy_repo()
|
|
29
|
+
|
|
25
30
|
if not source:
|
|
26
31
|
return None
|
|
27
32
|
|
|
@@ -36,6 +41,33 @@ def get_org_policy_path(org_policy: Optional[str] = None) -> Optional[str]:
|
|
|
36
41
|
return None
|
|
37
42
|
|
|
38
43
|
|
|
44
|
+
def _get_active_space_policy_repo() -> Optional[str]:
|
|
45
|
+
"""Load policy_repo from the active space configuration."""
|
|
46
|
+
try:
|
|
47
|
+
import toml
|
|
48
|
+
|
|
49
|
+
active_file = Path.home() / ".thothcf" / "active_space"
|
|
50
|
+
if not active_file.exists():
|
|
51
|
+
return None
|
|
52
|
+
|
|
53
|
+
space_name = active_file.read_text(encoding="utf-8").strip()
|
|
54
|
+
if not space_name:
|
|
55
|
+
return None
|
|
56
|
+
|
|
57
|
+
config_path = Path.home() / ".thothcf" / "spaces.toml"
|
|
58
|
+
if not config_path.exists():
|
|
59
|
+
return None
|
|
60
|
+
|
|
61
|
+
config = toml.load(config_path)
|
|
62
|
+
space = config.get("spaces", {}).get(space_name, {})
|
|
63
|
+
policy_repo = space.get("governance", {}).get("policy_repo", "")
|
|
64
|
+
|
|
65
|
+
return policy_repo if policy_repo else None
|
|
66
|
+
except Exception as e:
|
|
67
|
+
logger.debug(f"Failed to load active space policy repo: {e}")
|
|
68
|
+
return None
|
|
69
|
+
|
|
70
|
+
|
|
39
71
|
def resolve_rules_dir(org_path: str) -> Optional[str]:
|
|
40
72
|
"""Get the rules/ directory from an org policy repo."""
|
|
41
73
|
rules_dir = os.path.join(org_path, "rules")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/ai-review/agent_specifications.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/cost-analysis-quick-reference.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/frameworks/terraform.md
RENAMED
|
File without changes
|
{thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/frameworks/terragrunt.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/platform_engineering_templates.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|