ic-code 1.2.5__tar.gz → 1.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ic_code-1.2.7/PKG-INFO +335 -0
- ic_code-1.2.7/README.md +259 -0
- ic_code-1.2.7/config/default.yaml +95 -0
- ic_code-1.2.7/docs/README.md +80 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/general/configuration.md +3 -5
- ic_code-1.2.7/docs/user_guide.md +113 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/pyproject.toml +30 -43
- ic_code-1.2.7/requirements.txt +57 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/dependency_mapper.py +2 -13
- {ic_code-1.2.5 → ic_code-1.2.7}/setup.py +28 -39
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gather_env.py +0 -24
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gcp_monitoring.py +0 -4
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gcp_utils.py +9 -108
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/slack.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/utils.py +100 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/__init__.py +2 -7
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/cli.py +13 -51
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/commands/config.py +303 -462
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/commands/security.py +34 -1
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/compat/__init__.py +0 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/compat/cli.py +1 -22
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/compat/common.py +1 -43
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/installer.py +1 -28
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/manager.py +24 -542
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/migration.py +70 -48
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/schema.py +0 -94
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/secrets.py +1 -26
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/security.py +51 -15
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/__init__.py +1 -7
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/dependency_validator.py +1 -17
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/logging.py +5 -8
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/platform_discovery.py +7 -16
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/session.py +4 -9
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/cloudfront/info.py +2 -4
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/codepipeline/build.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/codepipeline/deploy.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/info.py +4 -17
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/tag_check.py +6 -15
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/service.py +3 -14
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/task.py +3 -14
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/addons.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/fargate.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/nodes.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/pods.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/update_config.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/fargate/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/tag_check.py +6 -15
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/msk/broker.py +3 -14
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/msk/info.py +4 -18
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/nat/list_tags.py +7 -16
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/nat/tag_check.py +7 -19
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/tag_check.py +9 -37
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/tag_check.py +6 -15
- ic_code-1.2.7/src/ic/platforms/aws/sg/info.py +417 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/list_tags.py +6 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/tag_check.py +10 -37
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpn/info.py +4 -13
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/account/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/client.py +1 -1
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/dns/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/rules/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/traffic/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/waf/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/zone/info.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/billing/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/compute/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/firewall/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/functions/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/gke/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/lb/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/run/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/sql/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/storage/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/vpc/info.py +2 -11
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/cost/credit.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/cost/usage.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/info/oci_info.py +1 -4
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/lb/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/nsg/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/obj/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/policy/info.py +2 -8
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/policy/search.py +3 -9
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vcn/info.py +2 -8
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vm/info.py +33 -31
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/volume/info.py +3 -12
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/auto/scan.py +3 -3
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/auto_ssh.py +4 -4
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/server/info.py +4 -10
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/server_info.py +3 -9
- ic_code-1.2.7/src/ic_code.egg-info/PKG-INFO +335 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic_code.egg-info/SOURCES.txt +2 -68
- ic_code-1.2.7/src/ic_code.egg-info/requires.txt +42 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic_code.egg-info/top_level.txt +0 -1
- ic_code-1.2.5/PKG-INFO +0 -1831
- ic_code-1.2.5/README.md +0 -1744
- ic_code-1.2.5/docs/README.md +0 -141
- 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/docs/user_guide.md +0 -259
- 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/aws/sg/info.py +0 -342
- 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/PKG-INFO +0 -1831
- 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.7}/LICENSE +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/MANIFEST.in +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/SECURITY.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/configuration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/troubleshooting.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/usage.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/aws/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/aws/aws_cli_prd.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/aws/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/ci-workflow-guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/cloudflare_configuration_example.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/config_migration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/deployment.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/cleanup_summary.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/development_guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/import_patterns.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/migration_guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/gcp/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/migration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/migration_guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/oci/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/oci/installation.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/release-guide.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/security.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/ssh/configuration.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/docs/troubleshooting.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/analysis_summary.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/bump-version.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/ci-detect-platforms.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/ci-generate-matrix.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/cli_usage_analysis.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/deploy.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/final_validation_and_documentation.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/fix_consolidated_imports.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/migration_execution_and_validation.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/oracle-policy/user_policy.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/performance_optimization.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/setup_venv.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/test-ci-detection.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/unset_env.sh +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/validate_config.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/scripts/validate_dependencies.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/setup.cfg +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gcp_config_validator.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/log.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/common/progress_decorator.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/commands/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/cleanup.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/docs_organizer.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/external.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/migration_utils.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/path_manager.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/silence_logging.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/fargate/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/msk/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/nat/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/profile/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/profile/info.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/sg/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpn/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/account/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/rules/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/traffic/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/waf/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/zone/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/billing/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/compute/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/functions/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/gke/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/lb/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/run/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/sql/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/storage/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/common/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/common/utils.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/compartment/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/compartment/info.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/cost/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/info/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/lb/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/nsg/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/obj/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/policy/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vcn/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vm/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/volume/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/auto/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/server/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/README.md +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/__init__.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/config.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/detector.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/guidance.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/hooks.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/patterns.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/scanner.py +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic_code.egg-info/dependency_links.txt +0 -0
- {ic_code-1.2.5 → ic_code-1.2.7}/src/ic_code.egg-info/entry_points.txt +0 -0
ic_code-1.2.7/PKG-INFO
ADDED
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ic-code
|
|
3
|
+
Version: 1.2.7
|
|
4
|
+
Summary: Infrastructure CLI tool for managing AWS, GCP, OCI, CloudFlare, SSH, and more
|
|
5
|
+
Home-page: https://github.com/dgr009/ic
|
|
6
|
+
Author: SangYun Kim
|
|
7
|
+
Author-email: sykim <cruiser594@gmail.com>
|
|
8
|
+
Project-URL: Homepage, https://github.com/dgr009/ic
|
|
9
|
+
Project-URL: Bug Reports, https://github.com/dgr009/ic/issues
|
|
10
|
+
Project-URL: Source, https://github.com/dgr009/ic
|
|
11
|
+
Project-URL: Documentation, https://github.com/dgr009/ic#readme
|
|
12
|
+
Keywords: cli,infrastructure,aws,oci,gcp,cloudflare,ssh,devops,multi-cloud
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: System Administrators
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Topic :: System :: Systems Administration
|
|
25
|
+
Classifier: Topic :: Utilities
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
+
Classifier: Environment :: Console
|
|
28
|
+
Requires-Python: >=3.9,<3.15
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
Requires-Dist: boto3<2.0.0,>=1.34.0
|
|
32
|
+
Requires-Dist: botocore<2.0.0,>=1.34.0
|
|
33
|
+
Requires-Dist: oci<3.0.0,>=2.149.0
|
|
34
|
+
Requires-Dist: requests<3.0.0,>=2.31.0
|
|
35
|
+
Requires-Dist: kubernetes<32.0.0,>=29.0.0
|
|
36
|
+
Requires-Dist: awscli<2.0.0,>=1.32.0
|
|
37
|
+
Requires-Dist: google-cloud-compute<2.0.0,>=1.36.0
|
|
38
|
+
Requires-Dist: google-cloud-container<3.0.0,>=2.44.0
|
|
39
|
+
Requires-Dist: google-cloud-storage<3.0.0,>=2.18.0
|
|
40
|
+
Requires-Dist: google-cloud-functions<2.0.0,>=1.16.0
|
|
41
|
+
Requires-Dist: google-cloud-run<1.0.0,>=0.11.0
|
|
42
|
+
Requires-Dist: google-cloud-billing<2.0.0,>=1.13.0
|
|
43
|
+
Requires-Dist: google-cloud-resource-manager<2.0.0,>=1.12.0
|
|
44
|
+
Requires-Dist: google-auth<3.0.0,>=2.29.0
|
|
45
|
+
Requires-Dist: google-auth-oauthlib<2.0.0,>=1.2.0
|
|
46
|
+
Requires-Dist: google-auth-httplib2<1.0.0,>=0.2.0
|
|
47
|
+
Requires-Dist: paramiko<5.0.0,>=3.4.0
|
|
48
|
+
Requires-Dist: netifaces<1.0.0,>=0.11.0
|
|
49
|
+
Requires-Dist: rich<15.0.0,>=13.0.0
|
|
50
|
+
Requires-Dist: InquirerPy<1.0.0,>=0.3.4
|
|
51
|
+
Requires-Dist: tqdm<5.0.0,>=4.67.0
|
|
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
|
|
56
|
+
Requires-Dist: docutils<1.0.0,>=0.19
|
|
57
|
+
Requires-Dist: invoke<3.0.0,>=2.2.0
|
|
58
|
+
Requires-Dist: jsonschema<5.0.0,>=4.23.0
|
|
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
|
|
65
|
+
Provides-Extra: dev
|
|
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"
|
|
72
|
+
Dynamic: author
|
|
73
|
+
Dynamic: home-page
|
|
74
|
+
Dynamic: license-file
|
|
75
|
+
Dynamic: requires-python
|
|
76
|
+
|
|
77
|
+
# IC CLI Tool (Infrastructure Commander)
|
|
78
|
+
|
|
79
|
+
[](https://badge.fury.io/py/ic-code)
|
|
80
|
+
[](https://www.python.org/downloads/)
|
|
81
|
+
[](https://opensource.org/licenses/MIT)
|
|
82
|
+
|
|
83
|
+
A comprehensive, production-grade Infrastructure Command Line Interface tool for managing multi-cloud infrastructure and server components across multiple platforms. IC CLI provides unified access to **AWS**, **GCP**, **Oracle Cloud Infrastructure (OCI)**, **CloudFlare**, and **SSH** server management with rich progress indicators and secure configuration management.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## ✨ Key Features
|
|
88
|
+
|
|
89
|
+
- **🚀 Multi-Cloud Support**: AWS, GCP, OCI, CloudFlare, and SSH server management
|
|
90
|
+
- **📊 Rich Progress Bars**: Real-time progress indicators for all long-running operations across accounts and regions
|
|
91
|
+
- **🔒 Secure Configuration**: Modern YAML-based configuration (`~/.ic/config/`) with separate secrets management
|
|
92
|
+
- **🌍 Multi-Account / Multi-Region**: Concurrent querying across multiple cloud accounts and regions
|
|
93
|
+
- **🎨 Beautiful Terminal UI**: Rich terminal output with tables, colors, JSON formatting, and tree diagrams
|
|
94
|
+
- **⚡ High Performance**: Optimized async and concurrent execution for fast resource discovery
|
|
95
|
+
- **🛡️ Security First**: Built-in credential masking, secret scanning, and pre-commit hook support
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 📦 Supported Platforms & Services
|
|
100
|
+
|
|
101
|
+
### 1. 🟧 AWS Services (Production Ready)
|
|
102
|
+
- **Compute**: EC2 instances, ECS services/tasks, EKS clusters/nodes/pods, Fargate profiles
|
|
103
|
+
- **Storage & DB**: S3 buckets (with tagging compliance checks), RDS instances & clusters
|
|
104
|
+
- **Networking**: VPC, Subnets, Gateways, Load Balancers (ALB/NLB), Security Groups (with Ingress & Egress rule analysis & tree view), VPN connections
|
|
105
|
+
- **Integrations**: CloudFront distributions, MSK Kafka brokers, CodePipeline build/deploy status, Profile management
|
|
106
|
+
|
|
107
|
+
### 2. 🟩 GCP Services (Production Ready)
|
|
108
|
+
- **Compute Engine**: VM instances with status, zone, and network interface details
|
|
109
|
+
- **Cloud Storage**: Bucket lists, location, and storage class information
|
|
110
|
+
- **VPC Network**: Subnets, routes, and firewall rule visibility
|
|
111
|
+
- **GKE**: Kubernetes Engine clusters and node pool configurations
|
|
112
|
+
- **Cloud SQL**: Database instances, engines, and status
|
|
113
|
+
|
|
114
|
+
### 3. 🟥 Oracle Cloud Infrastructure (OCI) (Production Ready)
|
|
115
|
+
- **Compute & Containers**: VM instances, Container instances (ACI)
|
|
116
|
+
- **Networking**: VCN, Subnets, Load Balancers, Network Security Groups (NSG)
|
|
117
|
+
- **Storage**: Block Volumes, Object Storage buckets
|
|
118
|
+
- **IAM & Cost**: Compartment hierarchy, IAM Policy search/validation, Cost usage & billing credits
|
|
119
|
+
|
|
120
|
+
### 4. 🟧 CloudFlare (Production Ready)
|
|
121
|
+
- **DNS & Zones**: Zone listings, DNS record management, and account filtering
|
|
122
|
+
|
|
123
|
+
### 5. 🟦 SSH Server Management (Production Ready)
|
|
124
|
+
- **Discovery**: Automatic server registration, connection verification, and security filtering
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 📦 Installation
|
|
129
|
+
|
|
130
|
+
### From PyPI (Recommended)
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Install the latest stable version (v1.2.6+)
|
|
134
|
+
pip install ic-code
|
|
135
|
+
|
|
136
|
+
# Verify installation
|
|
137
|
+
ic --version
|
|
138
|
+
ic --help
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### From Source (Development)
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Clone the repository
|
|
145
|
+
git clone https://github.com/dgr009/ic.git
|
|
146
|
+
cd ic
|
|
147
|
+
|
|
148
|
+
# Create and activate virtual environment
|
|
149
|
+
python -m venv .venv
|
|
150
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
151
|
+
|
|
152
|
+
# Install dependencies and local editable package
|
|
153
|
+
pip install -e .
|
|
154
|
+
|
|
155
|
+
# Verify installation
|
|
156
|
+
ic --version
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## ⚙️ Configuration Setup
|
|
162
|
+
|
|
163
|
+
IC CLI uses a modern two-file configuration system located in `~/.ic/config/` for security:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
~/.ic/config/
|
|
167
|
+
├── default.yaml # Non-sensitive default settings
|
|
168
|
+
└── secrets.yaml # Sensitive API keys, tokens, and profiles
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### 1. Initialize Configuration
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Guided interactive configuration setup
|
|
175
|
+
ic config init
|
|
176
|
+
|
|
177
|
+
# Or generate template for specific clouds
|
|
178
|
+
ic config init --template aws
|
|
179
|
+
ic config init --template multi-cloud
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### 2. Configure Credentials (`~/.ic/config/secrets.yaml`)
|
|
183
|
+
|
|
184
|
+
```yaml
|
|
185
|
+
# AWS Configuration
|
|
186
|
+
aws:
|
|
187
|
+
accounts:
|
|
188
|
+
- "123456789012"
|
|
189
|
+
profiles:
|
|
190
|
+
default: "my-aws-profile"
|
|
191
|
+
regions:
|
|
192
|
+
- "ap-northeast-2"
|
|
193
|
+
- "us-east-1"
|
|
194
|
+
|
|
195
|
+
# GCP Configuration
|
|
196
|
+
gcp:
|
|
197
|
+
project_id: "my-gcp-project-id"
|
|
198
|
+
credentials_file: "~/.config/gcloud/application_default_credentials.json"
|
|
199
|
+
regions:
|
|
200
|
+
- "asia-northeast3"
|
|
201
|
+
- "us-central1"
|
|
202
|
+
|
|
203
|
+
# Oracle Cloud Infrastructure (OCI)
|
|
204
|
+
oci:
|
|
205
|
+
config_file: "~/.oci/config"
|
|
206
|
+
profile: "DEFAULT"
|
|
207
|
+
compartments:
|
|
208
|
+
- "ocid1.compartment.oc1..example"
|
|
209
|
+
|
|
210
|
+
# CloudFlare Configuration
|
|
211
|
+
cloudflare:
|
|
212
|
+
api_token: "your-cloudflare-api-token"
|
|
213
|
+
|
|
214
|
+
# SSH Configuration
|
|
215
|
+
ssh:
|
|
216
|
+
key_dir: "~/.ssh"
|
|
217
|
+
skip_prefixes:
|
|
218
|
+
- "bastion"
|
|
219
|
+
- "jump"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### 3. Manage & Validate Config
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Show configuration (sensitive fields masked automatically)
|
|
226
|
+
ic config show
|
|
227
|
+
|
|
228
|
+
# Validate configuration structure and paths
|
|
229
|
+
ic config validate
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 🚀 Command Usage Examples
|
|
235
|
+
|
|
236
|
+
### AWS Commands
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# List EC2 instances across configured regions
|
|
240
|
+
ic aws ec2 info
|
|
241
|
+
|
|
242
|
+
# Security Group Info (Shows Ingress & Egress rules by default)
|
|
243
|
+
ic aws sg info
|
|
244
|
+
|
|
245
|
+
# Filter Security Groups for Ingress or Egress rules only
|
|
246
|
+
ic aws sg info --ingress # Show Ingress rules only
|
|
247
|
+
ic aws sg info --egress # Show Egress rules only
|
|
248
|
+
|
|
249
|
+
# Render Security Groups in visual tree structure with direction arrows (← Ingress, → Egress)
|
|
250
|
+
ic aws sg info -o tree
|
|
251
|
+
|
|
252
|
+
# S3 Bucket details and tag validation
|
|
253
|
+
ic aws s3 info
|
|
254
|
+
ic aws s3 tag_check
|
|
255
|
+
|
|
256
|
+
# EKS & ECS Cluster info
|
|
257
|
+
ic aws eks info
|
|
258
|
+
ic aws ecs info
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### GCP Commands
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# Compute Engine VM instances
|
|
265
|
+
ic gcp compute info
|
|
266
|
+
|
|
267
|
+
# Cloud Storage buckets
|
|
268
|
+
ic gcp storage info
|
|
269
|
+
|
|
270
|
+
# VPC networks and subnets
|
|
271
|
+
ic gcp vpc info
|
|
272
|
+
|
|
273
|
+
# GKE Clusters
|
|
274
|
+
ic gcp gke info
|
|
275
|
+
|
|
276
|
+
# Cloud SQL databases
|
|
277
|
+
ic gcp sql info
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### OCI Commands
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
# Compute VM instances
|
|
284
|
+
ic oci vm info
|
|
285
|
+
|
|
286
|
+
# Virtual Cloud Networks
|
|
287
|
+
ic oci vcn info
|
|
288
|
+
|
|
289
|
+
# Load Balancers & Network Security Groups
|
|
290
|
+
ic oci lb info
|
|
291
|
+
ic oci nsg info
|
|
292
|
+
|
|
293
|
+
# Storage & Cost usage
|
|
294
|
+
ic oci volume info
|
|
295
|
+
ic oci cost usage
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### CloudFlare & SSH Commands
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# CloudFlare Zones and DNS
|
|
302
|
+
ic cf zone info
|
|
303
|
+
ic cf dns info
|
|
304
|
+
|
|
305
|
+
# SSH Server discovery
|
|
306
|
+
ic ssh info
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Security & Hook Commands
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
# Scan codebase for hardcoded secrets
|
|
313
|
+
ic security scan
|
|
314
|
+
|
|
315
|
+
# Install pre-commit security hooks
|
|
316
|
+
ic security install-hooks
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## 🧪 Testing & Validation
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# Run unit & integration test suites
|
|
325
|
+
pytest tests/unit tests/integration
|
|
326
|
+
|
|
327
|
+
# Run End-to-End CLI validation
|
|
328
|
+
python tests/validation/end_to_end_cli_validation.py
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## 📄 License
|
|
334
|
+
|
|
335
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
ic_code-1.2.7/README.md
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
# IC CLI Tool (Infrastructure Commander)
|
|
2
|
+
|
|
3
|
+
[](https://badge.fury.io/py/ic-code)
|
|
4
|
+
[](https://www.python.org/downloads/)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
A comprehensive, production-grade Infrastructure Command Line Interface tool for managing multi-cloud infrastructure and server components across multiple platforms. IC CLI provides unified access to **AWS**, **GCP**, **Oracle Cloud Infrastructure (OCI)**, **CloudFlare**, and **SSH** server management with rich progress indicators and secure configuration management.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## ✨ Key Features
|
|
12
|
+
|
|
13
|
+
- **🚀 Multi-Cloud Support**: AWS, GCP, OCI, CloudFlare, and SSH server management
|
|
14
|
+
- **📊 Rich Progress Bars**: Real-time progress indicators for all long-running operations across accounts and regions
|
|
15
|
+
- **🔒 Secure Configuration**: Modern YAML-based configuration (`~/.ic/config/`) with separate secrets management
|
|
16
|
+
- **🌍 Multi-Account / Multi-Region**: Concurrent querying across multiple cloud accounts and regions
|
|
17
|
+
- **🎨 Beautiful Terminal UI**: Rich terminal output with tables, colors, JSON formatting, and tree diagrams
|
|
18
|
+
- **⚡ High Performance**: Optimized async and concurrent execution for fast resource discovery
|
|
19
|
+
- **🛡️ Security First**: Built-in credential masking, secret scanning, and pre-commit hook support
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📦 Supported Platforms & Services
|
|
24
|
+
|
|
25
|
+
### 1. 🟧 AWS Services (Production Ready)
|
|
26
|
+
- **Compute**: EC2 instances, ECS services/tasks, EKS clusters/nodes/pods, Fargate profiles
|
|
27
|
+
- **Storage & DB**: S3 buckets (with tagging compliance checks), RDS instances & clusters
|
|
28
|
+
- **Networking**: VPC, Subnets, Gateways, Load Balancers (ALB/NLB), Security Groups (with Ingress & Egress rule analysis & tree view), VPN connections
|
|
29
|
+
- **Integrations**: CloudFront distributions, MSK Kafka brokers, CodePipeline build/deploy status, Profile management
|
|
30
|
+
|
|
31
|
+
### 2. 🟩 GCP Services (Production Ready)
|
|
32
|
+
- **Compute Engine**: VM instances with status, zone, and network interface details
|
|
33
|
+
- **Cloud Storage**: Bucket lists, location, and storage class information
|
|
34
|
+
- **VPC Network**: Subnets, routes, and firewall rule visibility
|
|
35
|
+
- **GKE**: Kubernetes Engine clusters and node pool configurations
|
|
36
|
+
- **Cloud SQL**: Database instances, engines, and status
|
|
37
|
+
|
|
38
|
+
### 3. 🟥 Oracle Cloud Infrastructure (OCI) (Production Ready)
|
|
39
|
+
- **Compute & Containers**: VM instances, Container instances (ACI)
|
|
40
|
+
- **Networking**: VCN, Subnets, Load Balancers, Network Security Groups (NSG)
|
|
41
|
+
- **Storage**: Block Volumes, Object Storage buckets
|
|
42
|
+
- **IAM & Cost**: Compartment hierarchy, IAM Policy search/validation, Cost usage & billing credits
|
|
43
|
+
|
|
44
|
+
### 4. 🟧 CloudFlare (Production Ready)
|
|
45
|
+
- **DNS & Zones**: Zone listings, DNS record management, and account filtering
|
|
46
|
+
|
|
47
|
+
### 5. 🟦 SSH Server Management (Production Ready)
|
|
48
|
+
- **Discovery**: Automatic server registration, connection verification, and security filtering
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 📦 Installation
|
|
53
|
+
|
|
54
|
+
### From PyPI (Recommended)
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Install the latest stable version (v1.2.6+)
|
|
58
|
+
pip install ic-code
|
|
59
|
+
|
|
60
|
+
# Verify installation
|
|
61
|
+
ic --version
|
|
62
|
+
ic --help
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### From Source (Development)
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Clone the repository
|
|
69
|
+
git clone https://github.com/dgr009/ic.git
|
|
70
|
+
cd ic
|
|
71
|
+
|
|
72
|
+
# Create and activate virtual environment
|
|
73
|
+
python -m venv .venv
|
|
74
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
75
|
+
|
|
76
|
+
# Install dependencies and local editable package
|
|
77
|
+
pip install -e .
|
|
78
|
+
|
|
79
|
+
# Verify installation
|
|
80
|
+
ic --version
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## ⚙️ Configuration Setup
|
|
86
|
+
|
|
87
|
+
IC CLI uses a modern two-file configuration system located in `~/.ic/config/` for security:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
~/.ic/config/
|
|
91
|
+
├── default.yaml # Non-sensitive default settings
|
|
92
|
+
└── secrets.yaml # Sensitive API keys, tokens, and profiles
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 1. Initialize Configuration
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Guided interactive configuration setup
|
|
99
|
+
ic config init
|
|
100
|
+
|
|
101
|
+
# Or generate template for specific clouds
|
|
102
|
+
ic config init --template aws
|
|
103
|
+
ic config init --template multi-cloud
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 2. Configure Credentials (`~/.ic/config/secrets.yaml`)
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
# AWS Configuration
|
|
110
|
+
aws:
|
|
111
|
+
accounts:
|
|
112
|
+
- "123456789012"
|
|
113
|
+
profiles:
|
|
114
|
+
default: "my-aws-profile"
|
|
115
|
+
regions:
|
|
116
|
+
- "ap-northeast-2"
|
|
117
|
+
- "us-east-1"
|
|
118
|
+
|
|
119
|
+
# GCP Configuration
|
|
120
|
+
gcp:
|
|
121
|
+
project_id: "my-gcp-project-id"
|
|
122
|
+
credentials_file: "~/.config/gcloud/application_default_credentials.json"
|
|
123
|
+
regions:
|
|
124
|
+
- "asia-northeast3"
|
|
125
|
+
- "us-central1"
|
|
126
|
+
|
|
127
|
+
# Oracle Cloud Infrastructure (OCI)
|
|
128
|
+
oci:
|
|
129
|
+
config_file: "~/.oci/config"
|
|
130
|
+
profile: "DEFAULT"
|
|
131
|
+
compartments:
|
|
132
|
+
- "ocid1.compartment.oc1..example"
|
|
133
|
+
|
|
134
|
+
# CloudFlare Configuration
|
|
135
|
+
cloudflare:
|
|
136
|
+
api_token: "your-cloudflare-api-token"
|
|
137
|
+
|
|
138
|
+
# SSH Configuration
|
|
139
|
+
ssh:
|
|
140
|
+
key_dir: "~/.ssh"
|
|
141
|
+
skip_prefixes:
|
|
142
|
+
- "bastion"
|
|
143
|
+
- "jump"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 3. Manage & Validate Config
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Show configuration (sensitive fields masked automatically)
|
|
150
|
+
ic config show
|
|
151
|
+
|
|
152
|
+
# Validate configuration structure and paths
|
|
153
|
+
ic config validate
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 🚀 Command Usage Examples
|
|
159
|
+
|
|
160
|
+
### AWS Commands
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# List EC2 instances across configured regions
|
|
164
|
+
ic aws ec2 info
|
|
165
|
+
|
|
166
|
+
# Security Group Info (Shows Ingress & Egress rules by default)
|
|
167
|
+
ic aws sg info
|
|
168
|
+
|
|
169
|
+
# Filter Security Groups for Ingress or Egress rules only
|
|
170
|
+
ic aws sg info --ingress # Show Ingress rules only
|
|
171
|
+
ic aws sg info --egress # Show Egress rules only
|
|
172
|
+
|
|
173
|
+
# Render Security Groups in visual tree structure with direction arrows (← Ingress, → Egress)
|
|
174
|
+
ic aws sg info -o tree
|
|
175
|
+
|
|
176
|
+
# S3 Bucket details and tag validation
|
|
177
|
+
ic aws s3 info
|
|
178
|
+
ic aws s3 tag_check
|
|
179
|
+
|
|
180
|
+
# EKS & ECS Cluster info
|
|
181
|
+
ic aws eks info
|
|
182
|
+
ic aws ecs info
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### GCP Commands
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Compute Engine VM instances
|
|
189
|
+
ic gcp compute info
|
|
190
|
+
|
|
191
|
+
# Cloud Storage buckets
|
|
192
|
+
ic gcp storage info
|
|
193
|
+
|
|
194
|
+
# VPC networks and subnets
|
|
195
|
+
ic gcp vpc info
|
|
196
|
+
|
|
197
|
+
# GKE Clusters
|
|
198
|
+
ic gcp gke info
|
|
199
|
+
|
|
200
|
+
# Cloud SQL databases
|
|
201
|
+
ic gcp sql info
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### OCI Commands
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
# Compute VM instances
|
|
208
|
+
ic oci vm info
|
|
209
|
+
|
|
210
|
+
# Virtual Cloud Networks
|
|
211
|
+
ic oci vcn info
|
|
212
|
+
|
|
213
|
+
# Load Balancers & Network Security Groups
|
|
214
|
+
ic oci lb info
|
|
215
|
+
ic oci nsg info
|
|
216
|
+
|
|
217
|
+
# Storage & Cost usage
|
|
218
|
+
ic oci volume info
|
|
219
|
+
ic oci cost usage
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### CloudFlare & SSH Commands
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# CloudFlare Zones and DNS
|
|
226
|
+
ic cf zone info
|
|
227
|
+
ic cf dns info
|
|
228
|
+
|
|
229
|
+
# SSH Server discovery
|
|
230
|
+
ic ssh info
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Security & Hook Commands
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# Scan codebase for hardcoded secrets
|
|
237
|
+
ic security scan
|
|
238
|
+
|
|
239
|
+
# Install pre-commit security hooks
|
|
240
|
+
ic security install-hooks
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 🧪 Testing & Validation
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# Run unit & integration test suites
|
|
249
|
+
pytest tests/unit tests/integration
|
|
250
|
+
|
|
251
|
+
# Run End-to-End CLI validation
|
|
252
|
+
python tests/validation/end_to_end_cli_validation.py
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 📄 License
|
|
258
|
+
|
|
259
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
@@ -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
|