docs(selfhost): document a real backup/restore drill result - #3249
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | 7604c98 | Commit Preview URL Branch Preview URL |
Jul 04 2026, 11:03 PM |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-04 23:01:05 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 7 non-blocking
Concerns raised — review before merging
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Ran the existing verify-backup.sh scratch-restore flow against a real production Postgres backup: restored into a throwaway, network-isolated scratch database (never the live one, confirmed by the script's own identity check), repopulating all 84 tables with full row counts intact. Documents why the drill stops at DB-level restore rather than a full app boot to /ready -- that endpoint also gates on live Redis, Qdrant, AI provider, Codex auth, and a real GitHub App key, and reproducing those for a disposable scratch instance would mean copying real credentials into new throwaway infrastructure.
The drill only exercised the database restore path (pg_restore into a scratch database), not the app's own db readiness probe, migration boot path, or /ready response -- the prior wording implied otherwise. Also names the exact backup file used and frames the table/row counts as a point-in-time result rather than an invariant.
5253c3e to
7604c98
Compare
Summary
scripts/verify-backup.shalready had a well-guarded scratch-restore mode (VERIFY_RESTORE_SCRATCH=1+ a dedicated scratch DB URL, with an identity-fingerprint check viapg_control_system()that refuses to run if the scratch URL resolves to the same database as the live source) — this PR runs it for real and documents the result, rather than adding new tooling./readywas confirmed healthy on the live instance before and after./ready: that endpoint also gates on live Redis, Qdrant, the AI provider, Codex auth, and a real GitHub App key — reproducing those for a disposable scratch instance would mean copying real credentials into new throwaway infrastructure, which is a bigger risk than the drill is worth. An actual disaster recovery restores onto trusted infrastructure the operator already controls with their own real credentials.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Advances #1821— this documents a real, verified drill result but the issue's broader deliverables, e.g. a Litestream/SQLite-mode drill and a full backup-mode matrix, remain open).Validation
git diff --checknpm run typecheck— not applicable; nosrc/**or TypeScript logic touched.npm run test:coverage— not applicable; docs-only, no Codecov obligation.npm run ui:lintnpm run ui:typechecknpm run ui:buildnpm run docs:drift-checkIf any required check was skipped, explain why:
apps/gittensory-ui/src/routes/docs.self-hosting-backup-scaling.tsx. No backend code, schema, or config changed, so the typecheck/coverage/OpenAPI/migration checks have no surface to run against.Safety
UI Evidencesection — this is a docs-content addition to an existing page's existing layout, not a new visual surface; no screenshot attached.