Operator guideENreportingidentity-graphbackfilljob-runneroperational

Reporting / Identity Graph Backfill

Operator guide for the Identity Graph backfill job runner: start a bounded historical user sync, watch progress, and stop a running job.

Reader view

Clean portal guidance

This page keeps the operator explanation, field and action descriptions, and screenshots visible without exposing repo paths, raw sidecars, or editorial-only implementation details.

Narrative content

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 cursor only when you want to scan from the beginning again.
  • In full mode the runner retries old failures first (when Retry failed before cursor is 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 run scans 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.
Summary cards

Summary cards

field

Jobs

Total number of recorded backfill jobs.

Data Type
integer
Editable
false
field

Active Runs

How many runs are currently active in this process.

Data Type
integer
Editable
false
field

Default Batch

Default batch size suggested by the backend.

Data Type
integer
Editable
false
field

UI Runtime Cap

Default runtime cap in ms applied to UI-started runs.

Data Type
integer
Editable
false
Operational notes

Notes

item

All three routes are guarded by isAuthenticate and then by an email allow-list (isAllowedAdmin) inside the service; a non-authorized admin gets a FORBIDDEN error even with a valid session.

item

The same allow-list is duplicated on the FE in use-admin-details.ts as canAccessIdentityGraphBackfill, which hides the controls when the email is not listed.

item

Job state is persisted in a Postgres table identity_graph_backfill_jobs created and updated by the data layer; the list query hides archived/legacy statuses.

item

Start runs the backfill in the background via runIdentityGraphUsersBackfill and tracks live runs in an in-memory map; restarting the same job key while active returns started=false, running=true.

item

Stop calls requestStopIdentityGraphUsersBackfill, a cooperative request that flips the job toward stopping and then stopped after the current checkpoint.

item

Dry run short-circuits per-user sync (returns skipped, reason dry-run), skips the Identity Graph configuration assertion, and when no job key is given uses a separate :dry-run job key.

item

A watchdog (5 minute interval) auto-resumes jobs paused for max-runtime or consecutive-failures unless the job is a dry run.

item

The backend control payload clamps batchSize, sleepMs, maxRuntimeMs, maxConsecutiveFailures, and other inputs to safe ranges before starting a run.

Related references

Related pages

pageAffiliate Deals / Dashboard

Deal-period performance report that combines traffic, deposit, GGR, NGR, payout, and ROI metrics for affiliate deals.

pageAffiliate Deals Overview

Operator guide for affiliate-deal records, their create/edit flow, and the performance dashboard that reconciles contract settings with delivered traffic and revenue metrics.

pagePlayers / Fraud Detection

Fraud-detection tab inside the player workspace with fraud risk assessment, related fraud reports, IP analysis, and identity-graph filtering.

pageReporting

Canonical entrypoint for standalone reporting pages outside the main Dashboard widgets.

pageReporting / Affiliate Events Report

Audit log of the events and saved amounts the platform sent to the affiliate system, with per-currency successful totals and a CSV export.

pageReporting / Bonus Performance

Grouped bonus performance report for activations, amounts, deposits, withdrawals, GGR, and NGR by bonus item.