CLI executable
GitHub Actions Sigstore-attested build; SHA256 of public EXE independently checked.
pgextwin CLI
Follow the latest Catalog as new extensions are registered.
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.
Windows x64 · self-contained · prerelease
Published EXE SHA256: ee0a0b203d25e054c59999c711c0305f39fb8322a076d00df807cde2a859e327
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 ed6c69ca259eee2fb2454d3a1c416cd2766dbb17
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 --fixedLatest Catalog support
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.
.\pgextwin.exe download-all --pg all --verbose.\pgextwin.exe download-all --pg all --verbose 2> download-verbose.logVerbose output does not change trust: individual extension ZIPs remain INTEGRITY_ONLY. No install or extension publication privileges are added.
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.5
CLI v0.3.5 — 17 extensions and signed PostgreSQL cohorts. This version incorporates protected-main changes after v0.3.5: the authenticated latest Catalog now includes 17 extensions, including pgTAP, pg_variables and pg_store_plans, without a fixed new-extension name allowlist. The signer-approved Catalog feed provides the contiguous PostgreSQL-major cohort instead of hard-coding PG14–18. Future majors require signed Catalog metadata and published, SHA256-checked original ZIPs; the CLI does not assume they exist. The historical --fixed snapshot and --verbose stderr progress remain supported.
The trim-compressed Windows x64 EXE is 12,833,222 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 EXE and verbose latest-Catalog Windows acceptance · Full GitHub Release (English → Japanese)