> ## Documentation Index
> Fetch the complete documentation index at: https://docs.textql.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Self-hosting releases

> Release history for the TextQL Helm chart

<Update label="1.3.2" description="July 21, 2026">
  ### Bug fixes

  * Connectors: Self-hosted deployments that supply the connector credential encryption key through a secret store (External Secrets, Sealed Secrets, or native external secrets) start more reliably.
  * Connectors: The connector encryption primary key ID is now handled consistently as a non-sensitive value across every secret mode.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.3.1" description="July 20, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-20-26-2026):

  * [BigQuery Workload Identity Federation](/product/changelog#bigquery-workload-identity-federation)
  * [Thread costs on the billed basis](/product/changelog#thread-costs-on-the-billed-basis)
  * Access control for Tableau datasets
  * Improved sandbox DNS egress

  ### Bug fixes

  * Chat: Fixed hanging conversations by improving block streaming.
  * Chat: Long conversations compact their context earlier, reducing mid-turn failures on long threads.
  * Chat: Optimized sidebar chat list loads faster for members with a large number of chats.

  ### Upgrade guide

  No changes required for most deployments.

  If you call the v2 REST API Ontology endpoints on a sandbox, the `library` path segment has been renamed to `ontology` with no alias kept: `POST /v2/sandcastles/:id/library/changes` becomes `.../ontology/changes` and `GET /v2/sandcastles/:id/library/diff` becomes `.../ontology/diff`. Update any integrations that reference the old paths.

  If you relied on OIDC group-to-role synchronization, note that it has been removed. Assign roles in the app or link SCIM groups to system roles instead.

  To route sandbox DNS egress through the in-cluster DNS service — for clusters where a fixed DNS service IP does not work, such as some AKS and GKE setups — set `sandbox.dnsViaKubeDnsService: true` in your values file. It defaults to `false`; when enabled, `sandbox.clusterDnsIp` is ignored.
</Update>

<Update label="1.3.0" description="July 20, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-20-26-2026):

  * [Required connector credential encryption](/product/changelog#required-connector-credential-encryption)

  ### Upgrade guide

  **Mandatory for every deployment — no opt-out.** This release requires a connector credential encryption key. If it is not set, `helm upgrade`/`helm install` fails a pre-install check with an error, and the compute engine refuses to start. Complete the steps below **before** upgrading.

  1. Generate a 32-byte key, base64-encoded:

     ```bash theme={null}
     openssl rand -base64 32
     ```

  2. Set the key ring and the primary key ID under `global.auth` in your values file:

     ```yaml theme={null}
     global:
       auth:
         # Key ring: comma-separated id=base64key pairs. Keep every key ID you have ever used.
         connectorEncryptionKeys: "k1=<paste the base64 key from step 1>"
         # The key ID new credentials are encrypted with. Must match an entry above.
         connectorEncryptionPrimaryKey: "k1"
     ```

     If you use `externalSecrets`, `nativeExternalSecrets` or `none`, do **not** put the key material in your values file. Instead provision the `<remoteKeyPrefix>-connector-encryption-keys` secret in your external store (default prefix `textql`), and still set `global.auth.connectorEncryptionPrimaryKey` to the key ID (for example `k1`).

  3. Upgrade the chart. On first start, any connector credentials still stored in plaintext are automatically encrypted in the background using the primary key.

  **Do not lose or remove a key that has encrypted data.** `connectorEncryptionKeys` must retain every key ID that was ever used as the primary key, because decryption needs it. To rotate, add a new entry (for example `k2=<new base64 key>`), point `connectorEncryptionPrimaryKey` at the new ID, and keep the old entry so existing credentials stay decryptable.
</Update>

<Update label="1.2.28" description="July 17, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-13-19-2026):

  * [Scoped API access keys](/product/changelog#scoped-api-access-keys)
  * [Power BI row-level security for end users](/product/changelog#power-bi-row-level-security-for-end-users) (Beta)
  * Tableau embeds attach the Ontology automatically
  * Org settings changes recorded as diffs
  * Configurable service account annotations
  * Custom sidecar and init containers

  ### Bug fixes

  * Ontology: Non-admin members no longer lose access to the ontology query tool.

  ### Upgrade guide

  No changes required.

  To annotate the service accounts the chart creates, set `global.serviceAccountAnnotations` (applied to every service account) and/or a per-service `<service>.serviceAccount.annotations` map (later wins on key conflicts). Each service also accepts `<service>.serviceAccount.name` to override the account name and `<service>.serviceAccount.create` to skip creating it. Leaving these unset keeps the previous names and creates each account.

  To attach custom sidecar or init containers, set `<service>.extraContainers` and `<service>.extraInitContainers` (arbitrary Kubernetes container specs; can be supplied from a separate values file via `-f`) on `web`, `compute`, `tableau`, `mountie`, `ontology`, `valkey`, or `oathkeeper`. Sandbox worker pods accept the same keys under the sandbox values; changes there apply to every worker pod and take effect after a compute-engine roll, so keep them lightweight.
</Update>

<Update label="1.2.27" description="July 16, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-13-19-2026):

  * [Expanded audit logging](/product/changelog#expanded-audit-logging)
  * Sonnet 4.6 deprecation
  * Custom Tableau connector resources

  ### Bug fixes

  * Chat: A transient permission-check failure no longer shows a false "Request Access" screen; the underlying error is surfaced and access is re-checked once the check succeeds.
  * Chat: Improved handling of deleted datasources/connectors.
  * Chat: Unsupported or mislabeled image formats are now skipped and reported to the model as unavailable.
  * Connectors: Further hardened Tableau connector authentication and HTTP handling to eliminate remaining intermittent 401 errors on data source queries and metadata lookups.
  * Embeds: Tableau embed URLs now accept optional parameters to preselect which connectors a chat uses and to enable SQL and Ontology features for that chat, so an embed can be scoped directly from its URL.
  * Charts: ECharts visualizations no longer render blank under strict cross-origin resource policy headers, and the chart Grid Style popover no longer renders behind the chat input and cards.
  * Dashboards: When a dashboard's service is still starting or recovering, opening it now shows an auto-reconnecting retry page instead of a proxy error.
  * Observability: Fixed total calculations and idle-time handling in the thread timeline view.

  ### Upgrade guide

  No changes required.

  To override the Tableau connector's Kubernetes resources, set `tableau.resources.requests` and `tableau.resources.limits` (CPU and memory) in your values file; unset values keep the defaults (3Gi memory / 1 CPU requested, 8Gi memory limit).

  Google Cloud NetApp Volumes can now back the Ontology library. Set `compute.libraryStorageBackend` to `fsx`, point `compute.fsx.ontapEndpoint` at the ONTAP REST proxy URL, and set `compute.fsx.authMode` to `gcp` (OAuth via GKE Workload Identity — grant the compute service account NetApp admin on the pool's project). Existing FSx deployments (`authMode: basic`) are unaffected.
</Update>

<Update label="1.2.26" description="July 15, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-13-19-2026):

  * Chargeback for usage costs (Beta)
  * Revert approved Ontology changes
  * Progressive results in batch chat cells
  * Streamed cell events in the chat API
  * Built-in skills
  * Configurable Python execution timeout
  * Helm chart version in settings

  ### Bug fixes

  * Playbooks: Sharing a template-based playbook now accounts for access to the underlying template data — extending access when the sharer is able to, or warning when the data cannot be shared — instead of sharing a playbook the recipient cannot fully use.
  * Chat: Deep links to a chart or other artifact are no longer dropped on slow connections; the linked item now opens once the chat finishes loading.
  * Connectors: Per-user OAuth sign-in now completes reliably under strict Cross-Origin-Opener-Policy across the API, Azure SQL, Databricks, Power BI, and Snowflake connectors.
  * Connectors: Dataset-based Tableau chats now use the connectors configured for the dataset.
  * Sandbox: Out-of-range date and time values are now nulled at dataframe boundaries instead of failing the conversion.
  * Sandbox: Wedged Python executions are now stopped by a compute-side deadline, with clearer timeout errors and correct handling of cancellations.
  * Dashboards: Fixed a write-access check that could drop valid grants, and improved error reporting and retry pacing for external data requests.
  * Self-hosted diagnostics: The Network Check no longer reports false failures for the sandbox-to-engine probe or for browser file uploads, and audit logs, rate limiting, and per-IP OAuth limits now record the real client IP instead of the ingress address.

  ### Upgrade guide

  To cap how long a single sandbox Python execution may run, set `compute.constraints.python.execTimeoutSeconds` in your values file. Leaving it unset keeps the default; the minimum enforced value is 60 seconds. Executions that exceed the limit are stopped with a clear timeout error.
</Update>

<Update label="1.2.25" description="July 14, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-13-19-2026):

  * Lower storage use for chat working files

  ### Bug fixes

  No user-facing fixes in this release.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.24" description="July 14, 2026">
  ### Bug fixes

  * Connectors: Fixed Tableau Personal Access Token session churn — the connector no longer signs out and re-authenticates around every operation, which invalidated its own active sessions and caused intermittent 401 errors on data source queries. Concurrent sign-ins are now serialized and back off when Tableau rate-limits.
  * Connectors: Tableau dataset creation and refresh now stop with a clear error when data sources cannot be resolved from the selected views, instead of continuing with incomplete data.
  * Sandbox: Active sandbox workers are no longer disrupted by node consolidation on EKS Auto deployments during cluster scale-down.
  * Slack: Reports containing tables with blank cells now deliver to Slack reliably, instead of failing with a formatting error.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.23" description="July 13, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-13-19-2026):

  * [Merge conflict resolution for Ontology changes](/product/changelog#merge-conflict-resolution-for-ontology-changes)
  * Role management in the v2 REST API
  * Ontology library files in the v2 files API
  * AWS CodeCommit git sync for Ontology
  * Research reports honor the requested document format
  * Configurable sandbox worker directory retention

  ### Bug fixes

  * LLM: Fixed a 400 error from Fable on consecutive steering messages.
  * Dashboards: Hardened generated-code handling and fixed a data-source access join that could hide accessible sources.
  * Chat: The app now auto-recovers when a page fails to load one of its code chunks, instead of leaving a blank or broken view.
  * Connectors: Large queries no longer stall sandbox SQL parsing, and requests to an org's own Azure storage account host are no longer blocked by the SSRF guard.
  * Sandbox: File preview hints are now scoped to user-visible output files, and a compute request timeout was raised so longer query dispatches are no longer cut off prematurely.
  * Members: Fixed the member reinstatement email.

  ### Upgrade guide

  No changes required.

  To change how long idle sandbox worker directories are kept before the daily cleanup job deletes them, set `compute.worker.directoryRetentionDays` in your values file. Leaving it unset (or `0`) keeps the default of 30 days. Lower it when sandbox storage is tight — note that sandboxes older than the retention period can no longer be respawned.
</Update>

<Update label="1.2.22" description="July 10, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-6-12-2026):

  * [GPT-5.6 model family](/product/changelog#gpt-56-model-family)
  * Connector access management in the v2 REST API
  * Postgres password from AWS Secrets Manager
  * Playbook output gated on connector access
  * Persistent Power BI and Tableau selections

  ### Bug fixes

  * UI: Various minor fixes to the chat page.

  ### Upgrade guide

  No changes required.

  To source a PostgreSQL connector password from AWS Secrets Manager, provide the secret reference when configuring the connector; the deployment must have read access to the referenced secret.
</Update>

<Update label="1.2.21" description="July 10, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-6-12-2026):

  * Concurrent multi-organization sessions
  * Encrypted OIDC and OAuth secrets at rest
  * Chat drafts
  * People analytics in observability
  * Dashboard list-view actions

  ### Bug fixes

  * Slack: Channel and user syncing now completes reliably on very large workspaces under rate limits, and a failed refresh no longer wipes the cached channel and user tables.
  * Chat: Canceled or expired requests (such as navigating away mid-stream) no longer surface a spurious error.
  * Connectors: Editing an API connector no longer drops previously saved authentication headers.
  * Artifacts: Images and PDFs upload and convert more reliably, and unavailable assets now show a clear placeholder instead of a broken link.
  * Sandbox: Fixed a connection leak to sandbox workers that degraded performance over long uptime.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.20" description="July 9, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#july-6-12-2026):

  * [Desktop app tabs and multi-window](/product/changelog#desktop-app-tabs-and-multi-window)
  * [Connection diagnostics for restrictive networks](/product/changelog#connection-diagnostics-for-restrictive-networks)
  * Ontology Owners subtab
  * Workspace and asset endpoints in the v2 REST API
  * Faster dashboard source execution
  * Dynamic slow-query warnings
  * Compute functions return tabular data

  ### Bug fixes

  * Chat: Switching threads no longer leaves the message "expand" control dead; threads containing cell types this build doesn't recognize now load instead of breaking; runaway line-break floods in markdown are collapsed; and the composer keeps focus when an artifact URL updates.
  * Chat: Removed a false "sandbox restarted" error on send, and fixed dropped sends and lossy sandbox restores when reconnecting.
  * Charts: Fixed blank liquid-fill and extension charts.
  * Ontology: Fixed the "create new file" button.
  * Sandbox: Fixed cross-replica worker allocation races, and multi-GB sandbox states now persist with memory escalation after out-of-memory kills.
  * LLM: Fixed an assistant-prefill 400 error on failover retry, and backup failover is now gated on whether the backup model supports the request.
  * Azure: Fixed copy/paste, theme-editor logo upload to Azure file storage, and propagation of email attachments through Azure Email Communication Service.
  * Playbooks: A replay of the last run is no longer presented as a live run.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.19" description="July 1, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#jun-29-jul-5-2026):

  * [Claude Sonnet 5 model](/product/changelog#claude-sonnet-5-model)
  * [MongoDB connector](/product/changelog#mongodb-connector)
  * Bedrock console proxy for Anthropic models
  * Packages settings gated on read permission
  * Monthly billing aligned to the first of the month

  ### Bug fixes

  * Chat: The "thinking" indicator now appears immediately when you send a message — including on brand-new threads — instead of showing up late or not at all.
  * Chat: Pasting multiple images into the composer no longer collides them under a single filename; each pasted image now uploads and reaches the sandbox correctly.
  * White-label: Additional hardcoded "TextQL", "Ana", and textql.com references — across the frontend, chat prompts, emails, and Slack — now resolve to the deployment's configured brand.
  * API: The v2 chat API now honors the documented top-level `connector_ids` field even when `tools` is set, so programmatic chats start with the connectors you requested instead of none.
  * Ontology: Config edits now save optimistically for a snappier editing experience, and roll back cleanly if a save fails.

  ### Upgrade guide

  No changes required.

  To route Anthropic model traffic through the TextQL console proxy over Bedrock, set `global.providers.anthropicProvider: "console_proxy_bedrock"`. To use it as an automatic fallback for your primary Anthropic endpoint, set `global.providers.anthropicBackupProvider: "console_proxy_bedrock"`.
</Update>

<Update label="1.2.18" description="June 30, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#jun-29-jul-5-2026):

  * Opus 4.7 and Kimi K2.5 deprecation
  * Sandbox scratch volume failover

  ### Bug fixes

  * Connectors: Fixed Ramp OAuth by keying the flow off the authorization URL rather than the configured provider, so Ramp connects reliably.
  * Ontology: Fixed auto-attach rule settings.
  * Sandboxes: Self-hosted sandbox storage now fails loudly when the configured NAS path is empty instead of starting in a bad state, and junction-resolution errors surface through the scratch-volume backend.

  ### Upgrade guide

  No other changes required.
</Update>

<Update label="1.2.17" description="June 26, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-22-28-2026):

  * [Support of custom gateway when using Anthropic models](/product/changelog#support-of-custom-gateway-when-using-anthropic-models)
  * Self-managed Kubernetes secrets mode
  * New chart flags to disable k8s CRDs and use Ingress in GKE
  * Configurable asset URL expiry
  * Ontology change review in the v2 REST API
  * Importable library subdirectory modules
  * Hide the desktop app page for branded deployments

  ### Bug fixes

  * Models: Fixed interleaved tool-call streaming on Snowflake Cortex that could corrupt tool-call IDs and create duplicate cells.
  * Chat: Runs interrupted mid-tool-call now resume across pod drains and deploy handoffs — backed by a durable send queue and pending-turn recovery — so conversations no longer get stuck.
  * Chat: Fixed a citation delivery bug that could drop citations from an answer.
  * MCP: Fixed sandbox output and state handling, plus several connection issues for dynamic MCP — bare-origin OAuth resource indicators, query-tolerant audiences, and pre-session SSE probes are now handled correctly.
  * Connectors: Fixed Ramp OAuth by no longer sending `access_type=offline`.
  * Connectors: The OAuth callback URL now stays visible after an authentication failure, so you can finish connecting.
  * SCIM: Re-provisioning a previously deactivated member now restores the existing member instead of failing.
  * Playbooks: Editing a playbook as a non-owner no longer unexpectedly forks it.
  * Ontology: Config `run_as` now accepts an email address instead of requiring a member ID.
  * Desktop: Auth cookies are now flushed to disk, fixing periodic logouts.
  * Charts: Fixed the minimap Y axis.

  ### Upgrade guide

  To use the `Values.global.secretsMode: none`, contact the TextQL team.
  To use a custom Anthropic gateway or another LLM gateway endpoint, contact the TextQL team.

  If you call the v2 REST API Ontology review endpoints, the `patches` resource has been renamed to `changes` — update any integrations that reference it.

  No other changes required.
</Update>

<Update label="1.2.16" description="June 22, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-22-28-2026):

  * [Per-member Microsoft Entra ID OAuth for SQL Server and Synapse](/product/changelog#per-member-microsoft-entra-id-oauth-for-sql-server-and-synapse)
  * [Google Vertex AI model provider](/product/changelog#google-vertex-ai-model-provider)
  * Per-member default model and fast mode
  * Model selection in the v2 chat API
  * Ontology building methodology
  * Token usage for bring-your-own-key models

  ### Bug fixes

  * Dashboards: Chatting with a dashboard now automatically attaches its `.tql` query connectors, so Ana can query the same sources the dashboard uses instead of starting with none.
  * Dashboards: Live-dashboard queries are now attributed to the viewer rather than the dashboard creator, so warehouse session identity and audit logs reflect who is actually viewing.
  * Charts: ECharts visualizations no longer render blank in scheduled reports and emails.
  * Chat: Stalled runs now recover and resume across compute restarts and deploy handoffs, instead of leaving a conversation stuck mid-run.
  * Chat: Your model selection is now preserved when starting a new thread.
  * Chat: Live chat updates fall back to SSE streaming when the primary connection is unavailable, keeping streams reliable.
  * Connectors: Fixed SQL Server and Synapse connections over Microsoft Entra by correcting TLS server name and protocol negotiation.
  * Steering: Fixed steering on GPT models, and the Steer button on a queued message now appears only for steering-capable models.
  * Models: Gemini's output cap was raised and stream retries hardened, reducing truncated or dropped responses.
  * Ontology: A durable migration marker fixes a "migrate" banner that could linger after migration had already completed.
  * Ontology: Config-managed objects now catch up when the Library repository drifts without a sync trigger.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.15" description="June 18, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-15-21-2026):

  * [Citation lineage](/product/changelog#citation-lineage)
  * Chat citations
  * Refreshed tables across the app

  ### Bug fixes

  * Chat: A conversation no longer breaks when Ana encounters an unrecognized tool call; the turn now degrades gracefully instead of erroring out.
  * Chat: The report tool stays available across every turn of a conversation, instead of dropping out after the first turn.
  * Chat: An expired connector token no longer wedges a chat — the connector prompts for re-authentication instead of stalling the conversation.
  * Chat: Long option labels and answer text in question cells no longer overflow the card.
  * MCP: `ana_poll` is now history-backed, so a long-running answer can no longer be lost between polls.
  * MCP: The OAuth authorize flow now accepts OIDC scopes.
  * MCP: Internal framework `_summary` fields are no longer leaked into outbound MCP tool calls.
  * Ontology: The scheduled-sync failure banner no longer appears when git is disconnected, and the "Sync now" spinner now rotates in the correct direction.
  * Ontology: Transient ONTAP job 404s are now retried instead of failing the operation on FSx ONTAP deployments.
  * Sandbox: Query result dataframes can now be used with Streamlit's cache decorators.

  ### Upgrade guide

  No changes required. Source citations are enabled for all organizations automatically on upgrade.
</Update>

<Update label="1.2.14" description="June 16, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-15-21-2026):

  * MCP server management
  * Connector discovery over MCP
  * Save playbooks as configuration files

  ### Bug fixes

  * Dashboards: Fixed a stale-state bug that could leave a dashboard stuck instead of refreshing.
  * Ontology: Patch review links now deep-link to the specific review instead of the review list.
  * MCP: Tool input schemas now preserve `anyOf` / `$ref`, fixing tools whose parameters use them (such as DataHub's `get_entities`).
  * MCP: The assistant and company names surfaced over MCP now follow the deployment's configured brand.
  * Compute: Fixed a cross-replica disagreement about the sandbox storage backend that could cause sandbox file errors on multi-replica deployments.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.13" description="June 16, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-15-21-2026):

  * [Connector explore page](/product/changelog#connector-explore-page)

  ### Bug fixes

  * Sandbox: Fixed checksum handling for sandbox file uploads, so uploading files into the Python sandbox no longer fails on non-AWS S3-compatible object storage.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.12" description="June 16, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-15-21-2026):

  * [Dataset access control](/product/changelog#dataset-access-control)
  * HubSpot connector
  * pip extras in custom package installs

  ### Bug fixes

  * Compute: A request cancellation (a turn ending or timing out) no longer cascades into a failed sandbox cleanup. Previously it could leave a chat stuck in a "no worker assigned" state and surface a misleading "persisting chat generation fence … context canceled" error; failed and respawned workers are now always cleaned up so the next turn assigns a fresh sandbox.
  * Connectors: API connectors using the client-credentials OAuth grant now automatically refresh their access token when it expires, instead of failing once the token lapses and requiring manual re-authentication.
  * Connectors: Deleted or inaccessible connectors no longer appear in default connector lists or in new chats.
  * Google Cloud Storage and other non-AWS S3-compatible endpoints no longer fail with `SignatureDoesNotMatch`; default request checksums are disabled for non-AWS endpoints.
  * Chat: The sandbox is kept alive during active turns, reducing intermittent "recovering files" errors on long-running chats.
  * Dashboards: An attached dashboard now renders in the artifact drawer before the first message is sent.
  * Ontology: Fixed auto-attach for context file paths.
  * Microsoft Teams: Fixed manifest validation errors and the outline icon.
  * Settings: The role dialog now displays model access correctly.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.11" description="June 11, 2026">
  ### Bug fixes

  * White-label: Settings → Personal and the Authorized Apps list now display the deployment's configured assistant and brand names instead of hardcoded "Ana" and "TextQL", so white-labeled deployments read correctly throughout these screens.
  * MCP: The MCP server now normalizes request headers on POST, accepting clients that send a parameterized `application/json` content type (such as Microsoft Copilot) instead of rejecting the handshake.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.10" description="June 10, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-8-14-2026):

  * FSx snapshot storage routing

  ### Bug fixes

  * SCIM: Updating a user's `externalId` via PUT or PATCH is now accepted instead of being rejected as immutable, so identity providers that re-issue external IDs (for example after an attribute-mapping change) sync successfully. A value already assigned to another user returns a 409 uniqueness error.
  * MCP: Ana's MCP server now returns JSON responses during the connection handshake, fixing connections from Microsoft Copilot.
  * Ontology: Patch cells no longer fire duplicate concurrent requests for the same patch, and approval lookups wait until the patch has finished being created.
  * Compute: Per-worker library volume mounts now use NFS soft mounts, so a storage outage surfaces as errors instead of leaving processes blocked indefinitely.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.9" description="June 10, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-8-14-2026):

  * [Ramp, ElevenLabs, Apollo, Pylon, and Mercury API connectors](/product/changelog#ramp-elevenlabs-apollo-pylon-and-mercury-api-connectors)
  * Istio toggle for Helm deployments
  * Clickable links in CSV previews
  * Desktop app automatic updates

  ### Bug fixes

  * Auth: SCIM-provisioned users are no longer denied login when their username domain differs from their email domain — OIDC logins now reconcile to the SCIM-provisioned identity, preserving organization memberships.
  * Ontology: Patch diffs are now computed from a snapshot taken at diff time, fixing spurious "no changes" failures and files that could not be added to a patch.
  * Dashboards: Recently viewed dashboards now stay warm for a configurable period before release, and failed dashboard startups no longer leave orphaned workers or phantom billing.
  * Chat: Long mentions now wrap correctly on narrow screens, and CSV preview filter dropdowns position correctly.
  * Playbooks: The empty-state status now reads "Awaiting run" instead of "Awaiting input".
  * Compute: Wedged sandbox storage mounts are now detected and unmounted automatically, independent of live sandbox pods.

  ### Upgrade guide

  No changes required.

  Istio resources (such as authorization policies) can now be disabled by setting `global.istio.enabled: false` for clusters that do not run Istio. The flag defaults to `true`, preserving existing behavior.
</Update>

<Update label="1.2.8" description="June 10, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-8-14-2026):

  * [Claude Fable 5 model](/product/changelog#claude-fable-5-model)
  * [Cloudflare and SendGrid API connectors](/product/changelog#cloudflare-and-sendgrid-api-connectors)
  * [Configurable SQL query timeouts](/product/changelog#configurable-sql-query-timeouts)
  * [Hide non-ZDR models when data retention is disabled](/product/changelog#hide-non-zdr-models-when-data-retention-is-disabled)
  * [HEIC image support](/product/changelog#heic-image-support)
  * [Connector management in the v2 REST API](/product/changelog#connector-management-in-the-v2-rest-api)
  * [Multi-approval for Ontology patches](/product/changelog#multi-approval-for-ontology-patches)

  ### Bug fixes

  * Chat: Run-completion delivery is more reliable with a long-poll fallback, and streaming no longer re-processes the entire conversation on every token.
  * Slack: Response delivery is now idempotent, preventing duplicate messages; image attachments render correctly in Slack and email.
  * Auth: Allowed email domains are normalized when read, so case differences no longer cause false mismatches; fixed login on mobile WebKit browsers; expanded the disposable-email blocklist.
  * Dashboards: Fixed slow loads and stuck updates, and idle dashboard sandboxes are now released based on viewer presence.
  * Ontology: Fixed Git sync pushes to empty repositories, folder renames, and file-tree truncation; config reconciliation now resolves the repository HEAD instead of assuming `main`.
  * Compute: The screenshot browser recovers from panics instead of failing runs, the LLM proxy now matches Anthropic's 32 MB request size limit, and the FSx backup tagging algorithm is fixed.
  * Sandbox: Runaway outbound request loops are now capped.

  ### Upgrade guide

  No changes required.

  Individual SQL queries now time out after 5 minutes by default, raised from the previous shorter limit. To change the default, set `compute.constraints.sql.execTimeoutSeconds` in your values file.
</Update>

<Update label="1.2.7" description="June 8, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-8-14-2026):

  * [New API connectors](/product/changelog#new-api-connectors)
  * [Audio and video file previews](/product/changelog#audio-and-video-file-previews)
  * Live dashboard content updates
  * Per-connector database session identity
  * Cell response ratings

  ### Bug fixes

  * Chat: Completed cells no longer re-arm streaming, and stuck streams now reconcile through a run-state poll — including on newly created chats — so conversations stop showing a spurious "still running" state.
  * Chat: Hardened run-completion events in the v2 chat handlers so runs reliably report when they finish.
  * Tableau: Fixed `fsGroup` permissions that broke Hyper extract queries, and hardened the connector's container security context and finalizer handling.
  * Ontology: Patch diffs are now computed against the merge-base for accurate change sets, and draft patches correctly show approve and deny buttons.
  * Connectors: Connector logos now render without distortion in connector pills.
  * Compute: Outbound AWS S3 uploads no longer stall.
  * Sandbox: Idle sandboxes are now reclaimed correctly; fixed a last-access tracking bug that could defeat TTL expiry.
  * Security: Upgraded pyarrow to 23.0.1 to address a dependency vulnerability.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.6" description="June 4, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-1-7-2026):

  * [Mid-conversation steering](/product/changelog#mid-conversation-steering)
  * [Edit dashboard code and sources inline](/product/changelog#edit-dashboard-code-and-sources-inline)
  * [Capabilities settings redesign](/product/changelog#capabilities-settings-redesign)
  * Resumable chat streaming
  * Distributed sandbox pool

  ### Bug fixes

  * Chat: Switching conversations during a network error no longer leaks report mode, dashboard mode, fast mode, or methodology settings between chats.
  * Dashboards: Suspended organizations now stop dashboard retry storms — dashboards are marked failed with a clear suspension message instead of repeatedly respawning.
  * Chat: Requests like "give me", "create", or "write X" now deliver the file directly in chat instead of saving it to the Ontology library.
  * Tableau: Upgraded the connector's web framework to address a Starlette host-header vulnerability.
  * Connectors: The AWS Partner Central connector now uses a tightly scoped endpoint allowlist instead of a broad `*.amazonaws.com` pattern.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.5" description="June 3, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#june-1-7-2026):

  * [Distributed compute engine](/product/changelog#distributed-compute-engine)
  * [Ana Claude Code plugin](/product/changelog#ana-claude-code-plugin)
  * Library skills via slash command
  * Word document uploads
  * PowerPoint uploads
  * Snowflake optional database
  * Ontology patch revision history
  * Bedrock per-user audit attribution
  * Email tool access control

  ### Bug fixes

  * PowerBI: Embed now works correctly inside sandboxed iframes (Power BI custom visuals) where `allow-same-origin` is absent.
  * Connectors: OAuth config rows are de-duplicated and access-checked so non-admins can no longer view private connector keys.
  * Databricks: Fixed a nil-pointer crash when converting decimal array columns.
  * Dashboards: SQL Server and Azure Synapse queries are now correctly routed for dialect transpilation.
  * Chat: Fixed a stream iterator panic and a nil dereference during message streaming.
  * White-label: The browser notification icon is now brand-aware; white-labeled deployments show their own logo instead of the TextQL default.
  * Compute: Sandbox allocation now falls back to Filestore/EFS automatically when FSx capacity is exhausted.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.4" description="May 29, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#may-25-31-2026):

  * Chat input and conversation polish
  * [TQL frontmatter in tql files](/product/changelog#tql-frontmatter-in-tql-files)
  * Auto-attach select all
  * Paginated patch reviews
  * [PowerBI preconfiguration via embed URL](/product/changelog#powerbi-preconfiguration-via-embed-url)
  * Cross-domain email allowlist toggle

  ### Bug fixes

  * Billing — service account seat exclusion: Service accounts are automatically excluded from active seat-limit calculations.
  * Sidebar: Recent Threads no longer appears nearly empty for members with many automated background chats; these are now excluded server-side before the 50-thread limit is applied.
  * Ontology: Orphaned patches are now denied on submission.
  * Chat: Empty attachment wrapper no longer reserves vertical space in the input card when no files are attached.

  ### Upgrade guide

  No changes required.

  If you want to **restrict** all users from whitelisting domains (other than your own) in your OIDC authentication, you can use the flag `global.auth.allowCrossDomainEmailAllowlist: "false"` in your values file. Otherwise, the value will be set to `"true"` so you can whitelist domains in your deployment.
</Update>

<Update label="1.2.3" description="May 28, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#may-25-31-2026):

  * [Ana as an MCP server](/product/changelog#ana-as-an-mcp-server)
  * [MCP streaming responses and inline previews](/product/changelog#mcp-streaming-responses-and-inline-previews)
  * [Interactive ECharts visualizations](/product/changelog#interactive-echarts-visualizations)
  * [Library TQL data source for dashboards](/product/changelog#library-tql-data-source-for-dashboards)
  * [Ontology auto-approve rules](/product/changelog#ontology-auto-approve-rules)
  * [OIDC identity provider](/product/changelog#oidc-identity-provider)
  * [TextQL Doctor diagnostics](/product/changelog#textql-doctor-diagnostics)
  * [Language adherence](/product/changelog#language-adherence)
  * Library plan-first git sync

  ### Bug fixes

  * PowerBI: Connector no longer incorrectly shows as "connected but not available in this chat."
  * OAuth: MCP consent state is correctly resumed after a login redirect.
  * Ontology: Auto-approve spinner sizing corrected.
  * Chat: Search filters reset on hard refresh instead of persisting stale state across sessions.
  * Reports: Markdown tables now render correctly in email delivery.
  * RBAC: Playbook template endpoints now correctly enforce `playbook:read` permission.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.2" description="May 25, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#may-25-31-2026):

  * [Unified Ontology surface](/product/changelog#unified-ontology-surface)
  * Ontology settings section
  * [Ontology relationship graph redesign](/product/changelog#ontology-relationship-graph-redesign)
  * Ontology sync run tracking
  * Ontology PDF and image migration
  * Ontology GitHub App connect flow
  * Ontology reviews split view
  * Ontology new file highlighting
  * [Microsoft Teams integration](/product/changelog#microsoft-teams-integration)
  * [Power BI per-member OAuth](/product/changelog#power-bi-per-member-oauth)
  * [Firebolt connector](/product/changelog#firebolt-connector)
  * [Observability export to S3](/product/changelog#observability-export-to-s3)
  * Playbook connector inheritance
  * Plain-English role editor
  * Email domain enforcement
  * Editable Python package versions
  * SCIM and OIDC identity merge
  * Safe iframe embedding
  * [Cerebras LLM provider](/product/changelog#cerebras-llm-provider)
  * Custom documentation URL

  ### Bug fixes

  * Chat: Tool cells (SQL, Python, DAX, and others) now stay expanded across remounts and navigation.
  * Chat: Cross-origin artifact downloads now force a blob fetch, fixing silent failures in some browser configurations.
  * PowerBI: Missing member OAuth no longer triggers a full logout; reauth is surfaced inline instead.
  * MCP Servers: Settings modal no longer hangs on "Loading servers…" due to a reactive loop.
  * Settings: Notification preferences can now be updated without prior email-based access.
  * Share links: Org branding is now respected in share link unfurl cards.
  * Model restrictions: Role and org model allowlists are enforced across all chat APIs.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.1" description="May 15, 2026">
  ### Bug fixes

  * Fixed network policy that was blocking internal sandbox health checks for specific environments.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.2.0" description="May 15, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#may-11-17-2026):

  * [Asset origin restrictions and Content Security Policies](/product/changelog#asset-origin-restrictions-and-content-security-policies)
  * [Rich-text editing for Ontology markdown](/product/changelog#rich-text-editing-for-ontology-markdown)
  * Context page refresh on role changes

  ### Bug fixes

  * Chat: Unsent draft text no longer leaks between chats when navigating; each chat retains its own draft independently.
  * PowerBI: Connector auto-enable no longer gets forcibly cleared during connector updates.
  * Ontology: Fixed parameter placeholder for MSSQL/Azure Synapse schema DDL queries.
  * Chat: Safari caret mispaint after inserting an `@`-mention chip via Backspace is resolved.
  * Platform API: Code execution failures now return a consistent response payload with an explicit error field and empty outputs.

  ### Upgrade guide

  `global.internalKey` and `global.sandboxAuthKey` must be secret from now.

  Check your `global.secretsMode`:

  * If you are using `sealedSecrets`, make sure to seal those values using `kubeseal` and then add the value to the `values.yaml` file.
  * If you are using `externalSecrets` or `nativeExternalSecrets`, make sure the secrets are created in Secrets Manager.

  To restrict serving assets from specific domains, as well as use CSP policies, set the `compute.previewDomainUrl`, `compute.previewDomainCertificateArn` and `previewCsp` attributes. You can also set `web.allowedOrigins` to restrict the extra origins allowed for CORS. Setting these attributes will **redeploy** your Load Balancer and you will require to point the DNS to the new one (set a **maintenance window** to perform this operation - it will cause downtime).
</Update>

<Update label="1.1.4" description="May 13, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#may-11-17-2026):

  * [Insert connectors and files as chat chips](/product/changelog#insert-connectors-and-files-as-chat-chips)
  * Paginated chat listing endpoint
  * [Expanded Ontology git providers](/product/changelog#expanded-ontology-git-providers)
  * Per-viewer dashboard breakdown popover
  * Org defaults for dashboard output and private playbooks
  * Ontology enabled by default with seeded connectors
  * Fast mode for Anthropic Opus 4.7

  ### Bug fixes

  * RBAC: API key create/rotate/revoke operations now follow the correct permission flow. Fixed the assume roles issue.
  * Sandbox: Org-installed packages no longer override base dependency versions.
  * Chat: Connector chip correctly attached when inserted after a multi-line paste in Chrome.
  * Shared chat link no longer stuck on a loading skeleton until refresh.
  * Snowflake: Ontology table discovery using native object listing, surfacing objects beyond `INFORMATION_SCHEMA`.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.1.3" description="May 11, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#may-11-17-2026):

  * [REST API v2 endpoints](/product/changelog#rest-api-v2-endpoints)
  * [Per-member OAuth for Snowflake and Databricks ontology](/product/changelog#per-member-oauth-for-snowflake-and-databricks-ontology)
  * Delete playbook from detail page
  * [Opt-in email tool with recipient lists](/product/changelog#opt-in-email-tool-with-recipient-lists)
  * Per-source dashboard cache invalidation
  * Bedrock STS role assumption
  * Configurable proxy trusted-host allowlist
  * Unified default model resolution
  * [Sandboxed PDF processing](/product/changelog#sandboxed-pdf-processing)
  * Patch cell UX refinements

  ### Bug fixes

  * Model picker now populates all org-enabled models (was showing only "System Default").
  * SCIM, desktop download, and Git API routes excluded from the frontend auth catch-all and handled by their own access control rules, allowing these in functionality when enforceAuth: True.

  ### Upgrade guide

  No changes required.

  If you use VPC endpoints with private IPs, you may configure the new `compute.ssrfTrustedHosts` allowlist in Helm values to permit those hosts in outbound request validation.

  If you use Bedrock with cross-account access, the new `bedrock.customRoleArn` and `bedrock.customRoleExternalId` values are available for STS role assumption.
</Update>

<Update label="1.1.2" description="May 7, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#may-4-10-2026):

  * Redesigned share modal with airlock preview
  * [File uploads in chat and stream APIs](/product/changelog#file-uploads-in-chat-and-stream-apis)
  * Automatic ontology migration

  ### Bug fixes

  * Oracle: Fixed missing synonym resolution for connect\_string/wallet auth.
  * Sandbox: Fixed RBAC admin permission enforcement.
  * Share modal no longer fails to re-open after being closed.
  * Numbered list rendering fixed in chat.
  * UX improvements for expired and timed-out threads.
  * Sidebar navigation pinning and back-navigation across panels.
  * Packages settings tab no longer stuck in loading state when empty.

  ### Upgrade guide

  No changes required.

  Recommended update: if you use `global.bedrockGlobalInference`, the attribute will be deprecated in the future. We suggest moving it to `global.bedrock.globalInference`.
</Update>

<Update label="1.1.1" description="May 1, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#apr-27-may-3-2026):

  * [GPT-5.5 and Kimi K2.6 models](/product/changelog#gpt-55-and-kimi-k26-models)
  * Fast mode inference
  * [SAP HANA support](/product/changelog#sap-hana-support)
  * [Expanded connector authentication](/product/changelog#expanded-connector-authentication)
  * [Ontology git sync](/product/changelog#ontology-git-sync)
  * SCIM group linking to system roles
  * OIDC single-tenant role sync
  * Self-healing dashboard workers
  * Playbook owner failure alerts
  * Tool-level RBAC enforcement

  ### Bug fixes

  * Tableau: Retry on expired sessions; fix multi-connector modal selection.
  * PowerBI: Fix stale dataset name resolution; run upfront discovery queries at thread start.
  * Databricks: Fix client credentials auth in SQL execution.
  * SAP HANA: Fix sqlglot transpilation.
  * Auth: Survive backend restarts without forcing re-login; fix logout redirect for `enforceAuth` mode; clear stale cookies on OIDC reauth.
  * Chat: Fix parallel SQL/Python race condition; fix blank parallel tool cells from SDK delta misrouting; disable attach button while streaming.
  * Connectors: Fix domain whitelist save button; fix New API Access button skipping picker; default auth type to token for API providers.
  * Slack: Auto-sync channels; gate admin actions for non-admins.
  * Security: Harden sandbox (CVE-2026-31431); harden console TLS cipher suites; fix xmldom/postcss vulnerabilities.
  * Bedrock: Strip `eager_input_streaming` for Haiku 4.5.

  ### Upgrade guide

  No changes required.
</Update>

<Update label="1.1.0" description="April 23, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#april-20-26-2026):

  * [Dashboards engine rebuild](/product/changelog#dashboards-engine-rebuild)
  * [Ontology library redesign](/product/changelog#ontology-library-redesign)
  * Redesigned assume-roles experience
  * Mark threads as unread
  * Markdown previews in the artifact drawer
  * Connector UI gated on connector write permission
  * Observability billing granularity
  * TLS 1.2 and 1.3 enforcement
  * Automated Helm chart releases

  ### Bug fixes

  * Dashboards: Fix Dash callbacks; fix prefill errors on LLM-created dashboards; fix parameterized queries; fix hot refresh on dedicated workers.
  * Tableau: Retry on expired sessions.
  * Slack: Fix mentions and WhoAmI; chunk blocks to respect 50-block limit.
  * Chat: Fix tool\_result image interleaving in parallel batches; improved chat navigation performance.
  * Sandbox: Reduce lock contention causing deadline exceeded errors.
  * Databricks: Fix client credentials auth in SQL execution.
  * Console: Fix invoice due date timezone and off-by-one.
  * Hourly playbook frequency detection restricted to exclude minute-level schedules.

  ### Upgrade guide

  1.1.0 deprecates several Helm values attributes.

  * `global.aws.useBedrock` deprecated. Remove from the code.
  * `compute.sealedSecrets` deprecated. Use `compute.secretsMode = "sealedSecrets"` instead.
  * `compute.worker` deprecated. Attributes go to another section, called `sandbox` (at the root level like `global`, `compute`, `web`, etc).
    * `compute.worker.computeClass` → `sandbox.computeClass`
    * `compute.worker.machineFamily` → `sandbox.machineFamily`
    * `compute.worker.imageTag` → `sandbox.imageTag`
    * `compute.worker.useInternalSandbox` → remove from the code
  * `compute.constraints.sandbox` deprecated — move sandbox constraints to the `sandbox.constraints` block instead.
  * `global.loopsApiKey` - move to `global.loops.apiKey`.

  Running `helm validate` or `helm install` will validate whether your file is correct, and provide you instructions / deprecation messages where needed.

  If you use **API Connectors** with private IP ranges, please whitelist the corresponding IPs using `Values.compute.ssrfAllowedCIDRs` (CIDR format, comma-separated). Equivalently, you can also enable `Values.compute.ssrfTrustedHosts` with comma-separated URLs.
</Update>

<Update label="1.0.92" description="April 21, 2026">
  ### What's new

  Feature details live in the [Product Changelog](/product/changelog#april-20-26-2026):

  * Slack sender names and View in App
  * Granular per-thread sharing controls
  * Tool restriction controls and admin override
  * [Per-user MCP OAuth tokens](/product/changelog#per-user-mcp-oauth-tokens)
  * Pause playbooks from the editor
  * Copy artifact filenames
  * Ontology file API
  * Usage and billing sidebar permission gating
  * Org logo removal and theme editor polish

  ### Bug fixes

  * Sandbox: Timeout guardrails and proxy error reduction.
  * Connectors: Fix Snowflake role not applied; fix BigQuery regional dataset routing.
  * Chat: Fix connector dropdown direction flip and flicker; fix OAuth prompts hidden by collapsible tool call UI.
  * Settings: Fix dropdowns crashing on click.
  * Dashboards: Fix unpublished changes status mismatch; increase spawn and script timeouts.
  * Auth: Fix cross-org shared link switching.
  * SCIM: Add `Retry-After` header to 429 responses.
  * ACU billing calculation fix.
  * Mobile UI improvements.
  * Security: Critical dependency vulnerability patches.

  ### Upgrade guide

  No changes required.
</Update>
