Cadenas de conexión
Formato, TLS, reglas de rol y contraseña para los endpoints de Kisenon.
Cada endpoint de Kisenon expone una URI postgresql:// estándar:
postgresql://<role>:<pwd>@<endpoint_id>.<region>.kisenon.com:5432/<database>?sslmode=requireComponentes
| Campo | Significado |
|---|---|
<role> | Un rol de Postgres creado en la rama. La tarjeta del endpoint muestra el rol app autocreado; puedes crear más mediante SQL. |
<pwd> | La contraseña del rol. Mostrada una sola vez en su creación; rótala mediante SQL. |
<endpoint_id> | Estable por endpoint, p. ej. ep_4f3c12a9b8e6. Enrutado por SNI. |
<region> | El slug de región de tu proyecto — usc1 hoy (US Central, GCP). Derivado, no codificado; consulta Regiones. |
kisenon.com | El apex del plano de datos. Enruta mediante TLS SNI a tu endpoint. |
5432 | Puerto estándar de Postgres. |
<database> | Predeterminado main; crea más con CREATE DATABASE. |
?sslmode=require | TLS es obligatorio. verify-full también funciona y es recomendado. |
TLS
Los endpoints terminan TLS con un certificado de Let's Encrypt para
*.<region>.kisenon.com. Los clientes estándar de Postgres verifican contra el almacén
de confianza del sistema; no se necesita una CA personalizada.
sslmode=verify-full es recomendado para el código de producción. Comprueba la
cadena del certificado y el nombre de host.
Cómo el proxy enruta a tu endpoint
El proxy del plano de datos decide a qué endpoint pertenece una conexión a partir de dos señales, en orden:
- La opción de arranque
neon.endpoint_id, si el cliente envía una. - El nombre de host SNI de TLS (
<endpoint_id>.<region>.kisenon.com) como respaldo.
El campo de nombre de usuario no se consulta para el enrutamiento — elige cualquier rol que tu rama defina. Las cadenas de conexión generadas por la consola llevan el endpoint en el nombre de host, de modo que enrutan por SNI automáticamente y no necesitas configurar nada extra.
Pasa neon.endpoint_id explícitamente solo cuando tu cliente no puede presentar
el endpoint en SNI — por ejemplo una pila TLS que no envía una extensión Server
Name, o un túnel que reescribe el host. La mayoría de los controladores de Postgres
envían SNI por defecto, así que esto rara vez es necesario.
Agrupación de conexiones (pooling)
El pooling está GA y activado por defecto — cada endpoint tiene un host agrupado junto a su host directo (desde 2026-07-18).
El host agrupado es <endpoint_id>-pooler.<region>.kisenon.com — el mismo
endpoint, con -pooler insertado en la etiqueta de host — en el puerto 5432
con sslmode=require:
postgresql://<role>:<pwd>@<endpoint_id>-pooler.<region>.kisenon.com:5432/<database>?sslmode=requireEl panel Connect de la consola y la respuesta de la API te entregan ambos un
connection_uri_pooled junto al connection_uri directo.
El pooler funciona en modo de agrupación por transacción (un sidecar de PgBouncer por cómputo). Eso es ideal para muchas conexiones de corta duración — funciones serverless, runtimes edge, agentes — donde cada transacción puede tomar prestada una conexión de servidor y devolverla de inmediato.
Usa la conexión directa (sin agrupar, :5432) en su lugar cuando necesites:
LISTEN/NOTIFY.- Bloqueos consultivos a nivel de sesión.
SETde sesión / GUCs que deban sobrevivir a una sola transacción.- Sentencias preparadas del lado del servidor.
El connection_uri directo siempre está disponible y nunca se elimina, así que
estos siguen funcionando exactamente como antes. Un pool del lado del cliente (PgBouncer o
el pool integrado de tu controlador) delante de la conexión directa también
sigue siendo válido.
Excluye un endpoint del pooling con el campo pooler_enabled: false en el
momento de la creación o mediante PATCH /v1/endpoints/{endpointId}. El predeterminado es
true.
Múltiples endpoints
Puedes generar múltiples endpoints en la misma rama. Comparten almacenamiento pero tienen límites de conexión y cachés independientes. Úsalos para aislar:
- Tráfico de app vs. analítica.
- Réplicas de lectura (cualquier endpoint en una rama es esencialmente una réplica de lectura si no escribes en él).
- Endpoints por entorno en ramas de desarrollo.