Configurando la SDP
Los servicios de la Stellar Disbursement Platform se pueden configurar utilizando un conjunto de opciones de configuración que se pasan a la línea de comandos o se establecen como variables de entorno. Dependiendo de cómo estés utilizando y desplegando la SDP, estas configuraciones pueden establecerse en un ConfigMap en Kubernetes, como variables de entorno en un contenedor de Docker, pasadas como argumentos de línea de comandos, etc.
En esta sección, discutiremos las diferentes opciones de configuración disponibles para la SDP.
Notas:
- Las configuraciones etiquetadas con 🔑 son sensibles y deben almacenarse de forma segura.
- Estas configuraciones son válidas para la versión 2.x de la SDP.
- Todas las configuraciones se pueden pasar como variables de entorno o como flags de CLI. Por ejemplo, la variable de entorno
BASE_URLpodría pasarse a través del flag--base-url. Los flags de CLI tienen prioridad sobre las variables de entorno, aunque las variables de entorno son más convenientes.
Servicio Central de la SDP
Para la configuración más actualizada, puedes ejecutar el siguiente comando en el repositorio git de stellar-disbursement-platform-backend:
- bash
./stellar-disbursement-platform serve --help
Configuración Operativa
La Configuración Operativa permite controlar métricas, registros y otros aspectos operativos del Servicio Central de la SDP.
PORT- El puerto en el que el Servicio Central de la SDP escuchará las solicitudes HTTP entrantes. Por defecto: 8000.LOG_LEVEL- Determina el nivel de verbosidad de los registros. Opciones: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", o "PANIC". Por defecto: "TRACE".METRICS_PORT- El puerto en el que el Servicio Central de la SDP expondrá sus métricas. Por defecto: 8002.METRICS_TYPE- El tipo de métricas a exponer. Opciones: "PROMETHEUS". Por defecto: "PROMETHEUS".CRASH_TRACKER_TYPE- El tipo de rastreador de fallos a utilizar. Opciones: "SENTRY", "DRY_RUN". Por defecto: "DRY_RUN".SENTRY_DSN- 🔑 La DSN (clave de cliente) del proyecto de Sentry. Si no se proporciona, Sentry no se utilizará.ENVIRONMENT- El entorno en el que se está ejecutando la aplicación. Ejemplo: "development", "staging", "production". Por defecto: "development".DATABASE_URL- 🔑 La cadena de conexión para la base de datos PostgreSQL. El formato espostgres://username:password@host:port/database?sslmode=disable. Por defecto: "postgres://localhost:5432/sdp?sslmode=disable".BASE_URL- La URL base del servidor backend de la SDP. Por defecto: "http://localhost:8000". Las URLs específicas del inquilino serán configuradas durante el proceso de aprovisionamiento del inquilino.SDP_UI_BASE_URL- La URL base de la interfaz de usuario/dashboard de la SDP utilizada para enviar el enlace de invitación cuando se crea un nuevo usuario. Las URLs específicas del inquilino serán configuradas durante el proceso de aprovisionamiento del inquilino.
Configuración de Mensajería
Messaging Configuration allows configuring the messaging service used to send messages to recipients and sdp dashboard users. La configuración por defecto está establecida en "DRY_RUN", lo que significa que no se enviarán mensajes y los mensajes se registrarán en la consola. Esto se recomienda solo para fines de prueba.
EMAIL_SENDER_TYPE: El tipo de mensajero utilizado para enviar invitaciones a nuevos usuarios del panel. Opciones: "DRY_RUN", "TWILIO_EMAIL", "AWS_EMAIL". Por defecto: "DRY_RUN".SMS_SENDER_TYPE: El tipo de mensajero utilizado para enviar mensajes SMS a los destinatarios. Opciones: "DRY_RUN", "TWILIO_SMS", "TWILIO_WHATSAPP", "AWS_SMS". Por defecto: "DRY_RUN".
Configuración de AWS
Las siguientes configuraciones son requeridas al usar AWS SES o SNS para enviar correos electrónicos o mensajes SMS.
AWS_ACCESS_KEY_ID- 🔑 La ID de clave de acceso de AWS.AWS_REGION- La región de AWS donde está disponible el servicio SES.AWS_SECRET_ACCESS_KEY- 🔑 La clave de acceso secreto de AWS.AWS_SES_SENDER_ID- El correo electrónico que AWS SES utilizará como remitente al enviar correos electrónicos. Requerido cuandoEMAIL_SENDER_TYPEse establece en "AWS_EMAIL".AWS_SNS_SENDER_ID- La ID del remitente a utilizar al enviar mensajes SMS utilizando AWS SNS. Requerido cuandoSMS_SENDER_TYPEse establece en "AWS_SMS".
Configuración de Twilio
Las siguientes configuraciones son requeridas cuando SMS_SENDER_TYPE=TWILIO_SMS.
TWILIO_ACCOUNT_SID- 🔑 El SID de la cuenta de Twilio.TWILIO_AUTH_TOKEN- 🔑 El token de autenticación de Twilio.TWILIO_SERVICE_SID- El SID del servicio de Twilio.
Las siguientes configuraciones son obligatorias cuando SMS_SENDER_TYPE=TWILIO_WHATSAPP.
TWILIO_ACCOUNT_SID- 🔑 El SID de la cuenta de Twilio.TWILIO_AUTH_TOKEN- 🔑 El token de autenticación de Twilio.TWILIO_SERVICE_SID- El SID del servicio de Twilio.TWILIO_WHATSAPP_FROM_NUMBER- El número de WhatsApp Business utilizado para enviar mensajes (con el prefijo whatsapp:).TWILIO_WHATSAPP_RECEIVER_INVITATION_TEMPLATE_SID- El SID de contenido de Twilio para la plantilla de invitación de receptor de WhatsApp (comienza con HX).TWILIO_WHATSAPP_RECEIVER_OTP_TEMPLATE_SID- El SID de contenido de Twilio para la plantilla OTP de receptor de WhatsApp (comienza con HX).
Las siguientes configuraciones son requeridas cuando EMAIL_SENDER_TYPE=TWILIO_EMAIL.
TWILIO_SENDGRID_API_KEY- 🔑 La clave API para el servicio de Twilio SendGrid (correo electrónico).TWILIO_SENDGRID_SENDER_ADDRESS- La dirección de correo electrónico utilizada para enviar correos electrónicos a través de Twilio SendGrid.
Configuración General de Mensajería
MAX_INVITATION_RESEND_ATTEMPTS- El número máximo de intentos para (auto) reenviar la invitación a las billeteras de los receptores. Por defecto: 3.
Configuración de Stellar
La Configuración de Stellar permite configurar cuentas, transacciones y otros ajustes relacionados con Stellar.
NETWORK_PASSPHRASE- La frase de paso de la red Stellar. Por defecto "Test SDF Network ; September 2015".HORIZON_URL- La URL del servidor Horizon a utilizar para enviar transacciones. Por defecto "https://horizon-testnet.stellar.org/".SEP10_SIGNING_PUBLIC_KEY- La clave pública de la cuenta Stellar que firma las transacciones SEP-10. También se utiliza para firmar URLs.SEP10_SIGNING_PRIVATE_KEY- 🔑 La clave privada de la cuenta Stellar que firma las transacciones SEP-10. También se utiliza para firmar URLs.MAX_BASE_FEE- La tarifa base máxima para enviar una transacción Stellar. Por defecto: 10000.
Configuración de Cuentas de Canal
Las siguientes configuraciones son requeridas para usar cuentas de canal para enviar transacciones a la red Stellar.
NUM_CHANNEL_ACCOUNTS- Número de cuentas de canal a utilizar para el envío de transacciones. Por defecto: 2. :-CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE- 🔑 Una clave secreta Stellar ed25519 (que comienza conS) usada para cifrar/descifrar las claves privadas de las cuentas del canal. Si no está configurado, tomará por defecto el valor deDISTRIBUTION_SEED.
Configuración de Cuentas de Distribución
Las siguientes configuraciones están relacionadas con las cuentas de distribución utilizadas para enviar fondos a los destinatarios. Esta configuración debe coincidir con la configuración en el Servicio Central de la SDP.
DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE- 🔑 Una clave secreta Stellar ed25519 (que comienza conS) usada para cifrar/descifrar las claves privadas de las cuentas de distribución en memoria.DISTRIBUTION_PUBLIC_KEY- La clave pública de la cuenta de distribución Stellar del HOST. Se utiliza para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos.DISTRIBUTION_SEED- 🔑 La clave privada de la cuenta de distribución Stellar del HOST. Se usa para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos.
Configuración de Seguridad
La Configuración de Seguridad permite configurar los aspectos de seguridad del Servicio Central de la SDP.
CORS_ALLOWED_ORIGINS- Especifica los dominios permitidos para hacer solicitudes de origen cruzado. "" significa que se permiten todos los dominios. Los dominios pueden contener caracteres comodín, por ejemplo, "https://.example.com".SEP24_JWT_SECRET- 🔑 El secreto utilizado para firmar el token JWT para transacciones SEP-24. Este secreto se utiliza durante el flujo de registro de billeteras receptoras.
Configuración de Autenticación de Dashboard
Las siguientes configuraciones están relacionadas con la autenticación y autorización de usuarios del panel.
RESET_TOKEN_EXPIRATION_HOURS- El tiempo de expiración en horas del token de restablecimiento de contraseña. Por defecto: 24 (horas).EC256_PUBLIC_KEY- La clave pública EC256 utilizada para validar la firma del token. Esta clave EC necesita ser al menos tan fuerte como prime256v1 (P-256).EC256_PRIVATE_KEY- 🔑 La clave privada EC256 utilizada para firmar el token de autenticación. Esta clave EC necesita ser al menos tan fuerte como prime256v1 (P-256).DISABLE_MFA- Deshabilita la Autenticación Multifactor (MFA) para los usuarios del panel de la SDP.DISABLE_RECAPTCHA- Deshabilita reCAPTCHA v2 de Google para los usuarios del panel de la SDP. Este flag no afecta el reCAPTCHA utilizado durante el flujo SEP-24.
Configuración de Recaptcha
Las siguientes configuraciones son requeridas al usar reCAPTCHA v2 de Google para proteger el Servicio Central de la SDP de bots. ReCaptcha se utiliza tanto para usuarios del panel como para receptores de fondos durante el flujo SEP-24.
RECAPTCHA_SITE_KEY- La clave del sitio reCAPTCHA v2 de Google - No soy un robot.RECAPTCHA_SITE_SECRET_KEY- 🔑 La clave secreta del sitio reCAPTCHA utilizada para validar las respuestas de reCAPTCHA.
Configuración de trabajos en segundo plano
SCHEDULER_PAYMENT_JOB_SECONDS: Intervalo en segundos para el trabajo que sincroniza pagos entre SDP y TSS. El mínimo es 5s.SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS: Intervalo en segundos para el trabajo que envía invitaciones a receptores. El mínimo es 5s.
Configuración de Multi-tenancy
ADMIN_ACCOUNT: El nombre de usuario de la cuenta de administrador usada para autenticar solicitudes HTTP al servidor Admin. Las solicitudes dirigidas al Admin deben agregar el encabezado "Authorization", formateado como"ADMIN_ACCOUNT:ADMIN_API_KEY"codificado en Base64.ADMIN_API_KEY: La clave api de la cuenta de administrador usada para autenticar solicitudes HTTP al servidor Admin. Las solicitudes dirigidas al Admin deben agregar el encabezado "Authorization", formateado como"ADMIN_ACCOUNT:ADMIN_API_KEY"codificado en Base64.ADMIN_PORT: el puerto del servidor Admin usado para crear y administrar inquilinos. El valor predeterminado es 8003.INSTANCE_NAME: el nombre de la instancia SDP que se mostrará en el archivostellar.toml. Ejemplo: "SDP Testnet".SINGLE_TENANT_MODE: Cuando está configurado en"true", habilita el modo de inquilino único, útil para desarrollo local o configuraciones de un solo inquilino. Además de configurarlo en true, deberás configurar el inquilino predeterminado haciendo la solicitudPOST /tenants/default-tenant.TENANT_XLM_BOOTSTRAP_AMOUNT: La cantidad de XLM que la cuenta Stellar del HOST depositará en la cuenta de distribución del inquilino para el arranque del inquilino.
Servicio de Envío de Transacciones (TSS)
Para la configuración más actualizada, puedes ejecutar el siguiente comando en el repositorio git de stellar-disbursement-platform-backend:
- bash
./stellar-disbursement-platform tss --help
Configuración General
QUEUE_POLLING_INTERVAL- Intervalo de sondeo (segundos) para consultar la base de datos en busca de transacciones pendientes para procesar. Por defecto: 6.
Configuración Operativa
La Configuración Operativa permite controlar métricas, registros y otros aspectos operativos del Servicio de Envío de Transacciones (TSS)
LOG_LEVEL- Determina el nivel de verbosidad de los registros. Opciones: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", o "PANIC". Por defecto: "TRACE".TSS_METRICS_PORT- El puerto en el que el TSS expondrá sus métricas. Por defecto: 9002.TSS_METRICS_TYPE- El tipo de métricas a exponer. Opciones: "PROMETHEUS". Por defecto: "PROMETHEUS".CRASH_TRACKER_TYPE- El tipo de rastreador de fallos a utilizar. Opciones: "SENTRY", "DRY_RUN". Por defecto: "DRY_RUN".SENTRY_DSN- 🔑 La DSN (clave de cliente) del proyecto de Sentry. Si no se proporciona, Sentry no se utilizará.ENVIRONMENT- El entorno en el que se está ejecutando la aplicación. Ejemplo: "development", "staging", "production". Por defecto: "development".DATABASE_URL- 🔑 La cadena de conexión para la base de datos PostgreSQL. El formato espostgres://username:password@host:port/database?sslmode=disable. Por defecto: "postgres://localhost:5432/sdp?sslmode=disable".
Configuración de Stellar
La Configuración de Stellar permite configurar cuentas, transacciones y otros ajustes relacionados con Stellar.
NETWORK_PASSPHRASE- La frase de paso de la red Stellar. Por defecto "Test SDF Network ; September 2015".HORIZON_URL- La URL del servidor Horizon a utilizar para enviar transacciones. Por defecto "https://horizon-testnet.stellar.org/".MAX_BASE_FEE- La tarifa base máxima para enviar una transacción Stellar. Por defecto: 10000.
Configuración de cuentas de canal
Las siguientes configuraciones son necesarias para usar cuentas de canal para enviar transacciones a la red Stellar.
NUM_CHANNEL_ACCOUNTS- Número de cuentas de canal a utilizar para el envío de transacciones. Por defecto: 2.CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE- 🔑 Una clave secreta Stellar ed25519 (que comienza conS) usada para encriptar/desencriptar las claves privadas de las cuentas de canal. Cuando no se establece, se configurará con el valor de la opción 'DISTRIBUTION_SEED'.
Configuración de cuentas de distribución
Las siguientes configuraciones están relacionadas con las cuentas de distribución usadas para enviar fondos a los destinatarios. Esta configuración debe coincidir con la configuración en el Servicio Central SDP.
DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE- 🔑 Una clave secreta Stellar ed25519 (que comienza conS) usada para encriptar/desencriptar las claves privadas en memoria de las cuentas de distribución.DISTRIBUTION_PUBLIC_KEY- La clave pública de la cuenta de distribución Stellar del HOST. Se usa para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos.DISTRIBUTION_SEED- 🔑 La clave privada de la cuenta de distribución Stellar del HOST. Se usa para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos.
Tablero
El Tablero de SDP es una aplicación web que permite a los usuarios gestionar sus cuentas, ver el historial de transacciones, y más. Las variables de entorno pueden establecerse ya sea en un objeto global window._env_ o como variables process.env. Todas las variables de entorno utilizadas en este repositorio están en el archivo src/constants/envVariables.ts, incluyendo tipos. La ubicación predeterminada del objeto window._env_ es public/settings/env-config.js.
Configuración General
API_URL- La URL base del Servicio Núcleo de SDP. Predeterminado: "http://localhost:8000".STELLAR_EXPERT_URL- La URL base del explorador Stellar Expert. Predeterminado: "https://stellar.expert/explorer/testnet".HORIZON_URL- La URL base del servidor Horizon. Predeterminado: "https://horizon-testnet.stellar.org".RECAPTCHA_SITE_KEY- La clave del sitio de Google reCAPTCHA v2 - No soy un robot. Esta clave necesita igualar la clave utilizada en el Servicio Núcleo de SDP.