> For the complete documentation index, see [llms.txt](https://uci.sunbird.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uci.sunbird.org/use/adopter/about-the-env.md).

# 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://uci.sunbird.org/use/adopter/about-the-env.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
