Skip to content

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.

Omit the API key settings. The application uses DefaultAzureCredential, which automatically tries:

  1. Environment variables
  2. Managed identity (in Azure)
  3. Azure CLI (az login)
  4. Visual Studio / VS Code credentials

This is the recommended approach for both local development (via az login) and production (via managed identity).