console: operator status views pin no identity
Fix round 1, minor 5: offlineDoor.job (set only by the self-serve job, Task 7) decides whether offlineStepFor's staging branch for a self-serve move reads the roster and the identity records; the operator status view and the operator doors leave it false and run both halves without them.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 file changed,
+9
−2
internal/console/apiinstancemove_offline.go+9 −2
diff --git a/internal/console/apiinstancemove_offline.go b/internal/console/apiinstancemove_offline.go| index cbb79d862..60e9707ee 100644 |
| --- a/internal/console/apiinstancemove_offline.go |
| +++ b/internal/console/apiinstancemove_offline.go |
| @@ -88,6 +88,11 @@ type offlineDoor struct { |
| host string |
| rec *provision.Record |
| addr string |
| + // job is set by the self-serve job (Task 7) when it asks offlineStepFor |
| + // for a self-serve move's start: only the job and the self-serve door |
| + // pin participants by identity (the roster and the identity records). |
| + // The operator doors and every status view leave it false. |
| + job bool |
| } |
| // offlineGate is the front half every door shares: the move family's gate |
| @@ -1152,13 +1157,15 @@ func (s *Server) offlineStepFor(ctx context.Context, d offlineDoor, mv *provisio |
| case provision.OfflineStaging: |
| // A self-serve move's start is the job's: it runs the start |
| // validation in full on the record, both halves, with the |
| - // participants' identities (self-serve moves plan 2 Task 5). |
| + // participants' identities (self-serve moves plan 2 Task 5). A |
| + // status view of the same move runs both halves without the |
| + // identity reads. |
| if mv.SelfServe != nil && d.rec != nil { |
| rec := d.rec |
| if ref := s.offlineRecordChecks(ctx, rec.Account, rec.App, host, rec); ref != nil { |
| return offlineStep{}, ref |
| } |
| - if _, ref := s.offlineRegionChecks(ctx, rec.Account, rec.App, host, rec, s.homeRegionOut(mv.To), false, true, mv.ReturnOf); ref != nil { |
| + if _, ref := s.offlineRegionChecks(ctx, rec.Account, rec.App, host, rec, s.homeRegionOut(mv.To), false, d.job, mv.ReturnOf); ref != nil { |
| return offlineStep{}, ref |
| } |
| return offlineStep{mut: offlineStamped(now, func(at time.Time) func(*provision.Record) error { |