kisenon

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=require

Componentes

CampoSignificado
<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.comEl apex del plano de datos. Enruta mediante TLS SNI a tu endpoint.
5432Puerto estándar de Postgres.
<database>Predeterminado main; crea más con CREATE DATABASE.
?sslmode=requireTLS 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:

  1. La opción de arranque neon.endpoint_id, si el cliente envía una.
  2. 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=require

El 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.
  • SET de 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.