Saltar al contenido principal

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_URL podrí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:

./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 es postgres://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", "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 cuando EMAIL_SENDER_TYPE se establece en "AWS_EMAIL".
  • AWS_SNS_SENDER_ID - La ID del remitente a utilizar al enviar mensajes SMS utilizando AWS SNS. Requerido cuando SMS_SENDER_TYPE se 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 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.

Las configuraciones restantes relacionadas con las cuentas de distribución se detallan en la sección Configuración de cuentas Stellar de la Guía de Migración de 1.x a 2.x.

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 Anchor Platform

La Configuración de Anchor Platform permite configurar la plataforma de anclaje utilizada por el Servicio Central de la SDP.

  • ANCHOR_PLATFORM_BASE_PLATFORM_URL - La URL base de la plataforma de anclaje.
  • ANCHOR_PLATFORM_BASE_SEP_URL - La URL base de la implementación SEP-24 de la plataforma de anclaje.
  • ANCHOR_PLATFORM_OUTGOING_JWT_SECRET - 🔑 El secreto JWT utilizado para crear un token JWT empleado para enviar solicitudes a la plataforma de anclaje.

Configuración de Event Broker y Trabajos Programados

Para el procesamiento asíncrono, el Servicio Central de la SDP ofrece al usuario la opción de utilizar ya sea el Event Broker o Trabajos Programados.

Las configuraciones para esta sección se detallan en Configuraciones de Event Broker y Scheduler de la Guía de Migración de 1.x a 2.x.

Configuración de Multi-tenancy

Las configuraciones para esta sección se detallan en Variables de Entorno Generales de la Guía de Migración de 1.x a 2.x.

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:

./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 es postgres://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 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 privada ed25519 compatible con Stellar utilizada para cifrar/descifrar 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 utilizadas para enviar fondos a los destinatarios. Esta configuración debe coincidir con la configuración en el Servicio Central de la SDP. Para más detalles, consulta la sección Configuración de cuentas Stellar de la Guía de Migración de 1.x a 2.x.

  • DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE - 🔑 Una clave privada ed25519 compatible con Stellar utilizada 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 del HOST, utilizada para crear cuentas de canal.
  • DISTRIBUTION_SEED - 🔑 La clave privada de la cuenta de distribución del HOST, utilizada para crear cuentas de canal.

Configuración del Event Broker

Si se utiliza un Event Broker para el procesamiento asíncrono, será necesario configurar el TSS para usarlo. Para más detalles, consulta las Configuraciones de Event Broker y Scheduler de la Guía de Migración de 1.x a 2.x.

  • EVENT_BROKER_TYPE - El tipo de broker de eventos a usar. Opciones: "KAFKA", "NONE". Predeterminado: "KAFKA".
  • BROKER_URLS - Lista de URLs del Message Broker separadas por comas.
  • CONSUMER_GROUP_ID - ID del grupo de consumidores del Message Broker.
  • KAFKA_SASL_USERNAME - 🔑 Nombre de usuario de Kafka SASL.
  • KAFKA_SASL_PASSWORD - 🔑 Contraseña de Kafka SASL.
  • KAFKA_SECURITY_PROTOCOL - Protocolo de seguridad de Kafka. Opciones: PLAINTEXT, SASL_PLAINTEXT, SASL_SSL, SSL.
  • KAFKA_SSL_ACCESS_CERTIFICATE - 🔑 Certificado de acceso SSL de Kafka en formato PEM que igualará la Clave de Acceso de Kafka.
  • KAFKA_SSL_ACCESS_KEY - 🔑 La Clave de Acceso de Kafka (keystore) en formato PEM.

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.