dataiku / dataiku/dataiku-api-client-python
Dataikuapi is not correctly honoring "DKU_NO_CHECK_CERTIFICATE" in requests
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 44
- Forks
- 29
- Merge medio
- 3 h 34 min
- PR fusionados (30 d)
- 2
Descripción
In theory, Dataiku supports using self-signed certificates by setting e.g. using an environmental variable DKU_NO_CHECK_CERTIFICATE or by setting no_check_certificate=True in the set_remote function call of the non-open source dataiku package.
However, this parameter is not passed to the api_client(), which causes requests to fail which are made to Dataiku instances using self-signed certificates. It is possible to mitigate this by setting the verify value of the internal Session object to false:
client = dataiku.api_client()
client._session.verify = False
Which is not obvious and requires looking through the internals of the package.
A fix at the central call site of the dataikuapi package, _perform_http:
https://github.com/dataiku/dataiku-api-client-python/blob/fc51e29a12a1f50717771522e1b450ae91ff4d87/dataikuapi/dssclient.py#L1228-L1233
would only be possible in parts by duplicating the logic to check the "DKU_NO_CHECK_CERTIFICATE" variable or config files, but would still fail for Dataiku session set up by using the set_remote_dss function call.
The best option would be to add a "no_check_certificate" parameter to the DSSClient class that can be set when creating an instance of the class. But as the DSSClient is also used by the closed-source dataiku package, it seems to me that this can't be solved by contributing to the open source dataikuapi package.
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.
Línea de trabajo
Empieza leyendo DSSClient y _perform_http en dataikuapi/dssclient.py; después, sigue cómo se crean las sesiones mediante api_client() y set_remote_dss(). Determina si la configuración de verificación de certificados puede propagarse sin depender del paquete de código cerrado dataiku. Se considera terminado cuando requests respeta DKU_NO_CHECK_CERTIFICATE y el valor configurado de no_check_certificate al usar certificados autofirmados.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- api, backend
- Tipo de issue
- Error
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100