Link Search Menu Expand Document
Contenidos
  1. Servicio de pagos
  2. Documentación OpenAPI
  3. Estado de badges
  4. Deploy
    1. Heroku
    2. Local
      1. Usando Docker
      2. Usando npm
  5. Tests
  6. Configuración variables de entorno

Servicio de pagos

  • Orientado a interactuar con el Smart Contract.
  • Crea la wallet para cada usuario de la aplicación.
  • Persiste la información de cada transacción realizada en el sistema, tanto desde un usuario hacia la plataforma como desde la plataforma hacia un usuario.

En este link se puede acceder al repositorio.

Documentación OpenAPI

La documentación referida a la especificación OpenAPI del servicio se puede encontrar en https://github.com/taller2-grupo5-rostov-1c2022/payments-server#api-documentation Por problemas con Fastify-Swagger, no se pudo generar un Swagger como sí lo tienen los demás servicios.

Estado de badges

Production pipeline codecov Fastify

Aclaración: Pipeline incluye linter-tests (coverage)-deploy

Deploy

Heroku

El deploy hacia Heroku se encuentra automatizado dentro del pipeline de GitHub Actions usando la imagen de Docker del servicio en desarrollo. En particular, se necesitan las siguientes variables de entorno para generar el deploy automático.

Local

Usando Docker

Se cuenta con soporte para utilizar Docker de manera de no instalar todas las dependencias necesarias para el proyecto directamente. Las instrucciones se encuentran acá.

Usando npm

En caso de optar por levantar el proyecto de manera local, se puede usar npm para instalar las dependencias. Tener en cuenta que se necesita PostgreSQL instalado previamente para la base de datos. Las instrucciones se encuentran acá

Tests

La ejecución de los tests se encuentra automatizada a la hora de deployar mediante el pipeline de GitHub Actions. Al mismo tiempo, si se requiere correr los tests de manera local, se puede ejecutar con npm run test (recordar que se necesita PostgreSQL instalado previamente), o directamente utilizar Docker con sus instrucciones.

Configuración variables de entorno

Las variables de entornos utilizadas, ya sea configuradas de manera local, mediante los secrets de GitHub, o config var en Heroku; son las siguientes:

  • DATABASE_URL: URI de la DB a usar, requerida tanto como variable de entorno local y en Heroku. El archivo docker-compose.yml provee la URL automáticamente.
  • DD_API_KEY: API key de DataDog, requerida como config var en Heroku.
  • DD_DYNO_HOST: sirve agrupar hosts en DataDog, requerida como config var en Heroku.
  • DD_TAGS: tags para DataDog, requerida como config var en Heroku.
  • API_KEY: API key del servicio para realizar requests al mismo, requerida tanto como variable de entorno local y en Heroku.
  • HEROKU_APP_NAME: nombre de la app en Heroku, requerida como action secret.
  • HEROKU_EMAIL: mail de la cuenta de Heroku utilizada para el deploy, requerida como action secret.
  • CODECOV_TOKEN: token de codecov, requerido como action secret para subir reportes de coverage mediante el pipeline de GitHub Actions.
  • INFURA_API_KEY: la API key para el nodo de Infura, se puede obtener una desde el Infura dashboard. Se requiere tanto como variable de entorno local y config var en Heroku.
  • MNEMONIC: El mnemonic para la wallet, se puede obtener una desde MetaMask. Se requiere tanto como variable de entorno local y config var en Heroku.
  • PORT: El puerto en el que debe correr el server. Por defecto es el 3000 y se requiere como variable de entorno local.
  • ETHERSCAN_API_KEY: La API key para Etherscan, se puede obtener una desde el Etherscan dashboard. Se requiere tanto como variable de entorno local y config var en Heroku.