Proveer un nuevo inquilino
Esta sección cubre los pasos para proveer un nuevo inquilino en la Stellar Disbursement Platform (SDP). Un inquilino es una organización o entidad aislada que utiliza la SDP para gestionar los desembolsos. Cada inquilino tiene su propia configuración, usuarios, desembolsos y, lo más importante, su propia fuente de fondos.
Los endpoints necesarios para gestionar inquilinos se pueden encontrar en la documentación de Administración (Gestión de Inquilinos).
Crear Inquilinos
Los inquilinos pueden ser creados a través del endpoint POST /tenants. Como un inicio rápido, puedes ejecutar el script main.sh desde nuestro repositorio y asegurarte de reemplazarlo con los valores deseados.
Las siguientes secciones detallan cómo se utiliza cada campo en el proceso de aprovisionamiento y, para que puedas asegurarte de que los inquilinos están aprovisionados como se espera:
distribution_account_type
Este es, con mucho, el campo más importante, ya que determina la fuente de fondos (cuenta de distribución) para el inquilino, así como la forma en que se almacena el secreto para esta cuenta de distribución. Los posibles valores se describen a continuación:
DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT
- Plataforma: Stellar
- Ubicación de Almacenamiento del Secreto: Base de datos, encriptada con
DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE
- Activos Admitidos: Cualquier activo de Stellar
- Aislamiento de Clave/Secreto: Segregado por inquilino
- Apropiado para: Multi-inquilino y único inquilino
- ¿Cómo se configura?: La cuenta de distribución se genera aleatoriamente y se financia durante el proceso de aprovisionamiento, y el secreto está encriptado y almacenado de manera segura en la base de datos.
- Rendimiento de transacciones: Aproximadamente 40 transacciones por segundo.
DISTRIBUTION_ACCOUNT.CIRCLE.DB_VAULT
- Plataforma: Circle
- Ubicación de Almacenamiento del Secreto: Base de datos, encriptada con
DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE
- Activos Admitidos: USDC/EURC
- Aislamiento de Clave/Secreto: Segregado por inquilino
- Apropiado para: Multi-inquilino y único inquilino
- ¿Cómo se configura?: La clave de API de Circle es proporcionada por el propio inquilino una vez que tiene acceso al panel de control. El secreto está encriptado y almacenado de manera segura en la base de datos. El secreto está encriptado y almacenado de manera segura en la base de datos.
- Rendimiento de transacciones: ⚠️ Limitado por los límites de tasa de API de Circle.
- 🔴
DISTRIBUTION_ACCOUNT.STELLAR.ENV
- Plataforma: Stellar
- Ubicación de Almacenamiento del Secreto: Variable de entorno
DISTRIBUTION_SEED
- Activos Admitidos: Cualquier activo de Stellar
- Aislamiento de Clave/Secreto: 🚨 Mismo cuenta de distribución que el HOST
- Apropiado para: Solo único inquilino
- ¿Cómo se configura?: El inquilino usará la cuenta HOST tal como está. El host es responsable de crear la cuenta y configurarla con el secreto
DISTRIBUTION_SEED
. - Rendimiento de transacciones: Aproximadamente 40 transacciones por segundo.
Una vez que se crea un inquilino, el distribution_account_type
no se puede cambiar. Si deseas utilizar un tipo de cuenta de distribución diferente, necesitarás crear un nuevo inquilino.
name
Este es el nombre del inquilino en la base de datos administrativa. Se utiliza para generar el esquema de base de datos por inquilino, y también se usa en el panel de control para identificar al inquilino.
No se puede cambiar una vez que se crea el inquilino.
base_url
, y sdp_ui_base_url
Estas son las URLs que el inquilino utilizará para acceder a la API y al panel de control, respectivamente. Se utilizan para generar las URLs específicas del inquilino que se usan en el panel de control y en los mensajes dirigidos al usuario o al receptor.
Son importantes para permitir que el backend de la SDP dirija las solicitudes no autenticadas al inquilino correcto y para generar las URLs correctas en el panel de control.
owner_email
, owner_first_name
, y owner_last_name
Esta es la información del primer usuario en la organización inquilina. Este usuario tendrá el rol de OWNER
, que les otorga acceso completo y control sobre el inquilino.
El correo electrónico, nombre y apellido pueden ser actualizados por el usuario una vez que se registre y acceda al panel de control.
organization_name
Este campo se usa para completar el nombre del inquilino en el panel de control. Puede ser actualizado por el usuario propietario a través del panel de control.
Modo Único Inquilino
La plataforma está diseñada para modo multi-inquilino, pero también puede ser utilizada en modo único inquilino. Este es el único caso en el que se acepta configurar DISTRIBUTION_ACCOUNT.STELLAR.ENV
, mientras que los otros modos todavía se aconsejan.
Para habilitar el modo único inquilino, necesitas seguir dos pasos:
- Establecer la variable de entorno
SINGLE_TENANT_MODE=true
. - Como HOST, necesitas actualizar la base de datos configurando cuál inquilino es el predeterminado llamando a POST /tenants/default-tenant
Una vez que esta variable de entorno SINGLE_TENANT_MODE
esté habilitada, todas las solicitudes relacionadas con inquilinos esperarán que haya un inquilino por defecto y fallarán con un código de estado 400
si no hay uno. La respuesta de la API incluirá un mensaje indicando que falta el inquilino predeterminado.
Obteniendo Inquilinos
Los inquilinos pueden ser obtenidos a través de los endpoints GET /tenants y GET /tenants/:id-or-name.
Eliminando Inquilinos
Los inquilinos pueden ser eliminados a través del endpoint DELETE /tenants/:id. Este es un borrado suave y, a pesar de que el sistema no proporciona una forma de restaurarlo, la información del inquilino no será eliminada de la base de datos con la implementación actual.
Actualizando Inquilinos
Algunos campos de un inquilino pueden ser actualizados a través del endpoint PATCH /tenants/:id. La documentación de la API proporciona más detalles sobre qué campos pueden ser actualizados.