magic-pocket-cli 0.34.0__tar.gz → 0.34.1__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 (81) hide show
  1. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/PKG-INFO +2 -2
  2. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/sqs_alert.py +20 -6
  3. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pyproject.toml +2 -2
  4. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/.gitignore +0 -0
  5. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/__init__.py +0 -0
  6. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/__init__.py +0 -0
  7. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/aws_auth.py +0 -0
  8. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/backup_cli.py +0 -0
  9. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/cloudfront_cli.py +0 -0
  10. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/cloudfront_keys_cli.py +0 -0
  11. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/cloudfront_waf_cli.py +0 -0
  12. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/container_cli.py +0 -0
  13. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/deploy_cli.py +0 -0
  14. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/destroy_cli.py +0 -0
  15. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/dsql_cli.py +0 -0
  16. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/image_cli.py +0 -0
  17. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/interaction.py +0 -0
  18. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/main_cli.py +0 -0
  19. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/migrate_cli.py +0 -0
  20. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/neon_cli.py +0 -0
  21. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/permissions_cli.py +0 -0
  22. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/rds_cli.py +0 -0
  23. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/removed_flags.py +0 -0
  24. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/resource_helper.py +0 -0
  25. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/runtime_config_cli.py +0 -0
  26. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/s3_cli.py +0 -0
  27. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/status_cli.py +0 -0
  28. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/store_url_helper.py +0 -0
  29. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/tidb_cli.py +0 -0
  30. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/upstash_cli.py +0 -0
  31. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/url_helper.py +0 -0
  32. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/vpc_cli.py +0 -0
  33. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/cli/waf_cli.py +0 -0
  34. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/django_cli.py +0 -0
  35. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/mediator.py +0 -0
  36. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/migrations.py +0 -0
  37. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/__init__.py +0 -0
  38. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/__init__.py +0 -0
  39. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/backup_common.py +0 -0
  40. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/builders/__init__.py +0 -0
  41. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/builders/codebuild.py +0 -0
  42. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/builders/context_check.py +0 -0
  43. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/builders/depot.py +0 -0
  44. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/builders/docker.py +0 -0
  45. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/builders/dockerignore.py +0 -0
  46. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/cloudformation.py +0 -0
  47. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/ecr.py +0 -0
  48. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/efs.py +0 -0
  49. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/lambdahandler.py +0 -0
  50. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/poll.py +0 -0
  51. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/s3_utils.py +0 -0
  52. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/stack_backed.py +0 -0
  53. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/aws/state.py +0 -0
  54. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/backup.py +0 -0
  55. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/cloudfront.py +0 -0
  56. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/cloudfront_acm.py +0 -0
  57. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/cloudfront_keys.py +0 -0
  58. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/cloudfront_waf.py +0 -0
  59. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/container.py +0 -0
  60. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/dsql.py +0 -0
  61. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/neon.py +0 -0
  62. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/rds.py +0 -0
  63. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/s3.py +0 -0
  64. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/tidb.py +0 -0
  65. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/upstash.py +0 -0
  66. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/resources/vpc.py +0 -0
  67. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cf_function_api_host.js +0 -0
  68. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cf_function_basic_auth_prelude.js +0 -0
  69. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cf_function_host_redirect_prelude.js +0 -0
  70. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cf_function_spa_auth.js +0 -0
  71. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cf_function_spa_fallback.js +0 -0
  72. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cloudfront.yaml +0 -0
  73. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cloudfront_acm.yaml +0 -0
  74. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cloudfront_keys.yaml +0 -0
  75. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/cloudfront_waf.yaml +0 -0
  76. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/container.yaml +0 -0
  77. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/cloudformation/vpc.yaml +0 -0
  78. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/init/django-dotenv.env +0 -0
  79. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/init/django-settings.py +0 -0
  80. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/init/pocket.Dockerfile +0 -0
  81. {magic_pocket_cli-0.34.0 → magic_pocket_cli-0.34.1}/pocket_cli/templates/init/pocket_simple.toml +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: magic-pocket-cli
