Configuration Reference
All settings are configured under the Jime section. They can be set via environment variables (prefix JIME__), .NET user secrets, or appsettings.json.
Core settings
| Setting | Type | Default | Description |
|---|---|---|---|
AzureOpenAiEndpoint |
string | required | Azure OpenAI endpoint URL |
AzureOpenAiApiKey |
string | null |
API key for Azure OpenAI. Optional — falls back to DefaultAzureCredential (managed identity or az login) |
ChatModelDeployment |
string | gpt-4.1 |
Azure OpenAI deployment name for the chat model |
EmbeddingModelDeployment |
string | text-embedding-3-small |
Azure OpenAI deployment name for embeddings |
EmbeddingDimensions |
int | 1536 |
Embedding vector dimensionality (must match model output) |
ImageModelDeployment |
string | gpt-image-1 |
Azure OpenAI image deployment name for recap hero image generation; must match an existing image-capable deployment |
PostgresConnectionString |
string | required | PostgreSQL connection string |
StorageEndpoint |
string | — | Azure Blob Storage endpoint for durable generated assets |
RecapImageContainerName |
string | session-recap-images |
Blob container name for generated recap hero images |
UsePostgresEntraAuth |
bool | false |
Authenticate to PostgreSQL via Entra ID tokens instead of password |
Recap hero images require a dedicated Azure OpenAI image deployment such as gpt-image-1 and a configured StorageEndpoint so generated bytes can be stored in Blob Storage. Multimodal chat deployments can interpret image inputs, but they do not replace the image generation deployment used by jime recap image and the MCP generate_recap_image tool.
Document Intelligence
| Setting | Type | Default | Description |
|---|---|---|---|
DocumentIntelligenceEndpoint |
string | required | Azure AI Document Intelligence endpoint URL |
DocumentIntelligenceApiKey |
string | null |
API key. Optional — falls back to DefaultAzureCredential |
Storage & Transcription
These settings configure Azure Blob Storage and the transcription pipeline. StorageEndpoint is shared by document archival (during ingestion), audio staging (during transcription), and recap image storage.
| Setting | Type | Default | Description |
|---|---|---|---|
SpeechEndpoint |
string | — | Azure Speech Services endpoint |
SpeechApiKey |
string | null |
Speech API key. Optional — falls back to DefaultAzureCredential |
StorageEndpoint |
string | — | Azure Blob Storage endpoint (used for transcription audio staging, document archival, and recap image storage) |
AudioContainerName |
string | session-audio |
Blob container name for session audio |
DocumentArchiveContainerName |
string | jime-documents |
Blob container name for archived source documents |
SpeechLocale |
string | en-US |
Speech recognition locale |
EnableDiarization |
bool | true |
Enable speaker diarization in transcriptions |
AudioPreprocessing:Enabled |
bool | true |
Downmix diarized transcription audio to 16 kHz mono WAV before Azure Speech submission |
AudioPreprocessing:FfmpegPath |
string | ffmpeg |
ffmpeg executable name or path used for audio preprocessing |
GoogleServiceAccountKeyPath |
string | — | Path to Google service account key file for Drive access |
MCP server
| Setting | Type | Default | Description |
|---|---|---|---|
Mcp:ApiKey |
string | "" |
API key for HTTP transport authentication. Empty = no auth (local dev) |
Web app private preview
| Setting | Type | Default | Description |
|---|---|---|---|
Web:SitePassword |
string | null |
Shared private-preview password for the web app |
Web:DisableSitePassword |
bool | false |
Explicitly bypass the site-password gate for local UI iteration |
Web:SitePasswordCookieName |
string | __Host-JimeSiteAccess |
Secure cookie name for remembered site access |
Web:SitePasswordCookieDays |
int | 30 |
Number of days to remember successful password entry |
Web:EnableEntraAuth |
bool | false |
Re-enable Entra/player auth for future account-specific pages |
Environment variable format
The application uses AddEnvironmentVariables("JIME__") to strip the JIME__ prefix, then binds options from the Jime configuration section. This means environment variables need a double prefix — JIME__Jime__ — to land in the correct section:
# Core settings (JIME__ prefix + Jime__ section)
export JIME__Jime__AzureOpenAiEndpoint="https://your-resource.openai.azure.com/"
export JIME__Jime__PostgresConnectionString="Host=localhost;Port=5432;Database=jicklejime"
export JIME__Jime__Web__SitePassword="shared-table-password"
# Nested settings
export JIME__Jime__Mcp__ApiKey="your-api-key"
User secrets (local development)
Both the CLI and MCP server share the same user secrets ID (jicklejime-cli). Use --project to target either project:
dotnet user-secrets set "Jime:AzureOpenAiEndpoint" "https://your-resource.openai.azure.com/" --project src/JickleJime.Cli
dotnet user-secrets set "Jime:PostgresConnectionString" "Host=localhost;Port=5432;Database=jicklejime;Username=jime;Password=jime_dev" --project src/JickleJime.Cli
dotnet user-secrets set "Jime:DocumentIntelligenceEndpoint" "https://your-resource.cognitiveservices.azure.com/" --project src/JickleJime.Cli
dotnet user-secrets set "Jime:Web:SitePassword" "shared-table-password" --project src/JickleJime.Web
Tip
User secrets are stored outside the repository and never committed to source control. They're the recommended approach for local development credentials.
Authentication
JickleJime supports two authentication modes for Azure services:
API keys
Set the corresponding API key setting (e.g., AzureOpenAiApiKey). Simple but requires managing secrets.
DefaultAzureCredential (recommended)
Omit the API key settings. The application uses DefaultAzureCredential, which automatically tries:
- Environment variables
- Managed identity (in Azure)
- Azure CLI (
az login) - Visual Studio / VS Code credentials
This is the recommended approach for both local development (via az login) and production (via managed identity).