You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Encrypted dumps. encrypt = "kms:<key>" on an environment wraps a
fresh key per dump with AWS KMS, bound to the dump's header; encrypt = "age:<public key>" encrypts to your own key, made by pgman key new.
Masked and raw dumps are both encrypted, pg_dump's output piped straight
into the encryptor; pgman restore opens them. The journal records
what each copy is encrypted to, and pgman copies show says it. pgman key new|list makes and lists your age keys.
Changed
A protected environment's raw and masked dumps need encrypt.
Until the environment says kms:, age: or none (masked copies
only), they are refused, with the lines that settle it. Schema-only
dumps, and protected targets that aren't environments, are unchanged
(the latter dumped masked and unencrypted, which is said).
An encrypted raw dump is pgman's archive, a .pgman-dump directory,
and its link <label>-latest.pgman-dump, not <label>-latest.dump:
a script restoring the old link name finds the last unencrypted dump.
Masked and raw copies of one label now share that link.
Fixed
Over MCP, the confirmation for dump, restore and apply_patches
starts ticked. Claude Code kept showing the form again while its box
was unticked, and the call failed after 300s with "no answer from the
operator". Accept or Decline is the answer; a protected environment
still takes its typed name.
Over MCP, dump and restore given a connection name only
discovery knows (one connections lists from the project) say so,
and to pass its URL or add it to connections.toml. They used to say
there was no such name.
A restore's result says that owners and grants were left out, who
owns what it restored, and how to grant another role (the
application's) access: until then that role can read none of it.
A dump refused because its user can't read everything names the
first 20 tables and sequences, then counts partitions under their
parent (app.events: 106 partitions). It used to name the first 8
and say "and 106 more", which could hide the few tables that decide
whether --skip-unreadable is safe.
Masking rehashes a hash whose word isn't last
(long_value_hash_lower_case), a bare hash on a cards or users
table, and a card number's (ccnum_hash).
A key into a lookup that refines another (sub_religions into religions) is NULLed as one into the lookup is; a text-keyed lookup
of categories keeps its key; a lookup's translations keyed by a language_id aren't refused.
The tap monitor's status says a sender's drop count is events
"dropped in the app, never sent", not "JAR backpressure": OTLP
senders never report one, and pgman's own drops are the footer's.
The tap's transactions and pools views drop numeric columns on a
narrow screen instead of their text column: at 60 columns a row
ended on a bare …, and at 80 the transactions view read con… and
the pools view showed the pool under a POOL · APP header with no
app. The pools header names the app only when a row has room for one.
A connection the server ends while a page of rows loads, a transaction
commits or rolls back, or pgman is first connecting shows the
connection-lost card with the server's reason, as a failed query's
did. A failed :readonly on leaves the header as the session is.