Cache requests to .well-known/openid_configuration/
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- api, authentication
Direzione di ricerca
Inizia da get_discovery_doc e dal percorso di costruzione di AuthClient descritto nell’issue, quindi esamina come viene attualmente richiesto il documento di discovery e come viene associato alla Session. Conferma che le costruzioni ripetute di AuthClient riutilizzino i risultati di discovery memorizzati nella cache senza richiedere una sessione e verifica che la suite di test esistente copra questo comportamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
(related to https://github.com/intuit/oauth-pythonclient/issues/18)
Summary
.well-known/openid_configuration/ is a stable resource that is not expected to change between requests. If a caller constructs an AuthClient on every request (which I presume is quite common), then they will hit this endpoint, incurring latency costs and potential for failure. Given the latency on this endpoint, I would imagine these duplicate requests are not cheap to Intuit either.
This redundancy exacerbates issues like https://github.com/intuit/oauth-pythonclient/issues/47,
Solution
Currently get_discovery_doc is called each time an AuthClient is constructed, and attached to the Session extended by AuthClient
I would propose instead:
- Do not call
get_discovery_docwith asessionarg -- it's a static resource that you can access without any auth. - Annotate
get_discovery_docwith@lru_cache(docs) to cache results in-memory for each set of arguments. This is a python builtin.
Happy to contribute a PR for this if interested. I imagine this will provide pretty major cost savings to both Intuit (due to dramatic reduction in duplicate requests) and callers (due to saved compute and less network congestion)
@robert-mings If contributed, would you be open to something like this?
- Lingua principale
- Python
- Stelle
- 86
- Fork
- 59
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di intuit/oauth-pythonclient
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
intuit/oauth-pythonclient#56 ·
-
input Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
intuit/oauth-pythonclient#55 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
intuit/oauth-pythonclient#47 · 1 commento · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 20/100
intuit/oauth-pythonclient#38 · 3 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
intuit/oauth-pythonclient#37 · 1 commento ·
Tutte le issue di intuit/oauth-pythonclient
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
canonical/paas-charm#368 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
tech debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
addition to tracking list Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
StevenBlack/hosts#3256 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
qualcomm/qai-appbuilder#275 ·