Skip to content

feat: railway postgres pitr — point-in-time recovery management - #1052

Merged
paulocsanz merged 3 commits into
masterfrom
pcs/pg-mgmt-06-pitr
Aug 8, 2026
Merged

feat: railway postgres pitr — point-in-time recovery management#1052
paulocsanz merged 3 commits into
masterfrom
pcs/pg-mgmt-06-pitr

Conversation

@paulocsanz

@paulocsanz paulocsanz commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Part 6/9 of the railway postgres pitr/ha/pgbouncer stack (split out of #1032 for reviewability — see that PR for the full context, live-prod e2e evidence, and the test-postgres-cli harness). Each PR is based on the previous one and is independently green (cargo test/clippy/fmt).

CLI parity for the PITR dashboard surface: status (config state, guardrail
blockers, plus a best-effort SSH probe of pgbackrest coverage and
pg_stat_archiver health with the sticky-failure gate), enable/disable
(template overlay on standalone; the rolling enable/disable workflow on an
HA cluster, followed via its progress record — matched by workflow id so a
stale record can't fake completion — with a 30-minute deadline and FAILED
surfacing the workflow's own error), progress/cancel/clear for the HA
workflow, restore --at into a new service, backup list/create/delete/lock/
restore (delete loops the public per-id mutation), and schedule set/list
including set --none to clear.

Volume-instance ids resolve through environment volumeInstances — the
config's volumeMounts key is the VOLUME id, which backup mutations reject.
Every environment-config fetch is decrypted: production masks all variable
values otherwise.

Part 6/9 of the railway postgres pitr/ha/pgbouncer stack.

@paulocsanz paulocsanz added the release/skip Author no release label Aug 7, 2026
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-05-cluster-scale branch from f497f21 to 895fd32 Compare August 7, 2026 21:01
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-06-pitr branch from b710d39 to bbf6371 Compare August 7, 2026 21:01
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-05-cluster-scale branch from 895fd32 to 2715c45 Compare August 7, 2026 21:08
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-06-pitr branch from bbf6371 to b423bb6 Compare August 7, 2026 21:08
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-05-cluster-scale branch from 2715c45 to c415692 Compare August 7, 2026 21:18
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-06-pitr branch from b423bb6 to 76556c1 Compare August 7, 2026 21:18
Base automatically changed from pcs/pg-mgmt-05-cluster-scale to master August 7, 2026 21:38
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-06-pitr branch from 76556c1 to fdffce2 Compare August 7, 2026 21:39
CLI parity for the PITR dashboard surface: status (config state, guardrail
blockers, plus a best-effort SSH probe of pgbackrest coverage and
pg_stat_archiver health with the sticky-failure gate), enable/disable
(template overlay on standalone; the rolling enable/disable workflow on an
HA cluster, followed via its progress record -- matched by workflow id so a
stale record can't fake completion -- with a 30-minute deadline and FAILED
surfacing the workflow's own error), progress/cancel/clear for the HA
workflow, restore --at into a new service, backup list/create/delete/lock/
restore (delete loops the public per-id mutation), and schedule set/list
including set --none to clear.

Volume-instance ids resolve through environment volumeInstances -- the
config's volumeMounts key is the VOLUME id, which backup mutations reject.
Every environment-config fetch is decrypted: production masks all variable
values otherwise.

Part 6/9 of the railway postgres pitr/ha/pgbouncer stack.
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-06-pitr branch from fdffce2 to 1f6fb8d Compare August 7, 2026 22:46
replicaServiceIds/wipeServiceIds are Internal-subgraph-only in backboard
and absent from the public /graphql/v2 schema, so document validation
rejected the mutation on every call. The CLI always sent None for both.
@paulocsanz
paulocsanz merged commit 02bb71b into master Aug 8, 2026
7 checks passed
@paulocsanz
paulocsanz deleted the pcs/pg-mgmt-06-pitr branch August 8, 2026 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release/skip Author no release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant