ic-code 1.2.5__tar.gz → 1.2.6__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.
- {ic_code-1.2.5/src/ic_code.egg-info → ic_code-1.2.6}/PKG-INFO +25 -36
- ic_code-1.2.6/config/default.yaml +95 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/pyproject.toml +30 -43
- ic_code-1.2.6/requirements.txt +57 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/dependency_mapper.py +2 -13
- {ic_code-1.2.5 → ic_code-1.2.6}/setup.py +28 -39
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gather_env.py +0 -24
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gcp_monitoring.py +0 -4
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gcp_utils.py +9 -108
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/slack.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/utils.py +73 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/__init__.py +2 -7
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/cli.py +13 -51
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/commands/config.py +303 -462
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/commands/security.py +34 -1
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/compat/__init__.py +0 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/compat/cli.py +1 -22
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/compat/common.py +1 -43
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/installer.py +1 -28
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/manager.py +24 -542
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/migration.py +70 -48
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/schema.py +0 -94
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/secrets.py +1 -26
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/security.py +51 -15
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/__init__.py +1 -7
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/dependency_validator.py +1 -17
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/logging.py +5 -8
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/platform_discovery.py +7 -16
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/session.py +4 -9
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/cloudfront/info.py +2 -4
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/codepipeline/build.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/codepipeline/deploy.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/info.py +4 -17
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/tag_check.py +6 -15
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/service.py +3 -14
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/task.py +3 -14
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/addons.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/fargate.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/nodes.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/pods.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/update_config.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/fargate/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/tag_check.py +6 -15
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/msk/broker.py +3 -14
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/msk/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/nat/list_tags.py +7 -16
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/nat/tag_check.py +7 -19
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/tag_check.py +9 -37
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/tag_check.py +6 -15
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/sg/info.py +183 -129
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/tag_check.py +10 -37
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpn/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/account/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/client.py +1 -1
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/dns/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/rules/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/traffic/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/waf/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/zone/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/billing/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/compute/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/firewall/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/functions/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/gke/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/lb/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/run/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/sql/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/storage/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/vpc/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/cost/credit.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/cost/usage.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/info/oci_info.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/lb/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/nsg/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/obj/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/policy/info.py +2 -8
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/policy/search.py +3 -9
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vcn/info.py +2 -8
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vm/info.py +33 -31
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/volume/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/auto/scan.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/auto_ssh.py +4 -4
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/server/info.py +4 -10
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/server_info.py +3 -9
- {ic_code-1.2.5 → ic_code-1.2.6/src/ic_code.egg-info}/PKG-INFO +25 -36
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic_code.egg-info/SOURCES.txt +2 -68
- ic_code-1.2.6/src/ic_code.egg-info/requires.txt +42 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic_code.egg-info/top_level.txt +0 -1
- ic_code-1.2.5/docs/azure/README.md +0 -27
- ic_code-1.2.5/docs/mcp_integration.md +0 -231
- ic_code-1.2.5/docs/ncp/README.md +0 -26
- ic_code-1.2.5/docs/ncp/configuration.md +0 -297
- ic_code-1.2.5/docs/ncp/installation.md +0 -152
- ic_code-1.2.5/docs/ncp/troubleshooting.md +0 -406
- ic_code-1.2.5/docs/ncp/usage.md +0 -508
- ic_code-1.2.5/docs/ncpgov/README.md +0 -26
- ic_code-1.2.5/docs/ncpgov/installation.md +0 -251
- ic_code-1.2.5/requirements.txt +0 -80
- ic_code-1.2.5/scripts/ncp_security_scanner.py +0 -649
- ic_code-1.2.5/scripts/validate_ncp_security.py +0 -329
- ic_code-1.2.5/src/common/azure_utils.py +0 -308
- ic_code-1.2.5/src/common/ncp_security_utils.py +0 -602
- ic_code-1.2.5/src/common/ncp_utils.py +0 -795
- ic_code-1.2.5/src/common/ncpgov_utils.py +0 -542
- ic_code-1.2.5/src/ic/cli_backup.py +0 -2136
- ic_code-1.2.5/src/ic/commands/migration.py +0 -509
- ic_code-1.2.5/src/ic/core/mcp_manager.py +0 -862
- ic_code-1.2.5/src/ic/migration/__init__.py +0 -50
- ic_code-1.2.5/src/ic/migration/manager.py +0 -422
- ic_code-1.2.5/src/ic/migration/post_validation.py +0 -971
- ic_code-1.2.5/src/ic/migration/rollback.py +0 -793
- ic_code-1.2.5/src/ic/migration/validation.py +0 -843
- ic_code-1.2.5/src/ic/platforms/azure/README.md +0 -133
- ic_code-1.2.5/src/ic/platforms/azure/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/aci/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/aci/info.py +0 -519
- ic_code-1.2.5/src/ic/platforms/azure/aks/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/aks/info.py +0 -459
- ic_code-1.2.5/src/ic/platforms/azure/lb/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/lb/info.py +0 -560
- ic_code-1.2.5/src/ic/platforms/azure/nsg/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/nsg/info.py +0 -456
- ic_code-1.2.5/src/ic/platforms/azure/storage/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/storage/info.py +0 -491
- ic_code-1.2.5/src/ic/platforms/azure/vm/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/vm/info.py +0 -483
- ic_code-1.2.5/src/ic/platforms/azure/vm/mock_data.json +0 -35
- ic_code-1.2.5/src/ic/platforms/azure/vnet/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/azure/vnet/info.py +0 -434
- ic_code-1.2.5/src/ic/platforms/azure/vnet/mock_data.json +0 -46
- ic_code-1.2.5/src/ic/platforms/ncp/__init__.py +0 -2
- ic_code-1.2.5/src/ic/platforms/ncp/client.py +0 -686
- ic_code-1.2.5/src/ic/platforms/ncp/ec2/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncp/ec2/info.py +0 -376
- ic_code-1.2.5/src/ic/platforms/ncp/rds/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncp/rds/info.py +0 -442
- ic_code-1.2.5/src/ic/platforms/ncp/s3/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncp/s3/info.py +0 -439
- ic_code-1.2.5/src/ic/platforms/ncp/sg/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncp/sg/info.py +0 -516
- ic_code-1.2.5/src/ic/platforms/ncp/vpc/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncp/vpc/info.py +0 -543
- ic_code-1.2.5/src/ic/platforms/ncpgov/__init__.py +0 -2
- ic_code-1.2.5/src/ic/platforms/ncpgov/client.py +0 -395
- ic_code-1.2.5/src/ic/platforms/ncpgov/ec2/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncpgov/ec2/info.py +0 -438
- ic_code-1.2.5/src/ic/platforms/ncpgov/rds/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncpgov/rds/info.py +0 -503
- ic_code-1.2.5/src/ic/platforms/ncpgov/s3/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncpgov/s3/info.py +0 -455
- ic_code-1.2.5/src/ic/platforms/ncpgov/sg/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncpgov/sg/info.py +0 -505
- ic_code-1.2.5/src/ic/platforms/ncpgov/vpc/__init__.py +0 -1
- ic_code-1.2.5/src/ic/platforms/ncpgov/vpc/info.py +0 -482
- ic_code-1.2.5/src/ic_code.egg-info/requires.txt +0 -53
- ic_code-1.2.5/src/mcp/__init__.py +0 -10
- ic_code-1.2.5/src/mcp/gcp_connector.py +0 -246
- {ic_code-1.2.5 → ic_code-1.2.6}/LICENSE +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/MANIFEST.in +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/SECURITY.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/configuration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/troubleshooting.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/usage.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/aws/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/aws/aws_cli_prd.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/aws/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/ci-workflow-guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/cloudflare_configuration_example.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/config_migration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/deployment.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/cleanup_summary.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/development_guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/import_patterns.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/migration_guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/gcp/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/general/configuration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/migration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/migration_guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/oci/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/oci/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/release-guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/security.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/ssh/configuration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/troubleshooting.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/docs/user_guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/analysis_summary.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/bump-version.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/ci-detect-platforms.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/ci-generate-matrix.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/cli_usage_analysis.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/deploy.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/final_validation_and_documentation.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/fix_consolidated_imports.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/migration_execution_and_validation.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/oracle-policy/user_policy.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/performance_optimization.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/setup_venv.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/test-ci-detection.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/unset_env.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/validate_config.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/scripts/validate_dependencies.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/setup.cfg +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gcp_config_validator.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/log.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/common/progress_decorator.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/commands/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/cleanup.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/docs_organizer.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/external.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/migration_utils.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/path_manager.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/silence_logging.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/fargate/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/msk/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/nat/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/profile/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/profile/info.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/sg/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpn/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/account/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/rules/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/traffic/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/waf/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/zone/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/billing/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/compute/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/functions/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/gke/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/lb/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/run/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/sql/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/storage/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/common/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/common/utils.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/compartment/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/compartment/info.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/cost/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/info/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/lb/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/nsg/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/obj/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/policy/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vcn/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vm/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/volume/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/auto/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/server/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/config.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/detector.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/guidance.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/hooks.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/patterns.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/scanner.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic_code.egg-info/dependency_links.txt +0 -0
- {ic_code-1.2.5 → ic_code-1.2.6}/src/ic_code.egg-info/entry_points.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ic-code
|
|
3
|
-
Version: 1.2.
|
|
4
|
-
Summary: Infrastructure CLI tool for managing AWS,
|
|
3
|
+
Version: 1.2.6
|
|
4
|
+
Summary: Infrastructure CLI tool for managing AWS, GCP, OCI, CloudFlare, SSH, and more
|
|
5
5
|
Home-page: https://github.com/dgr009/ic
|
|
6
6
|
Author: SangYun Kim
|
|
7
7
|
Author-email: sykim <cruiser594@gmail.com>
|
|
@@ -9,7 +9,7 @@ Project-URL: Homepage, https://github.com/dgr009/ic
|
|
|
9
9
|
Project-URL: Bug Reports, https://github.com/dgr009/ic/issues
|
|
10
10
|
Project-URL: Source, https://github.com/dgr009/ic
|
|
11
11
|
Project-URL: Documentation, https://github.com/dgr009/ic#readme
|
|
12
|
-
Keywords: cli,infrastructure,aws,oci,gcp,
|
|
12
|
+
Keywords: cli,infrastructure,aws,oci,gcp,cloudflare,ssh,devops,multi-cloud
|
|
13
13
|
Classifier: Development Status :: 5 - Production/Stable
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Intended Audience :: System Administrators
|
|
@@ -28,12 +28,12 @@ Classifier: Environment :: Console
|
|
|
28
28
|
Requires-Python: >=3.9,<3.15
|
|
29
29
|
Description-Content-Type: text/markdown
|
|
30
30
|
License-File: LICENSE
|
|
31
|
-
Requires-Dist: boto3<2.0.0,>=1.
|
|
32
|
-
Requires-Dist: botocore<2.0.0,>=1.
|
|
31
|
+
Requires-Dist: boto3<2.0.0,>=1.34.0
|
|
32
|
+
Requires-Dist: botocore<2.0.0,>=1.34.0
|
|
33
33
|
Requires-Dist: oci<3.0.0,>=2.149.0
|
|
34
|
-
Requires-Dist: requests<3.0.0,>=2.
|
|
34
|
+
Requires-Dist: requests<3.0.0,>=2.31.0
|
|
35
35
|
Requires-Dist: kubernetes<32.0.0,>=29.0.0
|
|
36
|
-
Requires-Dist: awscli<2.0.0,>=1.
|
|
36
|
+
Requires-Dist: awscli<2.0.0,>=1.32.0
|
|
37
37
|
Requires-Dist: google-cloud-compute<2.0.0,>=1.36.0
|
|
38
38
|
Requires-Dist: google-cloud-container<3.0.0,>=2.44.0
|
|
39
39
|
Requires-Dist: google-cloud-storage<3.0.0,>=2.18.0
|
|
@@ -44,42 +44,31 @@ Requires-Dist: google-cloud-resource-manager<2.0.0,>=1.12.0
|
|
|
44
44
|
Requires-Dist: google-auth<3.0.0,>=2.29.0
|
|
45
45
|
Requires-Dist: google-auth-oauthlib<2.0.0,>=1.2.0
|
|
46
46
|
Requires-Dist: google-auth-httplib2<1.0.0,>=0.2.0
|
|
47
|
-
Requires-Dist:
|
|
48
|
-
Requires-Dist: azure-mgmt-compute<32.0.0,>=29.0.0
|
|
49
|
-
Requires-Dist: azure-mgmt-network<27.0.0,>=24.0.0
|
|
50
|
-
Requires-Dist: azure-mgmt-containerinstance<11.0.0,>=10.1.0
|
|
51
|
-
Requires-Dist: azure-mgmt-containerservice<31.0.0,>=28.0.0
|
|
52
|
-
Requires-Dist: azure-mgmt-storage<22.0.0,>=21.1.0
|
|
53
|
-
Requires-Dist: azure-mgmt-sql<4.0.0,>=3.0.1
|
|
54
|
-
Requires-Dist: azure-mgmt-rdbms<11.0.0,>=10.1.0
|
|
55
|
-
Requires-Dist: azure-mgmt-eventhub<11.0.0,>=10.1.0
|
|
56
|
-
Requires-Dist: azure-mgmt-resource<25.0.0,>=22.0.0
|
|
57
|
-
Requires-Dist: azure-mgmt-subscription<4.0.0,>=3.1.1
|
|
58
|
-
Requires-Dist: paramiko<5.0.0,>=2.11.0
|
|
47
|
+
Requires-Dist: paramiko<5.0.0,>=3.4.0
|
|
59
48
|
Requires-Dist: netifaces<1.0.0,>=0.11.0
|
|
60
|
-
Requires-Dist: rich<15.0.0,>=
|
|
49
|
+
Requires-Dist: rich<15.0.0,>=13.0.0
|
|
61
50
|
Requires-Dist: InquirerPy<1.0.0,>=0.3.4
|
|
62
51
|
Requires-Dist: tqdm<5.0.0,>=4.67.0
|
|
63
|
-
Requires-Dist: python-dotenv<2.0.0,>=0.
|
|
64
|
-
Requires-Dist: python-dateutil<3.0.0,>=2.
|
|
65
|
-
Requires-Dist: PyYAML<
|
|
66
|
-
Requires-Dist: click<9.0.0,>=8.
|
|
52
|
+
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
|
53
|
+
Requires-Dist: python-dateutil<3.0.0,>=2.9.0
|
|
54
|
+
Requires-Dist: PyYAML<7.0.0,>=6.0.1
|
|
55
|
+
Requires-Dist: click<9.0.0,>=8.1.0
|
|
67
56
|
Requires-Dist: docutils<1.0.0,>=0.19
|
|
68
57
|
Requires-Dist: invoke<3.0.0,>=2.2.0
|
|
69
58
|
Requires-Dist: jsonschema<5.0.0,>=4.23.0
|
|
70
|
-
Requires-Dist: cryptography<50.0.0,>=
|
|
71
|
-
Requires-Dist: watchdog<6.0.0,>=
|
|
72
|
-
Requires-Dist: cerberus<2.0.0,>=1.3.
|
|
73
|
-
Requires-Dist: pydantic<3.0.0,>=2.
|
|
74
|
-
Requires-Dist: packaging<25.0,>=
|
|
75
|
-
Requires-Dist: setuptools<
|
|
59
|
+
Requires-Dist: cryptography<50.0.0,>=42.0.0
|
|
60
|
+
Requires-Dist: watchdog<6.0.0,>=4.0.0
|
|
61
|
+
Requires-Dist: cerberus<2.0.0,>=1.3.5
|
|
62
|
+
Requires-Dist: pydantic<3.0.0,>=2.7.0
|
|
63
|
+
Requires-Dist: packaging<25.0,>=24.0
|
|
64
|
+
Requires-Dist: setuptools<76.0.0,>=69.0.0
|
|
76
65
|
Provides-Extra: dev
|
|
77
|
-
Requires-Dist: pytest<9.0.0,>=
|
|
78
|
-
Requires-Dist: pytest-cov<
|
|
79
|
-
Requires-Dist: black<25.0.0,>=
|
|
80
|
-
Requires-Dist: flake8<8.0.0,>=
|
|
81
|
-
Requires-Dist: mypy<2.0.0,>=1.
|
|
82
|
-
Requires-Dist: pre-commit<4.0.0,>=
|
|
66
|
+
Requires-Dist: pytest<9.0.0,>=8.0.0; extra == "dev"
|
|
67
|
+
Requires-Dist: pytest-cov<7.0.0,>=5.0.0; extra == "dev"
|
|
68
|
+
Requires-Dist: black<25.0.0,>=24.0.0; extra == "dev"
|
|
69
|
+
Requires-Dist: flake8<8.0.0,>=7.0.0; extra == "dev"
|
|
70
|
+
Requires-Dist: mypy<2.0.0,>=1.10.0; extra == "dev"
|
|
71
|
+
Requires-Dist: pre-commit<4.0.0,>=3.7.0; extra == "dev"
|
|
83
72
|
Dynamic: author
|
|
84
73
|
Dynamic: home-page
|
|
85
74
|
Dynamic: license-file
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
version: '2.0'
|
|
2
|
+
logging:
|
|
3
|
+
console_level: DEBUG
|
|
4
|
+
file_level: INFO
|
|
5
|
+
file_path: ~/.ic/logs/ic_{date}.log
|
|
6
|
+
max_files: 50
|
|
7
|
+
format: '%(asctime)s [%(levelname)s] - %(message)s'
|
|
8
|
+
mask_sensitive: true
|
|
9
|
+
aws:
|
|
10
|
+
config_path: ~/.aws/config
|
|
11
|
+
credentials_path: ~/.aws/credentials
|
|
12
|
+
accounts: []
|
|
13
|
+
regions:
|
|
14
|
+
- ap-northeast-2
|
|
15
|
+
cross_account_role: OrganizationAccountAccessRole
|
|
16
|
+
session_duration: 3600
|
|
17
|
+
max_workers: 15
|
|
18
|
+
tags:
|
|
19
|
+
required:
|
|
20
|
+
- User
|
|
21
|
+
- Team
|
|
22
|
+
- Environment
|
|
23
|
+
optional:
|
|
24
|
+
- Service
|
|
25
|
+
- Application
|
|
26
|
+
rules:
|
|
27
|
+
User: ^.+$
|
|
28
|
+
Team: ^\d+$
|
|
29
|
+
Environment: ^(PROD|STG|DEV|TEST|QA)$
|
|
30
|
+
default_profile: default
|
|
31
|
+
default_region: us-east-1
|
|
32
|
+
gcp:
|
|
33
|
+
projects: []
|
|
34
|
+
regions:
|
|
35
|
+
- us-central1
|
|
36
|
+
- us-east1
|
|
37
|
+
zones:
|
|
38
|
+
- asia-northeast3-a
|
|
39
|
+
max_workers: 10
|
|
40
|
+
project_id: my-gcp-project
|
|
41
|
+
oci:
|
|
42
|
+
config_path: ~/.oci/config
|
|
43
|
+
max_workers: 10
|
|
44
|
+
cloudflare:
|
|
45
|
+
config_path: ~/.cloudflare/config
|
|
46
|
+
accounts:
|
|
47
|
+
- account1
|
|
48
|
+
- account2
|
|
49
|
+
zones: []
|
|
50
|
+
ssh:
|
|
51
|
+
config_file: ~/.ssh/config
|
|
52
|
+
key_dir: ~/aws-key
|
|
53
|
+
max_workers: 100
|
|
54
|
+
skip_prefixes:
|
|
55
|
+
- git
|
|
56
|
+
- akrr-portx
|
|
57
|
+
- akrr-taas-gw
|
|
58
|
+
- agw01
|
|
59
|
+
- semaphore
|
|
60
|
+
timeouts:
|
|
61
|
+
port_scan: 0.5
|
|
62
|
+
ssh_connect: 5
|
|
63
|
+
slack:
|
|
64
|
+
enabled: true
|
|
65
|
+
security:
|
|
66
|
+
sensitive_keys:
|
|
67
|
+
- password
|
|
68
|
+
- passwd
|
|
69
|
+
- pwd
|
|
70
|
+
- token
|
|
71
|
+
- access_token
|
|
72
|
+
- refresh_token
|
|
73
|
+
- auth_token
|
|
74
|
+
- key
|
|
75
|
+
- api_key
|
|
76
|
+
- access_key
|
|
77
|
+
- secret_key
|
|
78
|
+
- private_key
|
|
79
|
+
- secret
|
|
80
|
+
- client_secret
|
|
81
|
+
- webhook_secret
|
|
82
|
+
- webhook_url
|
|
83
|
+
- webhook
|
|
84
|
+
- credential
|
|
85
|
+
- credentials
|
|
86
|
+
- cert
|
|
87
|
+
- certificate
|
|
88
|
+
- session
|
|
89
|
+
- session_token
|
|
90
|
+
mask_pattern: '***MASKED***'
|
|
91
|
+
warn_on_sensitive_in_config: true
|
|
92
|
+
git_hooks_enabled: true
|
|
93
|
+
other:
|
|
94
|
+
azure_subscription_id: sub-12345
|
|
95
|
+
azure_locations: East US,West US 2
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["setuptools>=
|
|
2
|
+
requires = ["setuptools>=69.0.0", "wheel"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ic-code"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.6"
|
|
8
8
|
authors = [
|
|
9
9
|
{name = "sykim", email = "cruiser594@gmail.com"},
|
|
10
10
|
]
|
|
11
|
-
description = "Infrastructure CLI tool for managing AWS,
|
|
11
|
+
description = "Infrastructure CLI tool for managing AWS, GCP, OCI, CloudFlare, SSH, and more"
|
|
12
12
|
readme = "README.md"
|
|
13
13
|
requires-python = ">=3.9,<3.14"
|
|
14
14
|
classifiers = [
|
|
@@ -28,15 +28,15 @@ classifiers = [
|
|
|
28
28
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
29
29
|
"Environment :: Console",
|
|
30
30
|
]
|
|
31
|
-
keywords = ["cli", "infrastructure", "aws", "oci", "gcp", "
|
|
31
|
+
keywords = ["cli", "infrastructure", "aws", "oci", "gcp", "cloudflare", "ssh", "devops", "multi-cloud"]
|
|
32
32
|
dependencies = [
|
|
33
33
|
# Core Cloud SDKs - Compatible with Python 3.9-3.13
|
|
34
|
-
"boto3>=1.
|
|
35
|
-
"botocore>=1.
|
|
34
|
+
"boto3>=1.34.0,<2.0.0", # AWS SDK for Python
|
|
35
|
+
"botocore>=1.34.0,<2.0.0", # AWS SDK core library
|
|
36
36
|
"oci>=2.149.0,<3.0.0", # Oracle Cloud Infrastructure SDK
|
|
37
|
-
"requests>=2.
|
|
37
|
+
"requests>=2.31.0,<3.0.0", # HTTP library for API calls
|
|
38
38
|
"kubernetes>=29.0.0,<32.0.0", # Kubernetes Python client
|
|
39
|
-
"awscli>=1.
|
|
39
|
+
"awscli>=1.32.0,<2.0.0", # AWS CLI for additional functionality
|
|
40
40
|
|
|
41
41
|
# Google Cloud SDKs - Compatible with Python 3.9-3.13
|
|
42
42
|
"google-cloud-compute>=1.36.0,<2.0.0", # Google Compute Engine API
|
|
@@ -50,58 +50,45 @@ dependencies = [
|
|
|
50
50
|
"google-auth-oauthlib>=1.2.0,<2.0.0", # Google OAuth2 authentication
|
|
51
51
|
"google-auth-httplib2>=0.2.0,<1.0.0", # Google HTTP transport for authentication
|
|
52
52
|
|
|
53
|
-
#
|
|
54
|
-
"
|
|
55
|
-
"azure-mgmt-compute>=29.0.0,<32.0.0", # Azure Virtual Machines management
|
|
56
|
-
"azure-mgmt-network>=24.0.0,<27.0.0", # Azure networking management
|
|
57
|
-
"azure-mgmt-containerinstance>=10.1.0,<11.0.0", # Azure Container Instances
|
|
58
|
-
"azure-mgmt-containerservice>=28.0.0,<31.0.0", # Azure Kubernetes Service
|
|
59
|
-
"azure-mgmt-storage>=21.1.0,<22.0.0", # Azure Storage management
|
|
60
|
-
"azure-mgmt-sql>=3.0.1,<4.0.0", # Azure SQL management
|
|
61
|
-
"azure-mgmt-rdbms>=10.1.0,<11.0.0", # Azure Database services
|
|
62
|
-
"azure-mgmt-eventhub>=10.1.0,<11.0.0", # Azure Event Hubs
|
|
63
|
-
"azure-mgmt-resource>=22.0.0,<25.0.0", # Azure Resource Manager
|
|
64
|
-
"azure-mgmt-subscription>=3.1.1,<4.0.0", # Azure Subscription management
|
|
65
|
-
|
|
66
|
-
# SSH and Network - Compatible with Python 3.9-3.12
|
|
67
|
-
"paramiko>=2.11.0,<5.0.0", # SSH client library (4.0.0+ for Python 3.9+ support)
|
|
53
|
+
# SSH and Network - Compatible with Python 3.9-3.13
|
|
54
|
+
"paramiko>=3.4.0,<5.0.0", # SSH client library
|
|
68
55
|
"netifaces>=0.11.0,<1.0.0", # Network interface information
|
|
69
56
|
|
|
70
|
-
# CLI User Interface and Output - Compatible with Python 3.9-3.
|
|
71
|
-
"rich>=
|
|
57
|
+
# CLI User Interface and Output - Compatible with Python 3.9-3.13
|
|
58
|
+
"rich>=13.0.0,<15.0.0", # Rich text and beautiful formatting
|
|
72
59
|
"InquirerPy>=0.3.4,<1.0.0", # Interactive command line prompts
|
|
73
60
|
"tqdm>=4.67.0,<5.0.0", # Progress bars
|
|
74
61
|
|
|
75
62
|
# Configuration and Utilities - Compatible with Python 3.9-3.13
|
|
76
|
-
"python-dotenv>=0.
|
|
77
|
-
"python-dateutil>=2.
|
|
78
|
-
"PyYAML>=6.0,<
|
|
79
|
-
"click>=8.
|
|
63
|
+
"python-dotenv>=1.0.0,<2.0.0", # Environment variable loading
|
|
64
|
+
"python-dateutil>=2.9.0,<3.0.0", # Date/time utilities
|
|
65
|
+
"PyYAML>=6.0.1,<7.0.0", # YAML parser
|
|
66
|
+
"click>=8.1.0,<9.0.0", # Command line interface framework
|
|
80
67
|
"docutils>=0.19,<1.0.0", # Documentation utilities
|
|
81
68
|
"invoke>=2.2.0,<3.0.0", # Task execution library
|
|
82
69
|
|
|
83
70
|
# Security and Validation - Compatible with Python 3.9-3.13
|
|
84
71
|
"jsonschema>=4.23.0,<5.0.0", # JSON schema validation
|
|
85
|
-
"cryptography>=
|
|
72
|
+
"cryptography>=42.0.0,<50.0.0", # Cryptographic recipes and primitives
|
|
86
73
|
|
|
87
|
-
# Additional dependencies for
|
|
88
|
-
"watchdog>=
|
|
89
|
-
"cerberus>=1.3.
|
|
90
|
-
"pydantic>=2.
|
|
74
|
+
# Additional dependencies for config system (v2.0) - Compatible with Python 3.9-3.13
|
|
75
|
+
"watchdog>=4.0.0,<6.0.0", # File change monitoring
|
|
76
|
+
"cerberus>=1.3.5,<2.0.0", # Schema validation
|
|
77
|
+
"pydantic>=2.7.0,<3.0.0", # Data validation and settings management
|
|
91
78
|
|
|
92
79
|
# Package management and compatibility
|
|
93
|
-
"packaging>=
|
|
94
|
-
"setuptools>=
|
|
80
|
+
"packaging>=24.0,<25.0", # Version parsing and comparison
|
|
81
|
+
"setuptools>=69.0.0,<76.0.0", # Package building tools
|
|
95
82
|
]
|
|
96
83
|
|
|
97
84
|
[project.optional-dependencies]
|
|
98
85
|
dev = [
|
|
99
|
-
"pytest>=
|
|
100
|
-
"pytest-cov>=
|
|
101
|
-
"black>=
|
|
102
|
-
"flake8>=
|
|
103
|
-
"mypy>=1.
|
|
104
|
-
"pre-commit>=
|
|
86
|
+
"pytest>=8.0.0,<9.0.0",
|
|
87
|
+
"pytest-cov>=5.0.0,<7.0.0",
|
|
88
|
+
"black>=24.0.0,<25.0.0",
|
|
89
|
+
"flake8>=7.0.0,<8.0.0",
|
|
90
|
+
"mypy>=1.10.0,<2.0.0",
|
|
91
|
+
"pre-commit>=3.7.0,<4.0.0",
|
|
105
92
|
]
|
|
106
93
|
|
|
107
94
|
[project.urls]
|
|
@@ -115,7 +102,7 @@ ic = "ic.cli:main"
|
|
|
115
102
|
|
|
116
103
|
[tool.setuptools.packages.find]
|
|
117
104
|
where = ["src"]
|
|
118
|
-
include = ["ic*", "common*"
|
|
105
|
+
include = ["ic*", "common*"]
|
|
119
106
|
|
|
120
107
|
[tool.setuptools]
|
|
121
108
|
include-package-data = true
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# IC (Infra Resource Management CLI) - Production Dependencies
|
|
2
|
+
# Version: 2.0.0
|
|
3
|
+
# Python Compatibility: 3.9-3.13
|
|
4
|
+
|
|
5
|
+
# Core Cloud SDKs
|
|
6
|
+
boto3>=1.34.0,<2.0.0 # AWS SDK for Python
|
|
7
|
+
botocore>=1.34.0,<2.0.0 # AWS SDK core library
|
|
8
|
+
oci>=2.149.0,<3.0.0 # Oracle Cloud Infrastructure SDK
|
|
9
|
+
requests>=2.31.0,<3.0.0 # HTTP library for API calls
|
|
10
|
+
kubernetes>=29.0.0,<32.0.0 # Kubernetes Python client
|
|
11
|
+
awscli>=1.32.0,<2.0.0 # AWS CLI for additional functionality
|
|
12
|
+
|
|
13
|
+
# Google Cloud SDKs
|
|
14
|
+
google-cloud-compute>=1.36.0,<2.0.0 # Google Compute Engine API
|
|
15
|
+
google-cloud-container>=2.44.0,<3.0.0 # Google Kubernetes Engine API
|
|
16
|
+
google-cloud-storage>=2.18.0,<3.0.0 # Google Cloud Storage API
|
|
17
|
+
google-cloud-functions>=1.16.0,<2.0.0 # Google Cloud Functions API
|
|
18
|
+
google-cloud-run>=0.11.0,<1.0.0 # Google Cloud Run API
|
|
19
|
+
google-cloud-billing>=1.13.0,<2.0.0 # Google Cloud Billing API
|
|
20
|
+
google-cloud-resource-manager>=1.12.0,<2.0.0 # Google Cloud Resource Manager API
|
|
21
|
+
google-auth>=2.29.0,<3.0.0 # Google authentication library
|
|
22
|
+
google-auth-oauthlib>=1.2.0,<2.0.0 # Google OAuth2 authentication
|
|
23
|
+
google-auth-httplib2>=0.2.0,<1.0.0 # Google HTTP transport for authentication
|
|
24
|
+
|
|
25
|
+
# SSH and Network
|
|
26
|
+
paramiko>=3.4.0,<5.0.0 # SSH client library
|
|
27
|
+
netifaces>=0.11.0,<1.0.0 # Network interface information
|
|
28
|
+
|
|
29
|
+
# CLI User Interface and Output
|
|
30
|
+
rich>=13.0.0,<15.0.0 # Rich text and beautiful formatting
|
|
31
|
+
InquirerPy>=0.3.4,<1.0.0 # Interactive command line prompts
|
|
32
|
+
tqdm>=4.67.0,<5.0.0 # Progress bars
|
|
33
|
+
|
|
34
|
+
# Configuration and Utilities
|
|
35
|
+
python-dotenv>=1.0.0,<2.0.0 # Environment variable loading
|
|
36
|
+
python-dateutil>=2.9.0,<3.0.0 # Date/time utilities
|
|
37
|
+
PyYAML>=6.0.1,<7.0.0 # YAML parser
|
|
38
|
+
click>=8.1.0,<9.0.0 # Command line interface framework
|
|
39
|
+
docutils>=0.19,<1.0.0 # Documentation utilities
|
|
40
|
+
invoke>=2.2.0,<3.0.0 # Task execution library
|
|
41
|
+
|
|
42
|
+
# Security and Validation
|
|
43
|
+
jsonschema>=4.23.0,<5.0.0 # JSON schema validation
|
|
44
|
+
cryptography>=42.0.0,<50.0.0 # Cryptographic recipes and primitives
|
|
45
|
+
|
|
46
|
+
# Config System Dependencies
|
|
47
|
+
watchdog>=4.0.0,<6.0.0 # File change monitoring
|
|
48
|
+
cerberus>=1.3.5,<2.0.0 # Schema validation
|
|
49
|
+
pydantic>=2.7.0,<3.0.0 # Data validation and settings management
|
|
50
|
+
|
|
51
|
+
# Package Management
|
|
52
|
+
packaging>=24.0,<25.0 # Version parsing and comparison
|
|
53
|
+
setuptools>=69.0.0,<76.0.0 # Package building tools
|
|
54
|
+
|
|
55
|
+
# Development and Testing
|
|
56
|
+
pytest>=8.0.0,<9.0.0
|
|
57
|
+
pytest-cov>=5.0.0,<7.0.0
|
|
@@ -147,14 +147,9 @@ class DependencyMapper:
|
|
|
147
147
|
|
|
148
148
|
# Define modules to analyze
|
|
149
149
|
modules_to_analyze = [
|
|
150
|
-
'ncp',
|
|
151
|
-
'ncp_module',
|
|
152
|
-
'ncpgov',
|
|
153
|
-
'ncpgov_module',
|
|
154
150
|
'aws',
|
|
155
151
|
'gcp',
|
|
156
|
-
'oci_module'
|
|
157
|
-
'azure_module'
|
|
152
|
+
'oci_module'
|
|
158
153
|
]
|
|
159
154
|
|
|
160
155
|
for module_name in modules_to_analyze:
|
|
@@ -321,18 +316,12 @@ class DependencyMapper:
|
|
|
321
316
|
|
|
322
317
|
def _get_module_platform(self, module_key: str) -> str:
|
|
323
318
|
"""Get the platform for a module."""
|
|
324
|
-
if module_key.startswith('
|
|
325
|
-
return 'ncp'
|
|
326
|
-
elif module_key.startswith('ncpgov.') or module_key.startswith('ncpgov_module.'):
|
|
327
|
-
return 'ncpgov'
|
|
328
|
-
elif module_key.startswith('aws.'):
|
|
319
|
+
if module_key.startswith('aws.'):
|
|
329
320
|
return 'aws'
|
|
330
321
|
elif module_key.startswith('gcp.'):
|
|
331
322
|
return 'gcp'
|
|
332
323
|
elif module_key.startswith('oci_module.'):
|
|
333
324
|
return 'oci'
|
|
334
|
-
elif module_key.startswith('azure_module.'):
|
|
335
|
-
return 'azure'
|
|
336
325
|
else:
|
|
337
326
|
return 'common'
|
|
338
327
|
|
|
@@ -127,7 +127,7 @@ setup(
|
|
|
127
127
|
version=get_version(),
|
|
128
128
|
author="SangYun Kim",
|
|
129
129
|
author_email="cruiser594@gmail.com",
|
|
130
|
-
description="A comprehensive CLI tool for managing cloud infrastructure resources across AWS,
|
|
130
|
+
description="A comprehensive CLI tool for managing cloud infrastructure resources across AWS, GCP, OCI, CloudFlare, and SSH with built-in security features",
|
|
131
131
|
long_description=get_long_description(),
|
|
132
132
|
long_description_content_type="text/markdown",
|
|
133
133
|
url="https://github.com/dgr009/ic",
|
|
@@ -140,64 +140,53 @@ setup(
|
|
|
140
140
|
"Configuration Guide": "https://github.com/dgr009/ic/blob/main/docs/configuration.md",
|
|
141
141
|
"Migration Guide": "https://github.com/dgr009/ic/blob/main/docs/migration.md",
|
|
142
142
|
},
|
|
143
|
-
packages=find_packages(where="src", include=["ic*", "common*"
|
|
143
|
+
packages=find_packages(where="src", include=["ic*", "common*"]),
|
|
144
144
|
package_dir={"": "src"},
|
|
145
145
|
package_data={
|
|
146
146
|
"ic": ["config/*.yaml", "config/*.yml", "config/*.json", "config/examples/*.yaml"],
|
|
147
147
|
"ic.security": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
148
148
|
"ic.platforms.aws": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
149
|
-
"ic.platforms.azure": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
150
149
|
"ic.platforms.gcp": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
151
150
|
"ic.platforms.oci": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
152
|
-
"ic.platforms.ncp": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
153
|
-
"ic.platforms.ncpgov": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
154
151
|
"ic.platforms.cloudflare": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
155
152
|
"ic.platforms.ssh": ["*.md", "*.yaml", "*.yml", "*.json"],
|
|
156
153
|
"common": ["*.yaml", "*.yml", "*.json"],
|
|
157
|
-
"mcp": ["*.yaml", "*.yml", "*.json"],
|
|
158
154
|
},
|
|
159
155
|
install_requires=[
|
|
160
|
-
# Core dependencies - Python 3.9-3.
|
|
161
|
-
"boto3>=1.
|
|
162
|
-
"botocore>=1.
|
|
163
|
-
"requests>=2.
|
|
164
|
-
"rich>=
|
|
165
|
-
"PyYAML>=6.0,<7.0.0",
|
|
166
|
-
"paramiko>=
|
|
167
|
-
"python-dotenv>=0.
|
|
168
|
-
"cryptography>=
|
|
156
|
+
# Core dependencies - Python 3.9-3.13 compatible
|
|
157
|
+
"boto3>=1.34.0,<2.0.0",
|
|
158
|
+
"botocore>=1.34.0,<2.0.0",
|
|
159
|
+
"requests>=2.31.0,<3.0.0",
|
|
160
|
+
"rich>=13.0.0,<15.0.0",
|
|
161
|
+
"PyYAML>=6.0.1,<7.0.0",
|
|
162
|
+
"paramiko>=3.4.0,<5.0.0",
|
|
163
|
+
"python-dotenv>=1.0.0,<2.0.0",
|
|
164
|
+
"cryptography>=42.0.0,<50.0.0",
|
|
169
165
|
"netifaces>=0.11.0,<1.0.0",
|
|
170
166
|
"tqdm>=4.67.0,<5.0.0",
|
|
171
167
|
"jsonschema>=4.23.0,<5.0.0",
|
|
172
|
-
"python-dateutil>=2.
|
|
173
|
-
"click>=8.
|
|
174
|
-
"packaging>=
|
|
175
|
-
"setuptools>=
|
|
168
|
+
"python-dateutil>=2.9.0,<3.0.0",
|
|
169
|
+
"click>=8.1.0,<9.0.0",
|
|
170
|
+
"packaging>=24.0,<25.0",
|
|
171
|
+
"setuptools>=69.0.0,<76.0.0",
|
|
176
172
|
|
|
177
173
|
# Configuration system dependencies
|
|
178
|
-
"watchdog>=
|
|
179
|
-
"cerberus>=1.3.
|
|
180
|
-
"pydantic>=2.
|
|
181
|
-
|
|
182
|
-
# Optional cloud platform dependencies (install as needed)
|
|
183
|
-
# AWS: awscli>=1.42.0,<2.0.0, kubernetes>=29.0.0,<31.0.0
|
|
184
|
-
# OCI: oci>=2.149.0,<3.0.0
|
|
185
|
-
# NCP: Uses direct REST API calls (no SDK dependency required)
|
|
186
|
-
# GCP: google-cloud-* packages
|
|
187
|
-
# Azure: azure-* packages
|
|
174
|
+
"watchdog>=4.0.0,<6.0.0",
|
|
175
|
+
"cerberus>=1.3.5,<2.0.0",
|
|
176
|
+
"pydantic>=2.7.0,<3.0.0",
|
|
188
177
|
],
|
|
189
178
|
extras_require={
|
|
190
179
|
"dev": [
|
|
191
|
-
"pytest>=
|
|
192
|
-
"pytest-cov>=
|
|
193
|
-
"black>=
|
|
194
|
-
"flake8>=
|
|
195
|
-
"mypy>=1.
|
|
196
|
-
"pre-commit>=
|
|
180
|
+
"pytest>=8.0.0",
|
|
181
|
+
"pytest-cov>=5.0.0",
|
|
182
|
+
"black>=24.0.0",
|
|
183
|
+
"flake8>=7.0.0",
|
|
184
|
+
"mypy>=1.10.0",
|
|
185
|
+
"pre-commit>=3.7.0",
|
|
197
186
|
],
|
|
198
187
|
"test": [
|
|
199
|
-
"pytest>=
|
|
200
|
-
"pytest-cov>=
|
|
188
|
+
"pytest>=8.0.0",
|
|
189
|
+
"pytest-cov>=5.0.0",
|
|
201
190
|
"pytest-mock>=3.10.0",
|
|
202
191
|
],
|
|
203
192
|
},
|
|
@@ -214,11 +203,11 @@ setup(
|
|
|
214
203
|
"License :: OSI Approved :: MIT License",
|
|
215
204
|
"Operating System :: OS Independent",
|
|
216
205
|
"Programming Language :: Python :: 3",
|
|
217
|
-
|
|
218
206
|
"Programming Language :: Python :: 3.9",
|
|
219
207
|
"Programming Language :: Python :: 3.10",
|
|
220
208
|
"Programming Language :: Python :: 3.11",
|
|
221
209
|
"Programming Language :: Python :: 3.12",
|
|
210
|
+
"Programming Language :: Python :: 3.13",
|
|
222
211
|
"Topic :: System :: Systems Administration",
|
|
223
212
|
"Topic :: System :: Monitoring",
|
|
224
213
|
"Topic :: System :: Networking",
|
|
@@ -231,7 +220,7 @@ setup(
|
|
|
231
220
|
"Natural Language :: Korean",
|
|
232
221
|
],
|
|
233
222
|
keywords=[
|
|
234
|
-
"aws", "
|
|
223
|
+
"aws", "gcp", "oci", "cloudflare",
|
|
235
224
|
"infrastructure", "cli", "cloud", "devops",
|
|
236
225
|
"multi-cloud", "resource-management", "security",
|
|
237
226
|
"configuration", "monitoring", "automation",
|
|
@@ -198,29 +198,5 @@ def gather_env_for_command(platform, service, command):
|
|
|
198
198
|
if val:
|
|
199
199
|
env_dict[k] = val
|
|
200
200
|
|
|
201
|
-
# -----------------------------------
|
|
202
|
-
# Azure
|
|
203
|
-
# -----------------------------------
|
|
204
|
-
elif platform == "azure":
|
|
205
|
-
# Azure 서비스들에서 공통으로 사용하는 환경변수
|
|
206
|
-
relevant_keys = [
|
|
207
|
-
"AZURE_TENANT_ID",
|
|
208
|
-
"AZURE_CLIENT_ID",
|
|
209
|
-
"AZURE_CLIENT_SECRET",
|
|
210
|
-
"AZURE_SUBSCRIPTIONS",
|
|
211
|
-
"AZURE_LOCATIONS",
|
|
212
|
-
"LOG_LEVEL",
|
|
213
|
-
"SLACK_WEBHOOK_URL",
|
|
214
|
-
]
|
|
215
|
-
|
|
216
|
-
for k in relevant_keys:
|
|
217
|
-
val = os.getenv(k)
|
|
218
|
-
if val:
|
|
219
|
-
env_dict[k] = val
|
|
220
|
-
|
|
221
|
-
# -----------------------------------
|
|
222
|
-
# 기타 플랫폼이면 pass
|
|
223
|
-
# -----------------------------------
|
|
224
|
-
|
|
225
201
|
return env_dict
|
|
226
202
|
|
|
@@ -125,10 +125,6 @@ class GCPMonitor:
|
|
|
125
125
|
def update_mcp_connection_status(self, is_connected: bool):
|
|
126
126
|
"""MCP 서버 연결 상태 업데이트"""
|
|
127
127
|
self._mcp_connection_status = is_connected
|
|
128
|
-
if is_connected:
|
|
129
|
-
log_info("MCP server connection established")
|
|
130
|
-
else:
|
|
131
|
-
log_error("MCP server connection lost, falling back to direct API access")
|
|
132
128
|
|
|
133
129
|
def get_health_status(self) -> Dict[str, Any]:
|
|
134
130
|
"""전체 헬스 상태 반환"""
|