Skip to main content

On-Prem Release Notes - 2026

v0.178.0 — August 27, 2026

Consolidates changes from v0.178.0 since the previous on-prem stable release (v0.177.0). Platform OSS version: v0.186.2 (unchanged). No stateful component is version-bumped, no persistent volume or on-disk format changes, and nothing in this release is irreversible.

New Features

  • Direct Microsoft Azure AD (Entra ID) sign-in, without Auth0: On-prem deployments can now authenticate users straight against a Microsoft Entra tenant, with no Auth0 application and no Auth0 in the login path — previously the only option was Entra brokered through Auth0. Users sign in with their Entra credentials, and their group membership (including nested groups) resolves to an Unstract role on every login. This is opt-in and off by default: existing installs keep authenticating through Auth0 with no change, and nothing new is rendered or mounted until you enable it. See Helm Configuration Changes below for what to set, and the Unstract Roles Guide for how groups map to roles.

Helm Configuration Changes

  • To turn on direct Entra sign-in (Auth0 installs need no action — leave these alone): set backend.configMap.AUTH_PROVIDER: "azure_ad" and global.sharedConfigs.authAzureAd.enabled: true together, supply AZURE_AD_TENANT_ID, AZURE_AD_CLIENT_ID and AZURE_AD_CLIENT_SECRET in that group (or your own authAzureAd.existingSecret), and set ENABLE_ENTERPRISE_SSO_SETUP: "True" with ORG_NAME and ROLE_MAPPING filled in and ingress.hostLookup.unstract matching the host in global.host.baseUrl. The chart rejects a half-configured pair at render rather than letting it fail at first login. ROLE_MAPPING entries use the Entra group's Object ID with "provider": "waad". Setup, the Microsoft Graph permissions the app registration needs, and the optional AZURE_AD_* tuning values are covered in the enterprise SSO documentation.
  • ENABLE_ENTERPRISE_SSO_SETUP must now be a quoted string: the chart rejects the YAML boolean True/False at render. Unquoted, the value never matched the "True" the chart compares against, so the enterprise SSO setup Job was silently skipped with no error. Installs using "True" or "False" — including the shipped default — are unaffected; quote the value if you hand-edited it unquoted.
  • frontend.imagePullPolicy default changed from Always to IfNotPresent: the setting previously never reached the frontend Deployment and had no effect; it now does. If you deploy the frontend from a mutable tag and rely on a pod restart to pick up a new build, set it back to Always. Pinned tags need no action.

v0.177.0 — August 20, 2026

Consolidates changes from v0.174.0, v0.175.0, v0.176.0 and v0.177.0 since the previous on-prem stable release (v0.173.1). Platform OSS version: v0.186.2 (from v0.179.1).

Plan a longer upgrade window, and check what reaches Redis

Three chart defaults change how this upgrade behaves. No stateful component (RabbitMQ, Redis, MinIO, Postgres, PgBouncer) is version-bumped and no persistent volume or on-disk format changes, so the upgrade is reversible — but review these before you start:

  • Executor worker drain raised 300s → 3660s. A rolling upgrade or scale-down now waits up to ~61 minutes per executor pod for in-flight extractions to finish before terminating it. This is a ceiling, not a delay — idle pods still exit in seconds — but a busy cluster's rollout can take far longer than previous upgrades. Size your maintenance window for the longest extraction you expect to be running.
  • Redis network access is now confined to the release namespace by default. The chart now ships redis.networkPolicy.enabled: true with allowExternal: false plus a namespace-local ingress rule. No pods restart, but anything outside the Unstract namespace that connects to this Redis will lose access on upgrade. See Restricting Redis Network Access — if your cluster does not enforce NetworkPolicy, the policy is accepted and silently ignored, so nothing changes.
  • The connection pooler restarts. TXN_POOL_SIZE doubles from 100 to 200, which rolls the db-proxy pod and briefly drops pooled connections. Confirm your PostgreSQL max_connections has headroom for the larger pool before upgrading.

