magic-pocket-cli 0.28.1__tar.gz → 0.28.2__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.
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/PKG-INFO +2 -2
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/backup.py +2 -2
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/cloudfront.py +17 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pyproject.toml +2 -2
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/.gitignore +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/__init__.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/__init__.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/aws_auth.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/awscontainer_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/backup_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/cloudfront_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/cloudfront_keys_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/cloudfront_waf_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/deploy_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/destroy_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/dsql_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/image_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/interaction.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/main_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/migrate_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/neon_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/permissions_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/rds_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/removed_flags.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/resource_helper.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/runtime_config_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/s3_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/status_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/store_url_helper.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/tidb_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/upstash_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/url_helper.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/vpc_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/cli/waf_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/django_cli.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/mediator.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/__init__.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/__init__.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/backup_common.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/__init__.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/codebuild.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/context_check.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/depot.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/docker.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/dockerignore.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/cloudformation.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/ecr.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/efs.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/lambdahandler.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/poll.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/s3_utils.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/stack_backed.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/state.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/awscontainer.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/cloudfront_acm.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/cloudfront_keys.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/cloudfront_waf.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/dsql.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/neon.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/rds.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/s3.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/tidb.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/upstash.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/vpc.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/awscontainer.yaml +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cf_function_api_host.js +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cf_function_basic_auth_prelude.js +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cf_function_host_redirect_prelude.js +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cf_function_spa_auth.js +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cf_function_spa_fallback.js +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cloudfront.yaml +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cloudfront_acm.yaml +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cloudfront_keys.yaml +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/cloudfront_waf.yaml +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/vpc.yaml +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/init/django-dotenv.env +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/init/django-settings.py +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/init/pocket.Dockerfile +0 -0
- {magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/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.28.
|
|
3
|
+
Version: 0.28.2
|
|
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.29,>=0.28.
|
|
10
|
+
Requires-Dist: magic-pocket<0.29,>=0.28.2
|
|
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
|
|
@@ -164,8 +164,8 @@ class Backup:
|
|
|
164
164
|
" provisioning をスキップしました: %s" % e
|
|
165
165
|
)
|
|
166
166
|
echo.warning(
|
|
167
|
-
" deploy role に backup:*
|
|
168
|
-
" (`pocket permissions list` 参照)。"
|
|
167
|
+
" deploy role に backup グループの権限 (backup:* と kms 系)"
|
|
168
|
+
" を付与してください (`pocket permissions list` 参照)。"
|
|
169
169
|
)
|
|
170
170
|
|
|
171
171
|
def _cleanup_legacy_plans(self) -> None:
|
|
@@ -10,6 +10,7 @@ from pathlib import Path
|
|
|
10
10
|
from typing import TYPE_CHECKING, Literal
|
|
11
11
|
|
|
12
12
|
import boto3
|
|
13
|
+
from boto3.s3.transfer import TransferConfig
|
|
13
14
|
from botocore.exceptions import ClientError
|
|
14
15
|
from pydantic import BaseModel
|
|
15
16
|
|
|
@@ -22,6 +23,14 @@ if TYPE_CHECKING:
|
|
|
22
23
|
from pocket.context import CloudFrontContext, RouteContext
|
|
23
24
|
from pocket_cli.mediator import Mediator
|
|
24
25
|
|
|
26
|
+
# upload_dir の差分 skip (_is_unchanged) は ETag が素の MD5 であることに依存する。
|
|
27
|
+
# boto3 既定の multipart 閾値 (8MB) を超えると ETag が `<md5-of-part-md5s>-<N>`
|
|
28
|
+
# 形式になり、そのファイルは内容不変でも毎 deploy「変更あり」= 再アップロード +
|
|
29
|
+
# route 全体の invalidation になってしまう。単一 PUT の上限 (5GB) に対して
|
|
30
|
+
# 十分安全な 128MB まで multipart を使わない。これを超えるファイルは従来どおり
|
|
31
|
+
# 常に再アップロードされる (_is_unchanged の docstring 参照)
|
|
32
|
+
_UPLOAD_TRANSFER_CONFIG = TransferConfig(multipart_threshold=128 * 1024 * 1024)
|
|
33
|
+
|
|
25
34
|
|
|
26
35
|
class OriginAccessControl(BaseModel):
|
|
27
36
|
Id: str
|
|
@@ -334,6 +343,7 @@ class CloudFront:
|
|
|
334
343
|
self.context.bucket_name,
|
|
335
344
|
s3_key,
|
|
336
345
|
ExtraArgs=extra_args,
|
|
346
|
+
Config=_UPLOAD_TRANSFER_CONFIG,
|
|
337
347
|
)
|
|
338
348
|
uploaded += 1
|
|
339
349
|
echo.log("アップロード: s3://%s/%s" % (self.context.bucket_name, s3_key))
|
|
@@ -562,6 +572,13 @@ def _is_unchanged(file: Path, etag: str | None) -> bool:
|
|
|
562
572
|
分からないとローカルから再現できない。SSE-KMS 等でも ETag は MD5 に
|
|
563
573
|
ならない。これらは「不明」= 変更ありとして扱い、常に再アップロードする。
|
|
564
574
|
|
|
575
|
+
このため upload 側は multipart 閾値を 128MB に引き上げている
|
|
576
|
+
(_UPLOAD_TRANSFER_CONFIG)。boto3 既定の 8MB のままでは、8MB 超のファイルが
|
|
577
|
+
1 個あるだけで毎 deploy 再アップロード + route 全体の invalidation が走る。
|
|
578
|
+
過去に multipart で上がった既存オブジェクトも、閾値以下なら次の deploy で
|
|
579
|
+
単一 PUT により上げ直され、以後は skip が効くようになる (自己回復)。
|
|
580
|
+
128MB 超のファイルだけは引き続き毎回再アップロードになる。
|
|
581
|
+
|
|
565
582
|
サイズ比較での代替はしない。同じサイズで内容が違うファイルを「変更なし」と
|
|
566
583
|
誤判定すると、そのファイルは以後どの deploy でも更新されなくなる。
|
|
567
584
|
誤って skip する事故に比べれば、再アップロードのコストは安い。
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "magic-pocket-cli"
|
|
3
|
-
version = "0.28.
|
|
3
|
+
version = "0.28.2"
|
|
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.28.
|
|
9
|
+
"magic-pocket>=0.28.2,<0.29",
|
|
10
10
|
"click>=8.1.7",
|
|
11
11
|
"jinja2>=3.1.3",
|
|
12
12
|
"python-on-whales>=0.68.0",
|
|
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
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/backup_common.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/__init__.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/codebuild.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/depot.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/builders/docker.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/cloudformation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/lambdahandler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/resources/aws/stack_backed.py
RENAMED
|
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
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/cloudformation/vpc.yaml
RENAMED
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/init/django-dotenv.env
RENAMED
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/init/django-settings.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/init/pocket.Dockerfile
RENAMED
|
File without changes
|
{magic_pocket_cli-0.28.1 → magic_pocket_cli-0.28.2}/pocket_cli/templates/init/pocket_simple.toml
RENAMED
|
File without changes
|