Windows x64 · self-contained · prerelease

Get the Windows executable

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

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.

Latest Catalog · all registered ZIPs
.\pgextwin.exe download-all --pg all
Latest Catalog · all registered PG18 ZIPs
.\pgextwin.exe download-all --pg 18
Fixed historical snapshot · 70 ZIPs
.\pgextwin.exe download-all --pg all --fixed

Latest Catalog support

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 registered 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.

1 · Choose a source
LATEST

Latest (default)

Fetch the published Catalog selection feed and its Sigstore bundle over HTTPS, and verify the signer, source, commit and immutable Catalog records.

FIXED

Fixed (--fixed)

Use the immutable historical Catalog/policy snapshot pinned by the CLI, with its independently pinned SHA256.

  1. 2 · Select packages

    Choose the Catalog-registered Release tag and original ZIP for each requested PostgreSQL major. Never infer the upstream's latest tag.

  2. 3 · Download & check

    Fetch original GitHub Release ZIP bytes over bounded HTTPS; verify each SHA256 and reject mismatches, unsafe redirects and partial batches.

  3. 4 · Save & report

    Commit the verified set to a new output directory and write DOWNLOAD-INFO.json. Existing output is not overwritten.

    DOWNLOAD-INFO.json

What is (and is not) verified

SIGSTORE VERIFIED

CLI executable

GitHub Actions Sigstore-attested build; SHA256 of public EXE independently checked.

SIGSTORE VERIFIED

Catalog feed (latest mode)

Independent Sigstore verification of the feed and immutable Catalog byte hashes.

INTEGRITY_ONLY

Extension ZIPs

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.

v0.3.1 size improvement

−83.83% · Full .NET 10 trimming + single-file compression; original Windows x64 EXE sizes measured from published Releases.

Other commands

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

Release notes

English

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)