Cache requests to .well-known/openid_configuration/
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- api, authentication
Línea de trabajo
Comienza en get_discovery_doc y en la ruta de construcción de AuthClient descrita en el issue; después, inspecciona cómo se solicita actualmente el documento de descubrimiento y cómo se adjunta a la Session. Confirma que la construcción repetida de AuthClient reutiliza los resultados de descubrimiento almacenados en caché sin requerir una sesión, y verifica que la suite de pruebas existente cubra este comportamiento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
(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?
- Lenguaje dominante
- Python
- Estrellas
- 86
- Forks
- 59
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de intuit/oauth-pythonclient
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
intuit/oauth-pythonclient#56 ·
-
input Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
intuit/oauth-pythonclient#55 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
intuit/oauth-pythonclient#47 · 1 comentario · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 20/100
intuit/oauth-pythonclient#38 · 3 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
intuit/oauth-pythonclient#37 · 1 comentario ·
Todos los issues de intuit/oauth-pythonclient
Issues similares
-
essnmx good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
[Feature] 奇物选择添加优先级 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
syfoud/Simulated_Scepter#174 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Giskard-AI/giskard-oss#2840 · 1 comentario ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Abiertoarea: repo bug perceived difficulty: 2
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yeti-platform/yeti#1380 ·