3a5d6583ad4aea08655f9e1408baa712c6339cd1
braney
  Wed Sep 30 09:47:52 2026 -0700
ottoMonitor: compare each otto track on hgwdev with genome.ucsc.edu, refs #38101, #38436

A job can run on time while its output never reaches the RR, because the push
is a separate root cron that the otto run does not see. DECIPHER rebuilt its
track every week from 2022 while decipherAutoPush was commented out, and the
monitor called it on time.

The monitor now reads the "Data last updated at UCSC" line from hgTrackUi on
both hosts. It reports a track whose public copy has stayed behind hgwdev for
more than 8 days. It finds the tracks itself, from the /gbdb links into the
otto area and the trackDb bigDataUrl that names them. ottoMonitorPublic.tsv
lists only the few it cannot find that way, mostly SQL tables. --no-public
skips the check.

diff --git src/hg/utils/otto/ottoMonitor/ottoMonitorPublic.tsv src/hg/utils/otto/ottoMonitor/ottoMonitorPublic.tsv
new file mode 100644
index 00000000000..d64dae11a64
--- /dev/null
+++ src/hg/utils/otto/ottoMonitor/ottoMonitorPublic.tsv
@@ -0,0 +1,25 @@
+# Public-site check for the otto failure monitor: the tracks it cannot find by
+# itself.  Refs #38101, #38436.
+#
+# The monitor finds most of the tracks an otto job feeds on its own: every
+# symlink in /gbdb that points into the job's directory, matched to the trackDb
+# bigDataUrl that names it.  This file lists only what that misses:
+#
+#   - SQL tables, which have no /gbdb link.  New otto tracks are all bigBeds, so
+#     this list is not expected to grow.
+#   - grcIncidentDb, a bigBed named by a one-row table instead of bigDataUrl.
+#   - uniprotWuhCor1, whose files are in /hive/data/outside/otto/uniprot-wuhCor1
+#     while its script runs from uniprot/, so no job's directory contains them.
+#
+# lagDays is how long the public copy may stay behind hgwdev before the track is
+# reported.  Tracks found in /gbdb get 8.
+#
+#job	db	track	lagDays	note
+gwas	hg38	gwasCatalog	8	table
+ncbiRefSeq	hg38	ncbiRefSeqCurated	8	table
+refSeqHistorical	hg38	ncbiRefSeqHistorical	8	table
+omim	hg38	omimGene2	8	table; the omimGene2.bb link in /gbdb dates from 2020 and no track uses it
+omimUpload	hg38	omimLocation	8	table
+decipher	hg38	decipherSnvs	8	table, pushed by decipherAutoPush along with the bigBed
+grcIncidentDb	hg38	grcIncidentDb	8	bigBed file named by a table, not by bigDataUrl
+uniprotWuhCor1	wuhCor1	unipCov2AliSwissprot	8	files in uniprot-wuhCor1/, no job directory contains them