diff --git a/en/cli.html b/en/cli.html index c159120..14100f8 100644 --- a/en/cli.html +++ b/en/cli.html @@ -4,7 +4,7 @@ - pgextwin — Windows CLI v0.3.1 + pgextwin — Windows CLI v0.3.2 @@ -14,8 +14,8 @@
@@ -23,14 +23,14 @@

Windows x64 · self-contained · prerelease

Get the Windows executable

- Download pgextwin.exe (12.83 MB) - GitHub Release v0.3.1 - SHA256SUMS.txt + Download pgextwin.exe (12.83 MB) + GitHub Release v0.3.1 + SHA256SUMS.txt
-

Published EXE SHA256: baee38b3aafdd1bbb7f61857747358dbd40ab056d989aa0f753c93b2025a7580

+

Published EXE SHA256: d4e8f63d402066b21db9d537f7679b51137ec47d9834fa4fd75b5889ad34e6f4

Compare against the published SHA256SUMS.txt and validate the CLI build provenance:

Get-FileHash .\pgextwin.exe -Algorithm SHA256
-gh attestation verify .\pgextwin.exe --repo pgextwin/catalog --signer-workflow pgextwin/catalog/.github/workflows/cli-candidate.yml --source-ref refs/heads/main --source-digest a7a1d93d38d7338d80404c402eb5faaaa96b272e
+gh attestation verify .\pgextwin.exe --repo pgextwin/catalog --signer-workflow pgextwin/catalog/.github/workflows/cli-candidate.yml --source-ref refs/heads/main --source-digest a537f14f39be4b4ffc366cd0fef83f87aa4b9c39

One-line usage

Default: newest release approved and registered in the Catalog; no GitHub REST API credentials required. ZIPs are written in a new folder under the working directory.

@@ -40,6 +40,16 @@

One-line usage

Default: newest release approved

Fixed historical snapshot · 70 ZIPs
.\pgextwin.exe download-all --pg all --fixed
+
+

New in v0.3.2

+

Live progress with --verbose

+

Opt-in UTC timestamped events report signed Catalog verification, every ZIP start, transferred bytes in 8 MiB intervals, SHA256 verification and batch completion. Diagnostic events go to stderr; normal stdout and JSON remain unchanged.

+
+
Download all 70 ZIPs with live progress
.\pgextwin.exe download-all --pg all --verbose
+
Keep a detailed log file
.\pgextwin.exe download-all --pg all --verbose 2> download-verbose.log
+
+

Verbose output does not change trust: individual extension ZIPs remain INTEGRITY_ONLY. No install or extension publication privileges are added.

+

How it works / 動作のしくみ

How it works

The two download paths converge on the same original-ZIP integrity checks and atomic output. The displayed steps describe the CLI, not a Windows installer.

@@ -82,14 +92,14 @@

Other commands

Local Catalog browsing is separate

UNVERIFIED · INTEGRITY_ONLY

-

v0.3.1

Release notes

+

v0.3.2

Release notes

-

English

-

CLI v0.3.1 — smaller executable, same safety checks. The self-contained Windows x64 executable was reduced from 79,338,604 to 12,827,362 bytes (83.83%) using full trimming and single-file compression. JSON responses are generated with trim-compatible System.Text.Json metadata rather than suppressed IL2026 warnings.

-

By default, download-all --pg all authenticates the publicly signed Catalog selection feed and downloads the current Catalog-registered set of 14 extensions × PG14–18 (70 original ZIP files). Use --pg 18 to select one major or --fixed to use the historical immutable snapshot. Each downloaded ZIP is rehashed, and a failed batch is removed without overwriting existing downloads.

-

Security boundary: Sigstore verification authenticates the Catalog feed and independently attested CLI executable. Extension ZIP bytes are checked against Catalog-pinned SHA256 values (INTEGRITY_ONLY); their own Sigstore signatures, provenance and installation/publication authorizations are not verified or granted. CLI v0.3.1 is a published prerelease, not a Windows Authenticode-signed installer.

-

Independent public EXE and 70/70 ZIP Windows verification · Full GitHub Release

-
+

English

+

CLI v0.3.2 — live diagnostic progress. Use --verbose to follow Catalog Sigstore verification, individual download starts, 8 MiB transfer updates, SHA256 checks and the final 70-ZIP completion. Logs are on stderr; stdout and JSON contracts are unchanged.

+

The trim-compressed Windows x64 EXE is 12,829,662 bytes. Latest signed-Catalog and historical --fixed modes remain supported. Download failures still reject unsafe bytes, avoid overwriting existing output and fail closed.

+

Scope: The CLI executable and Catalog feed have their own verification; original extension ZIPs are INTEGRITY_ONLY, not individually Sigstore-authenticated. No installation or extension-release authorization is granted.

+

Public v0.3.2 EXE Sigstore and verbose 70/70 ZIP Windows audit · Full GitHub Release (English → Japanese)

