magic-pocket-cli 0.12.0__tar.gz → 0.13.0__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 (68) hide show
  1. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/PKG-INFO +2 -2
  2. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/deploy_cli.py +6 -1
  3. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/migrate_cli.py +28 -0
  4. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pyproject.toml +2 -2
  5. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/.gitignore +0 -0
  6. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/__init__.py +0 -0
  7. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/__init__.py +0 -0
  8. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/aws_auth.py +0 -0
  9. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/awscontainer_cli.py +0 -0
  10. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/cloudfront_cli.py +0 -0
  11. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/cloudfront_keys_cli.py +0 -0
  12. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/cloudfront_waf_cli.py +0 -0
  13. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/destroy_cli.py +0 -0
  14. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/dsql_cli.py +0 -0
  15. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/main_cli.py +0 -0
  16. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/neon_cli.py +0 -0
  17. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/permissions_cli.py +0 -0
  18. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/rds_cli.py +0 -0
  19. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/runtime_config_cli.py +0 -0
  20. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/s3_cli.py +0 -0
  21. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/status_cli.py +0 -0
  22. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/store_url_helper.py +0 -0
  23. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/tidb_cli.py +0 -0
  24. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/upstash_cli.py +0 -0
  25. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/url_helper.py +0 -0
  26. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/vpc_cli.py +0 -0
  27. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/cli/waf_cli.py +0 -0
  28. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/django_cli.py +0 -0
  29. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/mediator.py +0 -0
  30. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/__init__.py +0 -0
  31. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/__init__.py +0 -0
  32. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/builders/__init__.py +0 -0
  33. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/builders/codebuild.py +0 -0
  34. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/builders/depot.py +0 -0
  35. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/builders/docker.py +0 -0
  36. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/builders/dockerignore.py +0 -0
  37. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/cloudformation.py +0 -0
  38. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/ecr.py +0 -0
  39. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/efs.py +0 -0
  40. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/lambdahandler.py +0 -0
  41. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/s3_utils.py +0 -0
  42. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/aws/state.py +0 -0
  43. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/awscontainer.py +0 -0
  44. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/cloudfront.py +0 -0
  45. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/cloudfront_acm.py +0 -0
  46. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/cloudfront_keys.py +0 -0
  47. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/cloudfront_waf.py +0 -0
  48. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/dsql.py +0 -0
  49. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/neon.py +0 -0
  50. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/rds.py +0 -0
  51. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/s3.py +0 -0
  52. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/tidb.py +0 -0
  53. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/upstash.py +0 -0
  54. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/resources/vpc.py +0 -0
  55. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/awscontainer.yaml +0 -0
  56. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cf_function_api_host.js +0 -0
  57. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cf_function_host_redirect_prelude.js +0 -0
  58. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cf_function_spa_auth.js +0 -0
  59. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cf_function_spa_fallback.js +0 -0
  60. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cloudfront.yaml +0 -0
  61. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cloudfront_acm.yaml +0 -0
  62. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cloudfront_keys.yaml +0 -0
  63. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/cloudfront_waf.yaml +0 -0
  64. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/cloudformation/vpc.yaml +0 -0
  65. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/init/django-dotenv.env +0 -0
  66. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/init/django-settings.py +0 -0
  67. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/init/pocket.Dockerfile +0 -0
  68. {magic_pocket_cli-0.12.0 → magic_pocket_cli-0.13.0}/pocket_cli/templates/init/pocket_simple.toml +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: magic-pocket-cli
3
- Version: 0.12.0
3
+ Version: 0.13.0
4
4
  Summary: CLI and deploy tools for magic-pocket.
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: awscrt>=0.19.0
7
7
  Requires-Dist: click>=8.1.7
8
8
  Requires-Dist: deepdiff>=6.7.1
9
9
  Requires-Dist: jinja2>=3.1.3
10
- Requires-Dist: magic-pocket>=0.12.0
10
+ Requires-Dist: magic-pocket>=0.13.0
11
11
  Requires-Dist: pathspec>=1.0.4
12
12
  Requires-Dist: python-on-whales>=0.68.0
13
13
  Requires-Dist: pyyaml>=6.0.1
@@ -3,7 +3,7 @@ import webbrowser
3
3
 
4
4
  import click
5
5
 
6
- from pocket.context import Context
6
+ from pocket.context import Context, deploy_hash_report
7
7
  from pocket.utils import echo