New Features

  • MCP servers for coding agents: Unstract now hosts two Model Context Protocol servers, so agents can run document extraction as tool calls instead of hand-built HTTP requests — one scoped to a single API deployment and authenticated with that deployment's API key, and one scoped to the organization and authenticated with a platform API key. Neither key works on the other server. See the MCP Server guide for setup.
  • Global API deployment keys: A single API key can now authenticate against several API deployments in an organization — either an explicit set or all of them — instead of minting and rotating one key per deployment. Managed under Settings, with create, edit, rotate and delete.
  • Grouped output for agentic table extraction: The agentic table extractor can now group extracted rows by a section value — nesting line items under each property or invoice, for example — with an optional summary line of totals per group. Grouping is driven by the shape of the project's output schema rather than a separate "Group Key(s)" setting (now removed), supports multiple group keys, and runs inside the main extraction pass instead of an extra pass over every page, so grouped extractions finish faster and cost less. Multi-sheet workbooks pick their sample sheets more accurately, and reasoning models that reject the temperature setting are now supported.
  • Lookups on agentic table prompts: You can now attach a lookup to an agentic table prompt to enrich its extracted table — previously not possible at all. The lookup runs once over the whole table by default; an "Enrich each row separately" option runs it per row, with an up-front cost warning since that means one call per row. Rows that fail to enrich keep their original values and are reported in a summary rather than failing the run.
  • Co-owners for shared resources: Agentic Prompt Studio projects and other shared resources can now have co-owners, so more than one person can manage and edit them. Co-owner addition and revocation send email notifications — see Helm Configuration Changes for the template IDs.
  • Unpublish an exported tool: An exported Prompt Studio tool can now be removed from the registry without deleting the project behind it. A tool still attached to a workflow, pipeline or deployment is refused, and the refusal names what is blocking it. Note that unpublishing is not reversible in place: re-exporting mints a new tool identifier and does not carry over its existing shares, so anything holding the old identifier (saved workflow JSON, API collections, internal docs) must be updated.
  • Paginated list pages: Workflows, Prompt Studio, adapter and connector lists now load a page at a time and search by name across all rows, so these pages stay fast as an organization grows. Adapter and Prompt Studio lists also show created and last-modified times, and the Agentic Prompt Studio project list is sortable with an owner column.
  • MiniMax LLM adapter: MiniMax models can now be connected as an LLM adapter.
  • Newer Amazon Bedrock model families: The OpenAI GPT-5.x, Google Gemma and xAI Grok families hosted on Amazon Bedrock now work — reported by an on-prem customer using openai.gpt-5.6-terra. Model IDs are still entered bare; the adapter picks the right endpoint itself. Guardrails and application inference profiles are unavailable for these models and are stripped with a warning rather than silently appearing to be enforced.
  • Documentation links on every adapter and connector screen: Every Add Connector and Add LLM / Vector DB / Embedding / Text Extractor screen now links to that item's setup page, falling back to its category page.
  • Opt-in LLM prompt caching: Prompt caching for Anthropic and Amazon Bedrock models can be switched on to cut cost and latency where a large document context is reused across many prompts on the same document. It is off by default and changes nothing until enabled — see Helm Configuration Changes.

Fixes & Improvements

  • Execution logs for group- and org-shared users: Teammates who receive a deployment or pipeline through a group share or an organization-wide share now see its runs on the Logs page, which previously came up empty for them. Run logs, log exports and per-file results are now restricted to people the resource was actually shared with, instead of being readable by anyone in the organization holding the link.
  • Shared Prompt Studio projects show model names: Output tiles now show the model name and icon for anyone who can open the project, not just its owner, and Prompt Studio ownership checks validate the person making the request rather than the profile creator.
  • Connector names in agentic project settings are now displayed instead of being left blank.
  • LLMWhisperer V2 line splitter strategy is applied: The strategy chosen on the LLMWhisperer Text Extractor-v2 adapter had never reached the service, so every extraction ran with the default. It now takes effect, and the document's file name appears in LLMWhisperer usage reports. Behaviour change: a stored value outside the supported choices now fails the extraction instead of being ignored — check any adapter configured with a non-standard value before upgrading.
  • Extended Thinking beyond Claude: The "Enable Extended Thinking" control now maps to the reasoning-effort setting for non-Anthropic model families, where it previously had no effect.
  • Single-pass extraction returns a clear error: A model that answers a single-pass extraction with prose or a list instead of structured output now produces an actionable error rather than an unexpected server error, both in the backend and at the internal worker API.
  • Prompt Studio export and deploy: Fetching a response now falls back to the project's default LLM profile instead of failing when the prompt has none; tools exported with LLM Challenge enabled no longer fail validation at deployment; and registry listings keep the back-reference to the Prompt Studio project that produced each entry.
  • Agentic table extraction robustness: Rows continuing across a page break are no longer split into separate records when the model returns the same identifier with different capitalization; single-group summaries fall back correctly; vision-mode output truncation is retried; and orphaned rows are adopted into their group instead of being dropped.
  • API Hub usage tracking: Usage had stopped being recorded, so subscription dashboards no longer reflected the pages processed, with no error surfaced. Header lookups now retry on a cache miss, the completion check no longer races the status write, and usage resolves correctly on shared products where the subscriber differs from the account owning the underlying deployment.
  • MCP requests are no longer blocked by subscription checks: Deployment-scoped MCP calls now pass through subscription validation instead of being rejected.
  • List table presentation: The "Owned By" and "Updated" columns line up across every row on the Prompt Studio, adapter, connector and workflow lists, list titles match the Agentic Prompt Studio project list, and noisy tooltips have been removed.
  • API keys no longer written to logs: The LLMWhisperer and API Hub portals stopped logging customer API keys in plain text — the bridge previously dumped the full request header set on every authenticated request, and the portal logged the decrypted key on the provisioning, rotation and billing paths. Logging-only change; no schema, config or API change.

