0.1.1 • Published 4 months ago

acquirer-backend v0.1.1

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

Prerequisites

  • MySQL/MariaDB
    • Database name should exists/create as defined inside .env file.
    • Database username/password should exists/create as defined inside .env file.
  • MinIO (S3 Compatible Object Storage Server) (For Local Development and Testing PDF uploads)
    • Default values are already configured inside .env.
      • Should use AWS S3 configration when in Production.
    • Running Local S3 Object Storage Server with minio server s3-storage
      • s3-storage is the name of the directory.

Run with

  1. npm install
  2. npm run start when you are inside <rootProject>/packages/acquirer-backed or npm run acquirer-backend:start when you are at rootProject directory.

Integration Testings

  • Make sure MySQL/MaridaDB database name, username, password are configured according to the .env.test file.
  • Make sure S3 Minio Server is running... either

  • npm run test when you are inside <rootProject>/packages/acquirer-backed

  • npm run test -w acquirer-backend when you are at rootProject directory.

Configuration

Environment VariablesDefault ValuesDescription
NODE_ENVdevelopmentSets the environment for Node.js. Common values: development, production, test.
APP_URLhttp://localhost:5555URL of the app, used for features like email verification.
HOST0.0.0.0Host IP address for the server.
PORT5555Port number for the server.
FRONTEND_SET_PASSWORD_URLhttp://localhost:5173/set-passwordURL for redirecting to set password in frontend, typically used in email verification.
JWT_SECRETmerchant-acquirer-jwt_secretSecret key for JWT. (Change in production)
JWT_EXPIRES_IN1dExpiration time for JWT. Common formats: 1d for 1 day, 2h for 2 hours, etc.
RECAPTCHA_SECRET_KEYrecaptcha-secret-keyBackend Secret key for Google reCAPTCHA. (Change in production)
RECAPTCHA_ENABLEDfalseEnable or disable Google reCAPTCHA.
API Key Generation Configuration
API_KEY_LENGTH64Length of the generated API key.
API_KEY_PREFIXMRPrefix for the API key.
MySQL Database Configuration
DB_HOSTlocalhostMySQL database server host.
DB_PORT3306Port for the MySQL database.
DB_USERNAMEmerchant_acquirer_userUsername for MySQL database.
DB_PASSWORDpasswordPassword for MySQL database.
DB_DATABASEmerchant_acquirer_dbName of the MySQL database.
RabbitMQ Configuration
RABBITMQ_HOST127.0.0.1RabbitMQ server host.
RABBITMQ_PORT5672Port for RabbitMQ server.
RABBITMQ_USERNAMEguestUsername for RabbitMQ server. (Change in production)
RABBITMQ_PASSWORDguestPassword for RabbitMQ server. (Change in production)
RABBITMQ_QUEUEacquirer_to_registryName of the RabbitMQ queue.
RABBITMQ_REPLY_QUEUEregistry_reply_acquirerName of the RabbitMQ reply queue.
S3/Minio Configuration
S3_ENDPOINTlocalhostS3 or Minio server endpoint.
S3_PORT9000Port for S3 or Minio server. 443 for AWS S3 with HTTPS.
S3_ACCESS_KEYminioadminAccess key for S3 or Minio.
S3_SECRET_KEYminioadminSecret key for S3 or Minio.
S3_REGIONus-east-1Region for S3. Ignored by Minio.
S3_USE_SSLfalseSet to true for HTTPS with AWS S3.
S3_MERCHANT_BUCKET_NAMEmerchant-documentsName of the S3 bucket for merchant documents.
SendGrid Configuration
SENDGRID_API_KEYadd-api-key-hereAPI key for SendGrid. Used for services like email verification.
Log Configuration
LOG_PATH./logsPath for storing logs.
LOG_LEVELdebugLogging level. Values: trace, debug, info, warn, error, etc.
LOG_DISABLEDfalseEnable or disable logging.
General API Rate Limit Configuration
GENERAL_RATE_LIMIT_WINDOW15mThe time window for general API rate limiting, in minutes.
GENERAL_RATE_LIMIT_MAX100The maximum number of requests allowed in the time window.
Login API Rate Limit Configuration
AUTH_RATE_LIMIT_WINDOW1hThe time window for login API rate limiting, in minutes.
AUTH_RATE_LIMIT_MAX10The maximum number of requests allowed in the time window.