# Environment Variables

### Environment Variables Explanation

### 1. `POSTHOG_API_KEY`

The `POSTHOG_API_KEY` environment variable is used for authentication with the PostHog service. PostHog is a product analytics platform that helps you track user interactions with your application. To obtain this API key:

1. Log in to your PostHog dashboard.
2. Navigate to the API settings or account settings section.
3. Generate or retrieve your API key.
4. Set the `POSTHOG_API_KEY` environment variable to the obtained key.

### 2. `FIREBASE_SERVER_KEY`

The `FIREBASE_SERVER_KEY` environment variable is typically used for Firebase Cloud Messaging (FCM) to send push notifications to mobile devices. To obtain this key:

1. Log in to your Firebase Console.
2. Create or select a project.
3. Navigate to the project settings.
4. Under the Cloud Messaging tab, find the "Server Key" or "Legacy Server Key."
5. Set the `FIREBASE_SERVER_KEY` environment variable to this key.

### 3. `NL Depenencies`

NL app is our prime use case for UCI. UCI uses NL services for various tasks, priamrary of which is user authentication. Refer to [this](https://github.com/Mission-Prerna/sandbox-deployment) if you want to setup NL. We have used the [NL Sandbox](https://sandbox.bot.nl.samagra.io) for initial setup purpose.

#### NLAPP\_USER\_URL

* URL for an NL app dependency that searches for users by query.

#### NLAPP\_USER\_AUTH

* Authentication token for accessing the NL app user search API.

#### NLAPP\_USER\_XAPPID

* X-App-Id for the NL app.

#### NG\_APP\_url

* URL for an NG app.

#### NG\_APP\_nl\_url

* URL for the NL component of the NG app.

#### NG\_APP\_user\_segment\_url

* URL for user segmentation in the NG app.

#### NG\_APP\_nl\_login\_url

* URL for NL login in the NG app.

#### NG\_APP\_nl\_login\_token

* Token for NL login in the NG app.

#### NG\_APP\_nl\_application\_id

* Application ID for the NL app in NG.

#### NG\_APP\_blobUrl

* Blob URL for the NG app.

#### NG\_APP\_botPhoneNumber

* Phone number for the bot in the NG app.

#### NG\_APP\_adapterId

* Adapter ID for the NG app.

#### NG\_APP\_broadcastAdapterId

* Broadcast adapter ID for the NG app.

#### NG\_APP\_userId

* User ID for the NG app.

#### NG\_APP\_orgId

* Organization ID for the NG app.

#### NG\_APP\_token

* Token for the NG app.

### 4. Minio CDN Configuration:

The following environment variables are used to configure Minio CDN, a distributed object storage system.

### `CDN_MINIO_LOGIN_ID`

This variable represents the login ID for accessing Minio CDN.

### `CDN_MINIO_APP_ID`

The `CDN_MINIO_APP_ID` environment variable is typically a unique identifier for your Minio CDN application. It will be provided by minio when you create an application.

### `CDN_MINIO_BUCKET_ID`

This variable specifies the ID or name of the bucket within Minio CDN where your application stores objects. Buckets are used to organize and manage your data within Minio.

### `CDN_MINIO_FA_KEY`

The `CDN_MINIO_FA_KEY` is a token or key used for authentication and authorization with Minio CDN. It may be provided by your CDN service provider.

### `CDN_MINIO_FA_URL`

The `CDN_MINIO_FA_URL` is the URL used for authentication with Minio CDN. This URL is typically provided by your CDN service provider and is used to authenticate and authorize requests to your CDN resources.

### `CDN_MINIO_PASS`

The `CDN_MINIO_PASS` environment variable represents the password or secret associated with your Minio CDN account. This password is used for secure access to your CDN resources.

### `CDN_MINIO_URL`

The `CDN_MINIO_URL` environment variable specifies the base URL for accessing objects stored in Minio CDN. It represents the endpoint for your CDN service.

### 5. Fusionauth Environment Variables:

#### FUSIONAUTH\_POSTGRES\_USER

* Postgres user for Fusionauth service.

#### FUSIONAUTH\_POSTGRES\_DBNAME

* Postgres database name for Fusionauth service.

#### FUSIONAUTH\_POSTGRES\_PASSWORD

* Postgres password for Fusionauth service.

#### FUSIONAUTH\_POSTGRES\_PORT

* Postgres port for Fusionauth service.

#### FUSIONAUTH\_DATABASE\_USERNAME

* Database username for Fusionauth service.

#### FUSIONAUTH\_DATABASE\_PASSWORD

* Database password for Fusionauth service.

#### FUSIONAUTH\_APP\_KICKSTART\_FILE

* Kickstart file for Fusionauth application.

#### FUSIONAUTH\_API\_KEY

* API key for Fusionauth.

#### ES\_JAVA\_OPTS

* JVM options for Elasticsearch.

#### FUSIONAUTH\_MEMORY

* Memory allocation for Fusionauth.

#### FUSIONAUTH\_APP\_MEMORY

* Memory allocation for Fusionauth application.

#### FUSIONAUTH\_ADMIN\_PASSWORD

* Admin password for Fusionauth.

#### FUSIONAUTH\_ADMIN\_EMAIL

* Admin email for Fusionauth.

### 6. ODK Environment Variables:

#### ODK\_POSTGRES\_PASSWORD

* Postgres password for ODK.

#### ODK\_POSTGRES\_USER

* Postgres user for ODK.

#### ODK\_POSTGRES\_DB

* Postgres database for ODK.

### 7. Environment Variables for UCI-APIs:

### Postgresql

#### PSQL\_DB\_URL

* Postgres database URL for UCI APIs.

#### UCI\_API\_POSTGRES\_PASSWORD

* Postgres password for UCI APIs.

#### UCI\_API\_POSTGRES\_USER

* Postgres user for UCI APIs.

#### UCI\_API\_POSTGRES\_DB

* Postgres database for UCI APIs.

#### POSTGRES\_HOST

* Hostname for PostgreSQL.

#### POSTGRES\_USER

* PostgreSQL user.

#### POSTGRES\_PASSWORD

* PostgreSQL password.

#### POSTGRES\_DB

* PostgreSQL database.

### 8. Kafka

#### KAFKA\_HOST\_DEV

* Hostname for Kafka development environment.

#### KAFKA\_USER

* Kafka user.

#### KAFKA\_PASS

* Kafka password.

#### KAFKA\_HOST

* Hostname for Kafka.

#### KAFKA\_PORT

* Kafka port.

#### KAFKA\_LOG\_LEVEL

* Kafka log level.

#### ODK\_SERVICE

* URL for the ODK service.

#### ODK\_USERNAME

* ODK username.

#### ODK\_PASSWORD

* ODK password.

#### ODK\_BASE\_URL

* Base URL for ODK.

#### FUSIONAUTH\_URL

* URL for Fusionauth in UCI.

#### FUSIONAUTH\_KEY

* Fusionauth key.

#### ADMIN\_TOKEN

* Admin token.

#### FUSIONAUTH\_ANONYMOUS\_BOT\_APP\_ID

* Application ID for anonymous bot in Fusionauth.

#### FUSIONAUTH\_ADMIN\_PASS

* Admin password for Fusionauth.

#### AUTH\_PUBLIC\_KEY

* Public key for authentication.

#### POSTHOG\_BASE\_URL

* Base URL for PostHog.

#### POSTHOG\_BATCH\_SIZE

* Batch size for PostHog.

#### POSTHOG\_FLUSH\_INTERVAL

* Flush interval for PostHog.

### 9. Hasura

#### HASURA\_GRAPHQL\_DATABASE\_URL

* Database URL for Hasura GraphQL.

#### HASURA\_GRAPHQL\_ENABLE\_CONSOLE

* Enable Hasura GraphQL console.

#### HASURA\_GRAPHQL\_ENABLED\_LOG\_TYPES

* Enabled log types for Hasura GraphQL.

#### HASURA\_GRAPHQL\_ADMIN\_SECRET

* Admin secret for Hasura GraphQL.

#### UCI\_CORE\_BASE\_URL

* Base URL for UCI Core.

#### TRANSFORMER\_BASE\_URL

* Base URL for the transformer.

#### GRAPHQL\_BASE\_URL

* Base URL for GraphQL in UCI API DB.

#### INBOUND\_URL

* URL for inbound service.

### 10. Encryption Key

#### ENCRYPTION\_KEY

* Encryption key.

#### ENV

* Environment (e.g., prod).

### 11. UCI Core

#### CAMPAIGN\_URL

* URL for campaigns in UCI Core.

#### CAMPAIGN\_ADMIN\_TOKEN

* Admin token for campaigns in UCI Core.

### 12. Other Kafka Configurations

#### BOOTSTRAP\_SERVERS

* Bootstrap servers for Kafka.

#### KAFKA\_INBOUND\_PROCESSED\_TOPIC

* Kafka topic for inbound processed messages.

#### KAFKA\_CAMPAIGN\_TOPIC

* Kafka topic for campaigns.

#### KAFKA\_INBOUND\_UNPROCESSED\_TOPIC

* Kafka topic for inbound unprocessed messages.

#### KAFKA\_INBOUND\_GS\_OPTED\_OUT\_TOPIC

* Kafka topic for inbound GS opted-out messages.

#### KAFKA\_INBOUND\_ERROR\_TOPIC

* Kafka topic for inbound error messages.

#### KAFKA\_OUTBOUND\_TOPIC

* Kafka topic for outbound messages.

#### KAFKA\_TELEMETRY\_TOPIC

* Kafka topic for telemetry.

#### KAFKA\_ODK\_TRANSFORMER\_TOPIC

* Kafka topic for ODK transformer.

#### KAFKA\_ODK\_TRANSFORMER\_TOPIC\_PATTERN

* Kafka topic pattern for ODK transformer.

#### KAFKA\_LOGS\_TOPIC

* Kafka topic for telemetry logs.

#### KAFKA\_BROADCAST\_TRANSFORMER\_TOPIC

* Kafka topic for broadcast transformer.

#### KAFKA\_PROCESS\_OUTBOUND

* Kafka topic for processing outbound messages.

#### KAFKA\_MESSAGE\_REPORT\_TOPIC

* Kafka topic for message reports.

#### KAFKA\_GENERIC\_TRANSFORMER\_TOPIC

* Kafka topic for generic transformer.

#### KAFKA\_NOTIFICATION\_TOPIC

* Kafka topic for notification outbound.

#### KAFKA\_NOTIFICATION\_INBOUND\_PROCESSED

* Kafka topic for processed inbound notifications.

### 13. FormsDB Configurations

#### FORMS\_DB\_HOST

* Hostname for FormsDB.

#### FORMS\_DB\_NAME

* Database name for FormsDB.

#### FORMS\_DB\_PASSWORD

* Database password for FormsDB.

#### FORMS\_DB\_PORT

* Database port for FormsDB.

#### FORMS\_DB\_URL

* Database URL for FormsDB.

#### FORMS\_DB\_USERNAME

* Database username for FormsDB.

### 14. ODK Configurations

#### ODK\_PASS

* ODK password.

#### ODK\_URL

* URL for ODK.

#### ODK\_USER

* ODK user.

### 15. Cassandra COnfigurations

#### CASSANDRA\_URL

* Cassandra URL.

#### CASSANDRA\_PORT

* Cassandra port.

#### CASSANDRA\_KEYSPACE

* Cassandra keyspace.

#### CASSANDRA\_MIGRATION\_COUNT

* Cassandra migration count.

#### CASSANDRA\_PASSWORD

* Cassandra password.

### 16. Ports

#### INBOUND\_INTERNAL\_PORT

* Internal port for inbound service.

#### INBOUND\_EXTERNAL\_PORT

* External port for inbound service.

#### OUTBOUND\_INTERNAL\_PORT

* Internal port for outbound service.

#### ORCHESTRATOR\_INTERNAL\_PORT

* Internal port for orchestrator service.

#### TRANSFORMER\_INTERNAL\_PORT

* Internal port for transformer service.

#### BROADCAST\_TRANSFORMER\_INTERNAL\_PORT

* Internal port for broadcast transformer service.

### 17. Assesment Check Characters

#### ASSESSMENT\_GO\_TO\_START\_CHAR

* Character for going to the start of an assessment.

#### ASSESSMENT\_ONE\_LEVEL\_UP\_CHAR

* Character for moving one level up in an assessment.

#### CURRENT\_VERSION

* Current version.

#### XMSG\_USER\_DATA\_BEFORE\_HOUR

* User data before a certain hour.

### 18. PWA Adapter

#### PWA\_TRANSPORT\_SOCKET\_BASE\_URL

* Base URL for PWA transport socket.

#### TRANSPORT\_SOCKET\_BASE\_URL

* Base URL for transport socket.

### 19. Netcore

#### NETCORE\_WHATSAPP\_AUTH\_TOKEN

* Authorization token for Netcore WhatsApp.

#### NETCORE\_WHATSAPP\_SOURCE

* Netcore WhatsApp source.

#### NETCORE\_WHATSAPP\_URI

* Netcore WhatsApp URI.

### 20. Redis

#### REDIS\_DB\_INDEX

* Redis database index.

#### REDIS\_HOST

* Hostname for Redis.

#### REDIS\_PORT

* Redis port.

#### REDIS\_NUMBER\_PORT

* Redis number port.

#### REDIS\_PASS

* Redis password.

#### REDIS\_ENABLED

* Enable or disable Redis.

#### TRANSPORT\_SOCKET\_CACHE\_PORT

* Port for transport socket cache.

#### TRANSPORT\_SOCKET\_CACHE\_HOST

* Hostname for transport socket cache.

### 21. CDN Config

#### SELECTED\_FILE\_CDN

* Selected file CDN.

#### TEMPLATE\_SERVICE\_BASE\_URL

* Base URL for the template service.

#### CDAC\_BASE\_URL

* Base URL for CDAC.

### 22. Vault Credentials

#### VAULT\_FUSION\_AUTH\_URL

* URL for Vault Fusionauth.

#### VAULT\_FUSION\_AUTH\_TOKEN

* Token for Vault Fusionauth.

#### VAULT\_SERVICE\_URL

* URL for Vault service.

#### VAULT\_SERVICE\_TOKEN

* Token for Vault service.

### 23. Telemetry Events

#### EXHAUST\_TELEMETRY\_ENABLED

* Enable or disable exhaust telemetry.

#### POSTHOG\_EVENT\_ENABLED

* Enable or disable PostHog events.

#### TELEMETRY\_EVENT\_PDATA\_ID

* Telemetry event PData ID.

#### POSTHOG\_TELEMETRY\_APIKEY

* API key for PostHog telemetry.

#### POSTHOG\_TELEMETRY\_URL

* URL for PostHog telemetry.

### 24. Doubtnut config

#### DOUBTNUT\_BASE\_URL

* Base URL for DoubtNut.

#### DOUBTNUT\_WELCOME\_MSG

* Welcome message for DoubtNut.

#### DOUBTNUT\_WELCOME\_VIDEO

* Welcome video URL for DoubtNut.

#### DOUBTNUT\_AUTH\_KEY

* Authentication key for DoubtNut.

### 25. FormsDB Graphql Admin Secret

#### FORMSDB\_HASURA\_ADMIN\_SECRET

* Admin secret for FormsDB Hasura GraphQL.

### 26. AKHQ

#### AKHQ\_USERNAME

* Username for AKHQ.

#### AKHQ\_PASSWORD

* Password for AKHQ.

### 27. VAULT for UCI

#### VAULT\_TOKEN

* Token for Vault.

#### NOTIFICATION\_KEY\_ENABLE

* Enable or disable notification key.

### 28. Email Config

#### EMAIL\_HOST

* Hostname for email.

#### EMAIL\_USERNAME

* Email username.

#### EMAIL\_PASSWORD

* Email password.

#### EMAIL\_PORT

* Email port.

#### RECIPIENT\_EMAILS

* Recipient emails.

### 29. BROADCAST\_NOTIFICATION\_CHUNK\_SIZE

* Chunk size for broadcast notifications.

### 30. Caffeine cache values

#### CAFFEINE\_CACHE\_MAX\_SIZE

* Maximum size for Caffeine cache.

#### CAFFEINE\_CACHE\_EXPIRE\_DURATION

* Expiry duration for Caffeine cache.

### 31. MINIO

#### MINIO\_MEDIA\_UPLOAD\_URL

* URL for Minio media upload.

#### MINIO\_GET\_SIGNED\_FILE\_URL

* URL for Minio get signed file.

### 32. Redis Name for Notification Orchestrator

#### NOTIFICATION\_KAFKA\_CACHE

* Kafka cache name for notifications.

### 33. JVM Size

#### JVM\_ARGS\_INBOUND

* JVM arguments for inbound service.

#### JVM\_ARGS\_ORCHESTRATOR

* JVM arguments for orchestrator service.

#### JVM\_ARGS\_TRANSFORMER

* JVM arguments for transformer service.

#### JVM\_ARGS\_BROADCAST\_TRANSFORMER

* JVM arguments for broadcast transformer service.

#### JVM\_ARGS\_OUTBOUND

* JVM arguments for outbound service.

### 34. BotService Utils

#### WEBCLIENT\_INTERVAL

* Interval for web client.

#### WEBCLIENT\_RETRY\_MAX\_ATTEMPTS

* Maximum retry attempts for web client.

#### WEBCLIENT\_RETRY\_MIN\_BACK\_OFF

* Minimum back-off time for web client retries.

### 35. Redis Data Timeout(Second)

#### REDIS\_KEY\_TIMEOUT

* Redis key timeout in seconds.

### 36. Outbound Notification and Cassandra Reactive Buffer Size and Time Config

#### OUTBOUND\_NOTIFICATION\_BUFFER\_MAX\_SIZE

* Maximum size for outbound notification buffer.

#### OUTBOUND\_NOTIFICATION\_BUFFER\_MAX\_TIME

* Maximum time for outbound notification buffer.

#### OUTBOUND\_CASSANDRA\_BUFFER\_MAX\_SIZE

* Maximum size for outbound Cassandra buffer.

#### OUTBOUND\_CASSANDRA\_BUFFER\_MAX\_TIME

* Maximum time for outbound Cassandra buffer.

### 37. Transformer ODK Postgres Pool Config

#### FORMS\_DB\_POOL\_INITIAL\_SIZE

* Initial pool size for FormsDB.

#### FORMS\_DB\_POOL\_MAX\_SIZE

* Maximum pool size for FormsDB.

### 38. TRANSACTION\_AUTH\_TOKEN

#### AUTHORIZATION\_KEY\_TRANSACTION\_LAYER

* Authorization key for the transaction layer.

### 39. Logging

#### LOGS\_FOLDER

* Folder for logs.

#### ANALYSIS\_TRIGGGER\_FILE

* Analysis trigger file.

### 40. INBOUND CAFFINE

#### CAFFINE\_INVALIDATE\_ENDPOINT

* Endpoint to invalidate Caffeine cache.

### 41. Broadcast Report

#### BROADCAST\_BOT\_REPORT\_ENDPOINT

* Endpoint for bot report in broadcast.

### 42. Web-Channel

#### REACT\_APP\_TRANSPORT\_SOCKET\_URL

* URL for React app transport socket.

#### REACT\_APP\_UCI\_BOT\_BASE\_URL

* Base URL for the UCI bot in React app.

#### REACT\_APP\_CHAT\_HISTORY\_URL

* URL for chat history in React app.

#### REACT\_APP\_OTP\_BASE\_URL

* Base URL for OTP in React app.

#### REACT\_APP\_OWNER\_ID

* Owner ID in React app.

#### REACT\_APP\_OwnerOrgId

* Owner organization ID in React app.

#### REACT\_APP\_AUTH\_TOKEN

* Authentication token in React app.

#### REACT\_APP\_MOBILE

* Mobile number in React app.

#### REACT\_APP\_Admin\_Token

* Admin token in React app.

#### REACT\_APP\_FILTER\_LIST

* Filter list flag in React app.

#### FORMSDB\_HASURA\_GRAPHQL\_ADMIN\_SECRET

* Admin secret for FormsDB Hasura GraphQL.

#### FUSIONAUTH\_CLIENT\_SECRET

* Client secret for Fusionauth.

#### FUSIONAUTH\_APPLICATION\_ID

* Application ID for Fusionauth.

#### FUSIONAUTH\_DATABASE\_USER

* Database user for Fusionauth.

### 43. For Authentication from NL

#### TRANSPORT\_SOCKET\_JWT\_AUTH\_URL

* JWT authentication URL for transport socket.