Helm Configuration Changes

  • OpenTelemetry transport default changed to http/protobuf: otel.configMap.OTEL_EXPORTER_OTLP_PROTOCOL in sample.on-prem.values.yaml now defaults to http/protobuf instead of grpc, and the endpoint example is a full URL on port 4318 rather than host:port on 4317. Action required if you enabled tracing at v0.173.0 with grpc: gRPC does not work reliably with the prefork worker pool the Celery workers use, so switch to http/protobuf and update OTEL_EXPORTER_OTLP_ENDPOINT to the matching URL. See On-Prem Observability & Tracing.
  • Redis ingress confined to the release namespace (new default): redis.networkPolicy.enabled: true with allowExternal: false and a namespace-local extraIngress rule for ports 6379 and 26379. This closes an unauthenticated cross-namespace REPLICAOF path that can turn the instance read-only and flush its keyspace. No operator action is needed to adopt it; see the warning above and Restricting Redis Network Access if you need to widen it again. Note that enabling redis.metrics re-opens the port cluster-wide through the subchart's own metrics rule.

v0.173.1 — July 15, 2026

Consolidates changes from v0.173.1 since v0.173.0. Platform OSS version: v0.179.1 (from v0.178.1).

New Features

  • Mistral embedding adapter: Added a mistral-embed embedding adapter for indexing and retrieval with Mistral's embedding model.

Fixes & Improvements

  • Newer Claude models no longer error on temperature: The deprecated temperature parameter is now stripped for Claude Sonnet 5 and other post-4.7 models that reject it, so prompts against these models run without adapter errors.
  • Output Analyzer shows the profile name: Output Analyzer tabs now display the LLM profile name instead of the underlying LLM name, making profiles easier to tell apart.

Helm Configuration Changes

  • No manual values.yaml changes are required for this release.

v0.173.0 — July 13, 2026

Consolidates changes from v0.173.0 since the previous on-prem stable release (v0.172.0). Platform OSS version: v0.178.1 (from v0.177.7).

Helm Configuration Changes

  • OpenTelemetry tracing is now a single chart flag: The unstract-platform chart can enable OpenTelemetry tracing across all backend, web, and worker services by setting otel.enabled: true and pointing the exporter at your OTLP collector — previously on-prem had no built-in tracing option. The flag defaults to false and the disabled render is unchanged, so no action is required unless you want to turn tracing on. See On-Prem Observability & Tracing for setup.

v0.172.0 — July 6, 2026

Consolidates changes from v0.171.2 and v0.172.0 since the previous on-prem stable release (v0.171.1). Platform OSS version: v0.177.7 (from v0.177.6).

New Features

  • Restrict adapter and connector creation to org admins: A new organization setting lets admins restrict who can create LLM adapters and connectors to organization admins only. When it's on, non-admin members work from the shared adapters and connectors an admin has already set up. The toggle lives in Platform Settings and is off by default, so existing behavior is unchanged until you enable it.
  • Rotate platform API keys via the API: Platform API keys on the full_access tier can now call the key rotation endpoint, so credentials can be rotated through automation instead of only from the admin UI.
  • See your running platform version: The profile page now shows the platform version you're currently on, making it easy to reference the exact version when reporting an issue.

Fixes & Improvements

  • API deployment runs no longer get stuck on staging failures: When an API deployment run fails while staging its input file, the execution is now marked as failed with the error reason instead of appearing to run indefinitely.

Helm Configuration Changes

  • No manual values.yaml changes are required for this release.

