Skip to content

Configuration reference

Every tunable across the three configurable components: the collector notebook, the WinForms app, and the deploy script.

Collector notebook (FDA_Collector.py)

Set in the # %% [parameters] cell, or overridden via the Fabric Parameters cell / pipeline.

Identity (service principal)

Parameter Default Description
TENANT_ID <tenant-guid> Entra tenant GUID
CLIENT_ID <collector-app-client-id> Collector app registration client id
KEY_VAULT_URI https://<your-kv>.vault.azure.net/ Key Vault holding the client secret
CLIENT_SECRET_NAME fda-collector-secret Secret name in Key Vault
CLIENT_SECRET_INLINE "" Inline secret — prototype only, leave empty in production

Never hardcode the secret

In production, store the secret in a workspace Key Vault and fetch via notebookutils.credentials.getSecret. CLIENT_SECRET_INLINE exists only for a quick local prototype. Outside Fabric, the collector reads FDA_CLIENT_SECRET from the environment.

Destination Eventhouse

Parameter Default Description
EH_QUERY_URI https://<cluster>.<region>.kusto.fabric.microsoft.com Observability Eventhouse Query URI
EH_INGEST_URI "" Optional; if blank, derived as https://ingest-<cluster>…
EH_DATABASE FDA_Observability_EH KQL database name

Workspace monitoring (source C)

Parameter Default Description
MON_QUERY_URI https://<mon-cluster>.<region>.kusto.fabric.microsoft.com Monitoring KQL DB Query URI
MON_DATABASE Monitoring KQL Database Monitoring database name
SEMANTIC_MODEL_IDS [] Optional allow-list of semantic model ItemIds to keep

Graph export (source A)

Parameter Default Description
FDA_USERS [] Explicit list of UPNs or object ids
FDA_USER_GROUP_ID "" Entra group object id; transitive members are expanded into the user set
GRAPH_APP_CLASSES BizChat / WebChat / Teams Copilot classes App-class allow-list for Graph rows

Choosing the user set

Set FDA_USERS to an explicit list or FDA_USER_GROUP_ID to a group (members expanded automatically, de-duplicated, paged). If both are set they are merged. Putting your FDA end users in a security group keeps the set current without redeploying the notebook.

Behaviour

Parameter Default Description
LOOKBACK_HOURS 48 Trailing re-scan window (covers late audit/Graph records)
CORR_WINDOW_SEC 90 DAX ↔ interaction match tolerance (± seconds) — see correlation
AGENT_NAME_FILTER "" Optional: only keep audit rows whose agent matches
USE_QUEUED_INGESTION True True = queued ingestion (scales); False = inline management ingest

There is also an internal INGEST_QUEUED_THRESHOLD = 200: batches at/above this row count use queued ingestion regardless of the toggle.


WinForms app (AppConfig)

Persisted to %APPDATA%\FdaObservability\config.json (no secrets — interactive AAD only). Seeded on first run from appsettings.sample.json if present. Edit via the in-app Configuration dialog.

Field Default Description
TenantId "" Entra tenant GUID
ClientId "" Public client app registration (the review app)
EventhouseQueryUri "" https://<cluster>.<region>.kusto.fabric.microsoft.com
Database FDA_Observability_EH KQL database
CapacityId "" Scope: Fabric capacity
WorkspaceId "" Scope: workspace GUID
WorkspaceName "" Scope: workspace display name
AgentId "" Scope: FDA agent id (used as the search agent filter)
AgentName "" Scope: FDA agent display name
DefaultLookbackDays 7 Default time window in the review grid
MaxRows 1000 Row cap passed to SearchFdaInteractions

IsComplete (which gates the first-run Configuration dialog) requires TenantId, ClientId, EventhouseQueryUri, and Database.


Deploy script (Deploy-FdaObservability.ps1)

Parameters are documented on the Deploy page.


Shared core and headless surfaces

The REST API, MCP server, and CLI share FdaObservability.Core and read the same settings. Provide them via configuration or environment variables.

Setting Env (API) Env (MCP / CLI) Default Description
Eventhouse Query URI FdaObservability__EventhouseQueryUri FDA_EVENTHOUSE_URI https://<cluster>.<region>.kusto.fabric.microsoft.com
Database FdaObservability__Database FDA_DATABASE FDA_Observability_EH KQL database
Default lookback (days) FdaObservability__DefaultLookbackDays 7 Window when from is omitted
Max rows FdaObservability__MaxRows 1000 Search row cap
API key (API only) Api__ApiKey (empty) When set, requires X-Api-Key; when empty the API is open

The CLI also accepts --cluster / --database flags (which override the environment). All three authenticate to the Eventhouse with DefaultAzureCredential — set AZURE_TENANT_ID / AZURE_CLIENT_ID / AZURE_CLIENT_SECRET for a service principal, rely on managed identity in Azure, or az login locally. See Programmatic access.

SDK replay notebook (FDA_SDK_Replay.py)

Parameter Default Description
DATA_AGENT_NAME <your-published-data-agent> Published Fabric Data Agent to replay against
SAMPLE_FROM Raw_GraphInteractions Source of questions to replay (or a curated CSV)
EH_QUERY_URI https://<cluster>.<region>.kusto.fabric.microsoft.com Eventhouse Query URI
EH_DATABASE FDA_Observability_EH KQL database
SAMPLE_SIZE 50 Number of recent questions to replay