ic-code 1.0.2__tar.gz → 1.0.3__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 (191) hide show
  1. {ic_code-1.0.2/src/ic_code.egg-info → ic_code-1.0.3}/PKG-INFO +1 -1
  2. {ic_code-1.0.2 → ic_code-1.0.3}/pyproject.toml +1 -1
  3. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/manager.py +14 -35
  4. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/secrets.py +2 -2
  5. {ic_code-1.0.2 → ic_code-1.0.3/src/ic_code.egg-info}/PKG-INFO +1 -1
  6. {ic_code-1.0.2 → ic_code-1.0.3}/CHANGELOG.md +0 -0
  7. {ic_code-1.0.2 → ic_code-1.0.3}/LICENSE +0 -0
  8. {ic_code-1.0.2 → ic_code-1.0.3}/MANIFEST.in +0 -0
  9. {ic_code-1.0.2 → ic_code-1.0.3}/README.md +0 -0
  10. {ic_code-1.0.2 → ic_code-1.0.3}/SECURITY.md +0 -0
  11. {ic_code-1.0.2 → ic_code-1.0.3}/aws/__init__.py +0 -0
  12. {ic_code-1.0.2 → ic_code-1.0.3}/aws/cloudfront/__init__.py +0 -0
  13. {ic_code-1.0.2 → ic_code-1.0.3}/aws/cloudfront/info.py +0 -0
  14. {ic_code-1.0.2 → ic_code-1.0.3}/aws/codepipeline/__init__.py +0 -0
  15. {ic_code-1.0.2 → ic_code-1.0.3}/aws/codepipeline/build.py +0 -0
  16. {ic_code-1.0.2 → ic_code-1.0.3}/aws/codepipeline/deploy.py +0 -0
  17. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ec2/__init__.py +0 -0
  18. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ec2/info.py +0 -0
  19. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ec2/list_tags.py +0 -0
  20. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ec2/tag_check.py +0 -0
  21. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ecs/__init__.py +0 -0
  22. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ecs/info.py +0 -0
  23. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ecs/service.py +0 -0
  24. {ic_code-1.0.2 → ic_code-1.0.3}/aws/ecs/task.py +0 -0
  25. {ic_code-1.0.2 → ic_code-1.0.3}/aws/eks/__init__.py +0 -0
  26. {ic_code-1.0.2 → ic_code-1.0.3}/aws/eks/addons.py +0 -0
  27. {ic_code-1.0.2 → ic_code-1.0.3}/aws/eks/fargate.py +0 -0
  28. {ic_code-1.0.2 → ic_code-1.0.3}/aws/eks/info.py +0 -0
  29. {ic_code-1.0.2 → ic_code-1.0.3}/aws/eks/nodes.py +0 -0
  30. {ic_code-1.0.2 → ic_code-1.0.3}/aws/eks/pods.py +0 -0
  31. {ic_code-1.0.2 → ic_code-1.0.3}/aws/eks/update_config.py +0 -0
  32. {ic_code-1.0.2 → ic_code-1.0.3}/aws/fargate/__init__.py +0 -0
  33. {ic_code-1.0.2 → ic_code-1.0.3}/aws/fargate/info.py +0 -0
  34. {ic_code-1.0.2 → ic_code-1.0.3}/aws/lb/__init__.py +0 -0
  35. {ic_code-1.0.2 → ic_code-1.0.3}/aws/lb/info.py +0 -0
  36. {ic_code-1.0.2 → ic_code-1.0.3}/aws/lb/list_tags.py +0 -0
  37. {ic_code-1.0.2 → ic_code-1.0.3}/aws/lb/tag_check.py +0 -0
  38. {ic_code-1.0.2 → ic_code-1.0.3}/aws/msk/__init__.py +0 -0
  39. {ic_code-1.0.2 → ic_code-1.0.3}/aws/msk/broker.py +0 -0
  40. {ic_code-1.0.2 → ic_code-1.0.3}/aws/msk/info.py +0 -0
  41. {ic_code-1.0.2 → ic_code-1.0.3}/aws/nat/__init__.py +0 -0
  42. {ic_code-1.0.2 → ic_code-1.0.3}/aws/nat/list_tags.py +0 -0
  43. {ic_code-1.0.2 → ic_code-1.0.3}/aws/nat/tag_check.py +0 -0
  44. {ic_code-1.0.2 → ic_code-1.0.3}/aws/profile/__init__.py +0 -0
  45. {ic_code-1.0.2 → ic_code-1.0.3}/aws/profile/info.py +0 -0
  46. {ic_code-1.0.2 → ic_code-1.0.3}/aws/rds/__init__.py +0 -0
  47. {ic_code-1.0.2 → ic_code-1.0.3}/aws/rds/info.py +0 -0
  48. {ic_code-1.0.2 → ic_code-1.0.3}/aws/rds/list_tags.py +0 -0
  49. {ic_code-1.0.2 → ic_code-1.0.3}/aws/rds/tag_check.py +0 -0
  50. {ic_code-1.0.2 → ic_code-1.0.3}/aws/s3/__init__.py +0 -0
  51. {ic_code-1.0.2 → ic_code-1.0.3}/aws/s3/info.py +0 -0
  52. {ic_code-1.0.2 → ic_code-1.0.3}/aws/s3/list_tags.py +0 -0
  53. {ic_code-1.0.2 → ic_code-1.0.3}/aws/s3/tag_check.py +0 -0
  54. {ic_code-1.0.2 → ic_code-1.0.3}/aws/sg/__init__.py +0 -0
  55. {ic_code-1.0.2 → ic_code-1.0.3}/aws/sg/info.py +0 -0
  56. {ic_code-1.0.2 → ic_code-1.0.3}/aws/vpc/__init__.py +0 -0
  57. {ic_code-1.0.2 → ic_code-1.0.3}/aws/vpc/info.py +0 -0
  58. {ic_code-1.0.2 → ic_code-1.0.3}/aws/vpc/list_tags.py +0 -0
  59. {ic_code-1.0.2 → ic_code-1.0.3}/aws/vpc/tag_check.py +0 -0
  60. {ic_code-1.0.2 → ic_code-1.0.3}/aws/vpn/__init__.py +0 -0
  61. {ic_code-1.0.2 → ic_code-1.0.3}/aws/vpn/info.py +0 -0
  62. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/__init__.py +0 -0
  63. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/aci/info.py +0 -0
  64. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/aks/info.py +0 -0
  65. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/lb/info.py +0 -0
  66. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/nsg/info.py +0 -0
  67. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/storage/info.py +0 -0
  68. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/vm/info.py +0 -0
  69. {ic_code-1.0.2 → ic_code-1.0.3}/azure_module/vnet/info.py +0 -0
  70. {ic_code-1.0.2 → ic_code-1.0.3}/cf/__init__.py +0 -0
  71. {ic_code-1.0.2 → ic_code-1.0.3}/cf/dns/__init__.py +0 -0
  72. {ic_code-1.0.2 → ic_code-1.0.3}/cf/dns/list_info.py +0 -0
  73. {ic_code-1.0.2 → ic_code-1.0.3}/common/__init__.py +0 -0
  74. {ic_code-1.0.2 → ic_code-1.0.3}/common/azure_utils.py +0 -0
  75. {ic_code-1.0.2 → ic_code-1.0.3}/common/gather_env.py +0 -0
  76. {ic_code-1.0.2 → ic_code-1.0.3}/common/gcp_config_validator.py +0 -0
  77. {ic_code-1.0.2 → ic_code-1.0.3}/common/gcp_monitoring.py +0 -0
  78. {ic_code-1.0.2 → ic_code-1.0.3}/common/gcp_utils.py +0 -0
  79. {ic_code-1.0.2 → ic_code-1.0.3}/common/log.py +0 -0
  80. {ic_code-1.0.2 → ic_code-1.0.3}/common/slack.py +0 -0
  81. {ic_code-1.0.2 → ic_code-1.0.3}/common/utils.py +0 -0
  82. {ic_code-1.0.2 → ic_code-1.0.3}/config/default.yaml +0 -0
  83. {ic_code-1.0.2 → ic_code-1.0.3}/config/secrets.yaml.example +0 -0
  84. {ic_code-1.0.2 → ic_code-1.0.3}/docs/PYPI_DEPLOYMENT.md +0 -0
  85. {ic_code-1.0.2 → ic_code-1.0.3}/docs/README.md +0 -0
  86. {ic_code-1.0.2 → ic_code-1.0.3}/docs/aws/AWS_IMPLEMENTATION_SUMMARY.md +0 -0
  87. {ic_code-1.0.2 → ic_code-1.0.3}/docs/aws/README.md +0 -0
  88. {ic_code-1.0.2 → ic_code-1.0.3}/docs/aws/aws_cli_prd.md +0 -0
  89. {ic_code-1.0.2 → ic_code-1.0.3}/docs/config_migration.md +0 -0
  90. {ic_code-1.0.2 → ic_code-1.0.3}/docs/configuration.md +0 -0
  91. {ic_code-1.0.2 → ic_code-1.0.3}/docs/deployment.md +0 -0
  92. {ic_code-1.0.2 → ic_code-1.0.3}/docs/final_validation_report.md +0 -0
  93. {ic_code-1.0.2 → ic_code-1.0.3}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
  94. {ic_code-1.0.2 → ic_code-1.0.3}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
  95. {ic_code-1.0.2 → ic_code-1.0.3}/docs/installation.md +0 -0
  96. {ic_code-1.0.2 → ic_code-1.0.3}/docs/mcp_integration.md +0 -0
  97. {ic_code-1.0.2 → ic_code-1.0.3}/docs/migration.md +0 -0
  98. {ic_code-1.0.2 → ic_code-1.0.3}/docs/migration_guide.md +0 -0
  99. {ic_code-1.0.2 → ic_code-1.0.3}/docs/migration_history.md +0 -0
  100. {ic_code-1.0.2 → ic_code-1.0.3}/docs/security.md +0 -0
  101. {ic_code-1.0.2 → ic_code-1.0.3}/docs/troubleshooting.md +0 -0
  102. {ic_code-1.0.2 → ic_code-1.0.3}/docs/user_guide.md +0 -0
  103. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/__init__.py +0 -0
  104. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/billing/__init__.py +0 -0
  105. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/billing/info.py +0 -0
  106. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/compute/__init__.py +0 -0
  107. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/compute/info.py +0 -0
  108. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/firewall/__init__.py +0 -0
  109. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/firewall/info.py +0 -0
  110. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/functions/__init__.py +0 -0
  111. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/functions/info.py +0 -0
  112. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/gke/__init__.py +0 -0
  113. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/gke/info.py +0 -0
  114. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/lb/__init__.py +0 -0
  115. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/lb/info.py +0 -0
  116. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/run/__init__.py +0 -0
  117. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/run/info.py +0 -0
  118. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/sql/__init__.py +0 -0
  119. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/sql/info.py +0 -0
  120. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/storage/__init__.py +0 -0
  121. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/storage/info.py +0 -0
  122. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/vpc/__init__.py +0 -0
  123. {ic_code-1.0.2 → ic_code-1.0.3}/gcp/vpc/info.py +0 -0
  124. {ic_code-1.0.2 → ic_code-1.0.3}/mcp/__init__.py +0 -0
  125. {ic_code-1.0.2 → ic_code-1.0.3}/mcp/gcp_connector.py +0 -0
  126. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/__init__.py +0 -0
  127. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/common/__init__.py +0 -0
  128. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/common/utils.py +0 -0
  129. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/compartment/__init__.py +0 -0
  130. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/compartment/info.py +0 -0
  131. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/cost/__init__.py +0 -0
  132. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/cost/credit.py +0 -0
  133. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/cost/usage.py +0 -0
  134. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/info/__init__.py +0 -0
  135. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/info/oci_info.py +0 -0
  136. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/lb/__init__.py +0 -0
  137. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/lb/info.py +0 -0
  138. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/nsg/__init__.py +0 -0
  139. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/nsg/info.py +0 -0
  140. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/obj/__init__.py +0 -0
  141. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/obj/info.py +0 -0
  142. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/policy/__init__.py +0 -0
  143. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/policy/info.py +0 -0
  144. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/policy/search.py +0 -0
  145. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/vcn/__init__.py +0 -0
  146. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/vcn/info.py +0 -0
  147. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/vm/__init__.py +0 -0
  148. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/vm/info.py +0 -0
  149. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/volume/__init__.py +0 -0
  150. {ic_code-1.0.2 → ic_code-1.0.3}/oci_module/volume/info.py +0 -0
  151. {ic_code-1.0.2 → ic_code-1.0.3}/requirements.txt +0 -0
  152. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/bump-version.sh +0 -0
  153. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
  154. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/deploy.sh +0 -0
  155. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/final_validation_and_documentation.py +0 -0
  156. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/migration_execution_and_validation.py +0 -0
  157. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/oracle-policy/user_policy.py +0 -0
  158. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/performance_optimization.py +0 -0
  159. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/setup_venv.py +0 -0
  160. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/unset_env.sh +0 -0
  161. {ic_code-1.0.2 → ic_code-1.0.3}/scripts/validate_config.py +0 -0
  162. {ic_code-1.0.2 → ic_code-1.0.3}/setup.cfg +0 -0
  163. {ic_code-1.0.2 → ic_code-1.0.3}/setup.py +0 -0
  164. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/__init__.py +0 -0
  165. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/cli.py +0 -0
  166. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/commands/__init__.py +0 -0
  167. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/commands/config.py +0 -0
  168. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/compat/__init__.py +0 -0
  169. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/compat/cli.py +0 -0
  170. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/compat/common.py +0 -0
  171. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/__init__.py +0 -0
  172. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/cleanup.py +0 -0
  173. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/docs_organizer.py +0 -0
  174. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/external.py +0 -0
  175. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/installer.py +0 -0
  176. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/migration.py +0 -0
  177. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/schema.py +0 -0
  178. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/config/security.py +0 -0
  179. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/core/__init__.py +0 -0
  180. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/core/logging.py +0 -0
  181. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/core/mcp_manager.py +0 -0
  182. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/core/session.py +0 -0
  183. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic/core/silence_logging.py +0 -0
  184. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic_code.egg-info/SOURCES.txt +0 -0
  185. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic_code.egg-info/dependency_links.txt +0 -0
  186. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic_code.egg-info/entry_points.txt +0 -0
  187. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic_code.egg-info/requires.txt +0 -0
  188. {ic_code-1.0.2 → ic_code-1.0.3}/src/ic_code.egg-info/top_level.txt +0 -0
  189. {ic_code-1.0.2 → ic_code-1.0.3}/ssh/__init__.py +0 -0
  190. {ic_code-1.0.2 → ic_code-1.0.3}/ssh/auto_ssh.py +0 -0
  191. {ic_code-1.0.2 → ic_code-1.0.3}/ssh/server_info.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ic-code
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Infrastructure CLI tool for managing AWS, CloudFlare, SSH, and more
5
5
  Home-page: https://github.com/dgr009/ic