v0.171.1 — July 1, 2026

Consolidates changes from v0.170.1, v0.170.2, v0.171.0 and v0.171.1 since the previous on-prem stable release (v0.170.0). Platform OSS version: v0.177.6 (from v0.176.3).

New Features

  • Excel support for agentic table extraction: The agentic table extractor now accepts Excel (.xlsx/.xls) files, including multi-sheet workbooks with per-sheet extraction and code generation.

Fixes & Improvements

  • Agentic table/content extraction robustness: The content extractor now handles LLM output truncation with a split-text retry, and code-generation prompts explicitly list allowed modules to prevent retries triggered by disallowed imports.
  • Structure tool non-object output: The structure tool no longer crashes when single-pass extraction returns a value that is not a structured object.
  • Lookups: An orphaned assignment no longer blocks lookup deletion, and switching the extractor now correctly re-extracts.
  • DRF security hardening: Django REST Framework bumped to 3.17 to address a vulnerability; the automatic UniqueTogetherValidator is dropped on upsert/catch serializers, and the central DRF error path now surfaces non_field_errors and names resources in 404 responses.
  • Long S3 presigned URLs: URLValidator max_length raised to 8192 so long Amazon S3 presigned URLs validate successfully instead of being rejected.
  • Frontend rendering and performance (UN-3185): Restored global Prism initialization for prismjs add-ons, fixing blank Prompt Studio detail and HITL pages; deterministic single-bundle CSS cascade with asset gzip; lazy-loaded verticals and LLMWhisperer route pages; deferred login-route chunks with fingerprinted-asset caching; and Edit LLM Profile modal/layout fixes.
  • LLMWhisperer adapter env knobs are now surfaced in the workers sample.env.

Helm Configuration Changes

  • MinIO object-storage credentials (fixes 403s): MinIO server credentials now follow the storage block, and the MinIO HA tenant boots correctly even when root credentials contain stray quotes — both resolving intermittent 403 errors on object storage.
  • INTERNAL_SERVICE_API_KEY and DJANGO_SECRET_KEY now ship as chart defaults and have been removed from the on-prem values file. Required: set your own secure values for both keys before deploying — the chart-bundled defaults are identical across every download and must not be used in any environment.
  • Opt-in Redis Sentinel cold-start guard overlay to harden Redis Sentinel HA start-up.
  • Opt-in PriorityClass for critical stateful HA components (Redis, RabbitMQ, MinIO), so they are scheduled ahead of lower-priority workloads under resource pressure.
  • Single global.nodeSelector knob: one node-selector value is now bridged to the Bitnami Redis/RabbitMQ/MinIO subcharts via Sentinel, replacing per-subchart node-selector configuration.
  • Enterprise SSO setup Job is now pinned to a fixed backend image tag instead of a floating tag.
  • Decommissioned services: prompt-service, rentroll-service, tool-structure, and the legacy SDK1 prompt module are removed — fewer images to mirror for air-gapped installs. On upgrade, remove any blocks referencing these services from your custom values.yaml overrides.

v0.170.0 — June 24, 2026

Consolidates changes from v0.168.0, v0.169.0, v0.169.1, v0.169.2 and v0.170.0 since the previous on-prem stable release (v0.167.0).

New Features

  • User groups and group-based sharing: Users can now be organized into groups, and projects, adapters, and resources can be shared with an entire group instead of one user at a time. Group-based sharing works across Prompt Studio, Agentic Prompt Studio, and workflows, and adapters shared with a group can be used directly in Prompt Studio and workflows.
  • NVIDIA Build and OpenRouter adapters: New OpenAI-compatible LLM and embedding adapters for NVIDIA Build and OpenRouter, expanding the set of model providers you can connect.
  • Clearer adapter configuration forms: Adapter setup forms now display their fields in a defined order, with the Amazon Bedrock adapter surfacing its authentication fields more prominently.
  • Automatic default LLM profile in Prompt Studio: New Prompt Studio projects now start with a default LLM profile created for you, and the document-upload tooltip is clearer about what to do next.
  • Prompt Studio project transfer keeps per-prompt settings: Transferring a Prompt Studio project now carries each prompt's table and agentic extraction settings along with it, so a transferred project behaves the same as the original without manual reconfiguration.
  • Batched, failure-only notifications: Notifications can now be grouped per time window, with an option to be notified only when runs fail.
  • Quick access to execution logs: Running a workflow now shows an alert with a direct link to its execution logs, so you can jump straight to the run details.

