> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Despliegue y configuración

> Ejecuta JD Courier en tu infraestructura: los cuatro roles, los puertos, la configuración de Access Manager, las credenciales de los motores, el tránsito Pix, el comportamiento de la licencia y la activación de los rieles.

En BYOC, ejecutas el Courier en tu propio entorno. Una imagen se ejecuta en cuatro roles. En Lerian Cloud, Lerian opera el Courier: consulta [En Lerian Cloud](#on-lerian-cloud).

## Antes de empezar

***

Confirma que tienes estos elementos:

* Una base de datos PostgreSQL para el Courier.
* Access Manager v3.12.0 o posterior, y su dirección.
* Tu clave de licencia de Lerian.
* La configuración del canal SPB que JD le dio a tu institución.
* Para el tránsito Pix, la credencial de la cabina SPI que JD le dio a tu institución.

## Los cuatro roles

***

Un binario contiene los cuatro roles. La variable `COURIER_ROLES` selecciona los roles de un proceso. No tiene valor predeterminado: un proceso sin ella no arranca.

| Rol | Puerto del Service | Qué sirve |
| - | - | - |
| `spb-consumer` | Ninguno | Lee los mensajes SPB de JD y los enruta. |
| `spb-sender` | `8081` | La interfaz SOAP para los motores. |
| `pix-ingress` | `8080` | La dirección a la que JD envía las llamadas Pix. |
| `admin` | `8080` | La API del operador, la API de los motores, la conciliación y el tránsito Pix cuando lo activas. |

Ejecuta `spb-consumer` como exactamente una réplica. Una lectura de la cola de JD elimina el mensaje, así que el consumidor es un escritor único. Un proceso que combina `spb-consumer` con otro rol se detiene en el arranque con el código `JDC-0314`.

## Puertos

***

| Puerto | Variable | Predeterminado | Sirve |
| - | - | - | - |
| HTTP | `SERVER_ADDRESS` | `:8080` | Las sondas, la API del operador, la API de los motores y la dirección Pix. |
| SOAP | `SOAP_SERVER_ADDRESS` | `:8081` | La interfaz SOAP, solo en el rol `spb-sender`. |
| Tránsito Pix | `PIX_TRANSIT_SERVER_ADDRESS` | — | El tránsito Pix, solo en el rol `admin`, cuando defines la dirección. |

Cada rol responde a las sondas en el puerto HTTP: `/health` para liveness, `/readyz` para readiness y `/version` para el build.

## Instalar

***

Para instalar o actualizar el Courier, consulta el [README del chart de JD Courier](https://github.com/LerianStudio/helm/tree/main/charts/br-jd-courier).

Guarda `LICENSE_KEY`, `POSTGRES_PASSWORD`, `JD_PASSWORD`, `JD_SPI_CLIENT_SECRET` e `IDP_M2M_CLIENT_SECRET` en tu bóveda de secretos.

El Courier no aplica migraciones de base de datos en el arranque. Aplícalas antes de cada instalación y actualización.

## Variables de entorno

***

Las variables del Courier, con sus valores predeterminados y sus efectos, están en [Variables de entorno de JD Courier](https://docs.lerian.studio/es/interfaces/jd-courier/jd-courier-environment-variables.md).

## Access Manager

***

En modo single-tenant, el Courier publica en tu Access Manager su adhesión a socios. Con `IDP_DECLARATION_ENABLED=true`, también publica sus permisos. Las dos publicaciones necesitan `IDP_HOST`, `IDP_M2M_CLIENT_ID` e `IDP_M2M_CLIENT_SECRET`. Hasta que tu Access Manager acepte la publicación, `/readyz` informa `permission_declaration` como `degraded`, con el motivo.

### JD como socio

JD llama a tu dirección Pix como un socio de Access Manager de tu instalación.

1. [Crea un socio](https://docs.lerian.studio/es/platform/access-manager/features/partners/console.md) para JD en tu Access Manager.
2. Dale al socio el permiso `pix-ingress` de JD Courier con la acción `post`.
3. [Crea la aplicación del socio](https://docs.lerian.studio/es/platform/access-manager/features/partners/console.md#create-the-partners-applications) y entrega a JD su client ID y su secret.

El Courier rechaza con `401` a todo llamador de la dirección Pix que no es un socio de Access Manager, incluidos los motores.

## Credenciales de los motores

***

El Courier lee desde AWS Secrets Manager, en `AWS_REGION`, la credencial que usa en cada motor. Guárdala allí antes de registrar la dirección del motor.

| Dirección del motor | Ruta del secret | Campo de referencia |
| - | - | - |
| Dirección Pix | `tenants/{ENVIRONMENT_NAME}/{tenantId}/jd-courier/external/pix-engine-{engineId}/credentials/versions/{versionId}` | `pixDelivery.credentialRef` |
| Dirección TED | `tenants/{ENVIRONMENT_NAME}/{tenantId}/jd-courier/external/ted-engine-{engineId}/credentials/versions/{versionId}` | `tedDelivery.credentialRef` |

La referencia debe apuntar al secret de ese motor. El Courier no entrega al motor cuando la referencia apunta a cualquier otra ruta. El secret es un objeto JSON con los campos `clientId` y `clientSecret`. `{versionId}` es un UUID en minúsculas. `{tenantId}` es el identificador en la respuesta a la [activación de un riel](#activate-the-rails). En modo single-tenant, es `local`. En modo multi-tenant, es el tenant del token validado.

## Tránsito Pix

***

El tránsito Pix permite que los motores envíen sus propias llamadas Pix a JD a través del Courier. Para activarlo, define `PIX_TRANSIT_SERVER_ADDRESS` en el rol `admin`. El tránsito escucha en esa dirección, con su propia configuración TLS. El Courier llama a JD con la credencial de la cabina SPI de tu institución: `JD_SPI_BASE_URL`, `JD_SPI_CLIENT_ID` y `JD_SPI_CLIENT_SECRET`.

Cuando JD envía validaciones de cuenta asíncronas a tu institución, define el tránsito Pix y la credencial de la cabina SPI. Los motores envían los resultados de las validaciones a través del tránsito. El Courier envía sus propios rechazos con la credencial de la cabina SPI.

No pongas entre los motores y el tránsito un proxy que repite un `503`. Para las respuestas del tránsito, consulta [Conectar un motor](https://docs.lerian.studio/es/interfaces/jd-courier/jd-courier-engine-integration.md#pix-send-calls-to-jd-through-the-courier).

## Comportamiento de la licencia

***

El Courier verifica la licencia en el arranque. No reinicies un pod mientras la licencia no sea válida: el pod no arranca hasta que corrijas la licencia.

Mientras el proceso se ejecuta, el Courier verifica la licencia de nuevo cada 6 horas. Cuando la licencia queda revocada, el proceso sigue activo:

* La API del operador y la API de los motores responden `503 JDC-0902`.
* La dirección Pix y la interfaz SOAP responden `503`.
* El tránsito Pix responde `503` con `X-Send-Outcome: not-sent`.
* El rol `spb-consumer` deja de leer de JD.

La sonda `/readyz` informa el estado de la licencia. Mientras la licencia está revocada, el Courier la verifica de nuevo después de 1 minuto, y el intervalo se duplica hasta 15 minutos. Con la primera respuesta válida, el Courier vuelve a servir sin reinicio.

## Activar los rieles

***

El Courier no entrega a los motores ningún mensaje de un riel hasta que un operador activa el riel. Para activar un riel, usa la operación [Activar un riel](https://docs.lerian.studio/es/reference/interfaces/jd-courier/activate-a-rail-for-the-caller-s-tenant.md) de la API del operador. Requiere el permiso `activation:write` en el recurso `channels`.

* **SPB.** Activa SPB en la transición, cuando ningún motor lee directamente de JD. Después de la activación, el Courier lee los mensajes de la cola de JD, y una lectura elimina el mensaje de JD.
* **Pix.** Activa Pix antes de pedir a JD que envíe las llamadas Pix al Courier.

La respuesta da el identificador que usan las rutas de secret de las [credenciales de los motores](#engine-credentials). El [historial de activación](https://docs.lerian.studio/es/reference/interfaces/jd-courier/a-rails-activation-history-for-the-callers-tenant.md) lista cada activación y cada suspensión de un riel, con su operador. Una instalación tiene cada riel. Cuando el riel ya está activo para otro titular, la activación responde `409 JDC-0117`.

## En Lerian Cloud

***

En Lerian Cloud, Lerian opera el Courier. No defines sus variables de entorno.

* **Lerian** configura y ejecuta el despliegue.
* **Tu operador** usa la API del operador: los motores, el mapa de titularidad, los modos de entrega, los mensajes retenidos y la conciliación.
* **Tus motores** usan la API de los motores, la interfaz SOAP y la dirección Pix.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.