Dalet is excited to present the release of Dalet Flex 2026.9.0.
This release of Dalet Flex provides the new features, quality and security enhancements, bug fixes, and other changes listed below.
Required Versions for Unified Installer for FlexXtend
Xtend-flex-unified-installer: 4.0.49
Plugins Removed from Flex Enterprise
These legacy plugins have been completely removed from the Dalet Flex codebase from 2026.9.0.
Enterprise plugin to be removed
Deprecated in
Migration advice
External Script (obsolete)
2021.12.0
Set the flex/shared/featureToggles/groovyScriptJarImportsEnabled Consul KV to true; use "JEF Script" action with "External Script" config
External Script Decision (obsolete)
2021.12.0
Set the flex/shared/featureToggles/groovyScriptJarImportsEnabled Consul KV to true; use "JEF Script Decision" action with "External Script"
External Timed Script (obsolete)
2021.12.0
Set the flex/shared/featureToggles/groovyScriptJarImportsEnabled Consul KV to true; use "JEF Script" timed action with "External Script" config
Wait for External Script (obsolete)
2012.12.0
Set the flex/shared/featureToggles/groovyScriptJarImportsEnabled Consul KV to true; use "JEF Wait for Script" action with "External Script" config
Find and Signal Named Signal Wait (obsolete)
2021.12.0
Use "JEF Signal" action
HTTP Message (obsolete)
2022.8.0
Use "JEF HTTP Message" action
HTTP Request Message (obsolete)
2022.8.0
Use "JEF HTTP Message" action
Dalet Flex
New Features
Implement a DaletAISpeechToText JEF Plugin for AI Open Source Transcription
This version of Dalet Flex introduces the new dalet-ai-speech-to-text JEF Plugin, providing native, self-hosted AI transcription and translation workflows in Dalet Flex powered by dalet-ai-service.
Plugin Information
You can configure and use this new plugin as an alternative to the existing media-cortex-speech-analysis plugin:
Action Type: Analyse
Plugin Identifier: dalet-ai-speech-to-text
Backend Engine: Self-hosted dalet-ai-service
Action configuration
Key Features & Capabilities
Powered by dalet-ai-service: Communicates directly with the dalet-ai-service REST and event endpoints for AI transcription and translation execution.
Live & Growing Stream Processing (HLS / MPD): Leverages RabbitMQ Quorum Queues to process real-time caption streams from live ingests with progressive millisecond-precision timeline annotations.
Native Audio Translation: Configure targetLanguage directly within the action to transcribe and translate speech to a different language in a single step.
Automatic Subtitle Asset & Output Generation:
Single Child Subtitle Asset Creation per Execution: Creates and attaches a single child Subtitle Asset linked directly to the parent master asset per job execution.
Priority Rule: If both SRT and TTML output formats are enabled, the Subtitle child asset is created for the SRT format only (application/x-subrip). If only TTML is selected, the child asset will be created for TTML (application/ttml+xml).
Multi-Format Export: Supports file export for JSON, SRT, TTML, and TXT with dynamic, parameterized file naming.
Timeline Annotation Management: Option to clear prior annotations before applying newly generated transcripts.
Storage Resource Configuration: Uses Flex Storage Resource instead of raw VFSLocation, resolving vfsLocation and secretUuid automatically for secure storage operations.
Platform & Deployment Prerequisites
Consul Configuration: Ensure flex/dalet-ai-service/platform is set to FLEX.
Support advanced multilingual transcription and translation
This version of Dalet Flex introduces support for advanced multilingual transcription and translation workflows in the Dalet Flex platform and in dalet-ai service APIs. Using Groovy plugins to extend the transcription functionality, you can specify an output target language for new transcription requests to ensure that transcriptions are delivered in your preferred language regardless of the original media language. If the source language differs from the requested output, the system automatically translates the transcription.
This functionality is supported in local transcription and Speechmatics transcription. The existing /metadata-analysis/translate-text endpoint uses local models for translation support.
API to translate for transcription
The new parameter outputLocation.targetLanguage has been added.
The language format is in ISO-639 or BCP 47 languages in full form case insensitive (ex, german, Arabic, Tamil).
This is supported for both Speechmatics and local-model transcription.
If the target language is non-english, the translation engine configured at flex/dalet-ai-service/translate/defaultEngine is used.
The json output response will contain the translated transcripts under the same key captionResults we used to get the transcriptions along with the original text available under _original_text. ttml, srt, and text contain the translated text only. On the translated path, captions are segment-level (no word-level timing).
Example
curl -X POST --location 'http://localhost:18171/jobs' \
--header 'Content-Type: application/json' \
--data '{
"externalId": "Transcribe-12345",
"job": {
"jobType": "AIJob",
"jobProfile": "SpeechToText",
"jobInput": {
"jobInputType": "SpeechToTextInput",
"engine": "Model/openai/whisper-large-v3",
"translationEngine" : "Model/<one of supported models>", //Newly added
"diarization": "speaker",
"inputFile": "<file in VFS OR S3 signed url specification - existing>",
"outputLocation": {
"jobOutputType": "SpeechToTextOutput",
"targetLanguage" : "french", //Newly added
"json": "<file in VFS OR S3 signed url specification - existing>",
"ttml": "<file in VFS OR S3 signed url specification - existing>",
"srt": "<file in VFS OR S3 signed url specification - existing>",
"text": "<file in VFS OR S3 signed url specification - existing>"
},
"language": "en" // optional
}
}
}'
API to do synchronous translation using local models
The engine parameter is optional if the consul KV flex/dalet-ai-service/translate/defaultEngine is set. If the engine is not provided in the request, the configured default engine is used. In this example, the English text tis sent to the dalet-ai-service and translated into French using the specified Gemma engine.
Example
curl --location '<dalet-ai-service base url>/metadata-analysis/translate-text' \
--header 'Content-Type: application/json' \
--data '{
"text": "There are many different ways to organize a paragraph The organization you choose will depend on the controlling idea of the paragraph.",
"sourceLanguage": "en",
"targetLanguage": "fr",
"engine": "Model/google/gemma-3-4b-it"
}'
General Details (applicable for both APIs)
Supported local models are:
facebook/nllb-200-distilled-600M
google/gemma-3-1b-it
facebook/nllb-200-distilled-1.3B
utter-project/EuroLLM-1.7B-Instruct
meta-llama/Llama-3.2-3B-Instruct
google/gemma-3-4b-it
LLaMAX/LLaMAX3-8B-Alpaca
utter-project/EuroLLM-9B-Instruct
The default translation can be set under the existing KV flex/dalet-ai-service/translate/defaultEngine, where the value will be Model/<Model Name from the above list>.
To use some of the models, you need explicit access from Hugging Face. Get the token with the model access and set it under `flex/dalet-ai-service/huggingface/token`
Known Issues
When using CPU, the synchronous call /metadata-analysis/translate-text that uses local model will fail as it takes time to load and run. In such cases one of the below possibilities will help:
Increase the timeout for the serviceOR use GPU for dalet-ai-service.
Caveats:
- The models LLaMAX/LLaMAX3-8B-Alpaca and utter-project/EuroLLM-9B-Instruct are fairly big. They require at least 32GB of RAM or 24GB GPU VRAM (in addition to the default 14GB RAM allocated to dalet-ai-service).
- facebook/nllb-200-distilled-600M and facebook/nllb-200-distilled-1.3B has reasonable performance on English and European languages.
- google/gemma-3-1b-it can be used with default 14GB RAM without GPU (but will be slow).
Add granularity for controlling role permissions in FlexMAM
From this version of Dalet Flex, FlexMAM shows/hides controls for UI elements based on Role permissions assigned to Users/Groups. The UI elements that are controlled are:
Improve flex-panel-app – launch workflow wizard
As part of an initiative to replace and improve the flex-panel-app, the launch workflow part of the flex-panels app has been implemented in the flex-wizard-app. Flex-wizard-app uses a modern framework that supports quick and easy updates. In this version of Dalet Flex, flex-wizard-app is used to launch workflows using single and multi page wizards.
Metadata fields used in the new wizard app have a new look and support the same functionalities as fields in metadata forms in FlexMAM. Interdependent fields or metadata field run rules allow you to select values, and depending on those values, the field sets properties for other metadata fields. The metadata forms in the new wizard app follow the same logic for interdependent fields as for asset metadata forms.
To always display a field, use set-visible value="true"/ setVisible: true.
To display a field only when another field has a certain value, use set-visible value="false"/ setVisible: false.
Language support has been added to flex-wizard-app. The active language from FlexMAM is passed to the wizard and the UI translates based on that parameter.
Buttons, field values and messages are translated.
Placeholder text, such as “Add text” in the Metadata field, is translated to the selected language. When the language is changed, the placeholder text changes to the correct translation.
NOTE: Field labels are set when creating the metadata definition and cannot be translated dynamically. Information retrieved from the downstream system (Enterprise) is not translated.
Dalet Cut
New Features
Automatic tracking of Point of Interest for social media content
From this version of Dalet Flex, Cut Video supports automatically tracking a Point of Interest and automatic aspect ratio reframing for social media content.
In Cut Video, a new Effect, Smart Tracking has been added.
Select the segment containing the point of interest to track.
1. Click the Select tracking region icon, .
2. Define the Point of Interest in the Preview window.
3. Click the Track selected object icon, .
To avoid exposing empty areas outside the source media, if the tracked object reaches the edge of the source frame, movement is limited and the Point of Interest may no longer be perfectly centered, but the entire output frame remains filled with valid image content
To remove auto tracking, right click on the segment and select Stop Auto tracking.
NOTE: The effect is only enabled when one of the specialized aspect ratios is selected (9:16, 1:1, 2:3,4:5)
Ingest Portal
New Features
Display a Target view in Ingest Portal – additional functionality
Indicate a filter is applied
When a filter is applied in the Target/Source tab, click on the magnifying glass to view the Source/Target tabs. An orange dot is displayed on the icon to indicate that a filter is applied.
Crash Record
You can start a Crash Record from the Targets tab, select the Source to connect to.
Target Info Panel
Click on a recording job to display the target info panel. The Source field displays the Source connected to the Target as a clickable link.
Click on the link to jump to the recording job in the Source tab.
Work with a FIFO channel
In Target view, the FIFO label is displayed on a FIFO channel and you can start and stop a FIFO recording.
NOTE: You cannot create a Crash recording or a Scheduled recording on a FIFO target.
You can extract a recording from the FIFO channel from Target View.
Display video preview for FIFO channel in Info Panel
From this version of Dalet Flex, you can preview the content of a FIFO recording directly in the info panel of the FIFO channel. Click on the red line in the FIFO channel to open the info panel and view the preview. You can view the preview from both the Source and Target views.
Jump to FIFO asset from Ingest Portal
From this version of Dalet Flex, you can jump to the FIFO asset that is recording in Ingest Portal. Click on the red line in the FIFO channel to open the info panel and click on the Go to Asset icon; the Summary Panel for the FIFO asset opens in Ingest Portal. The Go to Asset link is available from both the Source and Target views.
Flex Xtend
New Features
Technical improvements - Refactoring Oreo
From this version of Dalt Flex, Oreo has been consolidated into a single, unified running instance that simultaneously serves all Adobe integrations and Dalet MAM flavors (Pyramid and Flex). The single instance manages concurrent connections and queues asynchronously, allowing background AME rendering while continuing to work in Premiere without process collisions and improving performance.
This is a technical improvement that is mostly transparent apart from these changes:
Every command processed by Oreo is tagged with the originating client identifier, visible directly in the logs.
In Task Manager (Windows)/Activity Monitor (macOS), only one running Oreo process rather than multiple separate executables is displayed.
Debug logging is set as default and from the Oreo system tray / taskbar icon, you can now directly access Oreo logs, Frontend logs, and AME logs.
Improve Save and Render workflow consistency
Improvements have been made to ensure that in the Save and Render workflows the fcpxml/prproj/media asset that are selected when clicking the save/render button are used regardless of which sequence is active in Premiere pro when Flex Xtend actually triggers the workflows.
This improvement is implemented for Save/Local Render/Remote Render/Check In.
Configure Multi-Sequence/Single-Sequence Save and Render Behavior
To support workflows that do not support Adobe Premiere projects (PRPROJ) that contain multiple sequences, a configurable option has been added in the General section in Flex Xtend settings. When selected, the option prevents users from saving or rendering a Premiere project if the project contains more than one sequence.
By default, this option is not selected and users can save and render a project regardless of how many sequences there are in the project.
When this option is enabled, Flex Xtend validates the project before triggering the save or render process. If more than one sequence is detected, the action is blocked and a clear message is displayed.
Changelog
2026.9.0
Enhancements DaletFlex
Cleanup post WildFly/Hibernate upgrade.
FFP job framework support for detecting and processing input files and folders that are growing/live sources.
Update Workflow in Solution Package for FIFO Hotfolder Extract Support.
FIFO asset: Update the Index Elastic service to support indexing and searching FIFO assets by indexing the fifo flag field.
Xtend Flex: Ensure no delay in displaying AME instance availability when one instance times out.
Ingest Sites/Sources/Targets: Ensure same behavior forAPI calls: GET /api/ingestSites/{id} & GET /api/ingestSites.
Override model cache directory for AI model downloads from env AI_MODEL_CACHEDIR.
Support to specify the device for embedding models using consul KV flex/dalet-ai-service/embedding/device with possible values of CPU | CUDA. Default value is CPU.
Add secondary sort to entries in Owner / Created By on firstname.
Support ACL events for the Event handler. ACL Added, ACL Modified, and ACL Deleted) are generated for both Object Types and Assets.
HotFolder service - set default deploymentMode to SCAN.
Expose REST endpoint to read flex-hotfolder:fileItemHousekeeping Redis status to check housekeeping progress without direct Redis access (upgrade tooling support).
Fixed Issues DaletFlex
Fixed an issue where remote AME is stuck with a load even when there are no jobs and can only be cleared by manual restart of AME. When there are no running or queued jobs in AME, the load should reset to 0 automatically.
Fixed an issue where Flex Panel delays displaying AME availability when one instance times out.
Fixed an issue when to enabling S3 storage resource that uses a VPC endpoint URL.
Issue with JAE permissions. Issue fixed by adding more permissions to the default whitelist.
Fixed a padding issue with App Switcher UI when more than N number of apps appear.
Fixed an issue where the JEF Copy/Move action performs copy or move operations even if the user lacks ACL write access on the resource. An appropriate error message is displayed if the user does not have ACL read_write access and if the user does not have Role permissions.
Fixed an issue where hot folder import is failing when there is space in the front and end of the input file name.
Fixed a space trimming issue that occurs when downloading files uploaded via webtransfer with space in the front and end of file name.
Fixed an issue where the GCS import action is failing when user is trying to import a file that has already been uploaded via webtransfer with user has space in the front and end of file name and folder name.
Ingest Portal: Fixed an issue where the preview of extracted files is not visible in the Job Info panel in Ingest Portal.
FlexADMIN: Fixed an issue where FlexADMIN launch fails intermittently from App Switcher with Page Does Not Exist Error.
Fixed an issue where workflow status incorrectly changes to RUNNING Instead of WAITING after retrying a timed-out Wait script job.
Fixed an issue where the asset listing page and storage resource items are not showing the filename correctly when user has multiple spaces in the file name.
Fixed an issue with the Audio player UI on the Manage page.
Optimization of image analysis to prevent OOM errors when too many images are used for inference at once. Performance improved by setting a cap on model level max_pixels so that the image is resized before the processing.
Fixed an issue where full screen mode does not show any player controls.
Fixed an issue where it was not possible to perform FFP (JEF ) actions using s3 accelerate bucket storage with thus error A custom endpoint cannot be combined with S3 Accelerate.
Fixed an issue where pagination displayed on footer disappears when moving to second page and 25 records per page is selected on thumbnail tab.
Fixed an issue where GET /api/users/:userId/reviews returns all the reviews instead of only the reviews assigned to the user, either directly or via group.
Flex Core: Fixed an issue where sorting Groups based on createdBy field is not working.
Sorting issue: Fixed an issue where asset parent title, workflow title and profile type sorting is not working.
Fixed an issue where removing asset membership from Relationship tab generates an undefined error.
Ingest Portal: Fixed an issue where resize on a recording job is not working and is dragging the job to a different time.
UMAM: Fixed an issue where there is no notification about usage rights update for clip (FLEX). Clip IDs are captured in event data when parent usage rights are added, updated, or deleted.
Fixed an issue where the first asset on display is not getting selected and summary panel does not load after login.
Fixed an issue with K8s pod killing of Keda scaled FSP job leads to endless retries. Added an upper limit of 10 retries for the jobs inside the Kue/queue manager logic.
Fixed an issue where saving metadata that contains file and image variable values give invalid csrf token error.
Fixed an issue with taxonomy typeahead search so short numeric values, like Round 1, return all matching numerical entries.
Fixed an issue where Tag and drilldown variable values are not displayed when launch workflow wizard on collection with prepopulateMetadataValues is set to true.
Fixed an issue where intermittently the URL is not updated after navigating back from Starred to Asset listings.
[UI] Starred – Fixed an issue where assets do not remain highlighted in the Starred left panel after navigating to and from the Manage page.
Wizard: Fixed an issue to load metadata value when launching a wizard on an asset when prepopulateMetadataValues=true is set and display the progress page when running the wizard for a single object.
Support custom s3 endpoint urls in region check for Storage Resource with S3 endpoint/hostname.
Fixed an issue where custom markers are not visible in custom marker tab.
Handle edge case of non-image asset being an image with potential file sequence.
FlexMAM Manage Video page: Fixed an issue where the audio track ordering By Name (as set in FlexADMIN) is not working properly
[Flex Audio] Remove the option in the 3 dot menu to open Flex Cut Audio for images.
Fixed an issue where when uploading a file using zip-stream parameters, sometimes a chunk file is left on the physical location.
Fixed an issue where uploading large files using uploadStream and zipStream parameters resulted in chunk upload errors.
Ingest Portal: Fixed an issue where keyframe upload is not working from Summary Panel opened in Ingest Portal.
Fixed in an issue where search terms with FQL conjunctions in semantic search are not working.
Fixed issues with audio playout display when multi audio is enabled: selected In/Out time is not highlighted and audio display covers the video container.
Fixed an issue where no waveform is displayed on AFF generated from Cut API.
Fixed an isuue where uploaded keyframe is not showing in Summary panel in the Ingest Portal app.
[FMP Search] Fixed an issue where Metadata variable column values display as empty (--) in Asset Results listing view when using custom template even though the field contains a value.
Cut Audio: Remove text editor panel from Cut Audio.
List of Services upgraded between 2026.8.0 and 2026.9.0
For the new 2026.9.0 release, most services have changed.
Comments
0 comments
Please sign in to leave a comment.