Configuration
This document provides an overview of the key dependencies and external services used in the platform.
Dependencies
Setup for external services:
- Twilio - Used to send SMS messages containing important notifications. These include alerts when produce is nearing the end of its shelf life, when a product is sold on the marketplace, or when inviting users to join the app.
- Sentry - Used for real-time error tracking and performance monitoring across both frontend and backend. Sentry helps developers quickly identify, triage, and resolve issues in production.
- Paystack - Integrated as the payment gateway for handling financial transactions. It enables secure payment processing for marketplace sales and other financial operations within the platform.
- Sendgrid - Used for sending transactional emails, such as operator notifications and invitations to join the app. It ensures reliable email delivery and provides analytics for engagement tracking.
All credentials for these services should be treated as deployment-time secrets. Checked-in configuration files should contain placeholders only.
Trusted Proxy Configuration
The Base API uses NUM_PROXIES to determine the client IP used by IP-based rate limits.
The default value of 2 matches the hosted production path:
Set the value to the number of trusted proxy hops in the deployment. For example, a direct local connection to Django has no trusted proxies, while a tunnel placed in front of the standard stack adds another hop. Do not copy the production default blindly into a topology with a different proxy chain: selecting the wrong address from X-Forwarded-For can make rate limits ineffective or cause unrelated clients to share a throttle bucket.