CLI executable
GitHub Actions Sigstore-attested build; SHA256 of public EXE independently checked.
diff --git a/en/cli.html b/en/cli.html index 3e9b9f8..7d589cf 100644 --- a/en/cli.html +++ b/en/cli.html @@ -3,38 +3,100 @@
- -pgextwin CLI
Read-only pgextwin.exe for Windows x64. Discover 14 extension packages from a local Catalog snapshot. This preview is not an installer or a verified extension-package signature engine.
+pgextwin CLI
A safer one-line download, now 83.83% smaller.
Download current Catalog-registered PostgreSQL extension ZIPs for Windows x64. Signed Catalog selection, strict original ZIP SHA256, and an explicit frozen-snapshot mode. This read-only CLI does not install extensions.
+Download pgextwin.exe and SHA256SUMS.txt from the release; verify the SHA256 locally and the cryptographically signed GitHub build provenance.
+Windows x64 · self-contained · prerelease
+Published EXE SHA256: baee38b3aafdd1bbb7f61857747358dbd40ab056d989aa0f753c93b2025a7580
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 594df3d703d983d5978b640a03c64d498765035a
- SHA256 (pgextwin.exe): 3567e34cf9f7347cfab7a1292f58965b7bd15e2d8a2bb5b1f0479685633862a0
.\pgextwin.exe download-all --pg all
- Downloads 14 original extension ZIPs for each PostgreSQL major PG14–18 into a new pgextwin-pg14-18 folder under the current directory. Use --pg 18 for 14 ZIPs only.
The CLI embeds an independently source-pinned SHA256 of a historical candidate P1 policy. It fetches and hashes this policy and each Catalog original at immutable GitHub commits, without asking for a file or SHA256 input. Public original ZIP bytes are downloaded from the pinned GitHub Release browser URL with strict SHA256 checks, avoiding anonymous REST rate limits; original numeric IDs are policy-pinned, not live REST verified. This is a frozen October 2026 snapshot, not a latest-version update feed.
-Incomplete batches are discarded; existing output is never overwritten. Result: INTEGRITY_ONLY, not formal historical P1 acceptance of all 70 signatures, a signed combined ZIP, an installer, or verified extension Sigstore provenance.
+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.
+.\pgextwin.exe download-all --pg all.\pgextwin.exe download-all --pg 18.\pgextwin.exe download-all --pg all --fixedRun the CLI with a locally extracted Catalog repository snapshot (including index.json and extensions/). Catalog results explicitly remain UNVERIFIED.
+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.
+Fetch the published Catalog selection feed and its Sigstore bundle over HTTPS, and verify the signer, source, commit and immutable Catalog records.
Use the immutable historical Catalog/policy snapshot pinned by the CLI, with its independently pinned SHA256.
Choose the Catalog-registered Release tag and original ZIP for each requested PostgreSQL major. Never infer the upstream's latest tag.
Fetch original GitHub Release ZIP bytes over bounded HTTPS; verify each SHA256 and reject mismatches, unsafe redirects and partial batches.
Commit the verified set to a new output directory and write DOWNLOAD-INFO.json. Existing output is not overwritten.
DOWNLOAD-INFO.jsonGitHub Actions Sigstore-attested build; SHA256 of public EXE independently checked.
Independent Sigstore verification of the feed and immutable Catalog byte hashes.
SHA256 integrity against authenticated/pinned metadata only: INTEGRITY_ONLY. Individual extension signatures/provenance and install authorization are not established.
The CLI is download-only; it does not install ZIPs, modify services, create a signed combined bundle, or make original extension publication decisions.
+−83.83% · Full .NET 10 trimming + single-file compression; original Windows x64 EXE sizes measured from published Releases.
+Local Catalog browsing is separate from authenticated latest downloads. Local listing/search results remain UNVERIFIED.
.\pgextwin.exe --version
.\pgextwin.exe list --catalog-dir C:\path\to\catalog --pg 18
.\pgextwin.exe search cron --catalog-dir C:\path\to\catalog --format json
+ UNVERIFIED · INTEGRITY_ONLY
v0.3.1
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
+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署名付きインストーラーではありません。
list/search and JSON output are supported. The frozen candidate policy hash is embedded for one-line downloads; each original ZIP is INTEGRITY_ONLY only. Genuine extension Sigstore verify, installation, automatic service changes and offline bundle generation are not provided. The CLI binary has Sigstore build provenance, not a Windows Authenticode signature.