3
- Version: 0.34.0
3
+ Version: 0.34.1
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.35,>=0.34.0
10
+ Requires-Dist: magic-pocket<0.35,>=0.34.1
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
@@ -15,7 +15,7 @@ import boto3
15
15
  from pocket.context import Context
16
16
  from pocket.utils import echo
17
17
 
18
- SubscriptionState = Literal["Confirmed", "PendingConfirmation", "NotCreated"]
18
+ SubscriptionState = Literal["Confirmed", "PendingConfirmation", "Deleted", "NotCreated"]
19
19
 
20
20
 
21
21
  class DeadLetterAlertStatus(NamedTuple):
@@ -28,7 +28,11 @@ def dead_letter_alert_statuses(context: Context) -> list[DeadLetterAlertStatus]:
28
28
  """dead_letter_alert が enabled な handler ごとの email 購読状態を返す。
29
29
 
30
30
  topic 未作成 (deploy 前 / 削除済み) は ``NotCreated``。購読が確認済みなら
31
- ``Confirmed``、確認メール未対応なら ``PendingConfirmation``。
31
+ ``Confirmed``、確認メール未対応なら ``PendingConfirmation``、unsubscribe 済みなら
32
+ ``Deleted``。SNS の ``SubscriptionArn`` は実 ARN のほかに特殊値
33
+ (``PendingConfirmation`` / ``Deleted``) を取るため、実 ARN (``arn:`` 始まり) の
34
+ ときだけ ``Confirmed`` と判定する。同一 email の購読が複数並ぶ場合
35
+ (unsubscribe 後の再購読など) は良い方の状態を採る。
32
36
  """
33
37
  targets = [
34
38
  (c.region, h.sqs.dead_letter_alert.topic_name, h.sqs.dead_letter_alert.email)
@@ -52,11 +56,14 @@ def dead_letter_alert_statuses(context: Context) -> list[DeadLetterAlertStatus]:
52
56
  for sub in res["Subscriptions"]:
53
57
  if sub["Protocol"] != "email" or sub["Endpoint"] != email:
54
58
  continue
55
- if sub["SubscriptionArn"] == "PendingConfirmation":
56
- state = "PendingConfirmation"
57
- else:
59
+ arn = sub["SubscriptionArn"]
60
+ if arn.startswith("arn:"):
58
61
  state = "Confirmed"
59
- break
62
+ break
63
+ if arn == "PendingConfirmation":
64
+ state = "PendingConfirmation"
65
+ elif state == "NotCreated":
66
+ state = "Deleted"
60
67
  statuses.append(DeadLetterAlertStatus(topic_name, email, state))
61
68
  return statuses
62
69
 
@@ -77,6 +84,13 @@ def echo_dead_letter_alert_warnings(context: Context) -> None:
77
84
  "is still PendingConfirmation. Alarm notifications will NOT be "
78
85
  "delivered until the confirmation link in the email is clicked."
79
86
  )
87
+ elif status.state == "Deleted":
88
+ echo.warning(
89
+ f"DLQ alert subscription for {status.email} ({status.topic_name}) "
90
+ "has been unsubscribed (SubscriptionArn=Deleted). Alarm "
91
+ "notifications will NOT be delivered. Re-subscribe the email and "
92
+ "confirm it again."
93
+ )
80
94
  else:
81
95
  echo.warning(
82
96
  f"DLQ alert subscription for {status.email} ({status.topic_name}) "
@@ -1,12 +1,12 @@
1
1
  [project]
2
2
  name = "magic-pocket-cli"
3
- version = "0.34.0"
3
+ version = "0.34.1"
4
4
  description = "CLI and deploy tools for magic-pocket."
5
5
  requires-python = ">=3.10"
6
6
  dependencies = [
7
7
  # lib は同 minor に束縛する。0.x では minor が breaking の単位のため、
8
8
  # 上限なしだと cli を pin した消費者にも lib の破壊的変更が届いてしまう
9
- "magic-pocket>=0.34.0,<0.35",
9
+ "magic-pocket>=0.34.1,<0.35",
10
10
  "click>=8.1.7",
11
11
  "jinja2>=3.1.3",
12
12
  "python-on-whales>=0.68.0",