Push and pull
Push and pull are one engine. You trigger it with Sync now or by bringing the app to the foreground.
Screen path: Sync tab. Native Field is not the Field PWA.
Preconditions
Section titled “Preconditions”A Field session and a reachable origin. Optional FCM can prompt a running app; it does not replace pull and is not the sync engine.
- Recover stranded sends / uploads.
- Flush outbox — push one operation at a time.
- Bootstrap if needed, else pull pages.
- Lists and job detail update from Drift watchers — not live HTTP lists.
Local technician operations (outbox) sent to your Veldriq origin. The server accepts, rejects, or reports a version conflict.
Server changes received locally: new/updated/revoked jobs, inventory deltas. A stale sync cursor may require a fresh bootstrap: Sync must refresh from the server. Pending work is kept. Then Sync now.
There is no real-time websocket dispatch board in Field.
Order: the engine pushes then pulls. Laravel remains the authority.
What works / does not work
Section titled “What works / does not work”| Works | Does not work | |
|---|---|---|
| App running | Push then pull | Websocket live board |
| FCM | Wake / tap convenience | Writing Drift from the payload |
| Killed app | Pending stays on disk | Periodic background pull |
If login works but Sync fails: licence 403, inactive technician, or one rejected operation. The outbox is not deleted.