Skip to content

SPRINT-3 Closeout — RealOutcomes edge + Tier 3 sovereignty

Date: 2026-08-28
Status: CLOSED


Summary

RealOutcomes production runs entirely on R940:

Layer Before SPRINT-3 After SPRINT-3
Compute Railway RealOutcomes.app + monthly-irs-sync VM 116 realoutcomes-app
Database Hosted Supabase cpocwrygxlqhzvmlrpjv VM 117 self-hosted stack
Auth Legacy GoTrue (retired SPRINT-2) auth.last1.id OIDC
Ingress Railway hostnames realoutcomes-edge tunnel + Cloudflare DNS
Secrets Railway env + unprefixed BWS REALOUTCOMES_APP_PROD_* in BWS

Sprint phases

Phase Report Result
S3-4 SPRINT-3_S3-4_REPORT.md Tunnel provisioned
S3-5 SPRINT-3_S3-5_REPORT.md DNS cutover
S3-6 SPRINT-3_S3-6_REPORT.md PF automation PASS
S3-7 SPRINT-3_S3-7_REPORT.md Ryan E2E gate PASS
S3-8 SPRINT-3_S3-8_REPORT.md Teardown complete (hosted Supabase deleted 2026-08-28)

Execution plan: SPRINT-3_REALOUTCOMES_EDGE_EXECUTION_PLAN.md


Tier 3 migration arc (T3-0 → S3-8)

Gate Status
T3-0 Audit Done
T3-1 Planning + BWS Done
T3-2 Supabase VM + Gate B dump/restore Done
T3-3 App VM + soak Done
SPRINT-2 Auth unification Done
SPRINT-3 Edge + prod DNS + E2E + teardown Done

Archive: backups/realoutcomes-teardown-2026-08-28/


Infrastructure consolidation sequencing

Tier Product Status
1 n8n Closed
2 last1.id Closed
3 RealOutcomes Closed 2026-08-28
4 Onset clinic + Supabase Unblocked — SPRINT-6 planning on Ryan authorization
5 last1.app + RadioCheck Blocked on Tier 4
6 last1-admin Paused (VM 115)

Remaining Ryan actions (non-blocking SPRINT-3 close)

  1. Marketing split deferred: realoutcomes-marketing-pages-split (post Tier 3)
  2. SPRINT-6 go when ready to plan Onset migration

Constraints honored

  • Did not touch last1-admin (paused)
  • Did not touch lastvet-edge or last1id-edge
  • Tier 2 archive pattern (SHA-256, manifest, gitignored secrets)

Verdict

SPRINT-3 CLOSED. Tier 3 RealOutcomes sovereignty migration complete. Production verified on https://realoutcomes.app.

STOP: SPRINT-6 (Onset) until Ryan authorizes.