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.
Files changed (305) hide show
  1. {ic_code-1.2.5/src/ic_code.egg-info → ic_code-1.2.6}/PKG-INFO +25 -36
  2. ic_code-1.2.6/config/default.yaml +95 -0
  3. {ic_code-1.2.5 → ic_code-1.2.6}/pyproject.toml +30 -43
  4. ic_code-1.2.6/requirements.txt +57 -0
  5. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/dependency_mapper.py +2 -13
  6. {ic_code-1.2.5 → ic_code-1.2.6}/setup.py +28 -39
  7. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gather_env.py +0 -24
  8. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gcp_monitoring.py +0 -4
  9. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gcp_utils.py +9 -108
  10. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/slack.py +1 -4
  11. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/utils.py +73 -11
  12. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/__init__.py +2 -7
  13. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/cli.py +13 -51
  14. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/commands/config.py +303 -462
  15. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/commands/security.py +34 -1
  16. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/compat/__init__.py +0 -11
  17. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/compat/cli.py +1 -22
  18. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/compat/common.py +1 -43
  19. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/installer.py +1 -28
  20. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/manager.py +24 -542
  21. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/migration.py +70 -48
  22. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/schema.py +0 -94
  23. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/secrets.py +1 -26
  24. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/security.py +51 -15
  25. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/__init__.py +1 -7
  26. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/dependency_validator.py +1 -17
  27. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/logging.py +5 -8
  28. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/platform_discovery.py +7 -16
  29. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/session.py +4 -9
  30. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/cloudfront/info.py +2 -4
  31. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/codepipeline/build.py +4 -18
  32. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/codepipeline/deploy.py +4 -18
  33. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/info.py +4 -17
  34. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/list_tags.py +6 -12
  35. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/tag_check.py +6 -15
  36. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/info.py +4 -18
  37. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/service.py +3 -14
  38. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/task.py +3 -14
  39. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/addons.py +4 -18
  40. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/fargate.py +4 -18
  41. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/info.py +4 -18
  42. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/nodes.py +4 -18
  43. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/pods.py +4 -18
  44. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/update_config.py +4 -18
  45. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/fargate/info.py +4 -18
  46. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/info.py +4 -13
  47. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/list_tags.py +6 -12
  48. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/tag_check.py +6 -15
  49. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/msk/broker.py +3 -14
  50. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/msk/info.py +4 -18
  51. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/nat/list_tags.py +7 -16
  52. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/nat/tag_check.py +7 -19
  53. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/info.py +4 -13
  54. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/list_tags.py +6 -12
  55. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/tag_check.py +9 -37
  56. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/info.py +4 -13
  57. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/list_tags.py +6 -12
  58. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/tag_check.py +6 -15
  59. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/sg/info.py +183 -129
  60. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/info.py +4 -13
  61. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/list_tags.py +6 -12
  62. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/tag_check.py +10 -37
  63. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpn/info.py +4 -13
  64. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/account/info.py +3 -3
  65. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/client.py +1 -1
  66. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/dns/info.py +3 -3
  67. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/rules/info.py +3 -3
  68. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/traffic/info.py +3 -3
  69. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/waf/info.py +3 -3
  70. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/zone/info.py +3 -3
  71. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/billing/info.py +2 -11
  72. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/compute/info.py +2 -11
  73. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/firewall/info.py +2 -11
  74. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/functions/info.py +2 -11
  75. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/gke/info.py +2 -11
  76. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/lb/info.py +2 -11
  77. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/run/info.py +2 -11
  78. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/sql/info.py +2 -11
  79. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/storage/info.py +2 -11
  80. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/vpc/info.py +2 -11
  81. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/cost/credit.py +1 -4
  82. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/cost/usage.py +1 -4
  83. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/info/oci_info.py +1 -4
  84. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/lb/info.py +3 -12
  85. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/nsg/info.py +3 -12
  86. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/obj/info.py +3 -12
  87. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/policy/info.py +2 -8
  88. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/policy/search.py +3 -9
  89. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vcn/info.py +2 -8
  90. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vm/info.py +33 -31
  91. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/volume/info.py +3 -12
  92. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/auto/scan.py +3 -3
  93. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/auto_ssh.py +4 -4
  94. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/server/info.py +4 -10
  95. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/server_info.py +3 -9
  96. {ic_code-1.2.5 → ic_code-1.2.6/src/ic_code.egg-info}/PKG-INFO +25 -36
  97. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic_code.egg-info/SOURCES.txt +2 -68
  98. ic_code-1.2.6/src/ic_code.egg-info/requires.txt +42 -0
  99. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic_code.egg-info/top_level.txt +0 -1
  100. ic_code-1.2.5/docs/azure/README.md +0 -27
  101. ic_code-1.2.5/docs/mcp_integration.md +0 -231
  102. ic_code-1.2.5/docs/ncp/README.md +0 -26
  103. ic_code-1.2.5/docs/ncp/configuration.md +0 -297
  104. ic_code-1.2.5/docs/ncp/installation.md +0 -152
  105. ic_code-1.2.5/docs/ncp/troubleshooting.md +0 -406
  106. ic_code-1.2.5/docs/ncp/usage.md +0 -508
  107. ic_code-1.2.5/docs/ncpgov/README.md +0 -26
  108. ic_code-1.2.5/docs/ncpgov/installation.md +0 -251
  109. ic_code-1.2.5/requirements.txt +0 -80
  110. ic_code-1.2.5/scripts/ncp_security_scanner.py +0 -649
  111. ic_code-1.2.5/scripts/validate_ncp_security.py +0 -329
  112. ic_code-1.2.5/src/common/azure_utils.py +0 -308
  113. ic_code-1.2.5/src/common/ncp_security_utils.py +0 -602
  114. ic_code-1.2.5/src/common/ncp_utils.py +0 -795
  115. ic_code-1.2.5/src/common/ncpgov_utils.py +0 -542
  116. ic_code-1.2.5/src/ic/cli_backup.py +0 -2136
  117. ic_code-1.2.5/src/ic/commands/migration.py +0 -509
  118. ic_code-1.2.5/src/ic/core/mcp_manager.py +0 -862
  119. ic_code-1.2.5/src/ic/migration/__init__.py +0 -50
  120. ic_code-1.2.5/src/ic/migration/manager.py +0 -422
  121. ic_code-1.2.5/src/ic/migration/post_validation.py +0 -971
  122. ic_code-1.2.5/src/ic/migration/rollback.py +0 -793
  123. ic_code-1.2.5/src/ic/migration/validation.py +0 -843
  124. ic_code-1.2.5/src/ic/platforms/azure/README.md +0 -133
  125. ic_code-1.2.5/src/ic/platforms/azure/__init__.py +0 -1
  126. ic_code-1.2.5/src/ic/platforms/azure/aci/__init__.py +0 -1
  127. ic_code-1.2.5/src/ic/platforms/azure/aci/info.py +0 -519
  128. ic_code-1.2.5/src/ic/platforms/azure/aks/__init__.py +0 -1
  129. ic_code-1.2.5/src/ic/platforms/azure/aks/info.py +0 -459
  130. ic_code-1.2.5/src/ic/platforms/azure/lb/__init__.py +0 -1
  131. ic_code-1.2.5/src/ic/platforms/azure/lb/info.py +0 -560
  132. ic_code-1.2.5/src/ic/platforms/azure/nsg/__init__.py +0 -1
  133. ic_code-1.2.5/src/ic/platforms/azure/nsg/info.py +0 -456
  134. ic_code-1.2.5/src/ic/platforms/azure/storage/__init__.py +0 -1
  135. ic_code-1.2.5/src/ic/platforms/azure/storage/info.py +0 -491
  136. ic_code-1.2.5/src/ic/platforms/azure/vm/__init__.py +0 -1
  137. ic_code-1.2.5/src/ic/platforms/azure/vm/info.py +0 -483
  138. ic_code-1.2.5/src/ic/platforms/azure/vm/mock_data.json +0 -35
  139. ic_code-1.2.5/src/ic/platforms/azure/vnet/__init__.py +0 -1
  140. ic_code-1.2.5/src/ic/platforms/azure/vnet/info.py +0 -434
  141. ic_code-1.2.5/src/ic/platforms/azure/vnet/mock_data.json +0 -46
  142. ic_code-1.2.5/src/ic/platforms/ncp/__init__.py +0 -2
  143. ic_code-1.2.5/src/ic/platforms/ncp/client.py +0 -686
  144. ic_code-1.2.5/src/ic/platforms/ncp/ec2/__init__.py +0 -1
  145. ic_code-1.2.5/src/ic/platforms/ncp/ec2/info.py +0 -376
  146. ic_code-1.2.5/src/ic/platforms/ncp/rds/__init__.py +0 -1
  147. ic_code-1.2.5/src/ic/platforms/ncp/rds/info.py +0 -442
  148. ic_code-1.2.5/src/ic/platforms/ncp/s3/__init__.py +0 -1
  149. ic_code-1.2.5/src/ic/platforms/ncp/s3/info.py +0 -439
  150. ic_code-1.2.5/src/ic/platforms/ncp/sg/__init__.py +0 -1
  151. ic_code-1.2.5/src/ic/platforms/ncp/sg/info.py +0 -516
  152. ic_code-1.2.5/src/ic/platforms/ncp/vpc/__init__.py +0 -1
  153. ic_code-1.2.5/src/ic/platforms/ncp/vpc/info.py +0 -543
  154. ic_code-1.2.5/src/ic/platforms/ncpgov/__init__.py +0 -2
  155. ic_code-1.2.5/src/ic/platforms/ncpgov/client.py +0 -395
  156. ic_code-1.2.5/src/ic/platforms/ncpgov/ec2/__init__.py +0 -1
  157. ic_code-1.2.5/src/ic/platforms/ncpgov/ec2/info.py +0 -438
  158. ic_code-1.2.5/src/ic/platforms/ncpgov/rds/__init__.py +0 -1
  159. ic_code-1.2.5/src/ic/platforms/ncpgov/rds/info.py +0 -503
  160. ic_code-1.2.5/src/ic/platforms/ncpgov/s3/__init__.py +0 -1
  161. ic_code-1.2.5/src/ic/platforms/ncpgov/s3/info.py +0 -455
  162. ic_code-1.2.5/src/ic/platforms/ncpgov/sg/__init__.py +0 -1
  163. ic_code-1.2.5/src/ic/platforms/ncpgov/sg/info.py +0 -505
  164. ic_code-1.2.5/src/ic/platforms/ncpgov/vpc/__init__.py +0 -1
  165. ic_code-1.2.5/src/ic/platforms/ncpgov/vpc/info.py +0 -482
  166. ic_code-1.2.5/src/ic_code.egg-info/requires.txt +0 -53
  167. ic_code-1.2.5/src/mcp/__init__.py +0 -10
  168. ic_code-1.2.5/src/mcp/gcp_connector.py +0 -246
  169. {ic_code-1.2.5 → ic_code-1.2.6}/LICENSE +0 -0
  170. {ic_code-1.2.5 → ic_code-1.2.6}/MANIFEST.in +0 -0
  171. {ic_code-1.2.5 → ic_code-1.2.6}/README.md +0 -0
  172. {ic_code-1.2.5 → ic_code-1.2.6}/SECURITY.md +0 -0
  173. {ic_code-1.2.5 → ic_code-1.2.6}/docs/README.md +0 -0
  174. {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/configuration.md +0 -0
  175. {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/installation.md +0 -0
  176. {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/troubleshooting.md +0 -0
  177. {ic_code-1.2.5 → ic_code-1.2.6}/docs/_templates/usage.md +0 -0
  178. {ic_code-1.2.5 → ic_code-1.2.6}/docs/aws/README.md +0 -0
  179. {ic_code-1.2.5 → ic_code-1.2.6}/docs/aws/aws_cli_prd.md +0 -0
  180. {ic_code-1.2.5 → ic_code-1.2.6}/docs/aws/installation.md +0 -0
  181. {ic_code-1.2.5 → ic_code-1.2.6}/docs/ci-workflow-guide.md +0 -0
  182. {ic_code-1.2.5 → ic_code-1.2.6}/docs/cloudflare_configuration_example.md +0 -0
  183. {ic_code-1.2.5 → ic_code-1.2.6}/docs/config_migration.md +0 -0
  184. {ic_code-1.2.5 → ic_code-1.2.6}/docs/deployment.md +0 -0
  185. {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/README.md +0 -0
  186. {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/cleanup_summary.md +0 -0
  187. {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/development_guide.md +0 -0
  188. {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/import_patterns.md +0 -0
  189. {ic_code-1.2.5 → ic_code-1.2.6}/docs/development/migration_guide.md +0 -0
  190. {ic_code-1.2.5 → ic_code-1.2.6}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
  191. {ic_code-1.2.5 → ic_code-1.2.6}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
  192. {ic_code-1.2.5 → ic_code-1.2.6}/docs/gcp/README.md +0 -0
  193. {ic_code-1.2.5 → ic_code-1.2.6}/docs/general/configuration.md +0 -0
  194. {ic_code-1.2.5 → ic_code-1.2.6}/docs/installation.md +0 -0
  195. {ic_code-1.2.5 → ic_code-1.2.6}/docs/migration.md +0 -0
  196. {ic_code-1.2.5 → ic_code-1.2.6}/docs/migration_guide.md +0 -0
  197. {ic_code-1.2.5 → ic_code-1.2.6}/docs/oci/README.md +0 -0
  198. {ic_code-1.2.5 → ic_code-1.2.6}/docs/oci/installation.md +0 -0
  199. {ic_code-1.2.5 → ic_code-1.2.6}/docs/release-guide.md +0 -0
  200. {ic_code-1.2.5 → ic_code-1.2.6}/docs/security.md +0 -0
  201. {ic_code-1.2.5 → ic_code-1.2.6}/docs/ssh/configuration.md +0 -0
  202. {ic_code-1.2.5 → ic_code-1.2.6}/docs/troubleshooting.md +0 -0
  203. {ic_code-1.2.5 → ic_code-1.2.6}/docs/user_guide.md +0 -0
  204. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/analysis_summary.py +0 -0
  205. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/bump-version.sh +0 -0
  206. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
  207. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/ci-detect-platforms.py +0 -0
  208. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/ci-generate-matrix.py +0 -0
  209. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/cli_usage_analysis.py +0 -0
  210. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/deploy.sh +0 -0
  211. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/final_validation_and_documentation.py +0 -0
  212. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/fix_consolidated_imports.py +0 -0
  213. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/migration_execution_and_validation.py +0 -0
  214. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/oracle-policy/user_policy.py +0 -0
  215. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/performance_optimization.py +0 -0
  216. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/setup_venv.py +0 -0
  217. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/test-ci-detection.sh +0 -0
  218. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/unset_env.sh +0 -0
  219. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/validate_config.py +0 -0
  220. {ic_code-1.2.5 → ic_code-1.2.6}/scripts/validate_dependencies.py +0 -0
  221. {ic_code-1.2.5 → ic_code-1.2.6}/setup.cfg +0 -0
  222. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/__init__.py +0 -0
  223. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/gcp_config_validator.py +0 -0
  224. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/log.py +0 -0
  225. {ic_code-1.2.5 → ic_code-1.2.6}/src/common/progress_decorator.py +0 -0
  226. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/commands/__init__.py +0 -0
  227. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/__init__.py +0 -0
  228. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/cleanup.py +0 -0
  229. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/docs_organizer.py +0 -0
  230. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/external.py +0 -0
  231. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/migration_utils.py +0 -0
  232. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/config/path_manager.py +0 -0
  233. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/core/silence_logging.py +0 -0
  234. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/__init__.py +0 -0
  235. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/__init__.py +0 -0
  236. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
  237. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
  238. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ec2/__init__.py +0 -0
  239. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/ecs/__init__.py +0 -0
  240. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/eks/__init__.py +0 -0
  241. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/fargate/__init__.py +0 -0
  242. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/lb/__init__.py +0 -0
  243. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/msk/__init__.py +0 -0
  244. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/nat/__init__.py +0 -0
  245. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/profile/__init__.py +0 -0
  246. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/profile/info.py +0 -0
  247. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/rds/__init__.py +0 -0
  248. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/s3/__init__.py +0 -0
  249. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/sg/__init__.py +0 -0
  250. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpc/__init__.py +0 -0
  251. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/aws/vpn/__init__.py +0 -0
  252. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/README.md +0 -0
  253. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/__init__.py +0 -0
  254. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/account/__init__.py +0 -0
  255. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
  256. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
  257. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/rules/__init__.py +0 -0
  258. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/traffic/__init__.py +0 -0
  259. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/waf/__init__.py +0 -0
  260. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/cloudflare/zone/__init__.py +0 -0
  261. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/README.md +0 -0
  262. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/__init__.py +0 -0
  263. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/billing/__init__.py +0 -0
  264. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
  265. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/compute/__init__.py +0 -0
  266. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
  267. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
  268. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/functions/__init__.py +0 -0
  269. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/gke/__init__.py +0 -0
  270. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
  271. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/lb/__init__.py +0 -0
  272. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/run/__init__.py +0 -0
  273. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/sql/__init__.py +0 -0
  274. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/storage/__init__.py +0 -0
  275. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
  276. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
  277. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/README.md +0 -0
  278. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/__init__.py +0 -0
  279. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/common/__init__.py +0 -0
  280. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/common/utils.py +0 -0
  281. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/compartment/__init__.py +0 -0
  282. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/compartment/info.py +0 -0
  283. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/cost/__init__.py +0 -0
  284. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/info/__init__.py +0 -0
  285. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/lb/__init__.py +0 -0
  286. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/nsg/__init__.py +0 -0
  287. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/obj/__init__.py +0 -0
  288. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/policy/__init__.py +0 -0
  289. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vcn/__init__.py +0 -0
  290. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/vm/__init__.py +0 -0
  291. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/oci/volume/__init__.py +0 -0
  292. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/README.md +0 -0
  293. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/__init__.py +0 -0
  294. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/auto/__init__.py +0 -0
  295. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/platforms/ssh/server/__init__.py +0 -0
  296. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/README.md +0 -0
  297. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/__init__.py +0 -0
  298. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/config.py +0 -0
  299. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/detector.py +0 -0
  300. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/guidance.py +0 -0
  301. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/hooks.py +0 -0
  302. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/patterns.py +0 -0
  303. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic/security/scanner.py +0 -0
  304. {ic_code-1.2.5 → ic_code-1.2.6}/src/ic_code.egg-info/dependency_links.txt +0 -0
  305. {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.5
4
- Summary: Infrastructure CLI tool for managing AWS, Azure, GCP, OCI, NCP, CloudFlare, SSH, and more
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,azure,ncp,naver-cloud,cloudflare,ssh,devops,multi-cloud
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.26.0
32
- Requires-Dist: botocore<2.0.0,>=1.29.0
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.28.0
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.42.0
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: azure-identity<2.0.0,>=1.15.0
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,>=12.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.19.0
64
- Requires-Dist: python-dateutil<3.0.0,>=2.8.0
65
- Requires-Dist: PyYAML<8.0.0,>=6.0
66
- Requires-Dist: click<9.0.0,>=8.0.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
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,>=3.4.8
71
- Requires-Dist: watchdog<6.0.0,>=3.0.0
72
- Requires-Dist: cerberus<2.0.0,>=1.3.4
73
- Requires-Dist: pydantic<3.0.0,>=2.0.0
74
- Requires-Dist: packaging<25.0,>=21.0
75
- Requires-Dist: setuptools<75.0,>=61.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
76
65
  Provides-Extra: dev
77
- Requires-Dist: pytest<9.0.0,>=7.0.0; extra == "dev"
78
- Requires-Dist: pytest-cov<6.0.0,>=4.0.0; extra == "dev"
79
- Requires-Dist: black<25.0.0,>=22.0.0; extra == "dev"
80
- Requires-Dist: flake8<8.0.0,>=5.0.0; extra == "dev"
81
- Requires-Dist: mypy<2.0.0,>=1.0.0; extra == "dev"
82
- Requires-Dist: pre-commit<4.0.0,>=2.20.0; 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"
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>=61.0", "wheel"]
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.5"
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, Azure, GCP, OCI, NCP, CloudFlare, SSH, and more"
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", "azure", "ncp", "naver-cloud", "cloudflare", "ssh", "devops", "multi-cloud"]
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.26.0,<2.0.0", # AWS SDK for Python
35
- "botocore>=1.29.0,<2.0.0", # AWS SDK core library
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.28.0,<3.0.0", # HTTP library for API calls (required for NCP REST API)
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.42.0,<2.0.0", # AWS CLI for additional functionality
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
- # Azure SDKs - Compatible with Python 3.9-3.13
54
- "azure-identity>=1.15.0,<2.0.0", # Azure identity and authentication
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.12
71
- "rich>=12.0.0,<15.0.0", # Rich text and beautiful formatting
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.19.0,<2.0.0", # Environment variable loading
77
- "python-dateutil>=2.8.0,<3.0.0", # Date/time utilities
78
- "PyYAML>=6.0,<8.0.0", # YAML parser (required for NCP config files)
79
- "click>=8.0.0,<9.0.0", # Command line interface framework
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>=3.4.8,<50.0.0", # Cryptographic recipes and primitives (required for NCP HMAC-SHA256 signatures)
72
+ "cryptography>=42.0.0,<50.0.0", # Cryptographic recipes and primitives
86
73
 
87
- # Additional dependencies for new config system (v2.0) - Compatible with Python 3.9-3.13
88
- "watchdog>=3.0.0,<6.0.0", # File change monitoring
89
- "cerberus>=1.3.4,<2.0.0", # Schema validation
90
- "pydantic>=2.0.0,<3.0.0", # Data validation and settings management
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>=21.0,<25.0", # Version parsing and comparison
94
- "setuptools>=61.0,<75.0", # Package building tools
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>=7.0.0,<9.0.0",
100
- "pytest-cov>=4.0.0,<6.0.0",
101
- "black>=22.0.0,<25.0.0",
102
- "flake8>=5.0.0,<8.0.0",
103
- "mypy>=1.0.0,<2.0.0",
104
- "pre-commit>=2.20.0,<4.0.0",
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*", "mcp*"]
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('ncp.') or module_key.startswith('ncp_module.'):
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, Azure, GCP, OCI, NCP, and CloudFlare with built-in security features",
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*", "mcp*"]),
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.12 compatible
161
- "boto3>=1.26.0,<2.0.0",
162
- "botocore>=1.29.0,<2.0.0",
163
- "requests>=2.28.0,<3.0.0", # Required for NCP REST API calls
164
- "rich>=12.0.0,<15.0.0",
165
- "PyYAML>=6.0,<7.0.0", # Required for NCP configuration files
166
- "paramiko>=2.11.0,<5.0.0",
167
- "python-dotenv>=0.19.0,<2.0.0",
168
- "cryptography>=3.4.8,<50.0.0", # Required for NCP HMAC-SHA256 signatures
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.8.0,<3.0.0",
173
- "click>=8.0.0,<9.0.0",
174
- "packaging>=21.0,<25.0",
175
- "setuptools>=61.0,<71.0",
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>=3.0.0,<4.0.0",
179
- "cerberus>=1.3.4,<2.0.0",
180
- "pydantic>=2.0.0,<3.0.0",
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>=7.0.0",
192
- "pytest-cov>=4.0.0",
193
- "black>=22.0.0",
194
- "flake8>=5.0.0",
195
- "mypy>=1.0.0",
196
- "pre-commit>=2.20.0",
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>=7.0.0",
200
- "pytest-cov>=4.0.0",
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", "azure", "gcp", "oci", "ncp", "naver-cloud", "cloudflare",
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
  """전체 헬스 상태 반환"""