Support for typesense in Subdirectory ?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start with the URL construction in typesense/api_call.py and the is_healthy entry point shown in typesense/operations.py. Reproduce the node configurations from the issue and inspect how path and port are combined. Done means subdirectory requests form the intended /search/health URL without misplacing the port, with verification for this configuration.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
Our installation scheme is to install typesense as a subdirectory, so the url is https://xxx.yyy.ch/search.
But with typesense-python I cannot connect. Restful (tested with Postman) it works.
Is there any explanation ?
Steps to reproduce
following config cannot connect (logfile below)
{
'api_key': _API_KEY,
'nodes': [{
'host': 'xxx.yyy.ch',
'port': '443',
'protocol': 'https',
'path': '/search'
}],
'connection_timeout_seconds': 2
}
And this config appends the port at wrong place [...] with url: /search:443/health
{
'api_key': _API_KEY,
'nodes': [{
'host': 'xxx.yyy.ch/search',
'port': '443',
'protocol': 'https'
}],
'connection_timeout_seconds': 2
}
Log
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): xxx.yyy.ch:443
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (2): xxx.yyy.ch:443
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (3): xxx.yyy.ch:443
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (4): xxx.yyy.ch:443
Traceback (most recent call last):
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 466, in _make_request
self._validate_conn(conn)
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 1095, in _validate_conn
conn.connect()
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connection.py", line 652, in connect
sock_and_verified = _ssl_wrap_socket_and_match_hostname(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connection.py", line 805, in _ssl_wrap_socket_and_match_hostname
ssl_sock = ssl_wrap_socket(
^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\util\ssl_.py", line 465, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\util\ssl_.py", line 509, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\ssl.py", line 517, in wrap_socket
return self.sslsocket_class._create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\ssl.py", line 1104, in _create
self.do_handshake()
File "C:\bin\anaconda3\Lib\ssl.py", line 1382, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 490, in _make_request
raise new_e
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\bin\anaconda3\Lib\site-packages\requests\adapters.py", line 486, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\util\retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='xxx.yyy.ch', port=443): Max retries exceeded with url: /search/health (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\data\_azure\tgdisearch\health.py", line 14, in <module>
is_healty(active_client)
File "C:\data\_azure\tgdisearch\health.py", line 10, in is_healty
health = client_object.operations.is_healthy()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\typesense\operations.py", line 22, in is_healthy
call_resp = self.api_call.get(Operations.HEALTH_PATH)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\typesense\api_call.py", line 146, in get
return self.make_request(session.get, endpoint, as_json,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\typesense\api_call.py", line 130, in make_request
raise last_exception
File "C:\bin\anaconda3\Lib\site-packages\typesense\api_call.py", line 101, in make_request
r = fn(url, headers={ApiCall.API_KEY_HEADER_NAME: self.config.api_key}, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\adapters.py", line 517, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='xxx.yyy.ch', port=443): Max retries exceeded with url: /search/health (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)')))
Metadata
version = '0.21.0'
- Lenguaje dominante
- Python
- Estrellas
- 247
- Forks
- 66
- Merge medio
- 22 h 47 min
- PR fusionados (30 d)
- 8
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 typesense/typesense-python
-
`MultiSearchResponse` type does not account for union search response shapePosiblemente ocupada @tharropoulos la tomó hace 172 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
typesense/typesense-python#128 ·
-
`documents.Documents.import_()` `batch_size` argument is ignored, type of `import_parameters` is missing `batch_size`Posiblemente ocupada @tharropoulos la tomó hace 245 días. Abierto
Dificultad 2/5 1-2 días Aptitud para principiantes 68/100
typesense/typesense-python#124 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
typesense/typesense-python#100 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
typesense/typesense-python#122 · 3 comentarios ·
-
[Bug] - DeprecationWarning on instantiation of ClientPosiblemente ocupada @tharropoulos la tomó hace 266 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
typesense/typesense-python#114 · 8 comentarios ·
Todos los issues de typesense/typesense-python
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
sergey-miryanov/gcmon#230 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Azure-Samples/azure-search-openai-demo#3249 ·
Los mantenedores suelen responder en 1 día
-
[BUG] Failed archive extraction deletes the dataset cachePosiblemente ocupada @dajiaohuang la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
alibaba/GraphScope#4674 ·