Environment variable setup
Kafka is used to build real-time streaming data pipelines and real-time streaming applications. A data pipeline reliably processes and moves data from one system to another, and a streaming application is an application that consumes streams of data.
We use XMessage to converse between our services, It is sent to Kafka topics. Then different services consume these XMessages from Kafka and process further.
BOOTSTRAP_SERVERS = # Kafka bootstrap server host/IP
REGISTRY_URL = # Schema Registry URL generated from kafka
# kafka topics for sending and receiving XMessage from our services
We are using Redis for caching the latest XMessage sent/received by user. We would be further using this for caching other elements.
REDIS_DB_INDEX = # Database Index
REDIS_HOST = # Redis Host
REDIS_PORT = # Redis port
ODK is being used to define the flow/logic of a bot. use this link ODK to set up and generate its credentials.
ODK_PASS = # ODK Passowrd
ODK_URL = # ODK URL
ODK_USER = # ODK Username
Fusion Auth is being used to store and Authenticate user data it also stores the user consent to fetch its data (in decrypted form). Deploy Fusion Auth with installation Guide.
FUSIONAUTH_KEY = # Generated Fusion Key
FUSIONAUTH_URL = # Generated Fusion URL
We are using assessment characters to go to the previous state or restart the conversation.
# To restart the bot
# To go back to the previous state
Caffeine is a high-performance Java 8 based caching library providing a near-optimal hit rate. It provides an in-memory cache very similar to the Google Guava API.
PostgreSQL is an advanced, enterprise-class, and open-source relational database system. PostgreSQL supports both SQL (relational) and JSON (non-relational) querying.
It is being used to store the question and assessment data and respective to ODK form questions.
FORMS_DB_HOST = # Database Host
FORMS_DB_NAME = # Database Name
FORMS_DB_USERNAME = # Database Username
FORMS_DB_PASSWORD = # Database Password
FORMS_DB_PORT = # Port
FORMS_DB_URL = # Database URL
Netcore is a service provider which is being used to sent/receive messages from the user for various channels (WhatsApp, Telegram, etc.)
Please contact the Netcore administrator to get these details
NETCORE_WHATSAPP_AUTH_TOKEN = # Authentication Token
NETCORE_WHATSAPP_SOURCE = # Source ID for sending messages to Netcore
NETCORE_WHATSAPP_URI = # Netcore API Base URL
Cassandra is one of the most efficient and widely-used NoSQL databases. One of the key benefits of this system is that it offers highly-available service and no single point of failure.
Cassandra is being used to store XMessages.
CASSANDRA_KEYSPACE = # Keyspace name
CASSANDRA_PORT = # Cassandra Port
CASSANDRA_URL = # Cassandra URL
CASSANDRA_MIGRATION_COUNT = 1 #Count of cassandra queries already exceuted
CAMPAIGN_ADMIN_TOKEN = # Authentication token
CAMPAIGN_URL = # federation service base URl
Outbound base URL for Diksha service provider. We can generate Transport Socket Base URL with transport-socket Project
# Sunbird Adapater Outbound URL
TRANSPORT_SOCKET_BASE_URL = # Transport Socket Base URL
We are sending events to telemetry for exhaust generation, the telemetry specs being used is here. the PData is a unique id assigned to this component
TELEMETRY_EVENT_PDATA_ID = # Telemetry Exhaust PDATA
We can send telemetry to posthog account instead of exhaust telemetry. To enable this add below environment variables.
POSTHOG_TELEMETRY_APIKEY= // Api key
Azure storage is a service added for media upload & display functionality. We can choose to use Azure or minio for this. To use this add below env variables.
Minio storage is another service for media upload & display functionality. We can choose to use Azure or minio for this. To use this add below env variables.
Vault is a service which is being used to store credentials related to various adapters. For example firebase service key, gupshup api credentials etc. We need a token to access this service, Please contact the administrator for this token.
1.18 Other environment variables
# In which enviorment we are working
ENV = dev
WEBCLIENT_HTTP_REQUEST_TIMEOUT = 5