Cache requests to .well-known/openid_configuration/
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 68/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python
- Bereich
- api, authentication
Rechercherichtung
Beginne bei get_discovery_doc und dem im Issue beschriebenen Konstruktionspfad von AuthClient und untersuche anschließend, wie das Discovery-Dokument derzeit angefordert und an die Session angehängt wird. Bestätige, dass wiederholte Konstruktionen von AuthClient zwischengespeicherte Discovery-Ergebnisse wiederverwenden, ohne eine Session zu benötigen, und überprüfe, dass die bestehende Testsuite dieses Verhalten abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
(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?
- Vorherrschende Sprache
- Python
- Sterne
- 86
- Forks
- 59
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus intuit/oauth-pythonclient
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
intuit/oauth-pythonclient#56 ·
-
inputOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 10/100
intuit/oauth-pythonclient#55 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
intuit/oauth-pythonclient#47 · 1 Kommentar · 1 Reaktion ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 20/100
intuit/oauth-pythonclient#38 · 3 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
intuit/oauth-pythonclient#37 · 1 Kommentar ·
Alle Issues in intuit/oauth-pythonclient
Ähnliche Issues
-
adr
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
kristofdegrave/homeassistant-smart-charging#1607 ·
Maintainer antworten meist innerhalb von 1 Tag
-
namespace operations
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
EclipseFdn/open-vsx.org#13665 ·
Maintainer antworten meist innerhalb von 1 Tag
-
doc good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
collective/icalendar#1865 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
canonical/opentelemetry-collector-operator#409 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
mozilla/addons-release-tests#1243 ·
Maintainer antworten meist innerhalb von 1 Tag