Page body
What this screen is for
Use Identity Graph Backfill to push historical users into the Identity Graph in controlled, bounded runs. This is a job runner, not a report. The page exists so an authorized operator can start a backfill, watch each job make progress, and stop a job that is running.
This screen does not change realtime sync. New signups and logins continue to flow into the Identity Graph on their own. The backfill only catches up users that were created before, or missed by, realtime sync.
Who can open it
Access is limited to a small allow-list of named admins. If your account is not on that list, the page shows a warning and no controls. The backend enforces the same allow-list, so a non-authorized account cannot start, stop, or list jobs even by other means.
What operators can do here
- start a bounded run for a job key, with batch size, pacing, and a runtime cap
- run a dry run that scans candidate users without writing anything to the Identity Graph
- stop a running, stopping, or paused job
- refresh the jobs table and watch processed, failed, and skipped counts move
- read the last error and the most recent per-user failures for a job
How a run behaves
- A run is bounded. By default it stops itself after the runtime cap is reached, then can auto-resume from where it left off.
- Re-running the same job key continues from the saved cursor rather than starting over. Turn on
Reset cursoronly when you want to scan from the beginning again. - In
fullmode the runner retries old failures first (whenRetry failed before cursoris on), then resumes the saved cursor. - Stopping is cooperative. A stop request pauses the runner after it finishes the current user or checkpoint, so a job does not stop instantly.
What a dry run does
Dry runscans the same candidate users a real run would, but does not write any user into the Identity Graph. Every scanned user is counted as skipped with reason dry-run.- A dry run does not require the Identity Graph connection to be configured, so it is safe to use as a rehearsal or to estimate how many users a run would touch.
- When you leave the job key blank, a dry run is recorded under a separate dry-run job key so it never disturbs the real job's saved cursor.
When operators usually open this screen
- a batch of historical users needs to be loaded into the Identity Graph
- a previous backfill paused or failed and needs to be resumed or stopped
- you want to rehearse a run with a dry run before committing
- you need to confirm how far a long-running backfill has progressed
Common confusion
- This page does not edit user data. It only re-sends existing users into the Identity Graph.
- The runtime cap is a safety bound, not a failure. A job that stops on the cap is expected to auto-resume.
- A stop is a request, not an instant kill. The status moves to stopping first, then stopped.
- The progress label counts everything scanned (processed plus failed plus skipped) and shows the cursor position, not just successful writes.
- Dry-run counts appear as skipped, not processed, because nothing was written.