+
diff --git a/en/index.html b/en/index.html index 0d2f073..4dbf0a7 100644 --- a/en/index.html +++ b/en/index.html @@ -21,7 +21,7 @@

PostgreSQL Extensions for Windows

Find Windows x64 extension binaries by PostgreSQL version, download the canonical Release asset directly, and inspect runtime requirements, CI-tested capabilities, checksums, and supply-chain evidence.

@@ -37,7 +37,7 @@

Download Catalog-registered ZIPs with one command

14 extensions × PostgreSQL 14–18 = 70 original ZIPs. The CLI authenticates the Sigstore-signed Catalog feed, checks each ZIP SHA256, and preserves an explicit historical --fixed mode. Original ZIP signatures remain INTEGRITY_ONLY.

.\pgextwin.exe download-all --pg all
−83.83%79.34 MB → 12.83 MB (v0.3.0 → v0.3.1)
-
Download CLI v0.3.1Visual guide, safety and release notes →
+
Download CLI v0.3.2Visual guide, safety and release notes →
diff --git a/ja/cli.html b/ja/cli.html index 57fea12..91bbfe7 100644 --- a/ja/cli.html +++ b/ja/cli.html @@ -4,7 +4,7 @@ - pgextwin — Windows CLI v0.3.1 + pgextwin — Windows CLI v0.3.2 @@ -14,8 +14,8 @@
@@ -23,14 +23,14 @@

Windows x64 · self-contained · prerelease

Windows用EXEを入手

-

公開EXEのSHA256: baee38b3aafdd1bbb7f61857747358dbd40ab056d989aa0f753c93b2025a7580

+

公開EXEのSHA256: d4e8f63d402066b21db9d537f7679b51137ec47d9834fa4fd75b5889ad34e6f4

公開SHA256SUMS.txtと一致することを確認し、CLI本体のビルド来歴も検証してください。

Get-FileHash .\pgextwin.exe -Algorithm SHA256
-gh attestation verify .\pgextwin.exe --repo pgextwin/catalog --signer-workflow pgextwin/catalog/.github/workflows/cli-candidate.yml --source-ref refs/heads/main --source-digest a7a1d93d38d7338d80404c402eb5faaaa96b272e
+gh attestation verify .\pgextwin.exe --repo pgextwin/catalog --signer-workflow pgextwin/catalog/.github/workflows/cli-candidate.yml --source-ref refs/heads/main --source-digest a537f14f39be4b4ffc366cd0fef83f87aa4b9c39

1行で使う

標準動作はCatalog承認・登録済みの最新Releaseです。GitHub REST APIの認証情報は不要。元ZIPは実行フォルダー内の新しいフォルダーに保存されます。

@@ -40,6 +40,16 @@

1行で使う

標準動作はCatalog承認・

過去の固定版 · PG14~18の70 ZIP
.\pgextwin.exe download-all --pg all --fixed
+
+

v0.3.2 新機能

+

--verbose で進行状況を表示

+

署名付きCatalogの検証、ZIPごとの取得開始、8 MiBごとの転送量、SHA256再照合、一括保存の完了をUTC時刻付きで表示します。詳細ログは標準エラー出力に分離され、通常の標準出力とJSONは変更しません。

+
+
70 ZIPの取得を詳細表示
.\pgextwin.exe download-all --pg all --verbose
+
詳細ログをファイルに保存
.\pgextwin.exe download-all --pg all --verbose 2> download-verbose.log
+
+

ログの有効化は拡張ZIPの署名検証やインストール権限を追加しません。元ZIPの判定は引き続きINTEGRITY_ONLYです。

+

How it works / 動作のしくみ

動作のしくみ

最新版・固定版の2経路が、共通のZIPバイト整合性検証と安全な保存処理に合流します。インストール処理は含みません。

@@ -82,14 +92,14 @@

そのほかのコマンド

ローカルCatalogの

UNVERIFIED · INTEGRITY_ONLY

-

v0.3.1

リリースノート

+

v0.3.2

リリースノート

-

日本語

-

CLI v0.3.1 — 安全性を維持しながら軽量化。 Windows x64用の自己完結型EXEを、79,338,604バイトから12,827,362バイトへ83.83%削減しました。完全トリミングと単一ファイル圧縮を使用し、JSON出力はトリミング対応のSystem.Text.Jsonソース生成方式に変更。IL2026警告を無視・抑制することなく対応しました。

-

標準の download-all --pg all は、公開されたSigstore署名付きCatalog選択情報を検証し、現在Catalogに登録されている14拡張×PG14~18の元ZIPを70件取得します。--pg 18 で1バージョンだけ、--fixed で過去の不変スナップショットに切替可能です。ZIPごとのSHA256を再計算し、途中失敗時には一時出力を破棄して既存のダウンロードを上書きしません。

-