Fixes & Improvements

  • Adapters in use are protected from deletion: You can no longer delete an adapter that is still used by a workflow tool instance, preventing workflows from breaking unexpectedly.
  • Google Drive connector: The Google Drive folder browser no longer breaks when a folder contains Google Docs files, and Google Drive connections now work reliably across all execution workers.
  • Correct LLMWhisperer adapter key label: The API key field on the LLMWhisperer adapter is now labeled "LLMWhisperer Key" instead of the misleading "Unstract Key".
  • Org admins and service accounts see all lookups: Organization admins and service accounts now have visibility into every lookup in the organization.
  • Cleaner sharing dialogs: Organization admins no longer show up as redundant entries in resource sharing lists or the share dropdown, and project shares now also apply to exported Prompt Studio tools.
  • Last org admin protection: The last remaining organization admin can no longer accidentally demote themselves.

Helm Configuration Changes

This is the largest chart-configuration window of the year — review before upgrading from v0.167.0.

  • global.sharedConfigs secret/configmap restructure (breaking): per-service secrets and configmaps are replaced by shared templates rendered as <release>-<config>, consumed via per-service additionalConfigs/envFrom. Values are consolidated into a single sample.on-prem.values.yaml (plus base values.yaml) and the old sample.on-prem.secret.yaml is removed. Migrate any custom secret overlay into global.sharedConfigs; each shared config still accepts an existingSecret override. A derived databaseAliases secret (PG_BE_*, DB_USERNAME, REDIS_USERNAME) now fails the render fast if its inputs are missing.
  • RabbitMQ bumped to 4.1.3-management (was 3.13.7-management): the broker rolls with a brief downtime on upgrade and cannot be downgraded once volumes are at the 4.x format. If you self-mirror images, pull the new tag before upgrading.
  • Single image registry knob — global.image.registry: set once to redirect every chart image (core services, all workers, init/tool images, redis, minio + minio-mc, rabbitmq, pgbouncer, libreoffice) to your private registry. Ensure the mirror is complete before upgrading air-gapped/ECR installs.
  • Image pull secrets consolidated onto global.imagePullSecrets: the gcr.registry block is removed (.Values.gcr.* no longer exists). global.sharedConfigs.imageRegistry.IMAGE_PULL_SECRET_NAME now defaults to null and is derived from the first global.imagePullSecrets entry — move any gcr.registry.name value there. The in-cluster RabbitMQ broker now also receives global.imagePullSecrets (fixes ImagePullBackOff on private-registry brokers).
  • Optional automated enterprise SSO group-to-role mapping: new backend configMap keys ENABLE_ENTERPRISE_SSO_SETUP (default "False"), ORG_NAME, and ROLE_MAPPING (default "[]") run a gated one-time Job that declaratively reconciles IdP group → Unstract role mappings on install/upgrade. An empty ROLE_MAPPING clears all mappings. See the Unstract Roles Guide for setup.
  • list-onprem-images.sh is no longer bundled in the chart: download the unified script from https://docs.unstract.com/unstract/files/list-onprem-images.sh and run it with unstract as the target argument (./list-onprem-images.sh unstract …) to enumerate the images to mirror. See the Helm Chart Container Images guide for full usage.

v0.167.0 — June 1, 2026

Consolidates changes from v0.166.0 and v0.167.0 since the previous on-prem stable release (v0.165.0). Platform OSS version: v0.172.0.

New Features

  • AWS Bedrock Guardrails: The Amazon Bedrock LLM adapter now accepts a Guardrail identifier and version, applying the configured AWS Bedrock Guardrail to prompts and responses for content filtering and safety enforcement.
  • Full document text in API responses: API deployment responses can return the full extracted text of the input file alongside the structured output, removing the need for a separate call to fetch source text.
  • Frontend request ID propagation: The frontend now forwards a request ID through the request chain and surfaces it on error notifications, enabling end-to-end correlation of failures from UI to backend logs.

Fixes & Improvements

  • Adapter key persistence on tool instances: adapter_key is now stamped alongside adapter_id_key when a tool instance is PATCHed, fixing cases where an adapter change was not fully persisted on the tool instance.
  • Apostrophes in Platform API Key names: Platform API Key name and description fields now accept apostrophes, so values like Acme's key are no longer rejected at validation.
  • LLMWhisperer: portal/bridge image bumped to v0.26.0.