6
6
  Author: SangYun Kim
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ic-code"
7
- version = "1.0.2"
7
+ version = "1.0.3"
8
8
  authors = [
9
9
  {name = "sykim", email = "cruiser594@gmail.com"},
10
10
  ]
@@ -117,10 +117,17 @@ class ConfigManager:
117
117
  if system_config.exists():
118
118
  paths.append(system_config)
119
119
 
120
- # User configuration
121
- user_config = Path.home() / "~/.ic" / "config.yaml"
122
- if user_config.exists():
123
- paths.append(user_config)
120
+ # User configuration - check for both default.yaml and config.yaml
121
+ user_config_dir = Path.home() / ".ic" / "config"
122
+ user_configs = [
123
+ user_config_dir / "default.yaml",
124
+ user_config_dir / "config.yaml",
125
+ Path.home() / ".ic" / "config.yaml" # Legacy single file location
126
+ ]
127
+ for user_config in user_configs:
128
+ if user_config.exists():
129
+ paths.append(user_config)
130
+ break
124
131
 
125
132
  # Project configuration
126
133
  project_configs = [
@@ -160,9 +167,9 @@ class ConfigManager:
160
167
 
161
168
  # Priority system: check default.yaml first, then secrets.yaml
162
169
  config_sources = [
163
- Path(".ic/config/default.yaml"),
170
+ Path.home() / ".ic" / "config" / "default.yaml",
164
171
  Path("config/default.yaml"),
165
- Path(".ic/config/secrets.yaml"),
172
+ Path.home() / ".ic" / "config" / "secrets.yaml",
166
173
  Path("config/secrets.yaml")
167
174
  ]
168
175
 
@@ -1068,35 +1075,7 @@ class ConfigManager:
1068
1075
 
1069
1076
  return ssh_config
1070
1077
 
1071
- def _load_cloudflare_config(self) -> Dict[str, Any]:
1072
- """Load CloudFlare configuration if exists"""
1073
- cf_config = {}
1074
-
1075
- # Check for CloudFlare config in various locations
1076
- possible_paths = [
1077
- Path.home() / ".cloudflare" / "config",
1078
- Path.home() / ".cloudflare" / "config.yaml",
1079
- Path("config") / "cloudflare.yaml"
1080
- ]
1081
-
1082
- for cf_path in possible_paths:
1083
- if cf_path.exists():
1084
- try:
1085
- if cf_path.suffix.lower() in ['.yaml', '.yml']:
1086
- cf_config = self._load_config_file(cf_path)
1087
- else:
1088
- # Try to parse as simple key=value format
1089
- with open(cf_path, 'r') as f:
1090
- for line in f:
1091
- line = line.strip()
1092
- if '=' in line and not line.startswith('#'):
1093
- key, value = line.split('=', 1)
1094
- cf_config[key.strip()] = value.strip()
1095
- break
1096
- except Exception as e:
1097
- logger.warning(f"Failed to load CloudFlare config from {cf_path}: {e}")
1098
-
1099
- return cf_config
1078
+
1100
1079
 
1101
1080
  def migrate_from_env(self, env_file_path: str = ".env", force: bool = False) -> bool:
1102
1081
  """
@@ -60,8 +60,8 @@ class SecretsManager:
60
60
 
61
61
  # Try to load from secrets.yaml file with new path structure
62
62
  secrets_paths = [
63
- Path("~/.ic/config/secrets.yaml"), # New preferred location
64
- # Path("config/secrets.yaml") # Legacy location for backward compatibility
63
+ Path.home() / ".ic" / "config" / "secrets.yaml", # New preferred location
64
+ Path("config/secrets.yaml") # Legacy location for backward compatibility
65
65
  ]
66
66
 
67
67
  secrets = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ic-code
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Infrastructure CLI tool for managing AWS, CloudFlare, SSH, and more
5
5
  Home-page: https://github.com/dgr009/ic
6
6
  Author: SangYun Kim
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes