ShoriConfig
Configuración resuelta del cliente, con las URLs calculadas según el ambiente.
Es frozen (inmutable): se puede compartir entre hilos sin locks. api_key no
aparece en repr para que no se filtre en logs.
Normalmente no se instancia a mano: la crea ShoriClientBuilder.build().
Attributes:
environment: Ambiente de Shori.
portal_id: UUID del portal.
tenant_id: UUID del tenant.
api_key: API Key (oculta en repr).
timeout_ms: Timeout de cada request en milisegundos (30000 por defecto).
max_workers: Máximo de hilos para operaciones internas en paralelo (8 por defecto).
case_url: URL del servicio de casos (calculada).
identify_url: URL del servicio de autenticación (calculada).
repo_url: URL del repositorio de documentos (calculada).
Ejemplo General
```python
config = ShoriConfig(
environment=ShoriEnvironment.UAT,
portal_id="portal-uuid",
tenant_id="tenant-uuid",
api_key="api-key",
timeout_ms=40_000,
)
print(config.case_url) # https://shori-caso-uat.clonika.com
print(config.timeout_seconds) # 40.0
```
Atributos
| Atributo | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
environment | ShoriEnvironment | — | — |
portal_id | str | — | — |
tenant_id | str | — | — |
api_key | str | field(repr=False) | — |
timeout_ms | int | DEFAULT_TIMEOUT_MS | — |
max_workers | int | DEFAULT_MAX_WORKERS | — |
case_url | str | field(init=False) | — |
identify_url | str | field(init=False) | — |
repo_url | str | field(init=False) | — |
Métodos
def timeout_seconds() -> float
Timeout expresado en segundos (el que consume httpx).
Retorna: float — timeout_ms / 1000.
Ejemplo de uso:
```python
print(cliente.config.timeout_seconds) # 30.0
```