Helm Configuration Changes

  • helm-schema-gen plugin is now registered in the marketplace and an empty-anchor YAML issue in the chart values was fixed, so values.yaml schema generation works without manual anchor patching. No action required unless you maintain a fork of the chart values.

v0.165.0 — May 27, 2026

Consolidates changes from v0.164.0 and v0.165.0 since the previous on-prem stable release (v0.163.0).

New Features

  • Agentic Prompt Studio onboarding: A sample project, guided empty states on each step, and a dashboard CTA accelerate first-run discovery of Agentic Prompt Studio. Onboarding template assets are bundled with the release and the stepper is gated sequentially.
  • OpenAI-compatible LLM adapter: A dedicated adapter for any provider that speaks the OpenAI API (self-hosted gateways and OpenAI's own gpt-5 / o-series models), separate from the standard OpenAI adapter. Zero-cost tracking is wired in for free-tier endpoints.
  • Prompt Studio HITL feedback indicator: Prompt Studio surfaces a change indicator when a prompt's output has been edited via the HITL feedback loop. A new plugin slot lets enterprise plugins customize the indicator.

Fixes & Improvements

  • Org admin access to all organization resources: Org admins now have full access to every resource in their organization — Prompt Studio projects, adapters, and shared ProfileManager profiles — without each resource being explicitly shared with them. The Python SDK exposes equivalent service-account-level access for automated org-to-org migration flows.
  • Large file uploads in Prompt Studio: File uploads stream directly to remote storage instead of being buffered in backend memory, removing the backend-memory ceiling on document size.
  • Default triad adapters for invited users: Invited users now inherit the organization's default LLM, embedding, and vector DB adapters on first login, removing the manual adapter-selection step.
  • Table extraction — cross-page orphan rows: Subtable values placed by the LLM into the main values payload are now merged into the parent row across page boundaries, fixing orphaned rows on multi-page tables.

Helm Configuration Changes

  • ENABLE_HIGHLIGHT_API_DEPLOYMENT is now enabled by default in the on-prem chart values, surfacing source-document highlighting for API deployments. Override in your values.yaml if you previously kept it off.
  • bulk-download worker: pinned to a single replica with HPA disabled. If your values.yaml previously enabled autoscaling for this worker, the override is now ineffective — review and remove it.

v0.163.0 — May 18, 2026

New Features

  • Lookups V2 — post-extraction LLM enrichment for Prompt Studio: A new enrichment stage runs additional LLM lookups on already-extracted data, letting you cross-reference and normalize values without a second extraction pass. Includes lookup reference file upload and sharing-notification emails when a lookup is shared with another user. See Look-Ups for details.
  • AWS Bedrock bearer token authentication: Bedrock LLM and embedding adapters now support AWS_BEARER_TOKEN_BEDROCK authentication, an alternative to static keys and IRSA for environments that prefer a simpler, long-term API key over provisioning an IAM user. Note: short-lived/refreshing tokens are not supported.
  • Workflow execution log export: The workflow execution logs modal can now export logs as CSV or JSON for offline analysis and sharing.
  • full_access permission tier: A new full_access permission tier authorizes DELETE operations on the Platform API.

Fixes & Improvements

  • Lookups: fixed a 500 error on lookup reference file upload; the public share viewer now skips lookup probes and defaults to the Enriched view; restored Prompt Studio public sharing after the Lookups V2 wiring; fixed the empty Default tab in Prompt Studio Combined Output.
  • Tool-run logs: cloud plugin tool-run logs now stream to the workflow execution UI; log output was trimmed and clarified, and log_events_id is restored on tool-run dispatch so logs persist even without an active UI subscriber.
  • Adapters: deprecated sampling parameters are stripped for Claude Opus 4.7; fixed the Bedrock bearer token being lost on LLM.complete() re-validation.
  • Usage metrics: embedding usage records are flushed on the indexing path, line-item executor usage records propagate up the prompt chain, and single-pass lookup metrics are aggregated under a single lookup_llm list.
  • Observability: worker logs are now bound to request_id and trace context for end-to-end correlation.

Helm Configuration Changes

  • New REMOTE_LOOKUP_FILE_PATH backend config (# <REQUIRED>) — remote storage path for Lookups V2 data (e.g. <bucket-name>/lookups). Set this before upgrading.
  • Redis and MinIO now create dedicated ServiceAccounts by default (serviceAccount.create: true, automountServiceAccountToken: false), so the chart works out of the box on clusters whose admission policies prohibit the default service account.
  • The worker-executor-v2 baseline is now part of the chart defaults, with db-proxy PodDisruptionBudget alignment.
  • IRSA service accounts are now attached to S3-touching worker deployments.

v0.162.0 — May 11, 2026

New Features

  • HITL audit logging, change tracking, and statistics: Comprehensive audit trail for Human-in-the-Loop reviews — captures per-leaf JSON diffs, classifies row add/delete operations on list-valued fields, and surfaces edit markers in the audit UI.
  • Agentic table extractor plugin: New multi-agent, LLM-powered table extraction plugin (agentic_table_settings_v2) for complex tabular documents.
  • Gemini embedding adapter for Google AI Studio: New embedding adapter with gemini-embedding-001 as the default model. See Gemini embedding adapter for details.
  • DISABLE_SSO_IDP_AUTHORIZATION flag: New configuration flag to control SSO IdP authorization behavior for user management. See Enterprise SSO — On-Prem for details.
  • Live tool-run log streaming: Tool-run logs now stream into the workflow execution UI with markdown rendering.
  • MinIO ILM lifecycle rules codified in Helm: Object lifecycle (ILM) rules for MinIO are now part of the Helm chart, enabling automated cleanup without manual mc commands.

Fixes & Improvements

  • HITL: workflow deletion is no longer blocked when audit logs exist; restored the change history drawer; fixed audit plugin CSS that broke the adapter modal layout.
  • S3 connector: lists only buckets the configured credentials can actually browse and drops cross-region buckets from the picker.
  • SharePoint connector: more reliable site_url/drive_id persistence and safer OAuth token refresh — fewer re-auth prompts on long-running pipelines.
  • LLM & embedding reliability: unified retry logic across LLM and embedding providers reduces transient failures during prompt runs and indexing.
  • CORS: SocketIO and Django now accept wildcard subdomain origins, making multi-tenant subdomain deployments work out of the box.
  • Observability: workerExecutorV2 is now wrapped with OpenTelemetry auto-instrumentation, so worker spans show up alongside backend traces.

Helm Configuration Changes

  • New plugin config agentic_table_settings_v2 added to on-prem configuration and Docker build (required to enable the agentic table extractor).
  • New DISABLE_SSO_IDP_AUTHORIZATION environment flag for SSO user management.
  • MinIO ILM lifecycle rules are now codified in the Helm chart — review existing manual ILM policies before upgrading to avoid conflicts.
  • Removed unused MODEL_PRICES environment variables from platform-service charts.

v0.159.4 — May 20, 2026

Hotfix on the v0.159.3 line. Does not pull in features from v0.160.x–v0.163.x.

Security

  • litellm CVE-2026-42208 (UN — OSS HOTFIX): Bumps litellm from the Zipstack GitHub fork (1.82.3) to 1.83.10 from PyPI, clearing the SQL injection in litellm.proxy auth (affects 1.81.16–1.83.6). Unstract does not use litellm.proxy, but third-party scanners flag the installed package regardless.

Helm Configuration Changes

  • No new variables or required secrets.

v0.159.3 — May 7, 2026

New Features

  • AWS Bedrock IAM Role / Instance Profile authentication: New Authentication Type selector on the Bedrock LLM and embedding adapters lets EKS-hosted deployments authenticate via IRSA, instance profile, or task role — no static AWS access keys required. When the IAM Role mode is selected, boto3's default credential chain takes over, picking up the pod's ambient identity. See the AWS IRSA Setup for EKS Deployments guide for end-to-end setup including OIDC provider association, IAM role + trust policy creation, and verification.

v0.158.4 — March 27, 2026

New Features

  • AWS S3 IRSA authentication: Support for IAM Roles for Service Accounts (IRSA) on both S3 storage and S3 connectors, eliminating the need for static credentials in EKS deployments
  • HTTP session lifecycle management: Managed HTTP session pooling for workers API clients, improving connection reuse and reliability

Fixes & Improvements

  • Added TTL to API HITL settings and fixed NaN TTL display
  • Security hardening: cookie security attributes and XSS prevention headers
  • Added input validation and Content Security Policy (CSP) headers across backend and frontend
  • Frontend CSP adjustments for RJSF form rendering (unsafe-eval) and PDF viewer (blob:)
  • Switched litellm to Zipstack fork after PyPI quarantine
  • Upgraded litellm to 1.82.3 to fix Azure OpenAI connection errors
  • Monkey-patched litellm Cohere embed timeout for Bedrock embeddings
  • Added LLMCompat bridge class to fix retriever LLM compatibility with llama-index
  • Handle LLM refusal responses to prevent NoneType errors
  • Include adapter name in error messages for easier debugging

Helm Configuration Changes

  • Hardcoded image references now configurable via values.yaml — previously hardcoded container image paths can be overridden for air-gapped or custom registry deployments

v0.158.0 — March 19, 2026

New Features

  • Platform API keys for programmatic access to the Unstract Platform API. Organization admins can create, list, update, rotate, and delete API keys via the UI under Platform > Platform API Keys. Keys provide Bearer token authentication for all Platform API endpoints. See Platform API Keys documentation for details.
  • Service account access bypass for pluggable apps, enabling automated integrations without manual permission grants
  • Agentic Prompt Studio (beta): new backend and frontend for agentic document extraction workflows. See Agentic Prompt Studio for details.
  • HITL enhancements: sidebar navigation, queue deletion, nested table support, fetch-specific for targeted document review, reviewer name display on in-review documents, and default TTL changed from unlimited to 90 days. See HITL documentation for details.
  • CSV, TXT, and Excel file support in Prompt Studio file converter
  • Dashboard metrics system with plan banner, welcome card, and subscription usage tab
  • Card-based layout for Pipelines and API Deployments listing pages
  • Profile page now displays role and organization info
  • 1M context support for Anthropic LLM adapters
  • Vertex AI vertex_location support for regional endpoint configuration. See Gemini Pro adapter for details.
  • total_pages_processed exposed in execution API response and worker destination metadata
  • SharePoint/OneDrive connector for filesystem integration. See Connectors for details.
  • Azure AI Foundry adapter for LLM access
  • Redis Sentinel HA support with dual-mode configuration for backend, Celery, cache, tool containers, sidecars, and manual review queue. See HA Deployment for details.
  • RabbitMQ HA with configurable quorum queues. See HA Deployment for details.
  • MinIO HA support via optional MinIO Operator. See HA Deployment for details.
  • OAuth product scope added to login/signup authorization requests
  • Dynamic plugin loading infrastructure for enterprise components, migrations, and rule engine
  • Sidebar expand-on-hover UX improvement
  • Documentation link popover for connectors in the UI
  • Workflow deletion errors now show specific pipeline/API deployment names

Fixes & Improvements

  • HITL reliability: PostgreSQL count mismatch and slow query optimizations, bulk queries with lrange, soft-delete for DB-synced records, TTL display in days, rule engine nested array flattening fix, API rules evaluation fix after removal, add-row race condition fix, and queue metadata backfill migration
  • Custom data support added to single pass extraction; fixed string values being wrapped in extra quotes. See Custom Data for details.
  • PostgreSQL race condition in concurrent table creation handled
  • Memory and resource leak fixes: database cursor closure in subscription usage handler, platform-service resource leaks
  • Ollama adapters fixed post LiteLLM migration. See Ollama adapter for details.
  • Packet processing final fetch response API fix
  • Role update failures for existing users resolved
  • LLMWhisperer API key lookup database fallback added; client retry backoff configuration added
  • SIGTERM trap handlers for graceful container shutdown
  • Worker API timeout increased to prevent stuck executions during cron storms
  • Vertex AI thinking config skip for pro models when disabled
  • Azure OpenAI cost tracking now uses actual model name
  • Worker query optimization and retry configuration improvements
  • fsspec directory listing cache fix on connectors (including Azure listings expiry regression)
  • SharePoint walk() now supports detail=True
  • Secure cookie settings and CSRF cookie secure attribute enabled
  • Forbidden email handling in Auth0 OAuth callback
  • PDF viewer error fallback when document fails to load
  • Frontend migrated from Create React App to Vite
  • Export reminder state persists across page reloads
  • HTTP 409 returned when tool image not found in container registry
  • Legacy Celery file processing workers and dead code removed

Helm Configuration Changes

  • Redis Sentinel HA: new REDIS_SENTINEL_MODE env var added to prompt, runner, and multi-az values for dual-mode (standalone/sentinel) support
  • RabbitMQ HA: configurable quorum queues support added
  • MinIO HA: optional MinIO Operator support (operator deployed separately)
  • HITL worker secrets added to on-prem secret template
  • Agentic Studio apps and URLs added to on-prem configuration
  • Backfill metrics enabled by default for on-prem deployments
  • MODEL_PRICES_TTL_IN_DAYS changed from 7 to 1
  • Legacy worker templates removed: useUnifiedWorkers toggle and workerLogging config no longer needed