b3a26a6aff3896d7577be7f42ce94a7d841c91c7 max Wed Sep 23 16:41:09 2026 -0700 hgTrackUi: let a faceted composite load its metadata from any curated hub copy, refs #29344 Each sandbox attaches its own copy of a curated hub like hs1 (/gbdb/hs1/hubs//hub.txt), so a link to another sandbox's copy arrived on other servers with that hub missing from the cart, and the metadata file was refused. Now any copy in the curated directory from dbDb is accepted. A hub that is not in the cart is checked by its URL in hubStatus only, without fetching it. diff --git src/hg/inc/hubConnect.h src/hg/inc/hubConnect.h index 9b14a57489d..a2bd6448373 100644 --- src/hg/inc/hubConnect.h +++ src/hg/inc/hubConnect.h @@ -205,19 +205,27 @@ void addPublicHubsToHubStatus(struct cart *cart, struct sqlConnection *conn, char *publicTable, char *statusTable); /* Add urls in the hubPublic table to the hubStatus table if they aren't there already */ struct hash *buildPublicLookupHash(struct sqlConnection *conn, char *publicTable, char *statusTable, struct hash **pHash); /* Return a hash linking hub URLs to struct hubEntries. Also make pHash point to a hash that just stores * the names of the public hubs (for use later when determining if hubs were added by the user) */ boolean hubConnectIsCurated(char *db); /* Look in the dbDb table to see if this hub is curated. */ boolean hubConnectGetCuratedUrl(char *db, char **hubUrl); /* Check to see if this db is a curated hub and if so return its hubUrl */ +boolean hubConnectIsCuratedHubUrl(char *db, char *hubUrl); +/* Return TRUE if hubUrl is any of the curated copies of the assembly hub for db, + * whichever curatedHubPrefix (alpha, beta, public, a sandbox name) it belongs to. */ + +boolean hubConnectIdIsCuratedHub(char *db, unsigned hubId); +/* Return TRUE if the hub with this hubStatus id is a curated copy of the assembly + * hub for db. Only reads the hub's URL, never fetches the hub. */ + boolean hubsCanAddGroups(); /* can track hubs have their own groups? */ #endif /* HUBCONNECT_H */