<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>cli on PIG</title>
    <link>https://pig.pgsty.com/tags/cli/</link>
    <description>Recent content in cli on PIG</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    
    
      <lastBuildDate>Thu, 03 Sep 2026 14:13:40 +0800</lastBuildDate>
    
    
      <atom:link href="https://pig.pgsty.com/tags/cli/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>pig v1.8.1</title>
        <link>https://pig.pgsty.com/release/pig-1.8.1/</link>
        <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/release/pig-1.8.1/</guid>
        <description>&lt;p&gt;Pig &lt;code&gt;v1.8.1&lt;/code&gt; is a safety, correctness, and maintenance release on top of&#xA;&lt;a href=&#34;https://pig.pgsty.com/release/pig-1.8.0/&#34;&gt;v1.8.0&lt;/a&gt;. It hardens command initialization, privileged log access,&#xA;repository and build workflows, release integrity, and structured-output redaction. It also&#xA;refreshes the embedded extension catalog and moves the build toolchain to Go &lt;code&gt;1.27.1&lt;/code&gt; and&#xA;&lt;code&gt;cargo-pgrx 0.19.2&lt;/code&gt;. The embedded Pigsty version remains &lt;code&gt;4.5.0&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cli-safety-and-correctness&#34;&gt;CLI safety and correctness&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read-only and configuration-independent commands no longer require a writable &lt;code&gt;HOME&lt;/code&gt; or create&#xA;&lt;code&gt;~/.pig&lt;/code&gt; as a side effect. Leaf commands preserve their declared initialization policy.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig pg log&lt;/code&gt;, &lt;code&gt;pig pt log&lt;/code&gt;, and &lt;code&gt;pig pb log&lt;/code&gt; preserve arguments through sudo execution as the&#xA;database OS user and reject unsafe log-file links.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig do&lt;/code&gt; validates Pigsty names and rejects reserved Ansible cluster targets before execution.&lt;/li&gt;&#xA;&lt;li&gt;Native PostgreSQL role detection is bound to the selected instance rather than an unrelated&#xA;local default.&lt;/li&gt;&#xA;&lt;li&gt;Structured results redact credentials, license material, and build-proxy identifiers while&#xA;retaining truthful command failure.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;repository-and-build-hardening&#34;&gt;Repository and build hardening&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Repository add and remove operations now fail when any requested operation fails, deduplicate&#xA;module selections, and preserve replacement boundaries.&lt;/li&gt;&#xA;&lt;li&gt;Offline cache bundles reject unsafe paths, links, special files, and incomplete inputs; archive&#xA;extraction remains rooted and fail-closed. The obsolete exported cache wrapper was removed after&#xA;production moved to the structured result path.&lt;/li&gt;&#xA;&lt;li&gt;Build source and artifact validation rejects incomplete or unsafe inputs. &lt;code&gt;pig build proxy&lt;/code&gt;&#xA;uses the package-provided service contract, treats its operands as optional, and keeps secret&#xA;identifiers out of structured output.&lt;/li&gt;&#xA;&lt;li&gt;Self-update verifies release checksums, and release tooling refuses dirty or mismatched-tag&#xA;publication and immutable artifact replacement.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;toolchain-and-catalog&#34;&gt;Toolchain and catalog&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Go is updated to &lt;code&gt;1.27.1&lt;/code&gt;; Logrus to &lt;code&gt;1.10.2&lt;/code&gt;; GoReleaser to &lt;code&gt;2.18.0&lt;/code&gt;; and&#xA;golangci-lint to &lt;code&gt;2.13.2&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig build pgrx&lt;/code&gt; now installs &lt;code&gt;cargo-pgrx 0.19.2&lt;/code&gt; by default. Use &lt;code&gt;-v&lt;/code&gt; when an extension requires&#xA;an older pgrx line recorded in its catalog metadata.&lt;/li&gt;&#xA;&lt;li&gt;The embedded catalog is refreshed from the maintained pgext view. It adds &lt;code&gt;acdat 0.1.0&lt;/code&gt;, marks&#xA;the superseded &lt;code&gt;pgcontext_pgvector&lt;/code&gt; entry removed, and updates package versions, repository&#xA;ownership, PostgreSQL coverage, and availability matrices.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;verification&#34;&gt;Verification&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The release is built from source commit&#xA;&lt;a href=&#34;https://github.com/pgsty/pig/commit/e3d1eb4a86cedddcf49fff398fc69751e861372e&#34;&gt;&lt;code&gt;e3d1eb4&lt;/code&gt;&lt;/a&gt;.&#xA;The exact commit passed the full &lt;a href=&#34;https://github.com/pgsty/pig/actions/runs/33718574084&#34;&gt;CI workflow&lt;/a&gt;,&#xA;including randomized tests, command race regressions, vet, static analysis, dead-code detection,&#xA;vulnerability scanning, and a GoReleaser snapshot. The tag then passed the&#xA;&lt;a href=&#34;https://github.com/pgsty/pig/actions/runs/33718945217&#34;&gt;Release workflow&lt;/a&gt;, which produced the&#xA;published RPM, DEB, macOS, and Linux artifacts.&lt;/p&gt;</description>
      </item>
    <item>
        <title>From Human-Friendly to Agent-Native: PIG&#39;s CLI Contract</title>
        <link>https://pig.pgsty.com/design/agent-native-cli/</link>
        <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/design/agent-native-cli/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Decision date:&lt;/strong&gt; 2026-02-12&lt;br&gt;&#xA;&lt;strong&gt;Status:&lt;/strong&gt; Implemented in &lt;a href=&#34;https://pig.pgsty.com/release/pig-1.1.0/&#34;&gt;pig v1.1.0&lt;/a&gt; and refined by later command-layer work.&lt;br&gt;&#xA;&lt;strong&gt;Current reference:&lt;/strong&gt; &lt;a href=&#34;https://pig.pgsty.com/cmd/&#34;&gt;&lt;code&gt;pig&lt;/code&gt; command overview&lt;/a&gt;&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; PIG-owned commands and their machine-consumption contract; opaque passthrough commands keep their native interface.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;decision&#34;&gt;Decision&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;PIG should be usable by a person at a terminal and by an automation agent without making either&#xA;consumer parse the other&amp;rsquo;s presentation. Human-facing text remains concise and operational.&#xA;Commands that own a stable result expose explicit JSON or YAML results, status codes, and plans.&#xA;Commands that merely forward an external tool preserve that tool&amp;rsquo;s native stream, prompts, and&#xA;exit status instead of wrapping them in a misleading envelope.&lt;/p&gt;</description>
      </item>
    <item>
        <title>pig v1.6.0</title>
        <link>https://pig.pgsty.com/release/pig-1.6.0/</link>
        <pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/release/pig-1.6.0/</guid>
        <description>&lt;p&gt;Pig &lt;code&gt;v1.6.0&lt;/code&gt; is a major release: &lt;code&gt;pig pt&lt;/code&gt; becomes a transparent &lt;code&gt;patronictl&lt;/code&gt; launcher, the new root-level &lt;code&gt;pig inventory&lt;/code&gt; command group brings lossless editing and validation of &lt;code&gt;pigsty.yml&lt;/code&gt; (with an experimental PostgreSQL CMDB bridge), &lt;code&gt;pig sty grafana&lt;/code&gt; adds native Grafana dashboard management, and the packaged extension catalog grows to 562.&lt;/p&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pig pt&lt;/code&gt; is rewritten as a native &lt;code&gt;patronictl&lt;/code&gt; passthrough: all cluster commands (&lt;code&gt;list&lt;/code&gt;, &lt;code&gt;restart&lt;/code&gt;, &lt;code&gt;switchover&lt;/code&gt;, &lt;code&gt;failover&lt;/code&gt;, &lt;code&gt;edit-config&lt;/code&gt;, …) forward directly with native flags, prompts, output, and exit codes, so new patronictl features work without waiting for a pig release. Local helpers &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;log&lt;/code&gt;, &lt;code&gt;set&lt;/code&gt;, and &lt;code&gt;service/svc&lt;/code&gt; remain, with new &lt;code&gt;-c/--config-file&lt;/code&gt;, &lt;code&gt;-d/--dcs-url&lt;/code&gt;, &lt;code&gt;-k/--insecure&lt;/code&gt; options and a &lt;code&gt;pig pt -- …&lt;/code&gt; escape hatch.&lt;/li&gt;&#xA;&lt;li&gt;New root-level &lt;code&gt;pig inventory&lt;/code&gt; command group (alias &lt;code&gt;inv&lt;/code&gt;): &lt;code&gt;status&lt;/code&gt; / &lt;code&gt;list&lt;/code&gt; / &lt;code&gt;show&lt;/code&gt; / &lt;code&gt;edit&lt;/code&gt; / &lt;code&gt;validate&lt;/code&gt; / &lt;code&gt;check&lt;/code&gt; / &lt;code&gt;diff&lt;/code&gt; — a lossless YAML engine that preserves comments, formatting, key order, and anchors byte-for-byte; &lt;code&gt;edit&lt;/code&gt; validates before writing and writes atomically, so invalid YAML can never reach disk.&lt;/li&gt;&#xA;&lt;li&gt;New &lt;strong&gt;experimental&lt;/strong&gt; &lt;code&gt;pig inventory cmdb&lt;/code&gt; subcommands (&lt;code&gt;check&lt;/code&gt; / &lt;code&gt;init&lt;/code&gt; / &lt;code&gt;load&lt;/code&gt; / &lt;code&gt;dump&lt;/code&gt; / &lt;code&gt;enable&lt;/code&gt; / &lt;code&gt;disable&lt;/code&gt;) exchange the inventory with the Pigsty CMDB in PostgreSQL over a native driver, with bounded timeouts and digest-pinned confirmation for destructive operations.&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;pig sty grafana&lt;/code&gt; (alias &lt;code&gt;gf&lt;/code&gt;) manages Grafana dashboards natively over HTTP: &lt;code&gt;info&lt;/code&gt; / &lt;code&gt;list&lt;/code&gt; / &lt;code&gt;boot&lt;/code&gt; / &lt;code&gt;load&lt;/code&gt; / &lt;code&gt;init&lt;/code&gt; / &lt;code&gt;dump&lt;/code&gt; / &lt;code&gt;clean&lt;/code&gt; / &lt;code&gt;lang&lt;/code&gt; / &lt;code&gt;style&lt;/code&gt;. The &lt;code&gt;pig sty&lt;/code&gt; surface is simplified: &lt;code&gt;sty edit&lt;/code&gt; / &lt;code&gt;validate&lt;/code&gt; / &lt;code&gt;check&lt;/code&gt; / &lt;code&gt;cmdb&lt;/code&gt; / &lt;code&gt;dashboard&lt;/code&gt; / &lt;code&gt;release&lt;/code&gt; are removed in favor of &lt;code&gt;pig inventory&lt;/code&gt;, &lt;code&gt;pig sty grafana&lt;/code&gt;, and &lt;code&gt;pig sty list&lt;/code&gt; / &lt;code&gt;get&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Reliability hardening: repo / catalog / download writes are atomic (no more truncated files on interrupt); structured &lt;code&gt;-o json|yaml&lt;/code&gt; keeps stdout as a pure result envelope with wrapped-tool output on stderr; finer exit codes (usage errors → 2, missing &lt;code&gt;--yes&lt;/code&gt; confirmation → 7); Ansible list variables are JSON-encoded.&lt;/li&gt;&#xA;&lt;li&gt;Repository refresh: MySQL repos upgraded to 8.4 LTS, new Percona XtraBackup (&lt;code&gt;pxb84&lt;/code&gt;) and MySQL Tools repos, Kubernetes v1.36, LLVM apt coverage for Debian/Ubuntu 26, Percona TDE sourced directly from repo.percona.com, &lt;code&gt;wiltondb&lt;/code&gt; repo removed.&lt;/li&gt;&#xA;&lt;li&gt;Toolchain: Go 1.26.5, new native PostgreSQL driver (pgx v5), embedded Pigsty version &lt;code&gt;4.4.0&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;extension-catalog&#34;&gt;Extension Catalog&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Packaged extensions: &lt;strong&gt;531 -&amp;gt; 562&lt;/strong&gt;; the broader PGEXT.CLOUD directory contains &lt;strong&gt;2,230&lt;/strong&gt; entries.&lt;/li&gt;&#xA;&lt;li&gt;33 new extensions, including the &lt;code&gt;pg_lake&lt;/code&gt; family (&lt;code&gt;pg_lake&lt;/code&gt;, &lt;code&gt;pg_lake_table&lt;/code&gt;, &lt;code&gt;pg_lake_engine&lt;/code&gt;, &lt;code&gt;pg_lake_iceberg&lt;/code&gt;, &lt;code&gt;pg_lake_copy&lt;/code&gt;), &lt;code&gt;pg_jieba&lt;/code&gt;, &lt;code&gt;pg_cjk_parser&lt;/code&gt;, &lt;code&gt;pg_fts&lt;/code&gt;, &lt;code&gt;pgmonitor&lt;/code&gt;, &lt;code&gt;pgmemento&lt;/code&gt;, &lt;code&gt;pg_tiktoken_c&lt;/code&gt;, &lt;code&gt;online_advisor&lt;/code&gt;, &lt;code&gt;pgsqlmock&lt;/code&gt;, and &lt;code&gt;plx&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;2 removed: &lt;code&gt;pg_analytics&lt;/code&gt;, &lt;code&gt;spat&lt;/code&gt;; 58 version refreshes, including &lt;code&gt;vector 0.8.5&lt;/code&gt;, &lt;code&gt;timescaledb 2.28.3&lt;/code&gt;, &lt;code&gt;pg_search 0.24.3&lt;/code&gt;, &lt;code&gt;pg_tde 2.2.1&lt;/code&gt;, and &lt;code&gt;powa 5.2.0&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Package aliases synced with Pigsty: &lt;code&gt;kafka&lt;/code&gt; is renamed to &lt;code&gt;kafka-stack&lt;/code&gt;; the Debian/Ubuntu &lt;code&gt;postgresql&lt;/code&gt; alias now maps to &lt;code&gt;postgresql-$v&lt;/code&gt; only (use &lt;code&gt;pgsql&lt;/code&gt; / &lt;code&gt;pgsql-full&lt;/code&gt; for the full dev set).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;compatibility-notes&#34;&gt;Compatibility Notes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;⚠ &lt;code&gt;pig pt failover &amp;lt;name&amp;gt;&lt;/code&gt;: the positional argument is now the &lt;strong&gt;cluster&lt;/strong&gt;, not the promotion candidate — use &lt;code&gt;pig pt failover CLUSTER --candidate MEMBER&lt;/code&gt; and review any failover automation before upgrading.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig pt&lt;/code&gt; positionals are native cluster-first (&lt;code&gt;restart CLUSTER [MEMBER]&lt;/code&gt;); forwarded commands return native patronictl exit codes, own their confirmation prompts (&lt;code&gt;-y&lt;/code&gt; no longer gates them), and no longer support &lt;code&gt;-o json&lt;/code&gt; (use native &lt;code&gt;--format json&lt;/code&gt;). &lt;code&gt;pig pt config&lt;/code&gt; is replaced by &lt;code&gt;pig pt set K=V&lt;/code&gt; and native &lt;code&gt;show-config&lt;/code&gt; / &lt;code&gt;edit-config&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;In structured output mode, wrapped-tool output moves to stderr and stdout carries only the JSON/YAML envelope — update scripts that parsed mixed output.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig inventory edit&lt;/code&gt; tightens the inventory file mode to 0600 after a successful edit, since the file may contain credentials.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;| File | Checksum |&#xA;| --- | --- |&#xA;| [pig\-1\.6\.0\-1\.aarch64\.rpm](https://github.com/pgsty/pig/releases/download/v1.6.0/pig-1.6.0-1.aarch64.rpm) | SHA-256 · `6899e8a3e1c0adfe8c0c177c0632b0a00821b304ed5998fcbdf28d02660c6768` |&#xA;| [pig\-1\.6\.0\-1\.x86\_64\.rpm](https://github.com/pgsty/pig/releases/download/v1.6.0/pig-1.6.0-1.x86_64.rpm) | SHA-256 · `cabe593fe7f5c31cdbcd8d546ae4925b57f98f70c564452335568389f3f9737c` |&#xA;| [pig\-v1\.6\.0\.darwin\-amd64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.6.0/pig-v1.6.0.darwin-amd64.tar.gz) | SHA-256 · `1f46d4a0b4710eed06b2cf8e7e17ee04b8d65331697c5c65afd513cc28282231` |&#xA;| [pig\-v1\.6\.0\.darwin\-arm64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.6.0/pig-v1.6.0.darwin-arm64.tar.gz) | SHA-256 · `845decb95697fc68bc5e12bc80cecfd4c6d23160afee96568b699d82f2e9261d` |&#xA;| [pig\-v1\.6\.0\.linux\-amd64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.6.0/pig-v1.6.0.linux-amd64.tar.gz) | SHA-256 · `4f1bb4fda8131db9f40db15e1575a6045b373dee609250cf5ee2bdedc2db89e2` |&#xA;| [pig\-v1\.6\.0\.linux\-arm64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.6.0/pig-v1.6.0.linux-arm64.tar.gz) | SHA-256 · `4384d11150e31d614ed4ac3de4d6bf7ee7fa111ac84f5575753bb9f2f31f4ed8` |&#xA;| [pig\_1\.6\.0\-1\_amd64\.deb](https://github.com/pgsty/pig/releases/download/v1.6.0/pig_1.6.0-1_amd64.deb) | SHA-256 · `e35ef0f2c76afe5f3512d34c0440abd8c0106c0e2775c5452e167ae3a4127e8e` |&#xA;| [pig\_1\.6\.0\-1\_arm64\.deb](https://github.com/pgsty/pig/releases/download/v1.6.0/pig_1.6.0-1_arm64.deb) | SHA-256 · `c3bc6d04c6acd7e5c3164a33b7525b25a93e2de9822ce957c15c18ee0d551901` |&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.6.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-07-28&#34;&gt;2026-07-28&lt;/time&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Why PIG Keeps the Cobra Command Layer Flat</title>
        <link>https://pig.pgsty.com/design/flat-cobra-command-layer/</link>
        <pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/design/flat-cobra-command-layer/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Decision date:&lt;/strong&gt; 2026-06-30&lt;br&gt;&#xA;&lt;strong&gt;Status:&lt;/strong&gt; Active repository architecture.&lt;br&gt;&#xA;&lt;strong&gt;Current reference:&lt;/strong&gt; &lt;a href=&#34;https://pig.pgsty.com/cmd/&#34;&gt;&lt;code&gt;pig&lt;/code&gt; command overview&lt;/a&gt; and the &lt;a href=&#34;https://github.com/pgsty/pig&#34;&gt;source repository&lt;/a&gt;&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; Go source ownership and command registration, not the public command taxonomy itself.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;decision&#34;&gt;Decision&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;cmd&lt;/code&gt; package stays flat. One top-level command belongs in one top-level Go file: &lt;code&gt;pg.go&lt;/code&gt;,&#xA;&lt;code&gt;pb.go&lt;/code&gt;, &lt;code&gt;pt.go&lt;/code&gt;, &lt;code&gt;pe.go&lt;/code&gt;, &lt;code&gt;sty.go&lt;/code&gt;, &lt;code&gt;do.go&lt;/code&gt;, &lt;code&gt;repo.go&lt;/code&gt;, and their peers. Even large command trees&#xA;remain in that entry-point file unless there is an explicit decision to change the layout.&lt;/p&gt;</description>
      </item>
    <item>
        <title>One Grammar for Dangerous Work: PIG&#39;s Operations CLI Safety Contract</title>
        <link>https://pig.pgsty.com/design/ops-cli-safety/</link>
        <pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/design/ops-cli-safety/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Decision date:&lt;/strong&gt; 2026-07-02&lt;br&gt;&#xA;&lt;strong&gt;Status:&lt;/strong&gt; Released for &lt;code&gt;pg&lt;/code&gt;, &lt;code&gt;pb&lt;/code&gt;, &lt;code&gt;pt&lt;/code&gt;, and &lt;code&gt;pitr&lt;/code&gt; by v1.5.0; the 2026-08-29 &lt;code&gt;do&lt;/code&gt; and &lt;code&gt;build proxy&lt;/code&gt; refinements were released in &lt;a href=&#34;https://pig.pgsty.com/release/pig-1.8.1/&#34;&gt;v1.8.1&lt;/a&gt;.&lt;br&gt;&#xA;&lt;strong&gt;Current reference:&lt;/strong&gt; &lt;a href=&#34;https://pig.pgsty.com/pg/&#34;&gt;&lt;code&gt;pig pg&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pig.pgsty.com/pb/&#34;&gt;&lt;code&gt;pig pb&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pig.pgsty.com/pitr/&#34;&gt;&lt;code&gt;pig pitr&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pig.pgsty.com/do/&#34;&gt;&lt;code&gt;pig do&lt;/code&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pig.pgsty.com/build/&#34;&gt;&lt;code&gt;pig build&lt;/code&gt;&lt;/a&gt;&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; PIG-owned operational commands; transparent upstream commands retain upstream confirmation and exit behavior.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;decision&#34;&gt;Decision&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Operational convenience must not blur operational meaning. PIG distinguishes low-level primitives&#xA;from multi-stage orchestrators, makes destructive intent explicit, reserves aliases carefully, and&#xA;requires plans and structured results to describe the same action that text mode will execute.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Let Patronictl Speak for Itself</title>
        <link>https://pig.pgsty.com/design/patronictl-passthrough/</link>
        <pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/design/patronictl-passthrough/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Decision date:&lt;/strong&gt; 2026-07-21&lt;br&gt;&#xA;&lt;strong&gt;Status:&lt;/strong&gt; Implemented and released in &lt;a href=&#34;https://pig.pgsty.com/release/pig-1.6.0/&#34;&gt;pig v1.6.0&lt;/a&gt;.&lt;br&gt;&#xA;&lt;strong&gt;Current reference:&lt;/strong&gt; &lt;a href=&#34;https://pig.pgsty.com/pt/&#34;&gt;&lt;code&gt;pig pt&lt;/code&gt;&lt;/a&gt;&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; Patronictl-backed cluster commands plus PIG-owned configuration selection, settings sugar, service, status, and log helpers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;decision&#34;&gt;Decision&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;pig pt&lt;/code&gt; is a transparent launcher for the installed &lt;code&gt;patronictl&lt;/code&gt;. PIG selects the configuration&#xA;and dispatches a small set of local helpers. Every other command token and all following arguments&#xA;are passed unchanged, with native prompts, terminal behavior, output formats, and exit codes.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PIG 2.0 Product Direction: A Proposal, Not a Release Contract</title>
        <link>https://pig.pgsty.com/design/pig-2-product-direction/</link>
        <pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/design/pig-2-product-direction/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Decision date:&lt;/strong&gt; 2026-08-13&lt;br&gt;&#xA;&lt;strong&gt;Status:&lt;/strong&gt; Proposal for owner review; it is not implemented and is not a PIG 2.0 release commitment.&lt;br&gt;&#xA;&lt;strong&gt;Current reference:&lt;/strong&gt; &lt;a href=&#34;https://pig.pgsty.com/docs/&#34;&gt;PIG documentation&lt;/a&gt; and the current &lt;a href=&#34;https://pig.pgsty.com/release/pig-1.8.1/&#34;&gt;v1.8.1 release&lt;/a&gt;&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; Candidate product boundaries and verification gates for a future PIG 2.0 / Pigsty 5.0 line.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;decision&#34;&gt;Decision&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The proposed direction makes PIG the stable onboarding front door from an empty controller to a&#xA;validated, deployable Pigsty Inventory. PIG would own Catalog selection, resolution, plans,&#xA;bounded execution orchestration, structured results, and redacted receipts. It would continue to&#xA;delegate package transactions, configuration application, and infrastructure state to DNF/APT,&#xA;Ansible, and future provider-specific tools.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Catalog v2 Proposal: Immutable Typed Snapshots Instead of Bigger CSV</title>
        <link>https://pig.pgsty.com/design/catalog-v2-snapshots/</link>
        <pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/design/catalog-v2-snapshots/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Decision date:&lt;/strong&gt; 2026-08-13&lt;br&gt;&#xA;&lt;strong&gt;Status:&lt;/strong&gt; Pre-implementation proposal; security mechanism, overlay scope, packaging, and path ADRs remain open.&lt;br&gt;&#xA;&lt;strong&gt;Current reference:&lt;/strong&gt; &lt;a href=&#34;https://pig.pgsty.com/ext/&#34;&gt;&lt;code&gt;pig ext&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://pig.pgsty.com/repo/&#34;&gt;&lt;code&gt;pig repo&lt;/code&gt;&lt;/a&gt; describe the v1 Catalog behavior.&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; A candidate PIG 2.0 publication and consumption model for product metadata, not Inventory or live system state.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;decision&#34;&gt;Decision&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Catalog v2 should be one immutable, verifiable snapshot composed of multiple typed targets. A&#xA;manifest binds platform, repository, route, package-alias, extension, compatibility, Pigsty&#xA;release, and public-key metadata to exact bytes. Candidate targets are validated together and&#xA;activated through one pointer, preventing a new repository catalog from being mixed silently with&#xA;an old extension matrix.&lt;/p&gt;</description>
      </item>
    <item>
        <title>pig</title>
        <link>https://pig.pgsty.com/cmd/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/cmd/</guid>
        <description>&lt;p&gt;The &lt;code&gt;pig&lt;/code&gt; CLI provides a comprehensive toolkit for managing PostgreSQL installations, extensions, repositories, and extension builds from source. Use &lt;code&gt;pig help &amp;lt;command&amp;gt;&lt;/code&gt; to view command documentation.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/repo/&#34;&gt;&lt;strong&gt;pig repo&lt;/strong&gt;&lt;/a&gt;: manage software repositories&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/ext/&#34;&gt;&lt;strong&gt;pig ext&lt;/strong&gt;&lt;/a&gt;: manage PostgreSQL extensions&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/build/&#34;&gt;&lt;strong&gt;pig build&lt;/strong&gt;&lt;/a&gt;: build extensions from source&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pig install&lt;/strong&gt;: install packages with the native package manager and translate PostgreSQL aliases&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/sty/&#34;&gt;&lt;strong&gt;pig sty&lt;/strong&gt;&lt;/a&gt;: manage Pigsty installation and Grafana dashboards&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/inventory/&#34;&gt;&lt;strong&gt;pig inventory&lt;/strong&gt;&lt;/a&gt;: inspect, edit, validate, and exchange the Pigsty inventory (new in v1.6.0)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/do/&#34;&gt;&lt;strong&gt;pig do&lt;/strong&gt;&lt;/a&gt;: run Pigsty administration playbook tasks&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/pe/&#34;&gt;&lt;strong&gt;pig pe&lt;/strong&gt;&lt;/a&gt;: access pg_exporter metrics and configuration&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/pg/&#34;&gt;&lt;strong&gt;pig pg&lt;/strong&gt;&lt;/a&gt;: manage local PostgreSQL servers&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/pt/&#34;&gt;&lt;strong&gt;pig pt&lt;/strong&gt;&lt;/a&gt;: run patronictl transparently with service and config helpers&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/pb/&#34;&gt;&lt;strong&gt;pig pb&lt;/strong&gt;&lt;/a&gt;: manage pgBackRest backup and restore&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pig.pgsty.com/pitr/&#34;&gt;&lt;strong&gt;pig pitr&lt;/strong&gt;&lt;/a&gt;: run the full PITR workflow&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pig context&lt;/strong&gt;: output an environment context snapshot for humans and agents&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pig status / update / version&lt;/strong&gt;: inspect environment status, upgrade pig, and print version information&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-18f4e92b-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;48&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-18f4e92b-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig - The Linux package manager &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; PostgreSQL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Usage:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pig &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;command&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Examples:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pig repo add -ru            &lt;span class=&#34;c1&#34;&gt;# overwrite existing repo and update cache&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pig install pg18            &lt;span class=&#34;c1&#34;&gt;# install PostgreSQL 18 PGDG packages&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pig install pg_duckdb       &lt;span class=&#34;c1&#34;&gt;# install a specific PostgreSQL extension&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pig install pgactive -v &lt;span class=&#34;m&#34;&gt;18&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# install extension for a specific PG version&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  visit https://pigsty.io/ext/ &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; details&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PostgreSQL Extension Manager&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  build       Build Postgres extensions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ext         Manage PostgreSQL extensions &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pgext&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  repo        Manage Linux software repo &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;apt/dnf&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Pigsty Management Commands&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  context     Show environment context snapshot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;          Run admin tasks&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  inventory   Inspect, edit, validate, check, and exchange Pigsty Inventory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  patroni     Run patronictl with Pigsty service and config helpers &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;alias: pt&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pg_exporter Manage pg_exporter and metrics &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;alias: pe&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pgbackrest  Manage pgBackRest backup and restore &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;alias: pb&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pitr        Point-in-time recovery using pgBackRest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  postgres    Manage &lt;span class=&#34;nb&#34;&gt;local&lt;/span&gt; PostgreSQL server and databases &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;alias: pg&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sty         Manage Pigsty installation and controller services&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Additional Commands:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  completion  Generate shell completion scripts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;help&lt;/span&gt;        Help about any &lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  install     Install packages using native package manager&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  status      Show environment status&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  update      Upgrade pig itself&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  version     Show pig version info&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Flags:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      --debug              &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; debug mode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -h, --help               &lt;span class=&#34;nb&#34;&gt;help&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; pig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H, --home string        Pigsty home path&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -i, --inventory string   config inventory path&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      --log-level string   log level: debug, info, warn, error, fatal, panic &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;default &lt;span class=&#34;s2&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      --log-path string    log file path, terminal by default&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -o, --output string      output format: text, yaml, json, json-pretty &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;default &lt;span class=&#34;s2&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use &lt;span class=&#34;s2&#34;&gt;&amp;#34;pig [command] --help&amp;#34;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; more information about a command.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;pig-repo&#34;&gt;pig repo&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Manage APT/YUM repositories for PostgreSQL packages. See &lt;a href=&#34;https://pig.pgsty.com/repo/&#34;&gt;&lt;code&gt;pig repo&lt;/code&gt;&lt;/a&gt; for details.&lt;/p&gt;</description>
      </item>
    <item>
        <title>pig v1.3.0</title>
        <link>https://pig.pgsty.com/release/pig-1.3.0/</link>
        <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/release/pig-1.3.0/</guid>
        <description>&lt;p&gt;This release is a focused engineering update from &lt;code&gt;v1.2.0&lt;/code&gt; to &lt;code&gt;v1.3.0&lt;/code&gt;: 15 commits, 74 files changed, &lt;code&gt;+1184 / -236&lt;/code&gt; LOC.&lt;/p&gt;&#xA;&lt;p&gt;It hardens the &lt;code&gt;pig build&lt;/code&gt; pipeline and extends catalog/alias coverage, increasing total extensions from &lt;strong&gt;451&lt;/strong&gt; to &lt;strong&gt;461&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Build source download improvements (&lt;code&gt;pig build get&lt;/code&gt;):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Parse multi-source &lt;code&gt;Source&lt;/code&gt; fields (whitespace/newline/tab) and deduplicate entries.&lt;/li&gt;&#xA;&lt;li&gt;Add source mappings for &lt;code&gt;agensgraph&lt;/code&gt; / &lt;code&gt;agentsgraph&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pgedge&lt;/code&gt; now downloads both &lt;code&gt;postgresql-17.9.tar.gz&lt;/code&gt; and &lt;code&gt;spock-5.0.5.tar.gz&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Dependency resolution and install improvements (&lt;code&gt;pig build dep&lt;/code&gt;):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RPM dependencies can infer PG major from &lt;code&gt;pgmajorversion&lt;/code&gt; in spec files; missing spec/control files now return explicit errors.&lt;/li&gt;&#xA;&lt;li&gt;DEB dependency parsing now covers &lt;code&gt;Build-Depends&lt;/code&gt; / &lt;code&gt;Build-Depends-Arch&lt;/code&gt; / &lt;code&gt;Build-Depends-Indep&lt;/code&gt;, including multiline fields, alternatives, arch qualifiers, and build-profile cleanup.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;PGVERSION&lt;/code&gt; placeholders can be expanded from &lt;code&gt;--pg&lt;/code&gt;, installed PG majors, or extension metadata.&lt;/li&gt;&#xA;&lt;li&gt;Dependency install failures are downgraded to warnings so batch runs continue.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;DEB build result semantics fixed (&lt;code&gt;pig build ext/pkg&lt;/code&gt;):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Successful build command exit code is authoritative; artifact discovery is best-effort warning only.&lt;/li&gt;&#xA;&lt;li&gt;Suppress empty package-list banners on successful no-artifact runs.&lt;/li&gt;&#xA;&lt;li&gt;Partial artifacts are warnings, not failures.&lt;/li&gt;&#xA;&lt;li&gt;Build logs now print real metadata source/version values instead of always composing &lt;code&gt;name-version&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Better machine-readable ext operation output (&lt;code&gt;pig ext rm/update&lt;/code&gt;):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;After alias resolution, &lt;code&gt;removed/updated&lt;/code&gt; now returns resolved package names instead of extension aliases.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Extension catalog and alias updates:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New aliases: &lt;code&gt;agensgraph&lt;/code&gt; / &lt;code&gt;agens&lt;/code&gt;, &lt;code&gt;pgedge&lt;/code&gt;, &lt;code&gt;babelfishpg&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;openhalodb&lt;/code&gt; is aligned to PG14 package naming; &lt;code&gt;ivorysqldb&lt;/code&gt; naming is aligned.&lt;/li&gt;&#xA;&lt;li&gt;Fork metadata and availability matrix were refreshed in batch (including &lt;code&gt;timescaledb&lt;/code&gt;, &lt;code&gt;pgmq&lt;/code&gt;, &lt;code&gt;orioledb&lt;/code&gt;, &lt;code&gt;documentdb&lt;/code&gt;, &lt;code&gt;pg_tde&lt;/code&gt;, and &lt;code&gt;babelfishpg_*&lt;/code&gt; entries).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Engineering and release:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Version bumped to &lt;code&gt;v1.3.0&lt;/code&gt; (including a &lt;code&gt;v1.2.1&lt;/code&gt; transition commit), copyright year moved to 2026, and README refreshed for 461 extensions and current alias docs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;compatibility-notes&#34;&gt;Compatibility Notes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Structured &lt;code&gt;removed/updated&lt;/code&gt; fields in &lt;code&gt;pig ext rm/update&lt;/code&gt; now contain package names. Automation that matched extension aliases should update parsing logic.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;new-extensions-451---461&#34;&gt;New Extensions (451 -&amp;gt; 461)&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Extension&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Notes&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;aux_mysql&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;openHalo MySQL compatibility helper (PG14)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;gb18030_2022&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;IvorySQL charset conversion module&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ivorysql_ora&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;IvorySQL Oracle compatibility extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ora_btree_gin&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Oracle datatype GIN indexing support&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ora_btree_gist&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Oracle datatype GiST indexing support&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_get_functiondef&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Function definition utility&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;plisql&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;PL/iSQL procedural language&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;snowflake&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgEdge Snowflake-style ID generator&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;spock&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5.0.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgEdge multi-master logical replication extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;lolor&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgEdge logical-replication-friendly large objects&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;full-commit-list-v120v130&#34;&gt;Full Commit List (&lt;code&gt;v1.2.0..v1.3.0&lt;/code&gt;)&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;b8ecf8d&lt;/code&gt; bump version string to 1.2.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;55df9a4&lt;/code&gt; build/get: support multi-source parsing and pgedge spock tarball&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;da8e347&lt;/code&gt; add agensgraph and pgedge alias&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;86edbd7&lt;/code&gt; ext: show resolved package names in rm/update results&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ef3c905&lt;/code&gt; build/dep: improve rpm/deb dependency resolution&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;7144e09&lt;/code&gt; ext/catalog: refresh fork metadata and matrix entries&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;befffbf&lt;/code&gt; build(deb): treat successful build command as authoritative result&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;33fd517&lt;/code&gt; build(deb): avoid empty package list banner on successful no-artifact runs&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;3b450f2&lt;/code&gt; avoid concat ext pkg name with version when download&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;33847ab&lt;/code&gt; fix(ext): satisfy staticcheck S1011 in rm/update&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;b8b917d&lt;/code&gt; build(dep): treat dependency install failures as warnings&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;8110c00&lt;/code&gt; adjust ivorysqldb babelfishpg alias&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;fac9faf&lt;/code&gt; bump version to 1.3.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1f88f06&lt;/code&gt; chore: update copyright year to 2026&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;c804757&lt;/code&gt; v1.3.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;| File | Checksum |&#xA;| --- | --- |&#xA;| [pig\-1\.3\.0\-1\.aarch64\.rpm](https://github.com/pgsty/pig/releases/download/v1.3.0/pig-1.3.0-1.aarch64.rpm) | SHA-256 · `e8409cc8165139028323094bebede495d4b0d0a52616d1aecd8c7ecd3fb7471d` |&#xA;| [pig\-1\.3\.0\-1\.x86\_64\.rpm](https://github.com/pgsty/pig/releases/download/v1.3.0/pig-1.3.0-1.x86_64.rpm) | SHA-256 · `73645ea4b9ce27b44b2c7f4587e6218cdbbba045f32dd45c942e03cf9020c61e` |&#xA;| [pig\-v1\.3\.0\.darwin\-amd64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.3.0/pig-v1.3.0.darwin-amd64.tar.gz) | SHA-256 · `a2d8a14b11606f4a23ca7b929686ff020fc8ce29e7cec21074f710f981aee6d4` |&#xA;| [pig\-v1\.3\.0\.darwin\-arm64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.3.0/pig-v1.3.0.darwin-arm64.tar.gz) | SHA-256 · `fffb94bfc1808b45d8bef3fb63783c1a8e78057e0315ab5b8752088e2c9a555f` |&#xA;| [pig\-v1\.3\.0\.linux\-amd64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.3.0/pig-v1.3.0.linux-amd64.tar.gz) | SHA-256 · `27220509c22d26eb8821ac189b1de9c4745adc0a0d91719df7d0b1fc1176b765` |&#xA;| [pig\-v1\.3\.0\.linux\-arm64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.3.0/pig-v1.3.0.linux-arm64.tar.gz) | SHA-256 · `d124450333e61a5c7d0ed387b13b4087cfd2a81a3fde018232e6bf9b4db6ba0e` |&#xA;| [pig\_1\.3\.0\-1\_amd64\.deb](https://github.com/pgsty/pig/releases/download/v1.3.0/pig_1.3.0-1_amd64.deb) | SHA-256 · `54f3e0561286b3c0af122137fd475213eff54bc82c69b8b46d1148112ab45b80` |&#xA;| [pig\_1\.3\.0\-1\_arm64\.deb](https://github.com/pgsty/pig/releases/download/v1.3.0/pig_1.3.0-1_arm64.deb) | SHA-256 · `beb8ff31d1e64dbfcf6896115e6d200d835fc28bbac5a5b92d75096ef1e68c80` |&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.3.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-02-27&#34;&gt;2026-02-27&lt;/time&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>pig v1.2.0</title>
        <link>https://pig.pgsty.com/release/pig-1.2.0/</link>
        <pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/release/pig-1.2.0/</guid>
        <description>&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Extension catalog and alias resolution enhancements:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Introduce dynamic PG category alias resolution by PG major version.&lt;/li&gt;&#xA;&lt;li&gt;Add OS-level alias overrides (&lt;code&gt;ansible&lt;/code&gt;/&lt;code&gt;bootstrap&lt;/code&gt;) and converge unknown distro fallback to PGDG-only.&lt;/li&gt;&#xA;&lt;li&gt;Add aliases such as &lt;code&gt;node/infra&lt;/code&gt; and &lt;code&gt;babelfish/cloudberry&lt;/code&gt;, and refresh extension metadata to reduce package resolution ambiguity.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Plan preview for high-risk operations:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add &lt;code&gt;pig install --plan&lt;/code&gt; with structured execution plan output.&lt;/li&gt;&#xA;&lt;li&gt;Align preview semantics for &lt;code&gt;pig pitr&lt;/code&gt; and pgBackRest &lt;code&gt;repack/expire&lt;/code&gt; under &lt;code&gt;--plan&lt;/code&gt; / &lt;code&gt;--dry-run&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Add plan-flag consistency tests to keep subcommand behavior aligned.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Native &lt;code&gt;sty&lt;/code&gt; configuration capability:&lt;/p&gt;</description>
      </item>
    <item>
        <title>pig v1.1.0</title>
        <link>https://pig.pgsty.com/release/pig-1.1.0/</link>
        <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/release/pig-1.1.0/</guid>
        <description>&lt;p&gt;This version is a planned architecture-level upgrade from &lt;code&gt;v1.0.0&lt;/code&gt; to &lt;code&gt;v1.1.0&lt;/code&gt; (79 commits, 193 files changed),&#xA;with the core goal of moving pig from a &amp;ldquo;human-friendly CLI&amp;rdquo; to an &amp;ldquo;agent-native orchestratable CLI&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Seven new extensions are added, bringing the total available extensions to 451.&lt;/p&gt;&#xA;&lt;h2 id=&#34;new-features&#34;&gt;New Features&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Land the unified agent-native output framework: introduce global &lt;code&gt;--output&lt;/code&gt; (&lt;code&gt;text/yaml/json/json-pretty&lt;/code&gt;), and provide unified &lt;code&gt;Result&lt;/code&gt; structure, stable status codes, and machine-readable output for &lt;code&gt;ext/repo/pg/pt/pb/pitr/status/version/context&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Introduce ANCS (Agent Native Command Schema) metadata: add semantic fields such as &lt;code&gt;type/volatility/parallel/risk/confirm/os_user/cost&lt;/code&gt;, and make &lt;code&gt;help&lt;/code&gt; emit a command capability tree directly in structured mode for agent-side capability and risk discovery.&lt;/li&gt;&#xA;&lt;li&gt;Add &lt;code&gt;pig context&lt;/code&gt; (&lt;code&gt;pig ctx&lt;/code&gt;) environment snapshot command: aggregate host, PostgreSQL, Patroni, pgBackRest, and extension information in one call for direct agent workflow context injection.&lt;/li&gt;&#xA;&lt;li&gt;Expand plan capabilities beyond PITR: add &lt;code&gt;pig ext add/rm --plan&lt;/code&gt;, &lt;code&gt;pig pg stop/restart --plan&lt;/code&gt;, &lt;code&gt;pig pt switchover/failover --plan&lt;/code&gt;, and align with &lt;code&gt;pig pitr --plan/--dry-run&lt;/code&gt; into a reviewable execution plan format (actions, scope, risks, expected outcomes).&lt;/li&gt;&#xA;&lt;li&gt;Further improve structured result coverage: embed native &lt;code&gt;pgbackrest info&lt;/code&gt; JSON, and unify structured return DTOs across Patroni/PostgreSQL/PITR/Repo/Ext subsystems for automation compatibility.&lt;/li&gt;&#xA;&lt;li&gt;Strengthen compatibility layer: add legacy structured wrappers for existing command groups such as &lt;code&gt;pg_exporter/pg_probe/do/sty&lt;/code&gt;, preserving legacy interaction behavior while exposing structured execution results and output capture.&lt;/li&gt;&#xA;&lt;li&gt;Update pigsty to &lt;code&gt;v4.1.0&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;extension-update&#34;&gt;Extension Update&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Extension&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Old&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;New&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;timescaledb&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.24.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.25.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;citus&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.0.0-2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.0.0-3&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_incremental&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_bigm&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2-20240606&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2-20250903&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_net&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.20.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.20.2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgmq&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.9.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.10.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_textsearch&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.4.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.5.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pljs&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.5&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;sslutils&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4-1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4-2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;table_version&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.11.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.11.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;supautils&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.0.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.1.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_math&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgsentinel&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.3.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_uri&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.20151224&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.20251029&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgcollection&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_readonly&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.4&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;timestamp9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.0-1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.0-2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_uint128&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_roaringbitmap&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.5.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;plprql&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;18.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;18.0.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pglinter&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_jsonschema&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.3.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.3.4&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_anon&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.5.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.0.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;vchord&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_search&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.21.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.21.6/0.21.7&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_graphql&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5.12-1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5.12-2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_summarize&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.0.1-2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.0.1-3&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;nominatim_fdw&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;-&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_utl_smtp&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;-&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_strict&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;-&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_track_optimizer&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;-&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.9.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgmb&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;-&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Security fix: resolve parsing panic in &lt;code&gt;pig build proxy&lt;/code&gt; when receiving malformed proxy addresses.&lt;/li&gt;&#xA;&lt;li&gt;Security fix: resolve path traversal risk in &lt;code&gt;pig pg log&lt;/code&gt;, preventing access to files outside the log directory via &lt;code&gt;../../&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Security hardening: improve installer/repo path and quoting handling to reduce path injection and invalid-path misuse risks.&lt;/li&gt;&#xA;&lt;li&gt;Build pipeline reliability fixes: correctly propagate errors and return non-zero exit codes in &lt;code&gt;pig build get/pkg/ext&lt;/code&gt; when download/build fails; fix false failures in DEB builds caused by &lt;code&gt;pg_ver&lt;/code&gt; mismatch.&lt;/li&gt;&#xA;&lt;li&gt;Repo/catalog refresh fixes: support quiet mirror fallback for &lt;code&gt;ext/repo reload&lt;/code&gt;; make &lt;code&gt;repo add/set/rm&lt;/code&gt; return proper error status when cache updates fail.&lt;/li&gt;&#xA;&lt;li&gt;Extension management fixes: adjust &lt;code&gt;ext update&lt;/code&gt; to explicit-target updates and fix status drift issues; ensure &lt;code&gt;ext import&lt;/code&gt; downloads requested DEB resources to the specified repo directory.&lt;/li&gt;&#xA;&lt;li&gt;Output/observability fixes: align structured output exit code behavior with text mode rendering; improve permission handling and parsing stability in &lt;code&gt;pg status&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;| File | Checksum |&#xA;| --- | --- |&#xA;| [pig\-1\.1\.0\-1\.aarch64\.rpm](https://github.com/pgsty/pig/releases/download/v1.1.0/pig-1.1.0-1.aarch64.rpm) | SHA-256 · `95245dc035270df2b02cdd5d19afac57ccf4949a61b07b1b806fffde3a3b780e` |&#xA;| [pig\-1\.1\.0\-1\.x86\_64\.rpm](https://github.com/pgsty/pig/releases/download/v1.1.0/pig-1.1.0-1.x86_64.rpm) | SHA-256 · `8b1a26f1b5dd002841a0b31904eea8ce94d1e6c4acde4704a78d9e121e1656f4` |&#xA;| [pig\-v1\.1\.0\.darwin\-amd64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.1.0/pig-v1.1.0.darwin-amd64.tar.gz) | SHA-256 · `dbd079510513f1cd0521b0871cc6fe3eed8f7fa26f66c04c682568c43e24c456` |&#xA;| [pig\-v1\.1\.0\.darwin\-arm64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.1.0/pig-v1.1.0.darwin-arm64.tar.gz) | SHA-256 · `3f3ba081b54569a7de4d9a8fce72c02c84d9e1cbeb53173567f970c7291af251` |&#xA;| [pig\-v1\.1\.0\.linux\-amd64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.1.0/pig-v1.1.0.linux-amd64.tar.gz) | SHA-256 · `ad61384bf01cbb8346ce869da0bc893203ad316c516fb9420cb748f1519a005e` |&#xA;| [pig\-v1\.1\.0\.linux\-arm64\.tar\.gz](https://github.com/pgsty/pig/releases/download/v1.1.0/pig-v1.1.0.linux-arm64.tar.gz) | SHA-256 · `7713632beea1e6ca5c3e2e7172c4adee13a2b1b256755f6c2898b6ca98ee1e00` |&#xA;| [pig\_1\.1\.0\-1\_amd64\.deb](https://github.com/pgsty/pig/releases/download/v1.1.0/pig_1.1.0-1_amd64.deb) | SHA-256 · `70cfc41b7b0aad48f29e12c22c34afd55b938bf50868ac8ab067b9cb62ccb867` |&#xA;| [pig\_1\.1\.0\-1\_arm64\.deb](https://github.com/pgsty/pig/releases/download/v1.1.0/pig_1.1.0-1_arm64.deb) | SHA-256 · `fc5cf16671254f8f3495ff7e80c9d77d06b2328c1a247f90f96cf1e918e0ad0e` |&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.1.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-02-12&#34;&gt;2026-02-12&lt;/time&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>pig do</title>
        <link>https://pig.pgsty.com/do/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/do/</guid>
        <description>&lt;p&gt;&lt;code&gt;pig do&lt;/code&gt; exposes common Pigsty administrative playbooks as explicit CLI operations. It uses the&#xA;selected Pigsty home and Inventory, builds the corresponding playbook command, and returns the&#xA;operation through PIG&amp;rsquo;s legacy structured-result adapter.&lt;/p&gt;&#xA;&lt;p&gt;These commands change remote systems. Review the selected cluster, node, instance, and Inventory&#xA;before execution. The command family does not provide a general &lt;code&gt;--plan&lt;/code&gt; mode.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-fe45516e-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;6&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-fe45516e-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; pgsql-add  pg-test 10.10.10.12     &lt;span class=&#34;c1&#34;&gt;# add one PostgreSQL instance&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; pgsql-rm   pg-test 10.10.10.12     &lt;span class=&#34;c1&#34;&gt;# remove one PostgreSQL instance&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; pgsql-db   pg-meta app             &lt;span class=&#34;c1&#34;&gt;# create or update a database&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; pgsql-user pg-meta dbuser_app      &lt;span class=&#34;c1&#34;&gt;# create or update a user&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; node-pkg   pg-meta restic          &lt;span class=&#34;c1&#34;&gt;# install a package on selected nodes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; redis-add  redis-meta              &lt;span class=&#34;c1&#34;&gt;# initialize a Redis cluster&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;command-overview&#34;&gt;Command overview&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Command&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Purpose&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Required arguments&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql-add&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add a PostgreSQL cluster or instances&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster, optional IPs&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql-rm&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Remove a PostgreSQL cluster or instances&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster, optional IPs&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql-db&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Create or update a database declaration&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster, database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql-user&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Create or update a user declaration&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster, user&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql-ext&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Install extensions through Pigsty&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster, optional extensions&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql-hba&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Refresh PostgreSQL HBA rules&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql-svc&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Refresh PostgreSQL service definitions&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgmon-add&lt;/code&gt; / &lt;code&gt;pgmon-rm&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add or remove a remote monitoring target&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;cluster&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;node-add&lt;/code&gt; / &lt;code&gt;node-rm&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add or remove selected nodes&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;one or more selectors&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;node-repo&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Configure repository modules on selected nodes&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;optional selector and modules&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;node-pkg&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Install or update packages on selected nodes&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;selector, optional packages&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;repo-build&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Rebuild the Pigsty infrastructure repository&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;none&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;redis-add&lt;/code&gt; / &lt;code&gt;redis-rm&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add or remove Redis clusters, nodes, or instances&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;selector, optional ports&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Run &lt;code&gt;pig do COMMAND --help&lt;/code&gt; for the aliases and exact examples of one operation.&lt;/p&gt;</description>
      </item>
    <item>
        <title>pig pe</title>
        <link>https://pig.pgsty.com/pe/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/pe/</guid>
        <description>&lt;p&gt;&lt;code&gt;pig pe&lt;/code&gt; (aliases: &lt;code&gt;pgexp&lt;/code&gt;, &lt;code&gt;pgexporter&lt;/code&gt;) is a legacy convenience wrapper for a running&#xA;&lt;a href=&#34;https://github.com/Vonng/pg_exporter&#34;&gt;pg_exporter&lt;/a&gt;. It reads the default metrics and statistics&#xA;endpoints and can request a configuration reload. It is not a general or versioned pg_exporter&#xA;client.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-3ed3d12b-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;4&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-3ed3d12b-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig pe get                     &lt;span class=&#34;c1&#34;&gt;# print pg_ metrics&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig pe list                    &lt;span class=&#34;c1&#34;&gt;# list metric families from HELP lines&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig pe stat                    &lt;span class=&#34;c1&#34;&gt;# print exporter statistics&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig pe reload                  &lt;span class=&#34;c1&#34;&gt;# request configuration reload&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;endpoint-selection&#34;&gt;Endpoint selection&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The default endpoint is &lt;code&gt;http://127.0.0.1:9630&lt;/code&gt;. Select another exporter with persistent options:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Instantly Clone PostgreSQL Databases—No Black Magic Required</title>
        <link>https://pig.pgsty.com/article/pg-pig-clone/</link>
        <pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/article/pg-pig-clone/</guid>
        <description>&lt;p&gt;Six months ago, on January 8, 2026, I wrote &lt;a href=&#34;https://vonng.com/en/pg/pg-clone/&#34;&gt;&lt;strong&gt;Git for Data: Instant PostgreSQL Database and Instance Cloning&lt;/strong&gt;&lt;/a&gt;, introducing a new feature in PostgreSQL 18 and Pigsty v4.0: instant database cloning. With filesystem copy-on-write (CoW) and PostgreSQL 18&amp;rsquo;s new &lt;code&gt;file_copy_method = clone&lt;/code&gt; setting, &lt;strong&gt;you can clone a huge database in seconds without consuming additional storage&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is a particularly good fit for AI agents. As I wrote in &lt;a href=&#34;https://vonng.com/en/db/agent-native-db/&#34;&gt;What Kind of Database Do AI Agents Need?&lt;/a&gt;, ultra-low-cost database cloning is critical for counterfactual experiments. So when Pigsty 4.0 shipped, I added this capability to its PostgreSQL database provisioning workflow.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PG Extension Cloud: Unlocking PostgreSQL’s Entire Ecosystem</title>
        <link>https://pig.pgsty.com/article/pgext-cloud/</link>
        <pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/article/pgext-cloud/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mp.weixin.qq.com/s/oHHzhbbt5suSxnJhyxTwQQ&#34;&gt;WeChat link&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PostgreSQL’s killer feature is extensibility. PostGIS, pgvector, pg_duckdb, pg_search—extensions turn PG into GIS engine, vector DB, analytics warehouse, search cluster. But compiling and shipping them reliably across distros is a nightmare, especially when official mirrors freeze or your network can’t reach upstream.&lt;/p&gt;&#xA;&lt;p&gt;After two years of grinding, I’m launching &lt;a href=&#34;https://pgext.cloud&#34;&gt;&lt;strong&gt;PGEXT.CLOUD&lt;/strong&gt;&lt;/a&gt;: the infrastructure for discovering, packaging, and installing PG extensions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;whats-inside&#34;&gt;What’s inside&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Extension catalog&lt;/strong&gt; – Browse &lt;a href=&#34;https://pgext.cloud/list&#34;&gt;431 extensions&lt;/a&gt; with metadata, docs, compatibility matrices, how-to guides. Think “Wikipedia for PG extensions.”&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Binary repos&lt;/strong&gt; – Native RPM/DEB packages for &lt;strong&gt;14 Linux releases&lt;/strong&gt; and &lt;strong&gt;6 major PG versions&lt;/strong&gt;. No Docker-only traps.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;pig&lt;/code&gt; CLI&lt;/strong&gt; – A 4 MB Go tool that wraps your existing package manager and hides the matrix of platforms/versions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Try it on a fresh server/container:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pig, The Postgres Extension Wizard</title>
        <link>https://pig.pgsty.com/article/pig/</link>
        <pubDate>Sun, 29 Dec 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pig.pgsty.com/article/pig/</guid>
        <description>&lt;p&gt;Ever wished installing or upgrading PostgreSQL extensions didn’t feel like digging through outdated readmes, cryptic configure scripts, or random GitHub forks &amp;amp; patches? The painful truth is that Postgres’s richness of extension often comes at the cost of complicated setups—especially if you’re juggling multiple distros or CPU architectures.&lt;/p&gt;&#xA;&lt;p&gt;Enter &lt;strong&gt;Pig&lt;/strong&gt;, a Go-based package manager built to tame Postgres and its ecosystem of &lt;a href=&#34;https://pgext.cloud/list&#34;&gt;440+&lt;/a&gt; extensions in one fell swoop. TimescaleDB, Citus, PGVector, 20+ Rust extensions, plus every must-have piece to &lt;a href=&#34;https://pigsty.io/docs/app/supabase/&#34;&gt;self-host&lt;/a&gt; Supabase — Pig’s unified CLI makes them all effortlessly accessible. It cuts out messy source builds and half-baked repos, offering version-aligned RPM/DEB packages that work seamlessly across Debian, Ubuntu, and RedHat flavors. No guesswork, no drama.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