8
8
  from pocket_cli.mediator import Mediator
9
9
  from pocket_cli.resources.aws.state import StateStore
@@ -173,6 +173,11 @@ def _deploy_pipeline(context: Context, *, openpath=None, skip_frontend=False):
173
173
  promote 時は context.awscontainer.promote_commit_hash が設定済みで、
174
174
  deploy_init 内の image build が retag に置き換わる以外は deploy と同一。
175
175
  """
176
+ # DEPLOY_HASH の解決結果を deploy 時に 1 回可視化する (env 伝播漏れで
177
+ # 黙って git short hash に落ちる footgun の早期発見用)。
178
+ deploy_hash_message = deploy_hash_report(context)
179
+ if deploy_hash_message:
180
+ echo.info(deploy_hash_message)
176
181
  # CodeBuildがソースアップロードにstate bucketを必要とするため、先に作成
177
182
  state_store = _create_state_store(context)
178
183
  state_store.ensure_bucket()
@@ -17,6 +17,7 @@ import hashlib
17
17
  import click
18
18
  import yaml
19
19
 
20
+ from pocket import __version__
20
21
  from pocket.context import Context
21
22
  from pocket.utils import echo
22
23
  from pocket_cli.cli.deploy_cli import get_resources
@@ -180,6 +181,32 @@ def _report_secret_path(info: dict) -> None:
180
181
  echo.info("%s: %s" % (info["key"], label))
181
182
 
182
183
 
184
+ def _warn_runtime_bump_required(stage: str) -> None:
185
+ """secret-paths 移設で旧パスが削除されることの事前警告。
186
+
187
+ 移設は copy→旧削除を一括で行うため、この stage に deploy 済みの Lambda runtime
188
+ (magic-pocket[django]) が古いままだと、旧パス (削除済) を参照して DATABASE_URL を
189
+ 解決できず cold start の INIT で落ちる。移設後に runtime を CLI と同版へ bump して
190
+ 再デプロイするまで stage が黙って壊れる footgun を、移設前に明示する
191
+ (template-hash が「先に deploy」で中断するのと同じ思想の事前ガード)。
192
+ """
193
+ echo.warning(
194
+ "⚠ 移設すると旧パスは削除されます (copy→旧削除は一括)。この stage に "
195
+ "deploy 済みの Lambda runtime (magic-pocket[django]) が古いままだと、"
196
+ "旧パスを参照して DATABASE_URL を解決できず cold start の INIT で落ちます。"
197
+ )
198
+ echo.warning(
199
+ " 移設後は速やかに runtime を CLI と同版へ上げて再デプロイしてください:\n"
200
+ " uv add 'magic-pocket[django]>=%s'\n"
201
+ " pocket deploy --stage=%s (Django なら pocket django deploy --stage=%s)"
202
+ % (__version__, stage, stage)
203
+ )
204
+ echo.warning(
205
+ " ※ copy と旧削除が一括のため完全な無停止移行にはなりません。warm instance は "
206
+ "recycle まで生存するので、移設直後に再デプロイすれば影響を最小化できます。"
207
+ )
208
+
209
+
183
210
  def _run_secret_paths(stage: str, *, yes: bool, dry_run: bool) -> None:
184
211
  """stored user secret を旧キー基準→新 type 基準パスへ移設する (冪等)。"""
185
212
  from pocket_cli.mediator import Mediator
@@ -207,6 +234,7 @@ def _run_secret_paths(stage: str, *, yes: bool, dry_run: bool) -> None:
207
234
  "secret-paths: 移設対象はありません (全て移行済み or 未 provision)。"
208
235
  )
209
236
  return
237
+ _warn_runtime_bump_required(stage)
210
238
  if dry_run:
211
239
  echo.info("secret-paths: --dry-run のため実行はしません。")
212
240
  return
@@ -1,10 +1,10 @@
1
1
  [project]
2
2
  name = "magic-pocket-cli"
3
- version = "0.12.0"
3
+ version = "0.13.0"
4
4
  description = "CLI and deploy tools for magic-pocket."
5
5
  requires-python = ">=3.10"
6
6
  dependencies = [
7
- "magic-pocket>=0.12.0",
7
+ "magic-pocket>=0.13.0",
8
8
  "click>=8.1.7",
9
9
  "jinja2>=3.1.3",
10
10
  "python-on-whales>=0.68.0",