安全性の区別: Sigstoreによる真正性検証の対象はCatalogフィードとCLI本体です。拡張ZIPはCatalogのSHA256とのバイト整合性のみ(INTEGRITY_ONLY)です。個々の拡張ZIPのSigstore署名・来歴・インストール/配布認可が成立したことにはなりません。CLI v0.3.1は公開済みのプレリリースであり、Windows Authenticode署名付きインストーラーではありません。

-

公開EXEとZIP 70/70の独立Windows検証 · GitHub Release全文

-
+

日本語

+

CLI v0.3.2 — 処理中の詳細ログに対応。 --verboseでCatalogのSigstore検証、各ZIPのダウンロード開始、8 MiBごとの転送量、SHA256照合、70件の完了を確認できます。ログは標準エラー出力で、標準出力とJSONは変わりません。

+

Windows x64 EXEは12,829,662バイト。署名付き最新版Catalogと従来の--fixedを継続サポート。異常なZIPは拒否し、不完全な一括出力や既存成果物の上書きは行いません。

+

信頼境界: CLIとCatalogフィードの来歴・署名検証に対し、拡張機能の元ZIPはINTEGRITY_ONLY(バイト整合性のみ)です。個別ZIPの真正署名検証、インストールや拡張機能の正式公開認可を追加したわけではありません。

+

公開EXEとverbose 70/70 ZIPのWindows独立検証 · GitHub Release全文(英語→日本語)

+
diff --git a/ja/index.html b/ja/index.html index 29da3ca..66ac1ad 100644 --- a/ja/index.html +++ b/ja/index.html @@ -21,7 +21,7 @@

PostgreSQL拡張機能のWindowsバイナリ

PostgreSQLのバージョンからWindows x64向け拡張機能を検索し、GitHub Releaseの正規バイナリを直接ダウンロードできます。導入要件、CIで検証した機能、チェックサム、サプライチェーンの検証情報を確認できます。

@@ -37,7 +37,7 @@

Catalog登録済みのZIPを1行でまとめて取得<

14拡張×PostgreSQL 14~18、計70個の元ZIPに対応。CLIはSigstore署名付きCatalogフィードを認証し、各ZIPのSHA256を照合します。過去の固定版は--fixedで指定できます。個々のZIPの真正署名は検証せず、INTEGRITY_ONLYです。

.\pgextwin.exe download-all --pg all
−83.83%79.34 MB → 12.83 MB(v0.3.0 → v0.3.1)
-
CLI v0.3.1をダウンロード図解・安全性・リリースノートを見る →
+
CLI v0.3.2をダウンロード図解・安全性・リリースノートを見る →
diff --git a/tests/cli-preview.test.js b/tests/cli-preview.test.js index 3f4e9fd..5c5f5cf 100644 --- a/tests/cli-preview.test.js +++ b/tests/cli-preview.test.js @@ -2,12 +2,12 @@ import test from 'node:test'; import assert from 'node:assert/strict'; import {readFileSync} from 'node:fs'; -const exeSha = 'baee38b3aafdd1bbb7f61857747358dbd40ab056d989aa0f753c93b2025a7580'; -const originalSource = 'a7a1d93d38d7338d80404c402eb5faaaa96b272e'; -const directExe = 'https://github.com/pgextwin/catalog/releases/download/cli-v0.3.1/pgextwin.exe'; +const exeSha = 'd4e8f63d402066b21db9d537f7679b51137ec47d9834fa4fd75b5889ad34e6f4'; +const originalSource = 'a537f14f39be4b4ffc366cd0fef83f87aa4b9c39'; +const directExe = 'https://github.com/pgextwin/catalog/releases/download/cli-v0.3.2/pgextwin.exe'; for (const lang of ['en','ja']) { - test('CLI v0.3.1 ' + lang + ' feature diagram and signed release identity', () => { + test('CLI v0.3.2 ' + lang + ' feature diagram and signed release identity', () => { const page = readFileSync(new URL('../' + lang + '/cli.html', import.meta.url), 'utf8'); const home = readFileSync(new URL('../' + lang + '/index.html', import.meta.url), 'utf8'); assert.ok(page.includes('')); @@ -23,9 +23,13 @@ for (const lang of ['en','ja']) { assert.ok(page.includes('download-all --pg all --fixed')); assert.ok(page.includes('download-all --pg all')); assert.ok(page.includes('download-all --pg 18')); + assert.ok(page.includes('download-all --pg all --verbose')); + assert.ok(page.includes('download-verbose.log')); + assert.ok(page.includes('verbose-heading')); + assert.ok(page.includes('39342699236')); assert.ok(page.includes('83.83%')); - assert.ok(page.includes('12,827,362')); - assert.ok(home.includes('83.83%') && home.includes('CLI v0.3.1')); + assert.ok(page.includes('12,829,662')); + assert.ok(home.includes('83.83%') && home.includes('CLI v0.3.2')); assert.ok(!page.includes('cli-v0.2.2')); assert.ok(!home.includes('CLI v0.2.2')); assert.ok(!page.includes('install --apply'));