d0976c9d524ee428053266757aa17c7ef1b66a12 chmalee Wed Feb 18 12:20:45 2026 -0800 Libify the api key set/revoke methods, refs #36517 diff --git src/hg/inc/hubSpaceKeys.h src/hg/inc/hubSpaceKeys.h index 75d3ce75840..ff2a37d46c4 100644 --- src/hg/inc/hubSpaceKeys.h +++ src/hg/inc/hubSpaceKeys.h @@ -1,69 +1,81 @@ /* hubSpaceKeys.h was originally generated by the autoSql program, which also * generated hubSpaceKeys.c and hubSpaceKeys.sql. This header links the database and * the RAM representation of objects. */ #ifndef HUBSPACEKEYS_H #define HUBSPACEKEYS_H #define HUBSPACEKEYS_NUM_COLS 2 extern char *hubSpaceKeysCommaSepFieldNames; struct hubSpaceKeys /* Api keys for userNames to upload to hubSpace using hubtools */ { struct hubSpaceKeys *next; /* Next in singly linked list. */ char *userName; /* userName in gbMembers */ char *apiKey; /* random key */ }; void hubSpaceKeysStaticLoad(char **row, struct hubSpaceKeys *ret); /* Load a row from hubSpaceKeys table into ret. The contents of ret will * be replaced at the next call to this function. */ struct hubSpaceKeys *hubSpaceKeysLoad(char **row); /* Load a hubSpaceKeys from row fetched with select * from hubSpaceKeys * from database. Dispose of this with hubSpaceKeysFree(). */ struct hubSpaceKeys *hubSpaceKeysLoadAll(char *fileName); /* Load all hubSpaceKeys from whitespace-separated file. * Dispose of this with hubSpaceKeysFreeList(). */ struct hubSpaceKeys *hubSpaceKeysLoadAllByChar(char *fileName, char chopper); /* Load all hubSpaceKeys from chopper separated file. * Dispose of this with hubSpaceKeysFreeList(). */ #define hubSpaceKeysLoadAllByTab(a) hubSpaceKeysLoadAllByChar(a, '\t'); /* Load all hubSpaceKeys from tab separated file. * Dispose of this with hubSpaceKeysFreeList(). */ struct hubSpaceKeys *hubSpaceKeysCommaIn(char **pS, struct hubSpaceKeys *ret); /* Create a hubSpaceKeys out of a comma separated string. * This will fill in ret if non-null, otherwise will * return a new hubSpaceKeys */ void hubSpaceKeysFree(struct hubSpaceKeys **pEl); /* Free a single dynamically allocated hubSpaceKeys such as created * with hubSpaceKeysLoad(). */ void hubSpaceKeysFreeList(struct hubSpaceKeys **pList); /* Free a list of dynamically allocated hubSpaceKeys's */ void hubSpaceKeysOutput(struct hubSpaceKeys *el, FILE *f, char sep, char lastSep); /* Print out hubSpaceKeys. Separate fields with sep. Follow last field with lastSep. */ #define hubSpaceKeysTabOut(el,f) hubSpaceKeysOutput(el,f,'\t','\n'); /* Print out hubSpaceKeys as a line in a tab-separated file. */ #define hubSpaceKeysCommaOut(el,f) hubSpaceKeysOutput(el,f,',',','); /* Print out hubSpaceKeys as a comma separated list including final comma. */ /* -------------------------------- End autoSql Generated Code -------------------------------- */ #define AUTH_TABLE_DEFAULT "apiKeys" -char *userNameForApiKey(struct sqlConnection *conn, char *apiKey); +char *hubSpaceGetApiKey(char *userName); +/* Grab the already created api key if it exists */ + +char *hubSpaceUserNameForApiKey(struct sqlConnection *conn, char *apiKey); /* Return userName associated with apiKey else NULL. If conn is NULL, will create a connection and free it. */ +void hubSpaceRevokeApiKey(char *userName); +/* Remove any api keys for userName. errAborts if userName is NULL. + * Run in an errCatch to handle errors. */ + +char *hubSpaceGenerateApiKey(char *userName); +/* Make a random (but not crypto-secure) api key for userName, for use of hubtools to upload + * to hubspace or for bypassing cloudflare. errAborts if userName is NULL. + * Run in an errCatch to handle errors. */ + #endif /* HUBSPACEKEYS_H */