Class AdminWebService.GeoScrapeRequest
- Enclosing class:
AdminWebService
- Author:
- phase 3 admin-panel wiring
-
Field Summary
FieldsModifier and TypeFieldDescriptionSubset of matcher names to apply (e.g.If true, evaluate matches but do not persist any PreboardedExperiment rows.Hard cap on number of GEO records examined, counted from the HEAD of the result set.Lower bound of the scrape window.Records to skip at the start of the resolved window — record-level resumption.GEO series accession to resume from, e.g.Upper bound of the scrape window (publication date inclusive). -
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
since
Lower bound of the scrape window. Null means "resume from last successful scrape's scanTo". -
until
Upper bound of the scrape window (publication date inclusive). Null means "today". -
maxRecords
Hard cap on number of GEO records examined, counted from the HEAD of the result set. Null means the service default (1000).🛑 This is a cap, NOT a page size — there is no cursor or offset on this request, and the scrape restarts at record 0 on every call. Two calls with maxRecords=50 return the same 50 records; a client looping on it re-scans the same head forever and never advances. Verified 2026-08-12 against live: the 25-record run's candidates are a strict prefix of the 50's, which prefix the 100's, which prefix the 150's.
To walk a backlog, window with
since/untilinstead — those are the only parameters that move. -
criteria
Subset of matcher names to apply (e.g.["brain","tfperturb"]); null/empty = all available. -
dryRun
If true, evaluate matches but do not persist any PreboardedExperiment rows. -
startAt
GEO series accession to resume from, e.g."GSE342847"— the last record you processed. Its release date becomes the upper bound of the window, so the scan picks up where the previous batch stopped and walks backwards. This is the cursor to use for batching; `maxRecords` is a head cap and cannot advance.An accession rather than an offset because GEO returns newest-first: a numeric offset shifts whenever a new series is published, so an offset-paging client silently skips records. Series released the same day reappear — that overlap is intentional.
An explicit `until` wins over this. An accession that cannot be resolved is a 400, not a silent fallback, because ignoring the cursor rescans from the newest record.
-
skip
Records to skip at the start of the resolved window — record-level resumption. `startAt` resolves to a release DATE and GEO's filter is day-granular, so resuming at X re-scans X's whole day; when that day is wider than `maxRecords` the scan cannot advance and stepping past the day discards whatever it never reached. Pass the previous response's `nextOffset` here alongside the same `startAt` to continue at record level.
-
-
Constructor Details
-
GeoScrapeRequest
public GeoScrapeRequest()
-