Skip to main content
Lender necesita un conjunto pequeño de cosas listas antes de su primera llamada a la API. Esta página las lista en el orden en que las configuras. Cuando todo lo de aquí es verdadero, sigue el Inicio rápido para originar un préstamo.

Servicios de los que depende Lender


PostgreSQL, Valkey y un proveedor de identidad son los tres sin los que no puedes originar. Un primer préstamo no necesita Midaz ni RedPanda. Lee Postings en el ledger más abajo para saber qué queda esperando.

Ejecuta Lender en local


Lender es un único servicio en Go. Una ejecución local necesita el toolchain de Go en 1.26 o posterior, Docker con Compose y Make.
1

Crea el archivo de entorno

make set-env copia config/.env.example a config/.env. Edita ese archivo para cada ajuste de esta página.
2

Arranca las dependencias

make up arranca las dependencias de Compose y el servicio en el puerto 8080.
3

Aplica las migraciones

make migrate-up aplica los dos conjuntos de migraciones. Mira la sección siguiente.
4

Ejecuta con recarga en vivo

make dev ejecuta el servicio con Air.

Aplica los dos conjuntos de migraciones


Lender no migra la base de datos cuando arranca. Aplicas las migraciones fuera de banda, y hay dos conjuntos: Aplica los dos. make migrate-up lee ambas rutas. El conjunto central también siembra el registro de jurisdicciones: dos jurisdicciones activas, BR para Brasil y XX, el perfil genérico. Ninguna API crea una jurisdicción. El binario desplegado lleva el comportamiento de cada perfil, y la tabla registra qué códigos conoce ese binario. Lee Jurisdicciones para saber qué decide un perfil.

Configuración obligatoria


Dos ajustes gobiernan la originación. Configura los dos antes de la primera llamada.

Un sujeto autenticado — PLUGIN_AUTH_ENABLED=true

Lender registra quién actuó sobre cada solicitud de préstamo. Lee el oficial asignado desde el subject del token bearer, no desde el cuerpo de la petición. Cada llamada de solicitud de préstamo necesita entonces una identidad autenticada. Configura dos variables: Después envía un token bearer en cada llamada. El token necesita un claim subject no vacío, y bajo el perfil genérico XX el mismo subject debe crear, aprobar y desembolsar la solicitud. make generate-casdoor escribe los roles y permisos de Lender en config/casdoor/init_data.json. Carga esa semilla en tu proveedor de identidad. El rol del oficial necesita estos permisos:

Un destino durable para el posting — OUTBOX_ENABLED=true

Un préstamo desembolsado debe registrar su intención de posting de forma durable. Lender escribe esa intención en un outbox transaccional, en la misma transacción de base de datos que mueve la solicitud a disbursed. Configura OUTBOX_ENABLED=true para que el outbox esté disponible cuando desembolses. El despachador relaya cada intención después, con la cadencia que fija OUTBOX_DISPATCH_INTERVAL_SEC. Lee Contabilidad y ejecuciones de devengo para saber qué recibe el ledger.

Postings en el ledger


Apunta Lender a Midaz cuando quieras que los postings lleguen al ledger: El préstamo se origina con o sin estas. Hasta que configures un endpoint del ledger, las intenciones de posting quedan durables en el outbox y el asiento del ledger espera. Configura el ledger antes de esperar contabilizaciones.

Valores por defecto single-tenant


MULTI_TENANT_ENABLED es false por defecto. En ese modo DEFAULT_TENANT_ID identifica al único tenant, y debe ser un UUID válido.

Añadidos multi-tenant


El modo multi-tenant da a cada tenant su propio esquema y su propio pool de clientes del ledger. Añade cuatro requisitos:
  1. Configura MULTI_TENANT_ENABLED=true y apunta Lender al gestor de tenants.
  2. Cada token lleva un claim tenantId.
  3. public.tenant_jurisdictions lleva una fila por cada par de tenant y jurisdicción.
  4. Cada perfil contable declara su propio midazOrganizationId y midazLedgerId. El modo multi-tenant no cae en los valores por defecto del entorno.

Streaming de eventos


El streaming está apagado por defecto y la originación no lo necesita. Para publicar el catálogo de eventos del ciclo de vida, configura STREAMING_ENABLED=true, apunta STREAMING_BROKERS a RedPanda y configura STREAMING_CLOUDEVENTS_SOURCE=lender. Lender valida ese valor de source cuando arranca.

Lista de verificación


  • PostgreSQL 17 y Valkey 8 alcanzables.
  • Los dos conjuntos de migraciones aplicados.
  • PLUGIN_AUTH_ENABLED=true y el proveedor de identidad alcanzable.
  • Un token bearer con subject y cada permiso de la tabla de arriba.
  • OUTBOX_ENABLED=true.
  • DEFAULT_TENANT_ID como UUID válido, en modo single-tenant.

Próximos pasos


Inicio rápido

Seis llamadas desde una base de datos vacía hasta un préstamo desembolsado.

Configuración y despliegue

La forma completa del contenedor, la superficie de entorno más amplia y la ruta del posting al ledger.