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.
Files changed (311) hide show
  1. ic_code-1.2.7/PKG-INFO +335 -0
  2. ic_code-1.2.7/README.md +259 -0
  3. ic_code-1.2.7/config/default.yaml +95 -0
  4. ic_code-1.2.7/docs/README.md +80 -0
  5. {ic_code-1.2.5 → ic_code-1.2.7}/docs/general/configuration.md +3 -5
  6. ic_code-1.2.7/docs/user_guide.md +113 -0
  7. {ic_code-1.2.5 → ic_code-1.2.7}/pyproject.toml +30 -43
  8. ic_code-1.2.7/requirements.txt +57 -0
  9. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/dependency_mapper.py +2 -13
  10. {ic_code-1.2.5 → ic_code-1.2.7}/setup.py +28 -39
  11. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gather_env.py +0 -24
  12. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gcp_monitoring.py +0 -4
  13. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gcp_utils.py +9 -108
  14. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/slack.py +1 -4
  15. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/utils.py +100 -11
  16. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/__init__.py +2 -7
  17. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/cli.py +13 -51
  18. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/commands/config.py +303 -462
  19. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/commands/security.py +34 -1
  20. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/compat/__init__.py +0 -11
  21. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/compat/cli.py +1 -22
  22. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/compat/common.py +1 -43
  23. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/installer.py +1 -28
  24. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/manager.py +24 -542
  25. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/migration.py +70 -48
  26. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/schema.py +0 -94
  27. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/secrets.py +1 -26
  28. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/security.py +51 -15
  29. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/__init__.py +1 -7
  30. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/dependency_validator.py +1 -17
  31. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/logging.py +5 -8
  32. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/platform_discovery.py +7 -16
  33. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/session.py +4 -9
  34. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/cloudfront/info.py +2 -4
  35. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/codepipeline/build.py +4 -18
  36. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/codepipeline/deploy.py +4 -18
  37. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/info.py +4 -17
  38. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/list_tags.py +6 -12
  39. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/tag_check.py +6 -15
  40. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/info.py +4 -18
  41. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/service.py +3 -14
  42. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/task.py +3 -14
  43. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/addons.py +4 -18
  44. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/fargate.py +4 -18
  45. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/info.py +4 -18
  46. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/nodes.py +4 -18
  47. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/pods.py +4 -18
  48. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/update_config.py +4 -18
  49. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/fargate/info.py +4 -18
  50. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/info.py +4 -13
  51. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/list_tags.py +6 -12
  52. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/tag_check.py +6 -15
  53. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/msk/broker.py +3 -14
  54. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/msk/info.py +4 -18
  55. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/nat/list_tags.py +7 -16
  56. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/nat/tag_check.py +7 -19
  57. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/info.py +4 -13
  58. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/list_tags.py +6 -12
  59. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/tag_check.py +9 -37
  60. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/info.py +4 -13
  61. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/list_tags.py +6 -12
  62. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/tag_check.py +6 -15
  63. ic_code-1.2.7/src/ic/platforms/aws/sg/info.py +417 -0
  64. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/info.py +4 -13
  65. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/list_tags.py +6 -12
  66. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/tag_check.py +10 -37
  67. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpn/info.py +4 -13
  68. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/account/info.py +3 -3
  69. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/client.py +1 -1
  70. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/dns/info.py +3 -3
  71. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/rules/info.py +3 -3
  72. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/traffic/info.py +3 -3
  73. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/waf/info.py +3 -3
  74. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/zone/info.py +3 -3
  75. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/billing/info.py +2 -11
  76. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/compute/info.py +2 -11
  77. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/firewall/info.py +2 -11
  78. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/functions/info.py +2 -11
  79. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/gke/info.py +2 -11
  80. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/lb/info.py +2 -11
  81. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/run/info.py +2 -11
  82. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/sql/info.py +2 -11
  83. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/storage/info.py +2 -11
  84. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/vpc/info.py +2 -11
  85. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/cost/credit.py +1 -4
  86. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/cost/usage.py +1 -4
  87. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/info/oci_info.py +1 -4
  88. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/lb/info.py +3 -12
  89. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/nsg/info.py +3 -12
  90. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/obj/info.py +3 -12
  91. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/policy/info.py +2 -8
  92. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/policy/search.py +3 -9
  93. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vcn/info.py +2 -8
  94. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vm/info.py +33 -31
  95. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/volume/info.py +3 -12
  96. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/auto/scan.py +3 -3
  97. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/auto_ssh.py +4 -4
  98. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/server/info.py +4 -10
  99. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/server_info.py +3 -9
  100. ic_code-1.2.7/src/ic_code.egg-info/PKG-INFO +335 -0
  101. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic_code.egg-info/SOURCES.txt +2 -68
  102. ic_code-1.2.7/src/ic_code.egg-info/requires.txt +42 -0
  103. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic_code.egg-info/top_level.txt +0 -1
  104. ic_code-1.2.5/PKG-INFO +0 -1831
  105. ic_code-1.2.5/README.md +0 -1744
  106. ic_code-1.2.5/docs/README.md +0 -141
  107. ic_code-1.2.5/docs/azure/README.md +0 -27
  108. ic_code-1.2.5/docs/mcp_integration.md +0 -231
  109. ic_code-1.2.5/docs/ncp/README.md +0 -26
  110. ic_code-1.2.5/docs/ncp/configuration.md +0 -297
  111. ic_code-1.2.5/docs/ncp/installation.md +0 -152
  112. ic_code-1.2.5/docs/ncp/troubleshooting.md +0 -406
  113. ic_code-1.2.5/docs/ncp/usage.md +0 -508
  114. ic_code-1.2.5/docs/ncpgov/README.md +0 -26
  115. ic_code-1.2.5/docs/ncpgov/installation.md +0 -251
  116. ic_code-1.2.5/docs/user_guide.md +0 -259
  117. ic_code-1.2.5/requirements.txt +0 -80
  118. ic_code-1.2.5/scripts/ncp_security_scanner.py +0 -649
  119. ic_code-1.2.5/scripts/validate_ncp_security.py +0 -329
  120. ic_code-1.2.5/src/common/azure_utils.py +0 -308
  121. ic_code-1.2.5/src/common/ncp_security_utils.py +0 -602
  122. ic_code-1.2.5/src/common/ncp_utils.py +0 -795
  123. ic_code-1.2.5/src/common/ncpgov_utils.py +0 -542
  124. ic_code-1.2.5/src/ic/cli_backup.py +0 -2136
  125. ic_code-1.2.5/src/ic/commands/migration.py +0 -509
  126. ic_code-1.2.5/src/ic/core/mcp_manager.py +0 -862
  127. ic_code-1.2.5/src/ic/migration/__init__.py +0 -50
  128. ic_code-1.2.5/src/ic/migration/manager.py +0 -422
  129. ic_code-1.2.5/src/ic/migration/post_validation.py +0 -971
  130. ic_code-1.2.5/src/ic/migration/rollback.py +0 -793
  131. ic_code-1.2.5/src/ic/migration/validation.py +0 -843
  132. ic_code-1.2.5/src/ic/platforms/aws/sg/info.py +0 -342
  133. ic_code-1.2.5/src/ic/platforms/azure/README.md +0 -133
  134. ic_code-1.2.5/src/ic/platforms/azure/__init__.py +0 -1
  135. ic_code-1.2.5/src/ic/platforms/azure/aci/__init__.py +0 -1
  136. ic_code-1.2.5/src/ic/platforms/azure/aci/info.py +0 -519
  137. ic_code-1.2.5/src/ic/platforms/azure/aks/__init__.py +0 -1
  138. ic_code-1.2.5/src/ic/platforms/azure/aks/info.py +0 -459
  139. ic_code-1.2.5/src/ic/platforms/azure/lb/__init__.py +0 -1
  140. ic_code-1.2.5/src/ic/platforms/azure/lb/info.py +0 -560
  141. ic_code-1.2.5/src/ic/platforms/azure/nsg/__init__.py +0 -1
  142. ic_code-1.2.5/src/ic/platforms/azure/nsg/info.py +0 -456
  143. ic_code-1.2.5/src/ic/platforms/azure/storage/__init__.py +0 -1
  144. ic_code-1.2.5/src/ic/platforms/azure/storage/info.py +0 -491
  145. ic_code-1.2.5/src/ic/platforms/azure/vm/__init__.py +0 -1
  146. ic_code-1.2.5/src/ic/platforms/azure/vm/info.py +0 -483
  147. ic_code-1.2.5/src/ic/platforms/azure/vm/mock_data.json +0 -35
  148. ic_code-1.2.5/src/ic/platforms/azure/vnet/__init__.py +0 -1
  149. ic_code-1.2.5/src/ic/platforms/azure/vnet/info.py +0 -434
  150. ic_code-1.2.5/src/ic/platforms/azure/vnet/mock_data.json +0 -46
  151. ic_code-1.2.5/src/ic/platforms/ncp/__init__.py +0 -2
  152. ic_code-1.2.5/src/ic/platforms/ncp/client.py +0 -686
  153. ic_code-1.2.5/src/ic/platforms/ncp/ec2/__init__.py +0 -1
  154. ic_code-1.2.5/src/ic/platforms/ncp/ec2/info.py +0 -376
  155. ic_code-1.2.5/src/ic/platforms/ncp/rds/__init__.py +0 -1
  156. ic_code-1.2.5/src/ic/platforms/ncp/rds/info.py +0 -442
  157. ic_code-1.2.5/src/ic/platforms/ncp/s3/__init__.py +0 -1
  158. ic_code-1.2.5/src/ic/platforms/ncp/s3/info.py +0 -439
  159. ic_code-1.2.5/src/ic/platforms/ncp/sg/__init__.py +0 -1
  160. ic_code-1.2.5/src/ic/platforms/ncp/sg/info.py +0 -516
  161. ic_code-1.2.5/src/ic/platforms/ncp/vpc/__init__.py +0 -1
  162. ic_code-1.2.5/src/ic/platforms/ncp/vpc/info.py +0 -543
  163. ic_code-1.2.5/src/ic/platforms/ncpgov/__init__.py +0 -2
  164. ic_code-1.2.5/src/ic/platforms/ncpgov/client.py +0 -395
  165. ic_code-1.2.5/src/ic/platforms/ncpgov/ec2/__init__.py +0 -1
  166. ic_code-1.2.5/src/ic/platforms/ncpgov/ec2/info.py +0 -438
  167. ic_code-1.2.5/src/ic/platforms/ncpgov/rds/__init__.py +0 -1
  168. ic_code-1.2.5/src/ic/platforms/ncpgov/rds/info.py +0 -503
  169. ic_code-1.2.5/src/ic/platforms/ncpgov/s3/__init__.py +0 -1
  170. ic_code-1.2.5/src/ic/platforms/ncpgov/s3/info.py +0 -455
  171. ic_code-1.2.5/src/ic/platforms/ncpgov/sg/__init__.py +0 -1
  172. ic_code-1.2.5/src/ic/platforms/ncpgov/sg/info.py +0 -505
  173. ic_code-1.2.5/src/ic/platforms/ncpgov/vpc/__init__.py +0 -1
  174. ic_code-1.2.5/src/ic/platforms/ncpgov/vpc/info.py +0 -482
  175. ic_code-1.2.5/src/ic_code.egg-info/PKG-INFO +0 -1831
  176. ic_code-1.2.5/src/ic_code.egg-info/requires.txt +0 -53
  177. ic_code-1.2.5/src/mcp/__init__.py +0 -10
  178. ic_code-1.2.5/src/mcp/gcp_connector.py +0 -246
  179. {ic_code-1.2.5 → ic_code-1.2.7}/LICENSE +0 -0
  180. {ic_code-1.2.5 → ic_code-1.2.7}/MANIFEST.in +0 -0
  181. {ic_code-1.2.5 → ic_code-1.2.7}/SECURITY.md +0 -0
  182. {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/configuration.md +0 -0
  183. {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/installation.md +0 -0
  184. {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/troubleshooting.md +0 -0
  185. {ic_code-1.2.5 → ic_code-1.2.7}/docs/_templates/usage.md +0 -0
  186. {ic_code-1.2.5 → ic_code-1.2.7}/docs/aws/README.md +0 -0
  187. {ic_code-1.2.5 → ic_code-1.2.7}/docs/aws/aws_cli_prd.md +0 -0
  188. {ic_code-1.2.5 → ic_code-1.2.7}/docs/aws/installation.md +0 -0
  189. {ic_code-1.2.5 → ic_code-1.2.7}/docs/ci-workflow-guide.md +0 -0
  190. {ic_code-1.2.5 → ic_code-1.2.7}/docs/cloudflare_configuration_example.md +0 -0
  191. {ic_code-1.2.5 → ic_code-1.2.7}/docs/config_migration.md +0 -0
  192. {ic_code-1.2.5 → ic_code-1.2.7}/docs/deployment.md +0 -0
  193. {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/README.md +0 -0
  194. {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/cleanup_summary.md +0 -0
  195. {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/development_guide.md +0 -0
  196. {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/import_patterns.md +0 -0
  197. {ic_code-1.2.5 → ic_code-1.2.7}/docs/development/migration_guide.md +0 -0
  198. {ic_code-1.2.5 → ic_code-1.2.7}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
  199. {ic_code-1.2.5 → ic_code-1.2.7}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
  200. {ic_code-1.2.5 → ic_code-1.2.7}/docs/gcp/README.md +0 -0
  201. {ic_code-1.2.5 → ic_code-1.2.7}/docs/installation.md +0 -0
  202. {ic_code-1.2.5 → ic_code-1.2.7}/docs/migration.md +0 -0
  203. {ic_code-1.2.5 → ic_code-1.2.7}/docs/migration_guide.md +0 -0
  204. {ic_code-1.2.5 → ic_code-1.2.7}/docs/oci/README.md +0 -0
  205. {ic_code-1.2.5 → ic_code-1.2.7}/docs/oci/installation.md +0 -0
  206. {ic_code-1.2.5 → ic_code-1.2.7}/docs/release-guide.md +0 -0
  207. {ic_code-1.2.5 → ic_code-1.2.7}/docs/security.md +0 -0
  208. {ic_code-1.2.5 → ic_code-1.2.7}/docs/ssh/configuration.md +0 -0
  209. {ic_code-1.2.5 → ic_code-1.2.7}/docs/troubleshooting.md +0 -0
  210. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/analysis_summary.py +0 -0
  211. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/bump-version.sh +0 -0
  212. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
  213. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/ci-detect-platforms.py +0 -0
  214. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/ci-generate-matrix.py +0 -0
  215. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/cli_usage_analysis.py +0 -0
  216. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/deploy.sh +0 -0
  217. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/final_validation_and_documentation.py +0 -0
  218. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/fix_consolidated_imports.py +0 -0
  219. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/migration_execution_and_validation.py +0 -0
  220. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/oracle-policy/user_policy.py +0 -0
  221. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/performance_optimization.py +0 -0
  222. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/setup_venv.py +0 -0
  223. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/test-ci-detection.sh +0 -0
  224. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/unset_env.sh +0 -0
  225. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/validate_config.py +0 -0
  226. {ic_code-1.2.5 → ic_code-1.2.7}/scripts/validate_dependencies.py +0 -0
  227. {ic_code-1.2.5 → ic_code-1.2.7}/setup.cfg +0 -0
  228. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/__init__.py +0 -0
  229. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/gcp_config_validator.py +0 -0
  230. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/log.py +0 -0
  231. {ic_code-1.2.5 → ic_code-1.2.7}/src/common/progress_decorator.py +0 -0
  232. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/commands/__init__.py +0 -0
  233. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/__init__.py +0 -0
  234. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/cleanup.py +0 -0
  235. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/docs_organizer.py +0 -0
  236. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/external.py +0 -0
  237. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/migration_utils.py +0 -0
  238. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/config/path_manager.py +0 -0
  239. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/core/silence_logging.py +0 -0
  240. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/__init__.py +0 -0
  241. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/__init__.py +0 -0
  242. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
  243. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
  244. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ec2/__init__.py +0 -0
  245. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/ecs/__init__.py +0 -0
  246. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/eks/__init__.py +0 -0
  247. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/fargate/__init__.py +0 -0
  248. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/lb/__init__.py +0 -0
  249. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/msk/__init__.py +0 -0
  250. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/nat/__init__.py +0 -0
  251. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/profile/__init__.py +0 -0
  252. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/profile/info.py +0 -0
  253. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/rds/__init__.py +0 -0
  254. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/s3/__init__.py +0 -0
  255. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/sg/__init__.py +0 -0
  256. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpc/__init__.py +0 -0
  257. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/aws/vpn/__init__.py +0 -0
  258. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/README.md +0 -0
  259. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/__init__.py +0 -0
  260. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/account/__init__.py +0 -0
  261. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
  262. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
  263. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/rules/__init__.py +0 -0
  264. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/traffic/__init__.py +0 -0
  265. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/waf/__init__.py +0 -0
  266. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/cloudflare/zone/__init__.py +0 -0
  267. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/README.md +0 -0
  268. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/__init__.py +0 -0
  269. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/billing/__init__.py +0 -0
  270. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
  271. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/compute/__init__.py +0 -0
  272. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
  273. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
  274. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/functions/__init__.py +0 -0
  275. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/gke/__init__.py +0 -0
  276. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
  277. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/lb/__init__.py +0 -0
  278. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/run/__init__.py +0 -0
  279. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/sql/__init__.py +0 -0
  280. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/storage/__init__.py +0 -0
  281. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
  282. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
  283. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/README.md +0 -0
  284. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/__init__.py +0 -0
  285. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/common/__init__.py +0 -0
  286. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/common/utils.py +0 -0
  287. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/compartment/__init__.py +0 -0
  288. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/compartment/info.py +0 -0
  289. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/cost/__init__.py +0 -0
  290. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/info/__init__.py +0 -0
  291. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/lb/__init__.py +0 -0
  292. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/nsg/__init__.py +0 -0
  293. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/obj/__init__.py +0 -0
  294. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/policy/__init__.py +0 -0
  295. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vcn/__init__.py +0 -0
  296. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/vm/__init__.py +0 -0
  297. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/oci/volume/__init__.py +0 -0
  298. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/README.md +0 -0
  299. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/__init__.py +0 -0
  300. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/auto/__init__.py +0 -0
  301. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/platforms/ssh/server/__init__.py +0 -0
  302. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/README.md +0 -0
  303. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/__init__.py +0 -0
  304. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/config.py +0 -0
  305. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/detector.py +0 -0
  306. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/guidance.py +0 -0
  307. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/hooks.py +0 -0
  308. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/patterns.py +0 -0
  309. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic/security/scanner.py +0 -0
  310. {ic_code-1.2.5 → ic_code-1.2.7}/src/ic_code.egg-info/dependency_links.txt +0 -0
  311. {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
+ [![PyPI version](https://badge.fury.io/py/ic-code.svg)](https://badge.fury.io/py/ic-code)
80
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
81
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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.
@@ -0,0 +1,259 @@
1
+ # IC CLI Tool (Infrastructure Commander)
2
+
3
+ [![PyPI version](https://badge.fury.io/py/ic-code.svg)](https://badge.fury.io/py/ic-code)
4
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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