Older Release Notes
December 18, 2025
Video Service
S3-compatible storage
You can now use S3-compatible storages for both acquisition and publishing. At this time, we have verified Akamai, Digital Ocean, Tebi and Tencent as the providers that work with our service.
Please note that visual watermarks are not yet available when using an S3-compatible storage.
December 11, 2025
Video Service
Acquisition location browsing experience
You can now:
- Navigate into, and select, sub-folders.
- See the contents of the folders.
This should make it easier for you to organize your acquisition storage and to verify that your source folders contain the required files.
Screenshot: Viewing the contents of a sub-folder in the acquisition location
MPEG2-TS output
Added support for generating MPEG2-TS output
Fixes
- Fixed an issue where the acquisition location root path did not have any effect
November 27, 2025
Libraries
-
@axinom/mosaic-ui: Introduced the new
TagsRenderercomponent that allows tags in List views to be rendered consistently with how they appear in Details stations, providing a more uniform user experience now in the Explorer stations with Tags. -
@axinom/mosaic-ui: Updated styles for the
Selectform element andFilterscomponent with improved visual design. This includes subtle transitions and styling improvements to enhance the user experience. -
@axinom/mosaic-ui: Fixed a validation issue in the
DateTimeFiltercomponent where empty values would incorrectly trigger validation errors. -
@axinom/mosaic-ui: Improved accessibility across all icon and image components by introducing new
SvgIconandImgElementcomponents that ensure proper accessibility attributes (aria-hidden="true"andalt="") are applied to non-text content, meeting WCAG compliance requirements. -
@axinom/mosaic-service-common: The
ShutdownActionsMiddlewarenow responds to bothSIGINTandSIGTERMsignals, ensuring proper cleanup when services are terminated in Docker or Kubernetes environments. This should improved graceful shutdown handling in containerized environments. -
@axinom/mosaic-cli: Fixed a bug in the
mosaic createcommand that was causing some warnings during project creation.
Managed Services
-
ID Service: Introduced Bulk Edit functionality for Users and User Roles in the respective Explorer stations. Teams can now perform bulk operations on multiple users and roles simultaneously, improving efficiency when managing large user bases.
-
Hosting Service: Added on-demand RabbitMQ resource management directly from the
Admin Portal. Administrators can now initialize and delete RabbitMQ resources for environments as needed. Also fixed a situation where RMQ resource creation from theEnvironment Connectionstation would not show the appropriate error to the user. -
DRM Service:
- Widevine API (6.29.1): Added device class to reporting logs.
- FairPlay API (6.25.1):
- Added platform, security level, and device class to reporting logs.
- Improved security level values to display human-readable names instead of numeric values (1/2) in trace and reporting logs.
Customizable Services (R137)
-
Media Service: Fixed an issue where text filters in the Collections Explorer were case-sensitive. All text-based filters are now case-insensitive, consistent with other media workflow stations. #487
-
Media Service: Added parent entity selection fields to the
SeasonandEpisodedetail stations, making it easier to associate these entities with their parentTV ShowsandSeasonsrespectively. #488 -
Media Service: Fixed an issue with the Bulk Edit operation where adding items to
Collectionsthat already contained the item would cause the operation to continuously retry and eventually fail. #494
November 26, 2025
Managed Services
- DRM Service:
- PlayReady API (6.24.1): Security updates
November 18, 2025
Managed Services
- DRM Service:
- PlayReady API (6.24.0):
- PlayReady License Server SDK updated from v4.6.7607.0_QFE1 to v4.7.8118. This is a “mandatory” SDK update that Microsoft requires partners to deploy within 6 months of the release date (4th Sept 2025).
- To PlayReady API On-premise users: PlayReady API 6.24.0 requires the SDK v4.7.8118+. Please update the SDK files.
- PlayReady License Server SDK updated from v4.6.7607.0_QFE1 to v4.7.8118. This is a “mandatory” SDK update that Microsoft requires partners to deploy within 6 months of the release date (4th Sept 2025).
- PlayReady API (6.24.0):
October 27, 2025
General
Bulk Edit
We're excited to introduce the Bulk Edit feature support from the Mosaic Core libraries! This capability allows editors to perform the same operations on multiple items matching a filter from an Explorer, dramatically improving efficiency when managing large content catalogs.
Instead of editing items one by one, editors can now select multiple entities in an Explorer and update properties, add or remove related items a single action.
Screenshot: Bulk Edit in action - selecting multiple items and editing their properties
The Bulk Edit feature is currently applied to the Media Service in the Mosaic Media Template, and you can see more details from this PR.
To learn more about implementing Bulk Edit for your own services, check out our documentation:
- Bulk Edit Concept - Overview and technical architecture
- Enable Bulk Edit for an Entity - Step-by-step implementation guide
Libraries
-
@axinom/mosaic-portal: Fixed some bugs on the portal-shell with rendering breadcrumbs and correct grid-templates.
-
@axinom/id-link: Fixed a bug on the Login dialog where the UI was showing unnecessary symbols when the Email/Password Authentication was disabled.
Managed Services
-
Frontends Service, Hosting Service, Localization Service: Improved the service orchestration handling to have total idempotency during service enabling for an environment.
-
Image Service: Fixed the image detail stations where the correct date format was not applied and the focal input fields where they could not reset correctly.
Customizable Services (R134)
-
General: The Media Template repo is bumped from
Yarn v1toYarn v4#470. -
Media Service: Implemented Bulk-Edit on the main entities Movies, TvShows, Seasons, Episodes & Collections #473, #478, #481.
-
Media Service: Ingest Details station now has links to the ingested item details #474, #479, #482.
-
Media Service: Introduced the possibility to use
searchon filters for fields that contain tag-like data (i.e. Genres, Cast, Tags), so you don't need to guess what the existing values are. #463.
October 02, 2025
Managed Services
- Encoding Service (2.48.25265.1):
- Added accessibility property to DASH manifests for CC and AD.
- Fixed uploading thumbnails to FTP.
September 25, 2025
Managed Services
- DRM Service:
- FairPlay API (6.25.0): Minor security update.
September 24, 2025
Managed Services
- DRM Service:
- Widevine API (6.29.0): Minor security update.
September 23, 2025
Libraries
-
@axinom/mosaic-cli: The
pg-dumpcommand now supports running against specific docker-compose YAML files with the introduction of the--composeFolderPathflag. More information over can be found here. -
@axinom/mosaic-service-common: The helper functions that adds liveness/readiness, maintenance & monitoring endpoints to
Expressapps now support aUSE_EPHEMERAL_PORTS_DURING_DEVenv-var, that isTRUEby default, and when set toFALSEwill use the specific port for each endpoint. This allows you to expose predictable ports when running services indevelopmentmode and in containers. -
@axinom/mosaic-ui: Bug fixes for
DynamicDataList, saving inconsistency inQuick Editmode,z-indexissues in tooltips.
Managed Services
-
Hosting Service: The Hosting Service RMQ provisioning logic is now improved to include an exponential retry mechanism, ensuring more robust resource provisioning.
-
Identity Service: Bug fixes for propagating the timestamp changes when child tables are modified (i.e. changing role assignments of a User, changing permission assignments of a service account).
-
Image Service: Bug fixes for propagating the timestamp changes when child tables are modified (i.e. changing tags assignments of an Image).
-
Management System Service: Fixed a bug where explorer stations sometimes get a body color of black in Safari after some idle time.
Customizable Services (R132)
-
Monorepo: The
quick-deployscript is improved to retrieve the docker username from platform specific storages where applicable (i.e. macOS keychain) -
Catalog Service: Improve error logging when
axios errorsare encountered to prune large error messages and only log the meaningful information.
September 16, 2025
Managed Services
- Encoding Service (2.48.25230.1): Support for language code ‘zxx’ (‘No linguistic content’)
September 02, 2025
Managed Services
- DRM Service:
- FairPlay API (6.24.3):
- Modified device class data type to match value returned by widevine device type used in traced requests logging.
- Fixed log attribute casing
- FairPlay API (6.24.3):
August 21, 2025
Managed Services
- DRM Service:
- Widevine API (6.28.4): Fixed error handling of requests from “Unknown” devices. They’re now once more properly handled as client errors, instead of resulting in a server error.
August 14, 2025
Managed Services
- DRM Service:
- PlayReady API (6.23.0):
- Added the "blocked users" feature. A user can now be blocked from receiving new licenses based on the "user_id" in the entitlement message when the same user is also added to the blacklist via the Management API "api/BlockedUsers" endpoint. https://docs.axinom.com/services/drm/license-service/license-service-management-api/blocked-users
- PlayReady API (6.23.0):
- Encoding Service (2.47.25213.4): Fixed an intermittent issue with some FTP Message Publisher connections.
July 30, 2025
General
In this release we've incorporated AI to improve experience of the the editorial workflows. As the 1st use-case of this, we've introduced the Ask Axi button onto the Video Details station.
This can be especially useful when a video encoding job results in a failure and the user wants to quickly understand the higher level reason for it without needing to fully dig into the various technical reasons it could be caused by.
Previously the editor would need to look into the Encoding History tab and read the final error message and figure out the next steps. Now, you could easily Ask Axi and get a quick summary as well as remediation steps presented to you.
| Before | After |
|---|---|
|
|
|
Libraries
- @axinom/mosaic-ui: Received some improvements & bug-fixes on the following UI components.
Explorer: List selection resets on sort changes.Accordion: Expand-all button behavior improved with proper state cleanup when children are removed.DateTimeTextField: Fixed the blur event handling.
AxAuth Service
We've added a feature where you could specify Email Exclusion Patterns in the AxAuth Service configuration. Using it you could disallow specific email domains or well-defined email patterns from using the Email/Password authentication to authenticate.
This would come in handy when you want to exclude certain email domains (i.e. your company email addresses) from using direct Email/Password authentication, and want to always use a federated authentication provider such as Microsoft Entra ID for them instead.

Video Service
Improved the workflow on the Video Acquisition Settings station where previously a SAS Token (when using Azure Blob storage provider) or a Management Access Key (when using AWS S3 storage provider) was required. Now these values are no longer needed, as we use the existing storage credentials to securely list the storage contents when a user would use the New Video station. You will not find the SAS Token / Management Access Key fields anymore in the Video Acquisition Settings.
We've also added an easy way to access the Processing Profile that was used from within the Video Details station.
Image Service
Heads up, we've added a new feature Bulk Edit for BETA testing. This should allow you to perform edit operations on the Images explorer currently, where changes will be applied to all selected rows in the explorer as a bulk-operation.
Feel free to take it up for a spin in the Image Explorer. We will launch this feature in its full glory soon.

Customizable Services
July 23, 2025
Managed Services
- DRM Service:
- FairPlay API (6.24.1):
- Exposed X-AxDrm-ErrorCode HTTP Header for clients that use CORS. This is a relatively new custom header that represents Axinom error codes. Currently, this header is only used in Concurrent Stream Limiting.
- Added the "blocked users" feature. A user can now be blocked from receiving new licenses based on the "user_id" in the entitlement message when the same user is also added to the blacklist via the Management API "api/BlockedUsers" endpoint. https://docs.axinom.com/services/drm/license-service/license-service-management-api/blocked-users
- FairPlay API (6.24.1):
July 15, 2025
Managed Services
- DRM Service:
- PlayReady API (6.22.1):
- Exposed X-AxDrm-ErrorCode HTTP Header for clients that use CORS. This is a relatively new custom header that represents Axinom error codes. Currently, this header is only used in Concurrent Stream Limiting.
- Fixed requests from revoked clients, resulting in a server error. Now they’re handled and logged as client errors.
- PlayReady API (6.22.1):
July 08, 2025
General
In this release we've moved the stations that used to exist in the Admin Portal containing the Service Settings of Image Service, Localization Service, User Service & Video Service into the Management System UI.

Clicking the action button will open the Management System UI and navigate you to the corresponding station.

With this move we hope to better consolidate the management of the services under a single umbrella while still retaining the access control to these Administrative stations with the existing permissions.
The Admin Portal will still retain the configurations that may result in destructive operations, such as service enable/disable controls as well as the configurations of Core Services.
Libraries
- @axinom/mosaic-ui: Fixed a bug on the DateTime Picker that puts the form in a dirty state when no selection is made.
Video Service
This release adds support for setting the default Audio and Text language priorities in the Content Packaging section of video Processing Profiles. These default selection applies only to main audio and subtitle streams (excludes descriptive audio/closed captions). Manifests (HLS and DASH) will reflect this default language configuration. This should improve automation and consistency in stream default selection for packaged content.
Also a bug was fixed that previously resulted in duplicated encoding jobs being run for the same video.
Localization Service
The Localization Service now sends the LocalizeEntityFinished event also when an editor would change the localizations and not only during ingest operations. This would make the event more consistent with actual changes that occur in localizations.
Also a bug was fixed to better handle null & empty values in localization inputs.
Customizable Services
- Entitlement Service: The service logic responsible for entitlement message generation was updated to be more generic with regard to the claims contained within the payload without having any dependencies on the Mosaic Billing Service. 448.
June 30, 2025
Managed Services
- DRM Service:
- Widevine API (6.28.3): Updated Widevine License Server SDK from 19.0.6 to 19.10.1 (latest).
June 25, 2025
Managed Services
- Encoding Service (2.47.25168.1):
- Change native display name for 'spl' to 'Español (la)'
- Support for setting default audio and text language priorities using the
DefaultAudioLanguagePriorityandDefaultTextLanguagePriorityparameters.
June 19, 2025
Managed Services
- DRM Service:
- Widevine API (6.28.2): Fixed a bug introduced in the previous release (6.28.1) where clients that didn’t expose their capabilities couldn’t receive licenses (known to affect certain smart TVs).
June 16, 2025
Libraries
- @axinom/mosaic-messages: Moved all the
Mosaic Video ServicerelatedMessage Settingsfrom this library into the@axinom/mosaic-video-messageslibrary. You will need to import the new library when you upgrade to the@axinom/mosaic-messagesversion0.57.0or higher to access the aboveMessage Settings.
Video Service
We're making some technical changes starting this release to make the Mosaic Managed Services more independent in terms of the release cadences. The Video Service is the 1st to receive this treatment, and as a result we've introduced a new library @axinom/mosaic-video-messages that contains all the Message Settings of this service.
What this means to you is, when a consumer service of the Video Service requires to access the Message Settings, it must import the @axinom/mosaic-video-messages library instead of the @axinom/mosaic-messages library (which still contains the Message Settings of all the other Mosaic Managed Services).
We will rollout similar companion libraries for the remaining services with future releases.
Hosting Service
We made some changes to the RMQ vhost creation logic. Previously when you created a new Mosaic Environment via the API, it automatically generated the RMQ vhost as well as a pair of shovels to shovel messages belonging to your environment to-and-from the Managed Services.
Now for new environments created via the API (createEnvironment), the vhost & shovels will not be automatically created. However they will be automatically provisioned when you create a new environment via the Admin Portal or when you deploy and Custom Services through the Hosting Service.
Customizable Services
-
Media, Entitlement, Channel: Refactor the code to start using the
@axinom/mosaic-video-messagesinstead of@axinom/mosaic-messageswhen the services require Mosaic Video Service message settings. #445. -
All: Bumped external dependencies to fix various CVEs. #437, #443.
June 09, 2025
Managed Services
- DRM Service:
- Widevine API (6.28.1):
-
Exposed
X-AxDrm-ErrorCodeHTTP Header for clients that use CORS. This is a fairly new custom header which represents Axinom error codes. Currently, this header is only used in Concurrent Stream Limiting. -
Updated Widevine License Server SDK from 19.0.2 to 19.0.6 (latest). No behavioral changes expected.
-
Fixed Widevine "Client Token" (the main "client ID" for Chrome CDM-like clients) handling. Previously, since the update to License Server SDK v19, such clients appeared to support Client Tokens, even if they in reality did not (e.g. Firefox; Chrome with "persistentState" not set to 'required'). This led to the
recommended_client_idandclient_tokento be reported incorrectly for such clients. One of the effects of this is the Concurrent Stream Limiting feature not being able to reliably track those clients. -
Fixed CSL bug where Widevine "renewal" requests were mistaken for "new" requests. This prevented the session-based blocking method from working correctly.
-
Fixed Widevine license service incorrectly enforcing some native standard claims (such as 'exp'), which resulted in 500 Internal Server error responses. Now only the Axinom-specific claims documented in the "License Service Message" documentation are enforced, as expected.
-
- Widevine API (6.28.1):
May 14, 2025
Breaking Changes
Deprecations
The profileData field of the UserProfile GQL type in Mosaic User Service is now deprecated. If you intend to store user-specific data, please start using the Mosaic Personalization Service API.

Please refer to Planned Deprecations page to see the timeline when the field will be removed.
Libraries
-
@axinom/mosaic-message-bus
We renamed the two broker events
errorandreconnectedintobroker_errorandbroker_reconnected. The previous names had a conflict with Rascal's underlying events with similar names that made the consumer service not receive low-levelerrorevents in case it lost the connection to the RMQ Server, leaving the RMQ auto-reconnect feature untriggered, as well as potential errors during message publication not propagated.If your service is using the versions
0.38.0or0.39.0, please upgrade to the version0.39.1or above to receive this critical fix.
Video Service
With this update, it will now be possible for users to initiate new encoding jobs from the same source. This enables greater flexibility in managing different output needs from a single source.
The Video Details station now includes a New Encoding action that is a shortcut to navigate users directly to the New Video station with the same Processing Profile (and the Source Location) pre-filled, as videos now store a reference to the processing profile used during encoding. You may maintain different Processing Profiles for different use-cases and use them with this new feature to better manage different output needs.
Additionally, the Retry Encoding button (formerly labeled "Re-Encoding") remains available for use when an encoding job fails. This allows users to modify the processing profile if needed and re-attempt the encoding without creating a new video item.

These features are not available for videos that are encoded externally and just registered in the Mosaic Video Service.
Customizable Services
- Mosaic Stripe Payment Connector: Updates to address security vulnerabilities. #166.
April 29, 2025
Managed Services
- DRM Service:
- Key Service API (1.21.4):
- Added
OmitHlsMasterPlaylistDataquery parameter to theHarmonic/V2endpoint. If set totrue, the<HLSSignalingData playlist="master">element will be omitted from the CPIX response. Default isfalse. Refer to Harmonic document for further details.
- Added
- Key Service API (1.21.4):
April 10, 2025
General
Node.js Runtime Upgraded
We have upgraded Customizable Services of the Media Template to the latest active LTS version of Node.js v22 from v18. This upgrade ensures improved performance, enhanced security, and access to the latest features and updates provided by the Node.js runtime. For more details on changes in Node.js v22, refer to the official release announcement. You can also find the PR here that did this change should you wish to also apply the same on your customized services.
Libraries
- General: We have addressed the vulnerability CVE-2025-27152 by bumping the
axioslibrary to a non-vulnerable version on all libraries that depend on it. - @axinom/mosaic-cli: The
mosaic hosting manifest uploadcommand now supports embedding environment variable values directly into deployment manifest. Using the special placeholder format${**ax_hosted**.dynamic.%}in theYAMLfile, you can dynamically assign environment-specific values (i.e. API keys, credentials, etc.) to the manifest during upload. This allows for a templated approach, enabling the reuse of a single manifest file across different environments with varying configurations. You can read more details here. - @axinom/mosaic-message-bus: Introduced support for two new broker events:
errorandreconnected. These events allow consumers to monitor RabbitMQ connection states and handle connection errors or reconnections programmatically. Theerrorevent provides details about connection issues, while thereconnectedevent includes information about the re-established connection and the duration of the disconnection. This feature enhances reliability and observability for the RMQ messaging workflows. Read more details here.
Managed Services
-
Video Service: Added the ability to select the
Segment Formatin theContent Processing Profilewhen usingCMAFoutput format for videos. Users can now choose betweenFileandByteRange. AnAutomaticoption is also available which lets the service make the decision. The actual output segment format, as generated by the service, is displayed on the details page of the video for better transparency. -
Video Service: Added the Descriptive Audio feature support in the Video Service. The Content Processing Profile settings are updated to include the configurations for it.
-
Image Service: Fixed an issue when the root path was used, it caused re-ingest operations to fail when checking for the existence of an image.
-
Hosting Service: Fixed a bug where the
Service Accountssection of theDeployment Manifest Detailsstation on theAdmin Portalwould not show all the service accounts with their permissions that were created. -
DRM Service:
- FairPlay API (6.23.0): Added a feature to prevent token reuse. The feature can be enabled via the Entitlement Message: license_server.access_control.prevent_drm_message_reuse = true (default: false). It requires an 'id' to be set for each Axinom DRM License Service Message.
Customizable Services
- Channel Service: Added the
SingleImageSelectField, now provided by the Image Service, to the ExtensionsContext. #440
April 04, 2025
Managed Services
- DRM Service:
- Key Service API (1.21.3):
- Added timestamp based key ID derivation support to Harmonic V2 endpoint when key rotation is enabled with the timestamp mode in the encoder. Therefore, this feature will work when key periods are present in the CPIX request.
- Fixed 500 internal error when duplicate key IDs are derived in Harmonic V2 endpoint, such cases will now responded with HTTP 400 errors.
- Fixed SPEKEv2 'UriExtXKey' bug by allowing overlapping HLS signaling elements.
- Key Service API (1.21.3):
April 03, 2025
Managed Services
- Encoding Service (2.47.25092.1): Reduce the frequency of progress messages being sent.
March 26, 2025
Managed Services
- Encoding Service (2.46.25079.1): Fix: FailOnNoDescriptiveAudioTracks does not have any effect.
March 19, 2025
Managed Services
- Encoding Service (2.46.25077.1):
- CMAF with chunks in addition to byte-range segments
- Descriptive Audio support
March 11, 2025
Breaking Changes
TLS 1.0 & TLS 1.1 deprecation for Azure Storages
To align with industry best practices and enhance security, on the 30th of September 2025 3rd of September 2025 we plan to enforce TLS 1.2 as the minimum required version for all connections made to Azure Storage Accounts.
What This Means for You
- After the change, any connection explicitly using TLS 1.0 or TLS 1.1 will no longer be supported.
- We have reviewed our Azure metrics and confirmed that none of our clients are connecting using TLS 1.0 or TLS 1.1, so we do not anticipate any impact on you from this change.
Why This Change?
- TLS 1.2 ensures stronger encryption and better security for all data transactions; it has been the industry standard for secure connections, and enforcing it helps protect against vulnerabilities associated with older versions.
- Microsoft will no longer support TLS 1.0 and 1.1 for Azure Storage Accounts after 1 November 2025.
General
🌍 Localization Service: Custom Editorial Experience
We've added the option for a custom editorial experience in the Localization Service. This feature allows you to define custom components for viewing and editing localized values. You can use Piral extensions provided by other managed services or create your own custom components. To find out more about the feature, please check the Custom Editorial Experience documentation.

Libraries
- @axinom/mosaic-cli: Fixing an issue with the
mosaic createcommand failing to install the dependencies, when using special characters in the project name.
Managed Services
- Hosting Serivce: Added dedicated buttons to
Deploy,Re-Deploy,UndeployorUpgradecustomizable services from their detail station. - Image Service: The image service now provides a new Piral Extension:
SingleImageSelectFieldWhich can be used in cases where only a single image should be selected. For example on customized localization experiences like this. - Video Service: Video Thumbnails are now also supported for HLS streams. To find out more have a look at the Thumbnails Generation documentation.
- Video Service: Added the option to select specific audio and subtitle streams as well as specific video bitrates on the video players within the Video Service workflows. The players also support full-screen mode now.
- Video Service: Added a new optional property
remove_missingto theRegisterCuePointsCommand. If set totruecue-points that are not declared on the message but exist for this video on the service will be removed. - Localization Service: Fixing an issue where syncing Entity Definitions on existing entities would not remove orphaned Entity Definition rules.
Customizable Services
- Media Service: Fixed an issue with the workflow permissions for the TV Show Genre station. #434
- Media Service: Fixed an issue where the icon and text of the IngestStatusRenderer is not aligned correctly. #433
- Media Service: Added the
SingleImageSelectField, now provided by the Image Service, to the ExtensionsContext. #435 - Media Service: Fixed an issue with URL resolution for localization when opening the program details page in quick edit #431
February 27, 2025
Managed Services
- Encoding Service (2.45.25052.1): HLS thumbnails using VTT files
February 26, 2025
Managed Services
- DRM Service:
- PlayReady API (6.21.2): White-listed Common Media Client Data (CMCD) request headers for CORS.
February 25, 2025
Managed Services
- DRM Service:
- FairPlay API (6.22.0): White-listed Common Media Client Data (CMCD) request headers for CORS.
February 13, 2025
General
🎥 Video Service: Thumbnail Extraction and Target VMAF Score for Per-Scene Encoding
With this release, we're adding support for thumbnail extraction to the Video Service. You can find the setting in the processing profiles. When this feature is enabled, the encoding job will extract thumbnails from the video and embed them into the (DASH) stream. To find out more about the feature, please check the Thumbnails Generation documentation.
The preview player in the Video Service will also display the extracted thumbnails:
![]()
We also added the option to define an target VMAF score when selecting the PerScene encoding mode, giving more control over the quality and size of the produced video. To find out more about that feature, please check the Per-scene Encoding documentation.
Libraries
- @axinom/mosaic-ui: Updated the form element components to consistently use the given
id(or thenameas a fallback) as theidfor the input element and also as thehtmlForattribute of the label.
Managed Services
- Hosting Service: When generating SAS tokens for storage provided by the hosting service, the user can now select the permissions that the token should have (
list,read,write,delete,add,create), as well as the start and end date of the token. - Video Service: We updated the structure of the processing profile section to group the settings according to the job phases and to better visualize dependent settings.
- Video Service: The available streams (video, audio, captions, etc.) for a video are now more prominently shown and added to the explorer view. The explorer also allows filtering for videos that have—or don’t have—specific streams.
- Video Service: While the encoding job of a video is running, the status will now also include a percentage value that shows the progress of the encoding job on the video details page.
- Video Service: We've updated the Shaka player used on the cue-points and preview stations to address issues with the playback of some DRM-protected videos in specific browsers.
- Localization Service: Fixed a visual issue with entities that have a very long title.
- Localization Service: Improved the error message when trying to ingest a localization for a locale that is not defined in the service settings to make it clearer what the issue is.
Customizable Services
- Media Service: Added a MIME type as
acceptto the ingest upload component #424. - Media Service: Renamed the video cue points the service registers to make them easier to understand #425.
- General: Updated the
expressdependency to address a security vulnerability #427.
February 03, 2025
Managed Services
- DRM Service:
- Key Service API (1.21.2): Added SmoothStreamingProtectionHeaderData element to the Anevia response.
January 28, 2025
Managed Services
- DRM Service:
- Widevine API (6.27.1):
- Widevine SDK has been upgraded from v17.0.1 to v19.0.2.
- White-listed Common Media Client Data (CMCD) request headers for CORS.
- Widevine API (6.27.1):
January 21, 2025
Managed Services
- Encoding Service (2.44.25010.1):
-
Improvements to the Thumbnails section:
- Fewer required values – default values are applied where possible.
- Thumbnails are now cropped instead of stretching.
-
Enable thumbnails for CMAF and DashOnDemand.
-
Thumbnails are also available for just HLS OutputFormat (but not referenced in the playlist).
-
Bug Fixes: Fixed occurring of some flickering with non-interlaced videos.
-
January 16, 2025
General
🧹 Dependency spring cleanup
In this release we updated quite a few dependencies to address security vulnerabilities and to keep the services up-to-date. We raised dedicated PRs for each CVE that was addressed. You can find the full list of PRs on the GitHub repository. With this we tried to make it easier for you to apply the changes to the copy of the services in your repository. You can also use the CVE number to find out more about the vulnerability to make your own decission if and how to fix it best for your situation.
We strongly advice to enable vulnerability scanning also on your own repositories to get notified about security issues in your dependencies and not only rely on the updates we provide, as these would e.g. not cover dependencies that are only used in your custom services.
🛡️ Support for custom IDPs in the Management System
It is now possible to add a 'Custom' identity provider on the Identity Service configuration that allows using any other OIDC compliant identity provider.
You can find more information on how to configure a custom identity provider in the Identity Service documentation.
🛡️ Improved support for Microsoft Entra ID IDP in the Management System
It now takes even less steps to enable the Microsoft Entra ID provider for the Mosaic Management System. With a simple toggle you can allow all users with a Microsoft work or school account to authenticate to the Management System. You can read more about this option under the ID Provider configuration documentation
🏷️ Improved Select and Tags components
We changed the Select and Tags components to allow the users to type the value they are looking for and the component will automatically filter the options to match the input. This makes it easier to find the right value, especially in long lists of options.
Of course it will still only be possible to select values that are part of the list of options.
The styles also got updated to make the components more aligned with the rest of the UI components.
In many cases this update is just a drop-in replacement that will not require any changes in your code. However, in some cases it might require some small code adjustments:
- The type definitions of
onChange,onBlur, andonFocushave been changed from(event: [FormEvent<HTMLSelectElement>) => voidto(event: ChangeEvent<HTMLInputElement>) => void - Any CSS styles that are targeting the
selectelement will need to be refactored to target theinputelement. - The
Selectis now a controlled component. Therefore, thevalueproperty needs to be provided.
Libraries
- @axinom/mosaic-ui: Fixing an issue that made the the DynamicDataList stop rendering the action column when
allowEditingwas set totrueandallowNewDatawas set tofalse. - @axinom/mosaic-ui: Fixing an issue with
SingleLineTextwhere inputs were ignored whenisSetwas set totrue. - @axinom/mosaic-ui: Improved the placeholder text for the
FileUploadcomponent to make it more clear that the user can drop files there.
Managed Services
- Video Service: The encoding history was moved from a decicated station to a tab on the video details station.
- Image Service: Fixed an issue with focal point selection in quick edit mode.
Customizable Services
- Media Service: Fixed an issue where the ingest items would disappear when the user stays on the page and the jobs complete in the background. #396
- Media Service: Fixed a broken unit tests caused by additional properties that Image and Video service started to send. #401
- Media Service: Adding a uniqueness check for geners to the genere stations, to not only rely on the database constraints. #354
- Media & Channel Service: Adding quick edit to all publishing related stations #388
December 02, 2024
Managed Services
- DRM Service:
- PlayReady API (6.21.0): PlayReady Server SDK upgraded from v4.6.7604.13892 to v4.6.7607.0_QFE1. This is a security update released by Microsoft on Oct 26, 2024.
November 21, 2024
Libraries
- @axinom/mosaic-service-common: The
setupMonitoringmethod of@axinom/mosaic-service-commonnow accepts an optional express app as a configuration option (passed in via themonitoringOptionsparameter). This enables the metrics middleware to be mounted on an existing express app instead of always mounting it on a new app in a separate port. - @axinom/mosaic-ui: Fixed two issues where the
data-test-idof columns inListcomponents were not correctly applied. - @axinom/mosaic-ui: Fixed an issue that prevented validation errors on
DynamicDataListentry components created usingcreateSelectRendererfrom being displayed correctly.
Managed Services
- Hosting Service: Added a more prominent station message to the detail station of services "Owned by Axinom" that makes it more clear, how much time is left until the service will be automatically terminated. Keep in mind, that it is possible to extend that time by redeploying the service.
- Localization Service: Adding Quickedit to the stations genrated by the localization generator.
- Image Service: The
ensure_image_exists_image_created_eventas well as theensure_image_exists_already_existed_eventnow also contains the sourceimage_location. - Video Service: The
ensure_video_exists_creation_started_eventas well as theensure_video_exists_already_existed_eventnow also contains the sourcevideo_location. - Identity Service: Fixed an issue where the default display values for the IDP confgurations were not always correctly set.
- Identity Service: Hide the "Sign in with Axinom" option when running the solution locally. Currently the Axinom IDP does not support authentication for local development environments.
Customizable Services
- Media Template: Bumped versions of
loader-utilsto address security vulnerabilities. #376 #377 - Media Template: Improved the
open-test-coveragescript to address a potential vulnerability. #378 - Media Service: Adding three more default Movie and TV Show genres. #381
- Media Service: Adding the
alt_textprovided by the Image Service to the published data of entities. #379 - Media Service: Adding QuickEdit to Channel Workflows, Media License- and Ingest-Stations. #384
October 22, 2024
General
In this iteration of authentication improvements for the Management System, we added support to configure Custom Branding for the Identity Providers that are used by the Management System. This means you will be able to control the Display Name, Display Icon as well as the display order for the external Identity Providers. As part of the same initiative, we've now improved the User Experience of the Admin Portal to find all Identity Provider related configuration under a single station.

To find out more about the new settings, check out the Identity Provider Settings documentation.
Libraries
- @axinom/mosaic-ui:
InfoImagenow also accepts all properties ofImageLoader.
Managed Services
- Image Service: Adding an "Alt Text" property to images. This property can be used to provide a textual description of the image content.
- User Service: Rolling out quick edit to user workflows.
- Video Service: Rolling out quick edit to profile management workflows.
- Image Service: Rolling out quick edit to image workflows.
- Localization Service: Rolling out quick edit to localization workflows.
October 15, 2024
Managed Services
- DRM Service:
- Key Service API (1.21.0): Added optional "keySeedId" parameter to /Harmonic V2 endpoint. When set, chooses a specific Key Seed to use for key generation, instead of the default key seed.
October 10, 2024
Managed Services
- Encoding Service (2.38.24281.1): Stability improvements.
October 03, 2024
Managed Services
- DRM Service:
- Widevine API (6.26.0):
- Exposed 'widevine_cdm_version' to the License Request Info message.
- Logging improvements.
- Widevine API (6.26.0):
October 02, 2024
Managed Services
- DRM Service:
- PlayReady API (6.20.4): Logging and stability improvements.
September 26, 2024
Libraries
- @axinom/mosaic-ui: Truncated titles on
PageHeadercomponents now show a tooltip with the full title when hovered over. - @axinom/mosaic-ui: Fixing an issue that can cause incorrect text wrapping when using custom renderers on
Listcomponents. - @axinom/mosaic-ui: Fixing issues with unneccesary re-renderes of the Quick Edit components.
- @axinom/mosaic-ui: Fixing an issue with actions on the
Explorerheader sometimes not always rendering with correct spacing. - @axinom/mosaic-ui: Fixing an issue that could cause station messages of a FromStation to render with wrong size.
- @axinom/mosaic-id-link: Fixing a few visual issues on the new Login Screen.
Managed Services
- ID Service: Adding Quick Edit to the Access Management workflows.
- AxAuth Service: Fixing an issue with the token renewal not working correctly.
Customizable Services
- Media Service: Fixing an issue where the 'Open' button on the Collection's 'Manage Entity' Quick Edit station was not leading to the appropriate station. #368
September 09, 2024
Quick Edit
With this release we're launching our new Quick Edit feature! 🎉

This feature allows editing entities directly from inside the Explorer station. This will make it easier to quickly change values of individual entities, e.g. from a filtered result, without having to navigate to the Details station of each entity.
We designed the feature to be very easily adaptable to your custom services, allowing to reuse your existing detail stations for quick editing. The majority of the feature is provided by the UI library. Make sure you update to the latest version, to gain access to this feature. You can see the changes required to enable the feature on a customized Explorer station on the PR with which we introduced the feature to the media template: #359 & #362
We're going to add Quick Edit support to more stations in the future, so stay tuned for more updates!
To find out more about Quick Edit and how to integrate it into your own workflows, check out the Quick Edit documentation.
Authentication Improvements
We're planning a series of improvements related to user authentication into the Management System that will be released gradually.
As part of this initiative, The Mosaic Identity Service now received support for a new Identity Provider.
You may now enable the new Axinom IDP under the ID Service configuration of the Admin Portal, and doing so would allow you to use your existing Axinom credentials in a Single Sign-On manner to Sign In into the Management System. No need for any 3rd party account or additional registration to access the Management System.
With this release we're also unveiling a reworked UI for our AxAuth IDP. This is the Mosaic own Open ID Connect compliant identity provider for email & password based authentication. This provider, if enabled, will directly show email & password fields on the login masks, making it more natural to use while maintaining the same level of security.

When you're doing local development, and running workflows, if you notice a warning signalling your @axinom/mosaic-portal dependency can be upgraded, the management-system authentication of the localhost application will not work until you perform this upgrade step. If not, you may see a Configuration not valid error in the management system running on localhost.

Libraries
- @axinom/mosaic-ui: Added the
quickEditRegistrationsproperty that can be used to register the Quick Edit stations the Explorer should provide. If there is at least one registered Quick Edit, a new Header action will be shown to enable Quick Edit mode and switch between the different Quick Edit stations. - @axinom/mosaic-ui: Added support for the
FormStationcomponent for getting rendered as Quick Edit component. Apart from some visual changes (hiding the actions and info panel to gain more space and optionally displaying an action to navigate to the Details station), theFormStationalso makes sure that saving and error handling works correctly also in Quick Edit mode. This means, that if you have a FormStation that is registered as a Quick Edit station, you can use the same FormStation for both Quick Edit and Details mode. - @axinom/mosaic-ui: The Filter Panel can now be hidden using a Header action button, to provide additional space. Switching to Quick Edit mode will hide the Filter Panel by default.
- @axinom/mosaic-ui: We moved the 'Save' button into the header of the
FormStationcomponent, to make it visually more clear that this button is used to save the form. Forms will still be saved also automatically when the user is leaving the station.tipTo avoid inconsistencies between managed and custom workflows, we recommend to update the UI library to the latest version.
warningThe global save indicator is still supported for backward compatibility, but it is deprecated and will be removed in the future.
Managed Services
- All: Unique constraint errors throw by all managed services now have an error code
UNIQUE_CONSTRAINT_ERROR. Previously they were thrown withDATABASE_VALIDATION_FAILEDcode. This will allow front-ends to better narrow the reasons for backend exceptions that are thrown due to duplicate keys. - Video Service: Added Quick Edit views for Video Details, Video Preview and Cue Point Management.
Customizable Services
- Media Service: Added Quick Edit views for Details and Assignment in Movies, TV Shows, Seasons, Episodes and Collections. #359 & #362
- Catalog Service: Fixing an issue where entities were returned without values, when localization was enabled and the default locale was not named 'default'. #357
September 05, 2024
Managed Services
- DRM Service:
- FairPlay API (6.21.2): Logging and stability improvements.
September 04, 2024
Managed Services
- DRM Service:
- Widevine API (6.25.2): Logging and stability improvements.
September 03, 2024
Managed Services
- DRM Service:
- PlayReady API (6.20.3): Logging and stability improvements.
August 22, 2024
Libraries
- @axinom/mosaic-ui: The
FreeTextFilternow automatically selects the previous value when the user clicks on the filter to change the value. This makes it easier to replace the previous value with a new one. - @axinom/mosaic-workflow-integration: Added a
TileNamesenum that contains the names the managed services use to register their tiles and navigation entries.
Managed Services
- Video Service: Adding support for Visible Video Watermarking to the Video Service. This feature allows you to add a visible watermark to your videos during the encoding process. The service offers a workflow for defining watermarking profiles. These profiles can then be selected on an encoding job to apply the watermark to the video. The feature is available through the Video Service API as well as the management system.
- Video Service: Audio representations can now be defined in the processing profile.
In the Encoding Service API, all the fields in the audio representations are optional – if they are omitted, the default values are set by the service. - Hosting Service: Enhanced Error Reporting. When a deployment fails due to a misconfiguration (e.g., missing environment variables), the Mosaic Hosting Service will now display the logs that were produced by the failing service. These logs will be visible in the 'Deployment Logs' station under the
K8sDeploymentErrorEventtype in your Admin Portal (inside the 'Hosting Service' area). This will now help you identify causes for the failing service and attempt to fix them with a new deployment more easily. - Video Service: Changed the DRM Settings -> Management API URL to a select field with predefined values for the production and test environments of the Axinom DRM service.
- Video Service: Fixed a problem with duplication validation of cue point timestamps.
Customizable Services
- Catalog Service: Changing the way how catalog service handles localized values to make it more performant and versatile. #317
- Channel Service: Removing the publish validation check for possible DRM protection of videos added to a playlist. Before it was considering the playlist invalid if a DRM protected asset was added to a channel that doesn't have DRM protection enabled. Now publishing is possible independent of the asset's and channel's DRM configuration. #344
- Channel Service: Fixing an issue that reverted a channel to 'changed' state after a successful publish. #345
August 20, 2024
Managed Services
- Encoding Service (2.37.24228.3):
- Possibility of downloading visible watermarks from HTTP URLs.
- Full support of language codes with two subtags (e.g. pt-br).
July 29, 2024
General
The Mosaic Channel Service allows the management of channels and playlists to stream linear videos. It allows for scheduling media entities (movies and episodes) with their videos into playlists and inserting ad breaks and scheduled videos. Channels can be used to provide VOD-to-Live playback via streaming providers like Unified Streaming.
Starting with this release, the Channel Service is available as a customizable service included in the media template. This allows complete customizability of all aspects of the FAST solution.
To find out more about the service, check out the documentation.
Libraries
- @axinom/mosaic-workflow-integration: We changed the way how the library gets initialized.
Instead of having different
set...functions to provide the app object to the library, there is now a centralinitializeIntegrationLibfunction to initialize all functions of the library at once. The new initialization process allows us to also improve the usabiltiy of the Thumbnail renderer and Video Cue point functions. To find out more, please check the documentation of the library. - @axinom/mosaic-ui: We removed the
BulkActionsproperty on the thePageHeaderPropsand the component now expects all actions being declared via theactionsprop, which now has the ability to definePageHeaderActionGroupas well asPageHeaderSpaceritems. When using thePageHeaderthrough any of the station components (Explorer,Create,Details) nothing will change. But it allows for more 'BulkAction-like' groups to be defined in thePageHeadercomponent itself. - @axinom/mosaic-ui: Added a new prop to
List,ExplorerandDynamicDataListfor control thetextWrap. When set totrue, it will make the content of the cell wrap to the next line instead of truncating it. - @axinom/mosaic-ui: Fixed an issue where the content alignment props on
DynamicDataListwere not working correctly.
Managed Services
-
Identity Service: The service will publish the
ServiceAccountPermissionChangedevent whenever a service-account’s permissions are changed (Added/Removed).This would enable more use-cases for custom-services developers to cache JWTs produced by service-accounts for longer durations (i.e. using the
generateLongLivedTokenfunction), and listen to the above event to understand the correct point-in-time to invalidate the cached JWT of a service-account. -
Video Service: Added support for specfiying the "Required Media" in the Processing Profiles. This can be used for example for audio-only encodings.
Customizable Services
- Media Service: Fixed an issue where the last modified date on Move/TVShow Genre pages was showing a wrong value. (https://github.com/Axinom/mosaic-media-template/pull/312 )
- Media Service: Adjusted the workflows to use the new APIs from the
@axinom/mosaic-workflow-integrationlibrary mentionied above. (https://github.com/Axinom/mosaic-media-template/pull/320 ) - Channel Service: This service was added to the media template. (https://github.com/Axinom/mosaic-media-template/pull/308 )
July 18, 2024
Managed Services
- DRM Service:
- PlayReady API (6.20.2): Security and stability improvements.
July 17, 2024
Managed Services
- DRM Service:
- FairPlay API (6.21.1): Security and stability improvements.
July 16, 2024
Managed Services
- DRM Service:
- Widevine API (6.25.1): Security and stability improvements.
June 25, 2024
Libraries
-
@axinom/mosaic-ui: It is now possible to unselect items after the "select all" option was used. The checkboxes on the data rows will get enabled, once the data is exhausted (meaning there are no more pages to load). If the list is not exhausted yet, the checkboxes will stay disabled as in this case actions are expected to be performed on the whole list (including potentially unloaded items). Once the list is exhausted, the selection event will switch to a mode where it will enumerate the individual selected items to perform the action on.
The
Explorercomponent uses that mode by default, wheneverenableSelectAllis set totrue. ForListcomponents the behavior can be enabled by setting theenableSelectAllDeselecttotrue.
Managed Services
- Video Service: Videos can now be deleted. To delete a video, the user role or service account that is used must have
Videos: EditANDVideos: Deletepermission, or justAdminpermission for the Video Service.- Deletion can be done via the UI (from the video details station or the video explorer station) or directly via the GraphQL API (
deleteVideoandstartVideosDeletionmutations). - You can also send a
DeleteVideocommand. If the video was found and was successfully deleted aDeleteVideoFinishedevent will be sent that you can subscribe to. If the video deletion failed aDeleteVideoFailedevent will be sent. If an attempt to delete a video is made, but this video does not exist (anymore) the operation will still succeed, but no events will be sent.
- Deletion can be done via the UI (from the video details station or the video explorer station) or directly via the GraphQL API (
Customizable Services
- Media Messages: We’ve extended the doc types on the message payloads defined in the media-messages library to include information about the used aggregate-id and type. This will make it easier for consumers and producers of the messages to understand the values expected for each message. https://github.com/Axinom/mosaic-media-template/pull/315
- Media Service: Fixed an issue with genre localizations not always being synchronized correctly https://github.com/Axinom/mosaic-media-template/pull/310
- Media Service: Fixed an issue where the TV show genres station was not rendering successfully when the genre list was empty. https://github.com/Axinom/mosaic-media-template/pull/311
June 20, 2024
Managed Services
- Encoding Service (2.35.24171.1):
- Implemented a feature to create output with only audio or video (currently API-only).
- Fixed the issue when "Archiving": "Split" storing the main manifest and playlist in a folder named 'packaged'.
- Fixed the cause for possible job failure when the subtitle has a longer duration than the video.
June 06, 2024
General
Media Template Bootstrapping
With this release we’re introducing a new, improved way to bootstrap custom solutions based on our media template. This process is powered by the Mosaic CLI and will guide users through the setup process, allowing to customize the experience to their needs. We’re planning to add further improvements to this process in the future, so stay tuned for more updates.

If you’re new and want to setup a new custom solution, please follow the instructions documented in the getting started section on the media template introduction docs.
If you want to learn more about the command and it’s options check out the mosaic-cli documentation.
Postgres 16.2
We now support Postgres v16.2 as the database version for Media Template. Please follow the below steps to migrate your existing local environment to the new version (your data will be preserved):
- Make sure your media-template repository is up to date with the latest changes. Especially the changes from this PR
- Run
yarn run env-cmd --silent -f .env ts-node scripts/create-data-dump.tsfrom Media Template root. - Run
yarn infra:down - Delete the Docker volume related to Postgres (
docker volume rm infra_postgres_data) - Run
yarn infra:up --build - Run
yarn db:reset - Run
yarn run env-cmd --silent -f .env ts-node scripts/import-pg-dump.tsfrom Media Template root.
Libraries
-
@axinom/mosaic-cli: Fixing some commands that were not crrectly returing a non-zero exit code in case there was an error. This will make it easier to use the CLI in automated scripts.
-
@axinom/mosaic-message-bus: We have made adjustments to the
@axinom/mosaic-message-buslibrary to create the delay queues of Quorum type instead of Classic type. This will ensure the messages in those queues will have higher reliability and fault tolerance.However it’s not possible to simply change the type of a RabbitMQ queue from Classic to Quorum. Therefore, we’ve changed the name of the delay queues from
delay:10sec,delay:30sectodelay:10s,delay:30s. After upgrading to the latest message-bus library, the services will start using the newly named queues, and the older queues will remain unused/unconsumed.The services will not need any changes, however the remaining unused queues (
delay:10sec,delay:30sec) can be deleted via the RabbitMQ Management UI.
Managed Services
- Image Service: Images can now be deleted. To delete an image, the user or token that is used must have
Images: EditANDImages: Deletepermission, or justAdminpermission for the Image Service.- Deletion can be done via UI (from Image Details station or Images Explorer station) or directly via the GraphQL API (
deleteImageandstartImagesDeletionmutations), - You can also send a
DeleteImagecommand. If the image was found and and successfully deleted aDeleteImageFinishedevent will be sent that you can subscribe to. If the image deletion failed aDeleteImageFailedevent will be sent. If an attempt to delete an image is made, but this image does not exist - not found - the operation will still succeed, but no events will be sent.
- Deletion can be done via UI (from Image Details station or Images Explorer station) or directly via the GraphQL API (
- Image Service: Fixed an issue that prevented the Altair client to work correctly.
- Localization Service: Fixed an issue with the validation of language tags in Localization settings.
- Localization Service: Fixed a racing condition where localization values created immediately after the source entity registration were sometimes not saved correctly.
Customizable Services
- Media Service: We improved the ingest process to be more resilient on large ingests, able to handle more entities at once, improved the progress reporting, and have improved error handling. (https://github.com/Axinom/mosaic-media-template/pull/291 , https://github.com/Axinom/mosaic-media-template/pull/293 , and https://github.com/Axinom/mosaic-media-template/pull/295 )
- Media Service: Messages the service uses to send to itself (e.g. during ingest) are now directly stored in the inbox table and won’t do a detour over the RMQ anymore (https://github.com/Axinom/mosaic-media-template/pull/292 )
- Media Service: We updated the version of the Altair package (https://github.com/Axinom/mosaic-media-template/pull/303 )
- Media Service: We updated the version of the pg-transactional-outbox package (https://github.com/Axinom/mosaic-media-template/pull/307 )
May 13, 2024
Managed Services
- DRM Service:
- Management API (6.12.1): Security and stability improvements.
May 09, 2024
Managed Services
- DRM Service:
- Widevine API (6.25.0): Added Widevine client "system_id" to the License Request Info message.
May 06, 2024
Breaking Changes
Removed APIs
We now have removed the deprecated events from the ID Service:
UserDeletedUserRoleDeletedServiceAccountDeleted
Please refer to Planned Deprecations page to see the new events you may use instead.
Libraries
- @axinom/mosaic-cli: A new CLI command
mosaic service purge-permissionsis introduced, which can be used to purge permissions from ID Service for a given Mosaic Service. More info can be found in the @axinom/mosaic-cli documentation. - @axinom/mosaic-ui: We introduced a new
Tabscomponent. This component can be used to structure the fields on detail pages. To find more about the control and some general things to keep in mind when designing workflows using this component, check out the Storybook.
Managed Services
-
Video Service: The
video-select-fieldmicrofrontend extension now has a new optional propertypredefinedFilterValuesthat can be used to specify additional filters that should be applied to the list of videos that users can pick from. -
Video Service: The preview station now contains an optional video player allowing to preview videos directly in the management system. This feature can be configured in the video service settings on the admin portal.
-
Hosting Service: Hosting Service now supports assigning custom DNS labels to services hosted by it that makes it possible to have more predictable URLs for the deployed services. You can find the new field in the details station of your customizable service. Please note that the custom DNS labels are globally unique, and therefore will be assigned on a first-used basis.

-
Management System Service: Added an option to replace the welcome message on the home screen as well as the logo on the top right of the management system shell with a custom component. To find out how, check out the documentation
Customizable Services
- Media Service: We updated the piral package to version 1.5.2, which matches the version the Mosaic Portal is using. This update should not have any impact on the existing services, but it is recommended to update the piral package in your services to the latest version to avoid any potential issues. (https://github.com/Axinom/mosaic-media-template/pull/287 & https://github.com/Axinom/mosaic-media-template/pull/288 )
- Media Service: We added a new environment variable
IS_LOCALIZATION_ENABLEDto the media workflow package. This variable will affect whether the localization sub stations on the entity details will be shown or not. (https://github.com/Axinom/mosaic-media-template/pull/284 ) - Media Service: We removed the unnecessary permission check for the events the service receives as answer for the LocalizeEntity command which complicated the process when trying to setup the service from the scratch. (https://github.com/Axinom/mosaic-media-template/pull/277 )
- Media Service: Message handlers in the media service are using a database clients with the owner permissions to be able to change also those values that cannot be changed via the login database role. The field names in the handler suggested incorrectly, that the database login pool is used in message handler. We changed the argument names to "ownerClient" to avoid confusion. (https://github.com/Axinom/mosaic-media-template/pull/278 )
April 10, 2024
General
With this release we’re launching our new Localization Service! 🎉
This service enables you to manage the different localizations of the metadata of your entities and ultimately shipping them to your users. To learn more about the service check out its documentation here.
We integrated support for it into the Media and Catalog Service (more details below), but the service is not limited to these services. If you want to use it in your custom service, please check out the this article that explains how to extend your entities with localizations.

Libraries
- @axinom/mosaic-ui: Fixed an issue with the Dynamic Data List, where changes to the position of an item using the text input were not applied correctly.
- @axinom/mosaic-ui: Explorers in selection mode now reset their selection when the filters are changed.
Managed Services
- Hosting Service: When storage credentials are regenerated through the Admin Portal, the Hosting Service now emits an event
ObjectStorageCredentialsRegenerated. Interested services can listen to this event and update any stored management tokens etc. using Hosting Service GraphQL API to keep the storage credentials up-to date. - Hosting Service: Now the services deployed via the Hosting Service will receive a performance boost during executing DB Queries that uses
ILIKEstatement (such as when using filter queries for text fields) since they are able to use existing GIN INDEXes for improving query performance when Row Level Security is enabled. This is achieved by automatically marking thepg_catalog.texticlikefunction asLEAKPROOF. - Hosting Service: The Mosaic Hosting Service no longer grants the
policymakerrole to RMQ Users it generates and instead will grant themanagementrole. If you require specific policies to be configured for your RMQ vhosts, please get in touch with our support team, so we can help you out.
Customizable Services
-
Media & Catalog Service: We added localization support for all publishable entities (Movie, TV Show, Season, Episode, Collection, Movie Genre, TV Show Genre).
We changed the Catalog Service by moving localizable properties into a separate related table, e.g. title, description, and synopsis are no longer part of the
movietable, but are moved tomovie_localizationsrelated table. The GraphQL API remains unchanged, as dedicated views are implemented to expose localizable properties on the level of parent entity.Localization is an optional feature in the Media Service and can be enabled/disabled using the
LOCALIZATION_IS_ENABLEDenvironment variable. When disabled, entity definitions and changes from the Media Service will not be synced with the Localization Service, and only base values will be published instead of base values and localizations.noteIn order for localizations to be enabled, the Localization Service must be enabled on the environment and the
LOCALIZATION_IS_ENABLEDenvironment variable needs to be set totrue.After these changes are applied to an existing media-template repository and there is an intention to enable localizations, the following migration steps must be done:
-
The existing media-service service account must be adjusted to include "Source Entities: Edit!, "Entity Definitions: Edit", "Localized Entities: Edit", and "Localized Entities: Review" permissions of the Localization Service. For a local development, this can be done by running `yarn setup`` script to (re)create the service account.
-
Once the Localization Service is enabled in both Admin Portal and Media Service (via the
LOCALIZATION_IS_ENABLEDenv var) and successfully launched, the previously existing entities can be migrated to become localizable using a dedicated migration script located atservices\media\service\src\_manual-repair-scripts\register-localization-sources.tsThe majority of the changes were added via PR https://github.com/Axinom/mosaic-media-template/pull/164
- The support for ingesting localized values was added with PR https://github.com/Axinom/mosaic-media-template/pull/211
-
-
Media Service: We added a refetch configuration to the mutations on the detail stations to make sure the form data also updates correctly when the save is performed by an action that does not navigate the user away from the page. (https://github.com/Axinom/mosaic-media-template/pull/269 )
-
Media Service: We adjusted the titles of some Explorer stations to be more consistent (https://github.com/Axinom/mosaic-media-template/pull/267 )
-
Media, Catalog, Entitlement, Vod-to-Live Service: The services were updated to use the latest
service-commonlibrary, specifically now we use the updatedsetupMonitoringmethod of this library that will ensure if there will be any errors of a single metric during its collection, the other successfully collected metrics will be available in the registry. Instead an error log will be generated to be investigated separately. (https://github.com/Axinom/mosaic-media-template/pull/263 )
April 01, 2024
Managed Services
- Encoding Service (2.33.24087.1): Fixed non-'main' CPIX thumbprints might not work for some customers after the previous Encoding release.
March 25, 2024
General
With this release we’re introducing a new pattern on how the media, catalog and entitlement service handle messages. The services are now using a Transactional Inbox/Outbox pattern. The classical way of processing messages is in general still supported, but we encourage the use of the new pattern to get a more reliable and consistent message processing. We have a more detailed explanation of the pattern in the Messaging documentation, but here are the sections that describe the general idea:
Transactional Outbox
In Mosaic, the transactional outbox pattern is utilized for reliable message sending from one service to itself or other external systems. When a service needs to publish an event or command, it first writes the message details to its outbox table within the same database transaction as the business logic. This ensures the message’s atomicity and durability together with the associated business data. The message publisher of that service polls then this outbox table and sends the messages via the actual RabbitMQ messaging broker.Transactional Inbox
On the receiving end, services in Mosaic employ the transactional inbox pattern to process incoming messages reliably and efficiently. Messages are retrieved from the RabbitMQ queue and stored exactly once in the inbox database table. The associated business logic is then executed within the same database transaction that marks the inbox message as processed. This guarantees that the message is processed exactly once, even in the event of failures or system restarts.
The very changes to the three services on the media template can be seen on PR https://github.com/Axinom/mosaic-media-template/pull/219 .
Libraries
- @axinom/mosaic-ui: The UI library will now be smarter about the
<style/>elements it injects into the DOM. A UI library instance will only add the styles if they were not already added by another instance. Different versions of the library will still define styles that differ individually. This change makes the DOM more lightweiht and improves the developer experience when trying to tweak styles on the fly using the browser’s developer tools. - @axinom/mosaic-portal: When pressing the save button in the management system, the application will not create another entry in the browser history. This will make it easier to navigate back to the previous page after saving a form.
- @axinom/mosaic-service-common: The service-common library now includes an express handler to add the Axinom Mosaic
favicon.icoto express applications. This can be done viaapp.use(mosaicFavicon); - @axinom/mosaic-service-common: The
assertErrorhelper function is deprecated in favor of a newensureErrorhelper function.
|
Before |
After |
|---|---|
|
|
Managed Services
-
Video Service: The Video Service message handlers for bulk archiving and bulk unarchiving videos send out an
ArchiveVideosFailedEventandUnarchiveVideosFailedEventmessage in case the (un)archiving fails. The import custom videos message handler will now send anImportCustomVideoFinishedEventmessage when the import is successfully done and anImportCustomVideoFailedEventin case the import fails. -
Image Service: When the
ArchiveImagesCommandor theUnarchiveImagesCommandImage Service fails to handle the archive/unarchive message they send out the correspondingArchiveImagesFailedEventandUnarchiveImagesFailedEventmessages. -
Encoding Service (2.33.24074.3):
- Implemented visible watermarking. Watermarking can now be encoded into the videos! PNG, JPEG and GIF images are supported. Check the API documentation in our Portal for instructions on how.
- Improved the Detection of incorrect subtitle timestamps and error messages regarding them have been made more clear.
- Improved HLG color data transfer to be more reliable when using per-scene encoding.
- Fixed issues where the job might fail with a "Concurrent reads are not allowed" error.
Customizable Services
-
Entitlement Service: Maxmind has introduced a daily download limit for their GEO IP databases. If your entitlement service is deployed in a scalable way or deployed/restarted often that limit can be exceeded. To avoid this limit Maxmind suggests downloading their database with your license key to some shared repository or setting up a proxy cache from where your services download the database.
You can set the URL of such a proxy in the environment variable
GEOLITE2_DOWNLOAD_URLfor your Entitlement Service. https://github.com/Axinom/mosaic-media-template/pull/261 -
Entitlement Service: We bumped the
geoip-countrypackage version to fixed a bug that caused entitlement-service to crash shortly after start-up. This was caused due to a change in the MaxMind API and the library which accesses the API to fetch the geoip-country list not being updated to handle the changed API. https://github.com/Axinom/mosaic-media-template/pull/256
March 13, 2024
General
- This release implements a few improvements around the way how data is saved in the management system workflows. You can find a more detailed description of concept for saving in the Saving article.
- The management system browser tab title now dynamically adapts to the page that is currently open. This makes it easier to distinguish between different tabs when you have multiple tabs open in the same browser window.
Out of the box it will use thetitlethat is being set on thePageHeadercomponent of the station. Stations can also set a custom page title by using thesetTitlemethod on thePiralAPIobject. To make it not conflict with a potentialPageHeader, the automatic setting of the page title by thePageHeadercan be disabled by settingsetTabTitletofalse.
To enable that feature for your custom workflows you need to update the UI library to the latest version. - We improved the user experience when configuring profiles on video and image service that are using storages coming from the hosting service. If you have hosting service storages already enabled, you can directly pick the container from the containers available on your storage. If you have not enabled the hosting service storages yet, the UI will guide you through the process of enabling them. To find out more, check out the hosting service documentation.
Libraries
- @axinom/mosaic-ui: The
FormStationcomponents will now add an asterisk to the page title, if the form has unsaved changes, making it easier to understand whether a from is dirty or not. This will also be reflected in the browser tab title. - @axinom/mosaic-ui: Added a toast notification when a form was saved successfully. This will help users to better understand when a saving operation was happening, e.g. when navigating away from a dirty form.
- @axinom/mosaic-ui: Added a new
FormGridcomponent. This can be used to replicate the styles applied to the children of theFormStation. - @axinom/mosaic-graphql-common: We’ve added a new Express middleware
forwardToGraphiQl, which will redirect browsers requesting the/as well as/graphqlroute of a service to the/graphiqlendpoint. This will make it easier to access the GraphiQL interface of a service. We added this middleware to all our managed services as well as the services in the media template (see https://github.com/Axinom/mosaic-media-template/pull/250 ).
Managed Services
- Management System Service: We tweaked the look and feel of the save indicator to make it more clear what the state of the from and saving process is.
- Management System Service: We changed the favicon of the Management system to the Mosaic logo.
- Image Service: Previously, if you would request an image of a specific width and height from the `/transform`` API, and these values exceeded the size of an original image the returned image would have been up-scaled. This is no longer happening. If at least one of the requested dimensions is greater than the same dimension of the original image, the returned image will be transformed to match the aspect ratio of the requested dimensions, but will not exceed the original image. If upscaling was previously expected to happen by the image service, it should not be handled by other means. E.g. browsers built-in upscaling mechanisms.
- Image Service: Adding the image transformation base url to the image details station making it easier obtainable for users of the management system.
- Image Service: If an image with a name that is longer then 100 characters is uploaded or imported using the
EnsureImageExitsmessage, the image service will now truncate the image title to 100 characters instead of failing the import. - Image Service: Fixed an issue with the preview of the image transformation in the focal point stations for images that have the default focal point set.
- Hosting Service: The Mosaic Hosting Service now grants the
policymakerrole to all RMQ Users it generates. This shall offer greater control over defining message policies such as setting Message TTL, Max length, etc. via the RMQ Management Portal for the user.
Customizable Services
- Media Template: We discovered that some services are missing their required deps in the package.json. Since we are in a monorepo, these deps were supplied by other services, and therefore everything appears to work well. But when we try to build a service in isolation, the missing deps would produce build errors. We added the missing dependencies to all services in PR https://github.com/Axinom/mosaic-media-template/pull/246 .
March 04, 2024
Managed Services
- DRM Service:
- FairPlay API (6.21.0):
- Added "allow_airplay" and "allow_av_adapter" Entitlement Message options to restrict playback via AirPlay and Apple AV adapter, respectively.
- DRM Message "begin_date" is now allowed to be up to 1 second into the future for the message to be considered active. This is to account for small clock-drifts, which can cause issues when the begin date is set to current time.
- FairPlay API (6.21.0):
February 28, 2024
General
We’ve now introduced a strongly typed eventKey property in GraphQL Subscriptions that generates payloads for event changes in our Managed Services. If you happen to consume such subscriptions in your custom services, you may now use the eventKey field over the event field to have better type safety and to avoid any potential issues in the future.
Details
An example difference in payload formats before and after:
|
Old |
New |
|---|---|
|
|
Libraries
- @axinom/mosaic-id-guard: When a custom-service is configured to use a specific tenant/environment but receives a JWT that was issued to a different tenant/environment, the displayed error message will contain better instructions to troubleshoot the issue.
- @axinom/mosaic-ui: Live suggestion styles are adjusted to have better padding.
- @axinom/mosaic-ui: Added new icon for
In Progress.
Managed Services
- Identity Service: A bug was fixed when the
UserRoleAssignmentChangedevent was fired for a User Role that was removed from a User, the correct User Role information was not included in the event payload. Now the payload includes the correct User Role name and ID. - Hosting Service: A bug was fixed when a Custom Service was redeployed with a changed DNS label (via the DNS-port-mappings in the deployment-manifest YAML), the new label was not pointing to the service port.
- Video Service: The Cue Points station was updated by removing the "Row Number" column from the Cue Points to avoid any confusion regarding the ordering. The Cue Points are always ordered by the
Timestamp.
Customizable Services
- Media Messages: The media-messages library was updated and the corresponding services (Media, Catalog & Entitlement) were aligned to now use the updated GraphQL Subscription payload format where the
eventKeystrongly typed property is favoured over the now deprecatedeventproperty. See more details in this PR (https://github.com/Axinom/mosaic-media-template/pull/235 ). - Media Service: Improved the look & feel of the workflows which contained the "Archive" & "Delete" actions to be more consistent with the remaining actions by removing the icon and only having the label.
February 27, 2024
Managed Services
- DRM Service:
- Widevine API (6.24.0):
- DRM Message "begin_date" is now allowed to be up to 1 second into the future for the message to be considered active. This is to account for small clock-drifts, which can cause issues when the begin date is set to current time.
- The LicenseRequestInfo message now contains the session ID of the current playback session.
- Widevine API (6.24.0):
February 22, 2024
Managed Services
- DRM Service:
- Key Service API (1.20.0):
- Added optional "fixedIv" parameter to the /Anevia endpoint. If set to "true", the returned IVs will be non-random and derived based on the Key IDs.
- Added new "/Titan" endpoint, which supports the Titan encoder "Standard CPIX" key exchange protocol. Note: the protocol is still in "beta" – contact Titan support for more information.
- Key Service API (1.20.0):
February 19, 2024
Managed Services
- DRM Service:
- PlayReady API (6.20.1):
- DRM Message "begin_date" is now allowed to be up to 1 second into the future for the message to be considered active. This is to account for small clock-drifts, which can cause issues when the begin date is set to current time.
- Whitelisted the new Widevine-specific HDCP "2.3" setting which is still validated when PlayReady is used.
- PlayReady API (6.20.1):
February 12, 2024
Breaking Changes
Deprecations
The format of GraphQL errors returned by Mosaic services has changed to conform with GraphQL standards.
Deprecated properties are timestamp, code, and details.
For backward compatibility, the old properties are still returned, but they will be removed in the future. For more details, see the Planned Deprecations page.
Details
How to access these properties with new format:
| Deprecated | New |
|---|---|
error.timestamp | error.extensions.timestamp |
error.code | error.extensions.exception.code |
error.details.someDetailsProperty | error.extensions.someDetailsProperty |
|
Old |
New |
|---|---|
|
|
Removed APIs
- With this release we removed backwards compatibility on our Video Service for the deprecated APIs that still used the
Encoding Servicename. - We also dropped support for the following properties on Video service:
drmKeyIds,qualityLevels,durationInSecondson Videos.bandwidthInBpsandinitialFileonVideoStreams. - We removed the
NodeIdbased fields from the graphql schemas of all managed services.
Please refer to the Planned Deprecations page for more information.
Libraries
-
@axinom/mosaic-cli: A new CLI command
mosaic service sync-permissionsis introduced, which can be used to synchronize permissions with ID Service for a given Mosaic Service by giving apermissions.jsonfile. More info can be found in the Documentation of the CLI package. -
@axinom/mosaic-id-guard: Now the
AxGuardplugin generates apermission-definition.jsonfile that serializes the permission-definition of the service. This can be helpful when you need to perform out-of-band permission synchronization to the Mosaic ID Service before the service is started.See this PR (https://github.com/Axinom/mosaic-media-template/pull/223 ) & Library Documentation for the change required on the custom-service. The generated file can be used by the new
mosaic service sync-permissionscommand of the Mosaic CLI (see above) to seed the permissions into the ID service. -
@axinom/mosaic-portal: Changed the link to the
/aboutpage on the side panel footer to now show the portal version anymore to avoid confusions. The footer still links to the/aboutpage. The full list of versions of all components running on the management system can be found there. -
@axinom/mosaic-ui: Changed the
ImageLoadercomponent, to not do requests to./undefinedif theimgSrcis not defined. -
@axinom/mosaic-service-common: Removed deprecated error handling classes in favour of MosaicError.
Managed Services
- Identity Service: Now when a customizable-service synchronizes the permissions to the Identity Service, the system-defined
Administratorrole of the corresponding environment will be immediately updated with the changed permissions. Previously this happened only when a Management Super Admin would sign-in to the management system. This new change will keep the Administrator role up to date in a more timely manner. - Hosting Service: The Pilet Artifacts Explorer now shows most recently updated pilets first.
- Image Service: New property
image_typeadded to the Image Upload Webhook request payload. - Channel Service: Fixed an issue where the publish validations for channels and playlists would include the publish hash even if there were errors. The publish hash is now correctly null when any validation reported an error.
- Monetization Grants Service: Fixed an issue where the publish validations for claim sets would include the publish hash even if there were errors. The publish hash is now correctly null when any validation reported an error.
- Subscription Monetization Service: Fixed an issue where the publish validations for subscription plans would include the publish hash even if there were errors. The publish hash is now correctly null when any validation reported an error.
Customizable Services
- Media, Catalog and Entitlement Service: Added pg lock timeout config on Postgres PoolConfig level. This setting helps to resolve deadlock situations when two competing transactions wait for each other to release their locks. This can happen when a client runs multiple mutations within a single GraphQL request or with other database related work. (https://github.com/Axinom/mosaic-media-template/pull/207 )
Documentation
We’re now publishing the TypeDocs for our libraries at https://mosaic-typedocs.axinom.net/. This will allow you to see the TypeScript type definitions of our libraries in a more user-friendly way.
January 23, 2024
Managed Services
- Encoding Service (2.27.24019.1):
- Implemented a flag for avoiding negative timestamps in the output, avoiding potential job failure.
- Fixed an intermittent issue where a job might fail with "Internal server error. The administrator has been notified about this."
- Fixed an issue when cancelling a job, the event says "Error when processing the media. Please ensure that the source media is valid. Feel free to contact our support if necessary."
January 11, 2024
Managed Services
- DRM Service:
- Key Service API (1.19.1): SPEKE v1: Added new optional "protectionScheme" URL parameter, which should be set to "cbcs" when generating AWS "CMAF" content (which is encrypted using the "cbcs" protection scheme). Without this, the generated PlayReady and Widevine CMAF content may not play. Omitting the parameter or setting it to "cenc" will result in the previous default behaviour: Widevine and PlayReady will get "cenc" signalling data in the response; FairPlay will always get "cbcs" signalling.
December 20, 2023
Managed Services
- DRM Service:
- Widevine API (6.23.0):
- Added "allow_playback" license configuration setting (for advanced scenarios).
- Added Widevine-specific "allow_persistence" setting/override (for advanced scenarios).
- Added Widevine-specific "duration" setting/override (for advanced scenarios).
- Added HDCP level "2.3" to the list of supported HDCP restrictions.
- Added "real_time_duration_expiration" and "real_time_playback_expiration" settings. They’ve effectively been "true" before; now they’re configurable.
- Added "Release" and "Renewal" license support for clients that use "keyboxes" for trust (a deprecated mechanism which a few relatively modern clients still use).
- Corrected the handling of the license "Duration" setting in the Entitlement Message (EM). Previously, it relied on the now-deprecated "license duration" Widevine SDK setting; now it maps to the equivalent "hard-enforced rental duration" native setting. Previously, due to the use of the deprecated setting some old and new clients (roughly pre-2021 and 2021+) may have behaved differently and the behaviour of new clients may have not exactly matched the documentation of the "Duration" EM setting, depending on the license type (offline / streaming) and playback duration. For example, previously, in case of new clients and persistent licenses, a Duration of 3600 (1h) would start ticking on first playback (similar to playback duration), while it is expected to start ticking already when license is acquired. Now the behaviour of "Duration" is once more in line with the existing documentation, both for "new" and "old" clients.
- Widevine API (6.23.0):
December 06, 2023
@axinom/mosaic-message-bus
Messages that are sent and received in Mosaic-based solutions contain now the additional
aggregate_id and aggregate_type fields. Those fields are used to describe on the
message level what entity is associated with that message. The aggregate ID field
contains the unique identifier (e.g. database ID) of the entity and the aggregate type
field contains the name of the entity (suggested to use kebab-case). For bulk operations,
the aggregate_id field contains the value MULTIPLE_IDS, and if there is no unique
identifier (yet) the value UNDEFINED_ID is used.
DEPRECATION NOTE: Messages that you send to the Managed Services must include an
aggregate_id and the aggregate_type in addition to e.g. the message_type. If you
update the @axinom/mosaic-message-bus library, the aggregate types are already defined in
the MultiTenantMessagingSettings objects. Backward compatibility is available but
please check the Planned Deprecations page when the deprecation
date is reached.
@axinom/mosaic-messages
Please upgrade the @axinom/mosaic-messages in your projects to the latest version as
it includes the new aggregate type and the action (event or command) settings. Those
are required to send commands and help when receiving events.
@axinom/mosaic-cli
The @axinom/mosaic-cli library was adjusted to create the messaging settings with the
additional aggregate type. The async-api specification files need to be adjusted to
include a tag in the form aggregate-type:<your-type> for all messages like this:
environment-created-event:
tags:
- name: aggregate-type:environment
Mosaic Identity Service
Three messaging events in the ID Service were renamed to be in line with the naming
convention of managed services. The event UserDeleted was renamed to
UserDeleteFinished, UserRoleDeleted was renamed to UserRoleDeleteFinished, and the
ServiceAccountDeleted was renamed to ServiceAccountDeleteFinished. In addition, the
three events UserDeleteFailed, UserRoleDeleteFailed, and ServiceAccountDeleteFailed
were introduced for cases where the delete operation failed.
DEPRECATION NOTE: please upgrade to the latest version of the
@axinom/mosaic-messages library and adjust your code to listen to those messages. After
you switch to the new messages it is recommended that you delete any RMQ Queues created
under the older event names via the RMQ Management UI for good housekeeping.
Mosaic Frontend Samples
The Frontend Samples now support importing & exporting your profiles (in JSON format).
This will enable better shareability of profiles between your team members.
Mosaic Media Template
The MessagingSettings were regenerated based on the latest @axinom/mosaic-message-bus
update. The messaging broker publication code was adjusted to include the aggregate ID and
aggregate type.
There is now a new filter on the ingest details station that allows you to filter the list by status (e.g. Success or In Progress), in case there are multiple statuses present:

November 02, 2023
Managed Services
-
AxAuth Service: A new field
Enforce Strict Password Policyis added to the End-User Store Details station in the Admin Portal. This setting will be enabled by default for all End-User stores. You may change it as necessary. Details of the applied policy can be found in the station details. When enabled, the password policy will be enforced for the following scenarios.- End-user sign-up is initiated by providing a password.
- End-user sign-up is completed by providing a password.
- End-user password is reset.
-
We added a way to copy the current user token from the
/Aboutpage. This makes obtaining the token for e.g. performing manual request throughgraphiqlmore accessible.
@axinom/mosaic-ui
ListandDynamicDataListcolumns now have the option to not specify apropertyName. If a column does not specify apropertyNameit must specify arendervalue. This renderer can then use the fulldataobject, passed as second argument, to render the column content. This makes it easier to have completely calculated columns that will not display the data of a single property. These 'unbound' columns will not be sortable.
October 24, 2023
Managed Services
- Encoding Service (2.27.23263.1): Fix: Subtitle and CC has .mp4 file extension instead of .vtt
October 19, 2023
Managed Services
- Video Service: Reworked the video detail stations to show more detailed information about the different streams of a video.
Customizable Services
- Media Service: Fixed an issue where the deployment manifest of the Media Service didn’t declare the
CUE_POINT_TYPES_DECLAREpermission on the video service. (https://github.com/Axinom/mosaic-media-template/pull/159 ) - Media Service: Fixed an issue with the alignment of the statistics on the Genres details stations (https://github.com/Axinom/mosaic-media-template/pull/162 )
@axinom/mosaic-cli
- Added the
unpublish-piletcommand to the Mosaic-CLI. This will allow you to delete a pilet that is no longer required to be published in the microfrontend Pilet Feed. Note that the service account used to perform the operation must have thePilets: Deletepermission.
@axinom/mosaic-service-common
- A new method
setupServiceHealthEndpointis introduced to the@axinom/mosaic-service-commonlibrary. It exposes a/healthroute on the service API URL, that can be used to check for a HTTP 200 OK response to determine if a service is available for use. Optionally, the response body may also contain an arbitrary JSON document specified by the service that describes the health of individual components of the service. See this PR for more details on its usage. - A new method
isServiceAvailableis introduced to the@axinom/mosaic-service-commonlibrary. This method will query the route configured via thesetupServiceHealthEndpointmethod to check if the target service is available for use. If the response contains a HTTP 200 response code, it will returntrue, else will returnfalse. The method will retry the availability check for a default 15 attempts with an exponential back-off strategy before returningfalse. See this PR for more details on its usage.
October 12, 2023
Managed Services
- DRM Service:
- FairPlay API (6.20.0):
- License Request Info Message now returns the following new information: recommended_client_id, session_id, streaming_indicator, playback_state, license_protocol_version and supported_license_protocol_version in the License Request Info Message.
- Added FairPlay-specific duration field to the Entitlement Message.
- FairPlay API (6.20.0):
October 09, 2023
General
- We’re going to remove support for fields using
NodeIdfrom the GraphQL APIs of all managed services in the future. If you’re using such fields, please refer to Planned Deprecations for more information and let us know if you have any questions or concerns.
Managed Services
-
Encoding Service got renamed to Video Service, to making it more clear, that the service can now also manage videos that were not encoded by the Axinom Encoding Service (more details on this here).
The change is done in a backward compatible way, so the service currently still supports permissions or messages that are using the old name. However we plan to remove the support of the old name in the future. To find out more details about the deprecation please have a look at our Planned Deprecations page.
-
Image Service: Added a 'Image Upload' webhook. This webhook is called when an image is uploaded. The webhook can be used to validate the image and reject it if it does not meet the requirements.
-
AxAuth: Fixed a bug in the AxAuth Service that requested Management System users to Sign In more frequently than they needed to. The fix is now applied to the refresh cookie issuing logic, and the Sign In session will be valid until the refresh cookie actually expires.
-
Video Service: Existing cue points can now be edited directly inside the list on the cue point management station.
Customizable Services
- The Mosaic Encoding Service was renamed to Mosaic Video Service. This means you should upgrade the mosaic libraries to the latest version which provides you with all the adjustments. The adjustment also affected the RabbitMQ queues that were used for video encodings. Those obsolete queues need to be removed now. Please stop your Media Service instance, deploy the latest version, run
yarn migrate:rmq-video, and then start the Media Service normally. - Media Service: Added a link that allows navigating to the detail pages of an entity to all selection explorers (See https://github.com/Axinom/mosaic-media-template/pull/125 )
- Media Service: Fixed an issue when reordering genres and items inside collections (https://github.com/Axinom/mosaic-media-template/pull/142 and https://github.com/Axinom/mosaic-media-template/pull/143 )
- Media Service: Changed the transaction isolation level used for publishing ot
RepeatableReadto avoid deadlocks when publishing multiple entities at the same time. (https://github.com/Axinom/mosaic-media-template/pull/132 ) - Media Service: Removed the
externalTypesmodule in favour of the new@axinom/mosaic-managed-workflow-integrationpackage. (https://github.com/Axinom/mosaic-media-template/pull/124 )
@axinom/mosaic-managed-workflow-integration
- Introducing the
@axinom/mosaic-managed-workflow-integrationlibrary. This library contains type definitions of things shared by managed workflows, making it easier to integrate and maintain the shared elements in your custom code. More details can be found in the@axinom/mosaic-managed-workflow-integrationdocumentation
@axinom/mosaic-ui
- Added column resizing to the
DynamicDataListcomponent. - Extended the
DynamicDataListcomponent to support inline editing. To enable this behavior, set theallowEditingproperty totrue. By default, the List will use thedataEntryRendererfor the editing experience of a cell. To control the editing experience for a column more granular, developers can use the new, optionaldataEditRenderproperty on the column definition. - Fixed an issue where the
positionPropertyNameproperty on theDynamicDataListcomponent was not used in some cases. - Fixed an issue where content of
Listcomponents could get hidden when resizing columns.
@axinom/mosaic-id-guard
- Added a new method checkSigningKeyExists to the
@axinom/mosaic-id-guardlibrary. This will be helpful in situations you need to check if a given JWT signature can be verified by the RSA keys currently in use for the Mosaic Environment that issued the JWT.
@axinom/mosaic-db-common
-
We’ve improved the performance of initializing DB transactions when using the
transactionWithContextmethod of the@axinom/mosaic-db-commonlibrary. For an averagepgSettingsobject with 3 properties (i.e. role, username, permissions). The time taken earlier would’ve been ~150ms and now it’s down to ~50ms.To receive this performance boost, you simply need to update
@axinom/mosaic-db-commonto version0.26.0or later.
September 28, 2023
Managed Services
- DRM Service:
- PlayReady API (6.20.0):
- PlayReady Server SDK upgraded from v4.5.7218 to v4.6.7604.
- Added support to return "recommended_client_id" to license request info message.
- Added PlayReady-specific "duration" field to the Entitlement Message.
- Added PlayReady-specific "allow_persistence" to the Entitlement Message.
- PlayReady API (6.20.0):
September 18, 2023
Managed Services
- Encoding Service (2.27.23251.1):
- Possibility to define audio representations. Read more..
- New default bitrate ladder (V2). Read more..
- AWS AssumeRole implementation for S3 Locations. Read more..
September 14, 2023
Managed Services
- DRM Service:
- Key Service API (1.18.3): PlayReady "CHECKSUM" is now included in all PlayReady signalling data, where applicable (it applies only to 'cenc' / "AES-CTR" keys). This includes, Anevia, Broadpeak, Harmonic, Speke, SpekeV2 and
WidevineProtectionInforesponses. Previously, it was only included in the dedicated "checksum" field inWidevineProtectionInforesponses.
- Key Service API (1.18.3): PlayReady "CHECKSUM" is now included in all PlayReady signalling data, where applicable (it applies only to 'cenc' / "AES-CTR" keys). This includes, Anevia, Broadpeak, Harmonic, Speke, SpekeV2 and
September 12, 2023
Managed Services
-
Hosting Service: We now support hosting of customized Mosaic services via the Hosting Service. You can read more about it here.
To get started quickly, we’ve provided instructions on how-to deploy the customized Mosaic Media Template through the Hosting Service. You can follow the steps here.
-
Video Service: We updated the Video Processing Profile to include more processing options such as
Video Format,Optimize For: Speed/Quality,Normalize Audio, etc. You can read more on the configuration options here.
@axinom/mosaic-ui
- An additional property
customIconis now added to theButtonandCompositeButtoncomponents for custom icon support. - The styles for the
BooleanViewFieldcomponent has been updated to be more consistent with the other form fields. - Integrated
react-beautiful-dndto handle reordering of theDynamicDataList.
@axinom/mosaic-graphql-common
- A new library
@axinom/mosaic-graphql-commonis introduced. This library contains all common utility functions related toGraphQLandPostgraphileplugins. These functions and plugins were previously inside@axinom/mosaic-service-common.- Classes and methods:
- PostgraphileOptionsBuilder
- enhanceGraphqlErrors (previously
graphqlErrorsHandlerin@axinom/mosaic-service-common) - getWebsocketFromRequest
- Postgraphile Plugins:
- AddErrorCodesEnumPluginFactory
- AnnotateTypesWithPermissionsPlugin
- DeprecateStrayNodeIdFieldsPlugin
- GenericBulkPluginFactory
- GraphiqlManagementModePluginHook
- OmitFromQueryRootPlugin
- OperationsEnumGeneratorPluginFactory
- SubscriptionsPluginFactory
- ValidationDirectivesPlugin
- Classes and methods:
Refer this PR for more details on the actual changes.
@axinom/mosaic-portal
- Deprecated
app.registerRouteResolverin favor ofapp.setRouteResolverfor enhanced TypeScript type safety. This change formalizes the contract between workflow registration and resolver consumption by merging the custom resolver registration typeRegistrationFunctionwith@axinom/mosaic-portal - Updated
app.resolveRouteto require merging@axinom/mosaic-portaltype declarations with the customResolverFunctionfor each route resolver. These shared types can now be utilized with thesetRouteResolvermethod, ensuring consistent type safety across the workflows.
August 31, 2023
Managed Services
- DRM Service:
- Widevine API (6.21.1):
- Added license renewal support. Note: for FairPlay and PlayReady, renewal depends mostly on client-side support/implementation and the basic support from Axinom side has always existed.
- Added support for license requests containing "keyboxes", by proxying such requests to Google Widevine cloud license service (these can’t be handled by Widevine SDKs). While "keybox" clients are deprecated by Google, there are still some out there. NOTE: Currently "release" and "renewal" requests are not supported for "keybox" clients, but this should not affect majority of workflows. This support will come in an upcoming release.
- Added support for configuring VMP (Verified Media Path) restrictions. Until now, Google’s defaults were always used, which are very permissive. Now the relevant settings can be configured. These include: "MinVmpLevel", "AllowNonVmpPlatforms" and "AllowTamperedPlatforms". Several additions to the License Request Info message:
- Added "request_type" field to allow proxies to more easily differentiate between e.g., "new", "release" and "renewal" license requests.
- Added "platform" field to provide a reliable identifier for taking selective action in case of a particular playback platform or, for example, to choose the most suitable device identifier for that platform.
- Added "recommended_client_id" field. It contains the recommended identifier to use for device management for the current device, out of several that Widevine exposes, to simplify the selection process.
- Fixed a server error (500 response) caused by trying to generate licenses without any content keys (which Widevine SDK no longer allows). Now a client error with a descriptive error message is returned instead. Previously, it could happen, for example, when a license request referenced no content keys (and potentially specified a content ID instead).
- Various fixes related to the use of the Google Cloud Proxy operation mode (this feature is not yet publicly available).
- Various client errors were previously misinterpreted as server errors. Now they’re properly client errors (4xx).
- Fixed an issue where setting HDCP or CGMS-A settings in the Entitlement Message would result in server errors.
- Fixed an issue with requests without Key IDs in PSSHs where not properly processed when the
IgnoreKeysInLicenseRequestEM setting was "true" and the required keys were properly listed in the EM.
- Widevine API (6.21.1):
August 22, 2023
Managed Services
- DRM Service:
- Key Service API (1.18.2):
- Enabled more verbose logging for the
api/Broadpeakendpoint. - Fixed a bug where uploading keys with duplicate IDs via the
api/Import/ContentKeysendpoint was incorrectly considered a server error. It is now a client error. - Fixed an issue related to the SPEKE v1 endpoint (
api/Speke) when key ID overriding was enabled. Previously the "kid" of theContentKeyUsageRuleelements was not correctly overridden. This fixes AWS encoders erroring out whenever this element was utilized. - Fixed an issue related to the SPEKE v1 endpoint, where the SmoothStreaming-related ProtectionHeader data was not returned. Now SmoothStreaming content can be created using AWS encoders and the SPEKEv1 protocol.
- Enabled more verbose logging for the
- Key Service API (1.18.2):
August 11, 2023
Managed Services
- Image Service: Focal points on Image Service workflows now allow more precision.
- Channel Service: Items within a program on the channel service can now be re-ordered using drag & drop.
- Channel Service: It is now possible to add multiple items to a program on the channel service at once.
Customizable Services
- Entitlement service: Support for
channelsis now added to the entitlement service.
Admin Portal
- The "saving indicator" feature is also added to the admin portal.
@axinom/mosaic-ui
-
We’ve added column resizing to all
Lists, includingExplorercomponents. To resize, simply drag the column separator. Double click it, to return everything to their default width.
This feature is enabled for all Lists, after updating to this version of the UI-library. Developers can disable that behavior per-column by settingdisableResizingto true on the column definition. Resizing support forDynamicDataListcomponents will be added in future updates.
-
For
CustomFilter, a new prop calledselectedValueRendererwas added which can be used to override the default rendered value. -
Fixed an issue with the
FileUploadControlthat prevented the upload when the same file was selected again on the same component instance. -
The
onChangeevent was removed from Form Fields components which are not managed byFormikdirectly. -
Fixed an issue with some home tiles not rendering correctly. *-
SelectionExplorercomponents will now render an inline menu with a link to the details of the item, if agenerateItemLinkproperty is provided.
Mosaic Frontend Samples
- Added
channelsupport to relevant FE sample scenarios. - The Mosaic Frontend Samples now includes a utility script that allows you to start a localhost
proxyfor routing the traffic to the hosted Mosaic User Service. This will allow you to run the Mosaic Frontend Samples (or a similar custom frontend application) on your localhost, and connect it successfully with the hosted Mosaic User Service and get the full Authentication functionality working without any issues for setting cookies in different domains top-level domains. See the PR for more details.
July 24, 2023
Management System
-
Introducing Indicators:
Enabling developers to add custom indicators to the Management System, to give users information independent of the stations they are currently on.We also added a well-known "saving indicator" to the Management System. This will be used by
FormStationcomponents to indicate when the form is having unsaved changes or it is currently saving.
You can find more information about the new feature in the @axinom/mosaic-portal documentation. -
Reduced size of the tiles on the landing page.
Admin Portal
- New color scheme for the Admin Portal. Making it easier distinguishable from the Management System:

Managed Services
- AxAuth: Fixed a bug that throws a webhook invocation error sometimes during End-User sign-up and password reset.
Customizable Services
- Vod-to-Live service: Added a this service as experimental implementation for a Vod-to-Live service using Unified Virtual Channels to the media template. This service demonstrates how the output of the Channel Service can be used to create a 24/7 linear channel from a playlist of VOD entities.
Check out it’s README for more details on this service, or the VOD-to-Live Service documentation for more details about the concept.
This service is experimental and has to be built and started manually. It will not get started automatically with the dev:services scripts on the root package.json.
- Media Service: Improved TV Show, Seasons, Episode workflows:
-
Added parent entity information in the info panels for the Season and Episode details stations, allowing to navigate to the parent entity directly from the info panel.
-
Added parent entity columns and filters for the Season and Episode explorer stations.
Check out this PR for more details.
-
- Media Service: Added video cue point support to Media and Catalog services. See this PR for more information.
- Entitlement Service: Added support for entitlement requests for channels. See this PR as well as this PR for more details.
@axinom/mosaic-ui
- Introducing
errorMappers: Error mappers are functions that can be used to transform an error before it is shown to the user. Out of the box theApolloErrorMapperis enabled, which makes network errors returned fromApolloClientmore user-friendly. Workflows can use thesetErrorMappersmethod to change the mappers that should be used in a particular workflow. - Bulk operations on
Explorercomponents are triggering a notification whenever they get started to give the user the feedback that the operation was successfully started. This may not be needed for all bulk operations, so we added a new, optional propertyshowStartedNotificationthat can be set on the bulk action definition to allow to disable this behavior e.g. for non-asynchronous operations. Sectioncomponents inside theInfoPanelcan now be collapsed by the user. Developers can make aSectionrender collapsed by default by setting theexpandedByDefaultproperty tofalse.- Adding a new Filter component:
MultiOptionFilter, allowing users to select multiple options in one Filter: Storybook FormStationnow shows an error when a navigation attempt or an action execution got canceled because of an invalid form. This allows users to better understand why the intended action was not performed, especially in long forms where the inline validation messages may appear only off-screen.- deprecated
Navigationoption removed fromPageHeaderActionType - deprecated enum
ActionTyperemoved fromActionscomponent
Documentation
- Added a how-to-guide showcasing how you can debug the scenarios published in the Mosaic FE Samples to help you better understand the interactions and integrations. You can read more here.
- Added documentation for all functionalities offered by the PiletApi exposed by
@axinom/mosaic-portal. You can read more here.
June 21, 2023
Managed Services
- Encoding Service (2.23.23166.1):
- Fixed an issue with audio language order in HLS manifests.
- Fixed an issue in PackagingFinished message which returned BitrateInKbps value as 0 for audio tracks.
June 15, 2023
Services
- The ID Service now displays more details for the Identity Provider related error messages that may occur during user authentication. Displaying these hints will help administrators to troubleshoot scenarios such as expired IDP secrets or invalid IDP secrets.
- The AxAuth Service will now display the "Email Verified" column in the Admin Portal. This should now make it more clear to the administrators what the current state of the user is. It will also be possible to manually trip the value of this field via the Admin Portal if needed.
@axinom/mosaic-portal
- We extended the documentation of the @axinom/mosaic-portal package with descriptions of each of the available methods on the
PiletApiobject. This should make it easier to understand what each method does and how to use it.
@axinom/mosaic-ui
- With this release we applied the changes to the Navigation and Context that were introduced to the Detail pages and Inline Menus in R72 also to the
PageHeaderActions.
With these changes, page header actions can now be rendered as either an anchor tag or an element with a JavaScript click handler, depending on the properties specified.
The corresponding changes on the media template were implemented in this PR. - This release also introduces support for anchor tag rendering in the following components:
Button,TextButton, andCompositeButton.
Key Changes:-
The
buttonContextproperty with the valueButtonContext.Navigationhas been deprecated and is no longer used. -
The default
buttonContexthas been changed fromNavigationtoActive. As a result, buttons of these components will now have a dark blue background color by default instead of light blue. -
For buttons of the
Navigationtype in these components, use the path property instead of theonButtonClickedandonBluraction handlers, as well as the type property. This will render a link instead of a button. -
Examples:
/** to render a button element */<Button icon={IconName.X} type="button" onButtonClicked={()=>{}}/>/** to render an anchor element */<Button icon={IconName.X} path="/home" />
-
- The
Listcomponent now also accepts a function as value for theshowActionButton, allowing to decide row-by-row whether or not to show render an action button.
June 06, 2023
Services
- User Service now has a new Webhook that will be called when a new User is created. This will help you to track/maintain a list of users in an external system.
You will see the new Webhook in the Admin Portal when you visit the User Service configuration station. - Mosaic Frontend Samples received a new update, and this time we introduced scenarios targeting use-cases around the Personalization Service.
You can find the the changes made via these PRs - https://github.com/Axinom/mosaic-frontend-samples/pull/86 , https://github.com/Axinom/mosaic-frontend-samples/pull/88 , https://github.com/Axinom/mosaic-frontend-samples/pull/100 . - We added actions to allow editors to directly launch the "New" workflow of the corresponding entity type from all Selection Explorers.
This will allow editors to quickly trigger the create workflow without the need to manually navigate to the corresponding workflow first.
The corresponding change the media template can be found in this PR.
@axinom/mosaic-ui
- With this update, we made some changes to the interfaces and behavior for Navigation and Context type actions on Detail pages as well as Inline Menus:
-
Previously, the
actionTypeproperty was used to determine the type of action. This property has been removed. The action will determine its type from the properties it gets. -
If a
pathis provided, the action will be rendered as a Navigation type action. IfonActionSelectedis provided, the action will be rendered as a Context type action. -
Navigation actions will now render as anchor tags and can not trigger any side effects beside navigation.
-
Context actions will continue to render with a click handler that allows any code to be executed and also allow for confirmation options using
confirmationModeandconfirmationConfig. -
The color of the action will be dependent on the type of action, giving the editor a clearer understanding of what an action will do.
Please note that all actions will be displayed and behave as Context type actions if no changes are made. To migrate a Navigation type action, simply provide a
pathand remove theonActionSelectedproperty. For a Context type action, you only need to remove theactionTypeproperty. Here is an example:// Before migrationconst action: ActionData[] = [{label: 'Navigation Action',onActionSelected: () => history.push('/station-name')},{label: 'Context Action',onActionSelected: () => {}actionType: ActionType.Context},];// After migrationconst action: ActionData [] = [{label: 'Navigation Action',path: 'station-name',},{label: 'Context Action',onActionSelected: () => {}},];The corresponding changes on the media template were implemented in this PR.
-
- Introduced a new component
MaskedSingleLineTextwhich can be used for use cases which require masking in the input field. An additional componentMaskedSingleLineTextFieldis introduced to be used within Forms. To play around with the new component please visit the Mosaic Storybook. - The published version of the ui library now ships with source maps. This will allow you to debug your application more easily.
May 23, 2023
General
- With this release we upgraded the
media-templateto the latest LTS version of Node.js (version 18) and upgraded several other dependencies to newer versions, including thepiralpackages. (see this PR for more details) - We rolled back our usage of the
importmapsfeature, as we were experiencing some issues with the way it is handling peerDependencies. We will re-introduce it in the future when the issues are resolved. For now we recommend to not make use of this feature in your own Pilets.
Managed Services
deleted${EntityName}NodeIdfields are deprecated fromDelete${EntityName}Payloadgraphql schema types for most Managed Mosaic services. They were always returning null before and not used. These fields will be completely dropped in the future.- Video Service: Added a mute button for the video player on the cue point management station. Also improving the error messages in case the playback fails because of invalid DRM configurations.
- Channel Service: Improved error messaging when adding invalid program entities to a playlist.
Libraries
- @axinom/mosaic-ui:
- Added a new optional property
horizontalColumnAlign?: 'left' | 'center' | 'right'to theColumndefinitions used inListandExplorercomponents now allows for defining varying alignment options for each column. - The
resultargument ofcreateUpdateGQLFragmentGeneratordoes now also support querying of nested fields. - We upgraded our Storybook to the latest version of Storybook. The stories now include more control options, making stories even more interactive. They now also display the TypeScript type annotations of the component props giving more information about the components directly inside Storybook.
- Better disabled styles and focus indicators for different form elements.
- Fixed an issue where station message bodies were displayed below the station content.
- Added a new optional property
- @axinom/mosaic-portal:
- Extended the
PiletApiwith a new method:getDataHelper. It helps to retrieve data from Portal data store set by other pilets/workflows usingsetData. Unlike the already existinggetData, this method waits for the data to be set if not available immediately and then executes the callback passing in the data as argument. It’s a wrapper around thegetDatamethod that makes it easier to avoid race conditions when usingsetDataandgetDatain different workflows.
- Extended the
- @axinom/mosaic-e2e-page-model:
- Selectors to support e2e tests for toast notifications added. Toast message selectors are available in page model under `uiShell.notifications`` property.
May 03, 2023
Managed Services
- DRM Service:
- Widevine API (6.20.1):
- Added the WidevineDataSets endpoint, which can be used to manage user-provided Widevine license service certificates and related data. This can be useful when working simultaneously with multiple DRM providers. Contact Axinom support for more information.
- Widevine API (6.20.1):
May 02, 2023
Managed Services
- DRM Service:
- Management API (6.12.0): Added the WidevineDataSets endpoint, which can be used to manage user-provided Widevine license service certificates and related data.
- Management API (6.12.0): Added the WidevineDataSets endpoint, which can be used to manage user-provided Widevine license service certificates and related data.
April 27, 2023
Managed Services
- Encoding Service (2.22.23114.1):
- Fixed an intermittent job failure when using ForcePixelAspectRatioTo1 : true.
- Fixed an issue with audio channels when source file has 5.1 channels with default audio settings.
April 26, 2023
General
-
With this release we upgraded
Piralto version0.15.8.This change is backward compatible for Pilets built with older versions of
Piral.However with the upgrade we also started to make use of
importmapsfor our managed Pilets to allow for quicker loading times of the management systems. Because of this change, the managed pilets will make them stop working when using older versions of@axinom/mosaic-portalas emulator during development time.No worries, this is only affecting the development time. When the Pilet is published through the Microfrontend Service it will always run using the latest version of mosaic-portal.
To make the managed workflows working again on development time, please update the devDependencies for
@axinom/mosaic-portalin your workflow(s) to the latest version.
It is recommended to always update the version of @axinom/mosaic-portal frequently to minimize differences between development- and production-runtime.
From now on, the @axinom/mosaic-portal will also warn you during development time if you’re using an old version of the emulator.
- Added the
helmetmiddleware to all services for increased security.
We don’t expect any impact on applications caused by these changes. If you still encounter some issues, please let us know.
Managed Services
- User Service: When you update to the latest version of
@axinom/mosaic-user-authlibrary, it will be possible to receive more granular response codes than before during Sign In errors, so that your FE application can provide more meaningful error messages. - Video Service: Adding support for PerScene encoding mode, for smaller video output file sizes while maintaining quality.
- Channel Service: Many fixes and smaller improvements on the channel management workflows.
Libraries
- @axinom/mosaic-ui:
- Introducing a new filter type:
FilterTypes.SearcheableOptions. This filter consist of a text input where a user can enter search values and a list of options that match the query. This can be used to make filters with many options (potentially asynchronously loaded) more user friendly. - Visual improvements for
SelectionExplorer. - Some fixes for better support of Safari browsers.
- Introducing a new filter type:
April 10, 2023
Introducing Channel Service
With this release we’re introducing the latest addition to our managed Service - the Channel Service.
This service is designed to give you the ability to create and manage your own channels and curate playlists for these channels. You can add your existing VOD entities from e.g. your media service to the playlists, optionally define ad breaks using the cue-points and publish them to allow them to be consumed by services that will power e.g. a Free ad-based streaming TV (FAST) experience for your end users.

More information about the service can be found in the Channel Service documentation.
Managed Services
- Added a toggle to the admin portal settings of the Video Service to enable or disable the Video Preview for Cue Points feature. This feature is enabled by default but it allows to opt-out from the feature in case video playback management system is not possible or intended in your use case.
- Fixed a bug in Hosting Service where the RabbitMQ Connection details station in the Admin Portal would show incorrect hostname. The correct values are displayed now.
Media Template
- Added a main video filter for Movie/Episode Explorers, allowing to filter out entities that do not have a main video assigned. (https://github.com/Axinom/mosaic-media-template/pull/54/ )
- Added a
DEMO_MODEto the Video Service, which allows to skip the webhook secret validation. This is useful for demo purposes and is not recommended for production use. (https://github.com/Axinom/mosaic-media-template/pull/50 ) - Improved the speed of the
test:reset:dbsscripts (https://github.com/Axinom/mosaic-media-template/pull/48 )
Libraries
- Added a CSS class with the environmentId prefixed with
env-to the management portalbodyelement, allowing environment-specific CSS rules. This is useful to make the portal look different for different environments, e.g. to make it more obvious that you are (not) in production. - Added a new extension to the Management Portal shell to allow the registration and usage of
RouteResolvers. Workflows can register resolvers for specific routes that other workflows can then use to resolve the route. This is useful for workflows that need to navigate to a route that is not known to them, but is known to another workflow. This is for example used on the new Channel Service to create the links to the detail pages of the entities inside a playlist which are not known to the playlist workflow but are provided by the media workflows. The new methods allow toregisterRouteResolver,getAllRouteResolversor invoke a certain resolver by usingresolveRoute. - Bulk actions triggered by an
Explorercomponent will now trigger a toast notification when the action is started and another one in case that the backend returns an error. This will help the user to understand if the action was successful or not. - Fixed a bug in
@axinom/lib-id-guardwhere the JWKS caches were not always used. This would result in making more calls than needed to fetch the public RSA keys when executing GQL requests.
Frontend Samples
-
We’ve added more scenarios for the Mosaic FE Samples application. These new scenarios will showcase how to use the Mosaic Billing Service with the Stripe payment connector.
You can checkout the source over here or play around with the live demo over here.
Stripe Payment Connector
-
The payment connector service will no longer use ENV vars for supplying redirect URLs that are used during the payment flows, and instead will use those that are configured in your Billing Service admin area.
You can see the change over here.
April 04, 2023
Managed Services
- Encoding Service (2.21.23090.3):
- Support per-scene encoding.
- VideoSyncMethod property now defaults to Passthrough, when using EncodingMode: PerScene.
March 21, 2023
Managed Services
-
We added a video player to the cue point management station of our Video Service, to allow editing cue points very conveniently by picking the timing directly from the video itself.

This feature will work out of the box for non-DRM protected videos, which are stored on a publicly accessible storage.
If your videos are DRM protected or the manifest is not accessible directly through the storage URL, you can use the Admin Portal to configure the “Manifest” and “Entitlement” Webhooks we introduced in March 08, 2023.
The Manifest webhook can be used to instruct the Management System the correct URL that should be used to playback the video.
The Management System uses the Entitlement webhook whenever a DRM protected video should be played. The webhook should validate the request and return an entitlement token if the playback is permitted.
The Entitlement Service on our Media Template is already implementing both webhooks, so you can take that implementation as inspiration - or even configure your version of the entitlement service as target for these Webhooks.
-
We added the option to change and delete existing webhook configurations on our Video Service.
-
Fixed a bug which allowed to create a New IDP Connection in User Service for AxAuth, when the AxAuth User Store did not have a valid OAuth Client. Now there will be an exception to stop this.
Media Template
- The entitlement message included also empty DRM keyIds when some streams were not DRM protected (e.g. subtitle or closed-caption streams). Empty keyId values are now excluded.
Frontend Samples
-
We’ve added more scenarios for the Mosaic FE Samples application.
These new scenarios will showcase how to use the Mosaic Billing Service for managing your End User subscriptions
You can checkout the source over here.
March 09, 2023
Managed Services
- Encoding Service (2.20.23060.2): Enabling HDR support.
March 08, 2023
General
-
We added the capability to raise toast notifications to the
@axinom/mosaic-portal. There are now three new methods toshowNotification,updateNotificationanddismissNotificationwhich can be used to trigger toast notifications inside your workflows.We plan to add more usage of these (and other APIs) inside also the components coming from
@axinom/mosaic-ui. So make sure you add a call toinitializeUi, passing over theappobject (like this), to allow the components to also leverage these features on the shell application to e.g. automatically raise toast notifications in relevant situations. -
The RabbitMQ vhosts that are used by the customizable-services are now created with following limits. We don’t expect this to affect any of your currently running customized-services as the limits are fairly generous.
Please contact Axinom Support if you have any special requirements in this regard.
max-connections = 10max-queues = 150
-
Due to a change in how Postgraphile subscription lifecycle methods are executed, we’ve now updated all
Postgraphileand related libraries to the latest minor version, and also released a new version of@axinom/mosaic-id-guardto handle the new approach of subscription authorization.The following combinations of libraries should play well together when it comes to authorizing GQL subscriptions:
graphile-build@4.12.2, graphile-build-pg@4.12.2, graphile-utils@4.12.2, postgraphile@4.12.4+mosaic-id-guard@0.17.0graphile-build@4.13.0, graphile-build-pg@4.13.0, graphile-utils@4.13.0, postgraphile@4.13.0+mosaic-id-guard@0.18.0
Action Points:
-
If you are on
postgraphile@4.12.4or below, and do not intend to upgrade it - no change is required, the existingmosaic-id-guard@0.17.0or below would work fine with it. -
If you are expecting to upgrade to
postgraphile@4.13.0or later, then themosaic-id-guardlibrary would need to be upgraded along with it to match as mentioned above.- You can find details about the needed change in this PR.
-
We improved the performance of row-level-security database permission checks.
The corresponding changes on the media template were added in this PR. To manually upgrade an existing customized version based on the media template please upgrade the mosaic libraries to the latest version. Then call the
util:define-func-migrationscripts in all the projects to get the latestax_definefunctions into the databases of each service. Then include a call to thedefine_authenticationfunction into a new database migration for every protected table like:SELECT ax_define.define_authentication('<your view permissions>', '<your edit permissions>', '<table name>', 'app_public');
Managed Services
-
The Image and Video Service will now send an error message in case a image type or cue point type is already registered by another service. Services can now subscribe to the error message and handle it accordingly.
-
The Video Service now allows the configuration of two new webhooks. A Manifest webhook that should return a manifest URL to use for the video playback and an entitlement endpoint that grants an entitlement message to play back a DRM protected video. These are preparations for new features that will be released in the future, and will allow the management System to playback videos. The webhooks can be configured in the 'Video Service' settings inside the Admin Portal.
-
Fixed an issue in Video Service where the source video file extension was always set as
.mp4even for other source video file types. -
We have improved the integration of AxAuth Service and User Service. This will now make it straightforward to pick the “User Store” you want to use from AxAuth Service when configuring the AxAuth IDP in the User Service.
Please read more details about it here.
-
We have fixed a bug in the User Service which resulted in an exception during 'Sign In with Credentials' if the 'Allowed Proxy URLs' were not configured under User Service configuration.
-
The Billing Service exposes now the PayPal related (non-secret) settings as part fo the GraphQL API. Consuming applications can now use those values and don’t need to configure them in every application.
-
When a user subscribed to a subscription plan using the Billing Service he is redirected back from e.g. PayPal to the webpage from where he started the subscription workflow. The corresponding URLs are configured in the admin portal. When those URLs contained a GET parameter, the parameter was missing when redirecting the subscriber. This is now fixed to retain all GET parameters.
-
Fixed a bug on Hosting Service where in some intermittent situations, you receive an error 'Database already exists' when attempting to deploy a service that was previously deployed, and then undeployed.
-
We have added new scenarios to Mosaic Frontend Samples that demonstrates how to use the Image Service as well as how to subscribe to a subscription plan using the Billing & Monetization Services.
Libraries
- The
PostgraphileOptionsBuilderfrom@axinom/mosaic-service-commongot updated:- the constructor parameters were moved to a dedicated function
setDefaultSettings - the
setDevPropertieswas dropped and replaced withsetConditionalPropertiesto be more flexible on when to use specific properties - the function
addConditionalPluginswas added to enable fine granular decisions which plugins should be added e.g. in a development, testing, or production area and similar. TheaddDevPluginsfunction was removed.
- the constructor parameters were moved to a dedicated function
- Improved the
validateWebhookRequestmethod to support both, the raw request body and an already parsed JSON object for the webhook validation.
February 09, 2023
This is the 1st release we’re making for the year 2023, and we’re bringing some goodies your way to make up for the long wait!
- Revamped navigation with the new Navigation Panel
- We’ve introduced a new
Navigation Panelinto the Management System that will make it faster to find what you’re looking for in less steps. - You can read more details about the Navigation Panel over here.
- We’ve introduced a new
- Deploy Mosaic Media Template via the Hosting Service
- We’ve extended the
Hosting Serviceto be capable of provisioning necessary infrastructure and deploying customizable services from Mosaic Media Template to your environments. - You can read more details about deploying customizable services over here.
- We’ve extended the
December 21, 2022
Managed Services
- DRM Service:
- Management API (6.11.1):
- Added "Access-Control-Expose-Headers" header to responses to enable the reading of informational headers, such as "X-AxDrm-ErrorMessage", for CORS clients, like browsers. more details on error handling.
- Management API (6.11.1):
December 16, 2022
-
With this release we remove the support for the deprecated messages mentioned in R55. If you didn’t update your solution yet, please find the instructions below.
-
The
VideoStreamdata type on the Video Service was added to describe all the video, audio, subtitle, and closed caption streams within a video. These stream objects are providing detailed information about the different representations of the encoded video. Please note that these values may only get filled for newly encoded videos. -
Introducing an improved breadcrumb in the management system as well as the admin portal, making better use of the available space and also visually more light-weight:
-
We reduced the bundle size of
@axinom/mosaic-uiby ~35% which should result in better loading times of the management system. We will continue looking into improving loading times in future releases. -
Various other improvements, fixes and preparations for future features.
-
Release 60 of Mosaic Media Template
November 29, 2022
Managed Services
- DRM Service:
- Widevine API (6.19.2): Refactored source code and performance upgrades.
November 28, 2022
- Various improvements, fixes and preparations for future features.
- Release 58 of Mosaic Media Template.
Managed Services
- DRM Service:
- Key Service API (1.18.1):
- Fixed an issue where content key creation ("POST api/Import/ContentKeys", "POST/PUT api/ContentKeys") could result in duplicate database entries under high concurrency. This also fixes a related issue with GET api/ContentKeys returning 500 internal error, caused by duplicate entries.
- Content key "name" uniqueness is no longer enforced as this is a purely descriptive field that can be freely set by users.
- Key Service API (1.18.1):
November 24, 2022
Managed Services
- Encoding Service (2.17.22318.1): Support all S3 compatible storage locations either it is AWS or non-AWS.
October 26, 2022
Managed Services
- Encoding Service (2.15.22278.1): Set ForceAspectRatioToStandard property default value to false. This change will allow Axinom Encoding to accept and produce any aspect ratios.
October 25, 2022
-
Introducing improved ways to handle errors in Mosaic services. More details can be found at Error Handling Development Guide (Basic).
-
Adding three new configuration options for Processing Profiles on Video Service.

More information about the features can be found on the information text on the station or in the Content Processing documentation.
-
The Mosaic Media Template is now available on Github
-
Various other improvements and fixes.
-
Release 56 of Mosaic Media Template.
Managed Services
- DRM Service:
- FairPlay API (6.19.0):
- Added X-AxDrm-ErrorMessage header, containing the error message, to error responses. This provides a means for HTTP/2 clients, which do not support the HTTP Reason Phrase, to read error details.
- Added "Access-Control-Expose-Headers" header to responses to enable the reading of informational headers, such as X-AxDrm-ErrorMessage, for CORS clients.
- FairPlay API (6.19.0):
October 20, 2022
Managed Services
- DRM Service:
- Widevine API (6.18.0):
- Added X-AxDrm-ErrorMessage header, containing the error message, to error responses. This provides a means for HTTP/2 clients, which do not support the HTTP Reason Phrase, to read error details.
- Added "Access-Control-Expose-Headers" header to responses to enable the reading of informational headers, such as X-AxDrm-ErrorMessage, for CORS clients.
- Widevine API (6.18.0):
October 12, 2022
- Mosaic Media Template R55 is published
With this release we aligned the names of event and command messages that are sent via the RabbitMQ message bus. We use now consistently a naming pattern of entity/task + actionable verb for commands and entity/task + past tense verb for events in all places.
Our services will be compatible with both, the old and the new event and command messages until November 14th 2022. After that date we’re planning to stop supporting messages using the old names. Please make sure to update your solution as described below until that date or let us know if this is not feasible for you.
To update your solution, please update the @axinom/mosaic-messages package to the latest version, then execute yarn and yarn build from the solution root. If this does result in some errors in your messaging implementation please adjust the following types:
| Service | Old Message Name | New Message Name | Old Settings Name | New Settings Name |
|---|---|---|---|---|
| ID Service | SynchronizePermissionsStartCommand | SynchronizePermissionsCommand | SynchronizePermissionsStart | SynchronizePermissions |
| Video Service | EnsureVideoExistsStartCommand | EnsureVideoExistsCommand | EnsureVideoExistsStart | EnsureVideoExists |
| Video Service | ArchiveVideosStartCommand | ArchiveVideosCommand | ArchiveVideosStart | ArchiveVideos |
| Image Service | EnsureImageExistsStartCommand | EnsureImageExistsCommand | EnsureImageExistsStart | EnsureImageExists |
| Image Service | ImagesArchivedEvent | ArchiveImagesFinishedEvent | ImagesArchived | ArchiveImagesFinished |
| Monetization Grants Service | SynchronizeClaimDefinitionsStartCommand | SynchronizePermissionsCommand | SynchronizeClaimDefinitionsStart | SynchronizeClaimDefinitions |
Commands are accepted in a backward-compatible way and the queues to handle the commands are within our managed services. So no adjustment is required.
Events are also sent in a backward-compatible way. Some target queues were renamed to follow a consistent naming schema. Once you are done with your migration you can delete the following queues - they only exist if you subscribed to the corresponding events:
- ID Service based event queues:
synchronize_permissions.finishedsynchronize_permissions.faileduser.deleteduser_role.deleted
- Video Service based event queues:
ensure_video_exists.startarchive_videos.startensure_video_exists.already_existedensure_video_exists.creation_startedensure_video_exists.failedarchive_videos.finish
- Image Service based event queues:
ensure_image_exists.startimage.archiveensure_image_exists.already_existedensure_image_exists.image_createdensure_image_exists.failedimages.archived
- Monetization Grants Service based event queues:
synchronize_claim_definitions.startsynchronize_claim_definitions.finishedsynchronize_claim_definitions.failed
October 06, 2022
Managed Services
- DRM Service:
- PlayReady API (6.19.0):
- Added X-AxDrm-ErrorMessage header to all HTTP responses with the error message, whenever an error occurs. This provides an additional way to obtain error messages, which so far in PlayReady responses have only been available inside the "faultstring" element of a PlayReady SOAP response. Note: related to this, a previously existing but undocumented "X-AxDrm-Error" header that provided similar functionality, has been removed. If you happened to rely on this, please switch to "X-AxDrm-ErrorMessage" instead.
- Added "Access-Control-Expose-Headers" header to responses to enable reading of informational headers, such as X-AxDrm-ErrorMessage, to CORS clients.
- Fixed the handling of license requests involving CBCS keys. Previously the keys returned in response to requests for CBCS keys were not correctly marked as "CBCS". This would have prevented the playback of CBCS content at least on some platforms. A known affected platform was browser-based players on Windows 10.
- Removed "LicenseRequestSucceedsOverHttps" check from the self-test "Checks API". Note: this has no effect on cloud service users; and should not have any effect on On-board services, as the Checks API is not a documented feature.
- Improved error handling - previously, in some corner cases, it was possible that an empty 200 OK response without a body was returned instead of an error response.
- PlayReady API (6.19.0):
October 05, 2022
Managed Services
- DRM Service:
- Key Service API (1.18.0): Added X-AxDrm-ErrorMessage header for compatibility with HTTP/2 clients, and HTTP 1.x clients that do not support reading error messages from the HTTP response ReasonPhrase field.
October 04, 2022
Managed Services
- Encoding Service (2.15.22272.1): Added an option to change the video sync method of our video encoder. Usually it should not be necessary to change this, but it is one option to try if your output videos have visual problems such as 'floating' or 'jerkiness' of the image.
September 22, 2022
- Mosaic Media Template R54 is published
- The Video Service was upgraded to support Cue point management, including a first simple management workflow.
September 21, 2022
Managed Services
- Encoding Service (2.14.22249.1):
- Support iTT subtitle format as input.
- Improve the encoding time by optimising the FFmpeg call.
September 06, 2022
- Mosaic Media Template R53 is published
- The Hosting Service receives the alpha version of service-deployment support for early adopters.
August 24, 2022
- Mosaic Media Template R52 is published
- We have now published a new open-source repository that will give best practices for FE developers who plan on integrating with Mosaic Services. More details of the Mosaic Frontend Samples can be found here
August 11, 2022
- Mosaic Media Template R51 is published
- The
mosaic-uilibrary was updated to provide support for Explorer stations to use GraphQL Subscriptions for identifying dirty states. Now when you are viewing data on an Explorer station, and if some of that displayed data is mutated by another user, the Explorer station will show a notification to the user indicating the displayed data maybe stale and a refresh maybe required.- This logic is currently implemented on Image & Video explorers.
August 01, 2022
- Mosaic Media Template R50 is published
- The Video Service now has the ability to configure content acquisition and publishing profiles with AWS S3 as well. Earlier it only supported Azure storage accounts.
- Similar to above feature, the Image Service also now supports configuring acquisition profiles with AWS S3.
July 28, 2022
Managed Services
- DRM Service:
- FairPlay API (6.18.0): The FairPlay-specific license configuration section now has a new "ignore_keys_in_license_request" setting, which, when set to "true", causes the service to ignore Asset IDs in the license request and utilize only the keys specified in the Entitlement Message. If there are many keys, only the first is used. This is intended to be used only as a workaround in scenarios where it’s not possible to provide an Axinom-compatible Asset ID in the license request. Note: using this feature makes it impossible for the license service to cross-reference if the returned key is actually the one the client needs to use.
July 27, 2022
Managed Services
- DRM Service:
- Widevine API (6.17.0): Widevine SDK updated to v17.0.1. This enables license delivery to upcoming Android T devices.
July 26, 2022
Managed Services
- DRM Service:
- Management API (6.11.0): Added api/BlockedUsers endpoint. Tenants now can add their end-users user ID to the database when they want to deny a license for a particular user.
July 25, 2022
Managed Services
- DRM Service:
- PlayReady API (6.18.2):
- Improved error messages.
- Performance enhancements.
- PlayReady API (6.18.2):
July 19, 2022
- Mosaic Media Template R48 is published
- Improved loading times of the Management System by distributing the microfrontend Pilets to be served via object-storages rather than by the service. This should significantly improve the waiting time of the CMS initial load.
June 20, 2022
- Mosaic Media Template R47 is published
- Preliminary support to use the User Service on native devices (i.e. Android) was added. Current
mosaic-user-authwas updated to work with React Native to offer this compatibility.
Managed Services
- Encoding Service (2.11.22157.1):
- Possibility to search for close-by resolutions divisible by 16, 8, or 4. Introduced SearchForOptimalNearbyResolutions as a property to enable this feature.
- Possibility to encode a non-square Pixel Aspect Ratio(PAR) video into a 1:1 pixel aspect ratio video (which then has a different resolution than the input.) Introduced ForcePixelAspectRatioTo1 as a property to enable this feature.
- Possibility to submit and produce videos in any aspect ratio instead of only the most common ones. Introduced ForceAspectRatioToStandard as a property to enable this feature.
- If there are pre-validation errors, the HTTP 400 response (for the job request) now lists all the errors and formats them as JSON objects.
June 06, 2022
- Mosaic Media Template R46 is published
- The Hosting Service is now promoted as a core-service. What this means is, it will always be enabled for every environment created via the Admin-Portal, and it cannot be disabled. This service will be also responsible for generating the Rabbit MQ Connections required for the customizable services, and the corresponding stations to configure them are moved under Hosting Service.
May 26, 2022
Managed Services
- DRM Service:
- Key Service API (1.17.0):
- Import/ContentKeys and Export/ContentKeys (when CPIX version is set to 2) endpoints now allow storage and retrieval of content key IVs along with the content keys.
- Import/ContentKeys now supports CPIX based content keys import.
- Key Service API (1.17.0):
May 25, 2022
Managed Services
- DRM Service:
- FairPlay API (6.17.0):
- Asset IDs in license requests are now allowed to contain "skd://" to support FairPlay browser playback using standard EME. In the new EME case (contrary to Webkit-EME), the "skd://" part can no longer be removed from the InitData on the player side and therefore it must be allowed on the license service side.
- Stability and performance improvements.
- FairPlay API (6.17.0):
May 23, 2022
- Mosaic Media Template R45 is published
- Several improvements and bug-fixes to the managed workflows were made.
- User Role Permissions station now applies correct filters.
- Video details station now has a re-encode action in the UI.
May 16, 2022
- Mosaic Media Template R44 is published
- The Billing Service is now ready for Production usage. It supports the PayPal provider out-of-the-box, with both
redirect&pop-upbased flows. - An improvement was made for the Micro-FE Service to support publishing pilets with dynamic target URLs (build-once & deploy anywhere). This will significantly streamline build pipelines of the customized workflows, and now you do not need to rebuild the same workflow with different deployment target URLs.
April 26, 2022
- Mosaic Media Template R43 is published
- A big documentation update was pushed describing one of the most commonly used scenario Media Service Publishing.
April 12, 2022
- Mosaic Media Template R42 is published
- The Billing Service was updated to allow configuring Payment Providers via the Admin Portal.
March 29, 2022
- Mosaic Media Template R41 is published
- The User Service now supports Delegated Access Tokens, a feature that would cut down the time needed to migrate pre-existing end-user stores into the Mosaic User Service stores.
March 22, 2022
Managed Services
- Encoding Service (2.9.22068.1):
- Added PackagingStarted and PackagingFinished events.
- The
/certificateendpoint available without authorization.
March 16, 2022
Managed Services
- DRM Service:
- Widevine API (6.16.2):
- When a request is made from a permanently revoked device, the response is now treated as a user error instead of a server error.
- The app now uses WV SDK 16.5.0.
- Widevine API (6.16.2):
March 10, 2022
- Mosaic Media Template R40 is published
- The
GoogleIdentity Provider used for the Management System now supports to be configured in one-click via the 'Use Built-In IDP' setting in the admin-portal. - The Management System received an update with new workflow stations to browse and manage End-Users created via the User Service.
February 28, 2022
Managed Services
- DRM Service:
- Management API (6.10.1): Service stability improvements.
February 24, 2022
- Mosaic Media Template R39 is published
- The Billing Service how has an end-user facing API and supports PayPal as a payment provider.
February 15, 2022
- Mosaic Media Template R38 is published
- First version of the Entitlement Service is included to the Mosaic Media Template. This is a customizable service showing how to generate an Entitlement Message for the DRM License Service to enable playback of DRM-protected videos.
- Communication to Video Service is now using Mosaic Service Accounts
- User Service - AxAuth support - possibility to register end-users with an email and password without using an external identity provider
- User Service - Support for custom Identity Providers
- Initial version of the Hosting Service now allows manage storage accounts via the Admin Portal.
February 14, 2022
Managed Services
- DRM Service:
- Key Service API (1.15.0): Added support for Broadpeak Encoder CPIX API (/api/Broadpeak) according to Broadpeak REST DRM Key Management BEIF14a v1.3 specification.
January 12, 2022
Managed Services
- DRM Service:
- FairPlay API (6.16.2):
- HDCP enforcement can now be specified via Entitlement Message v2.
- Added an ID field to the DRM message that can be used to track token re-use.
- Improved error messages related to license requests containing content keys not present in the Entitlement Message (un-entitled keys) – the first missing key is now reported in the error message.
- Fixed a memory leak in the FairPlay native module.
- FairPlay API (6.16.2):
December 17, 2021
- Mosaic Media Template R37 is published
- An alpha version of the Monetization Service API is now available for testing by early adopters.
December 08, 2021
Managed Services
- DRM Service:
- PlayReady API (6.18.1):
- The application now uses PlayReady Server SDK v4.5.7218 (updated from v4.4.6222.1480). Immediate benefits include the ability to limit playback to internal screens of devices. For more info, see PlayReady Compliance Rules: https://www.microsoft.com/playready/licensing/compliance/
- Improved error messages related to license requests containing content keys not present in the Entitlement Message.
- Added an ID field to the DRM message that can be used to track token re-use.
- Fixes to job scheduling that could cause recurring data download tasks to be offset from the intended timepoint (with interval remaining correct).
- PlayReady API (6.18.1):
December 06, 2021
- Mosaic Media Template R33 is published
- First version of the Personalization Service is now available for use from our Managed Services offering.
- Documentation for User Service and related libraries are now updated. Read more details at User Service Lib Documentation
November 30, 2021
- Mosaic Media Template R32 is published
- User Service is available in the initial scope
- GraphQL Subscriptions now support authentication & authorization. This support is added via the
mosaic-id-guardlibrary.
November 17, 2021
Managed Services
- Encoding Service (2.7.21319.1):
- Service stability improvements.
- Compatibility with the Mosaic Authentication Model.
November 11, 2021
Managed Services
- DRM Service:
- Key Service API (1.14.1):
- Added version 2 of the Harmonic endpoint ("api/Harmonic/V2"). This add multi-key and key-rotation support, and the ability to read the encryption scheme from the "commonEncryptionScheme" attribute in the request CPIX. This also brings changes to the key ID override algorithm, meaning the same content will be encrypted with different keys, compared to the v1 endpoint. This may make it incompatible with any existing encoding jobs. This is now the recommended endpoint to use for any new encoding jobs.
- SPEKEv2 endpoint now supports Key ID overriding.
- Users can now fully manage their Widevine CENC API credentials via the api/WidevineProtectionInfoCredentials endpoint. Previously it was only possible for users to retrieve the existing credentials generated by Axinom (via GET). Now also POST, PUT and DELETE methods are enabled. See the API help pages for more information and samples.
- The Widevine CENC API endpoint now generates "cbcs" signalling for PlayReady with v4.3.0.0 header, when requested. Previously, the requested scheme was ignored and it defaulted to "cenc" with v4.0.0.0 header.
- Key Service API (1.14.1):
November 09, 2021
Managed Services
- DRM Service:
- Widevine API (6.16.1):
- Added include_all_entitled_keys option to Entitlement Message v2
- Added ID field to the DRM message to support debugging
- Using a CDM signed with a development certificate now results in a user error instead of an internal error
- Widevine API (6.16.1):
November 04, 2021
General
- Public Test Vectors (v10):
- Produced test vectors using Axinom Encoding.
- H265 and MPEG-2 TS streams were added.
- All streams are available with PlayReady, Widevine and FairPlay DRM (where compatible), and have three variants: single-key, multi-key and clear.
- Each stream contains multiple video quality levels from 288p to 1080p in 16:9 aspect ratio, has three audio tracks and three text tracks.
October 06, 2021
Managed Services
- Encoding Service (2.6.21264.1): Packaging-only mode: if you have the video files already encoded in H.264/H.265 you can run them through Axinom Encoding to package into DASH/HLS/CMAF, add audio-streams and subtitles and protect with DRM. Skipping encoding makes the process much faster.
September 13, 2021
Managed Services
- DRM Service:
- Widevine API (6.15.5):
- Security improvement. We noticed the Widevine license service endpoint in some cases would include encryption keys authorized only for devices that support Widevine Security Level 1 in responses sent to devices that do not support this Security Level. The fix changes the place where errors occur. Previously, the attempt to play content encrypted with encryption keys that require Widevine Security Level 1 on a device that only supports Widevine Security Level 3 would trigger an error on the client-side. Now the behavior is as follows: when a device that only supports Widevine Security Level 3 sends a license request then the request will be rejected if it references only keys that require Widevine Security Level 1. If the request references a mixture of keys that are authorized for different Widevine Security Levels then the response will include only the keys authorized for Widevine Security Level 3. This fix improves security in a case when a Content Decryption Module (CDM) implementation on a device supporting Widevine Security Level 3 would be hacked and encryption keys revealed to an attacker. In such a case any key included in a license delivered to such a hacked device would have to be considered compromised. This would have potentially included keys intended only for devices supporting Widevine Security Level 1. We are not aware of a case where this potential vulnerability was actively exploited, however.
- Widevine API (6.15.5):
September 09, 2021
Managed Services
- DRM Service:
- Management API (6.10.0):
- Removed the deprecated
/Logs/LicenseRequestsand/Logs/LicenseRequests/Statsendpoints. Logs and stats are already accessible from the Axinom Portal. - Security improvements
- Removed the deprecated
- Management API (6.10.0):
August 31, 2021
Managed Services
- DRM Service:
- Key Service API (1.12.0):
- Added support for Harmonic CPIX-level certificate-based security features: CPIX request signature checks, response signing and content key data encryption in the CPIX responses. The protection levels can be configured via the new
/HarmonicConfigurationendpoint. - SPEKEv1 endpoint now supports "KeyID override feature"
- SPEKEv1 API help page now contains valid example requests and responses.
- Added support for Harmonic CPIX-level certificate-based security features: CPIX request signature checks, response signing and content key data encryption in the CPIX responses. The protection levels can be configured via the new
- Key Service API (1.12.0):
July 22, 2021
Managed Services
- DRM Service:
- Widevine API (6.15.4):
- Security improvements for the On-board x64 version.
- Improved error messages related to license requests containing content keys not present in the Entitlement Message (un-entitled keys) – the first missing key is now reported in the error message.
- Widevine API (6.15.4):
June 21, 2021
Managed Services
- Encoding Service (2.5.21151.1): CPIX library updated.
June 01, 2021
Managed Services
- DRM Service:
- Widevine API (6.15.3): Health checks no longer failing due to revoked device certificates.
May 26, 2021
Managed Services
- DRM Service:
- Widevine API (6.15.2):
ExecuteAllChecksendpoint added.- ARM64 support provided.
- Upgrade to the Widevine License SDK 16.4.2.
- Invalid Entitlement Message no longer incorrectly reported as an internal error.
- Invalid License Request no longer incorrectly reported as an internal error.
- Widevine API (6.15.2):
April 08, 2021
Managed Services
- DRM Service:
- PlayReady API (6.15.0): Minor security fixes and stability improvements.
April 07, 2021
Managed Services
- DRM Service:
- Key Service API (1.11.0): The SPEKE 2.0 endpoint now also adds error messages into HTTP response bodies.
April 05, 2021
Managed Services
- Encoding Service (2.4.21060.1):
- It is possible to add VHost as RabbitMQ message endpoint.
- Bugfix:
Encryptedis an accepted value for CredentialsProtection.
March 24, 2021
Managed Services
- DRM Service:
- Management API (6.9.0): The Device Certificate Status List endpoint is updated to use Google’s new endpoint.
March 10, 2021
Managed Services
- DRM Service:
- Key Service API (1.10.0): SPEKE 2.0 support
March 02, 2021
Managed Services
- DRM Service:
- Widevine API (6.15.1): ARM32 support provided.
February 03, 2021
Managed Services
- DRM Service:
- Key Service API (1.9.0):
- New endpoint for customers using Google’s Widevine key exchange protocol with Axinom DRM Key Service:
/api/WidevineProtectionInfoCredentials- returns all Widevine Protection Info credentials that belong to the requesting tenant. - Performance optimizations for reduced latency.
- New endpoint for customers using Google’s Widevine key exchange protocol with Axinom DRM Key Service:
- Key Service API (1.9.0):
- Encoding Service (2.3.21032.3): Service stability improvements.
December 16, 2020
Managed Services
- Encoding Service (2.2.20343.1):
- Support for H.265.
- Adjusted the stream quality groups which will share the same encryption key in a multi-key scenario (Audio, SD, HD, UHD1, UHD2).
November 26, 2020
Managed Services
- DRM Service:
- Widevine API (6.15.0):
- Upgrade to the Widevine License SDK 16.4.1 as recommended by Google.
- Updated the Cryptography Module to the latest version.
- Upgraded the Cloud service.
- The release for Intel 64-bit is provided as a Docker Image for DRM On-board customers.
- Widevine API (6.15.0):
November 20, 2020
Managed Services
- DRM Service:
- Widevine API (6.14.3):
- The WidevineLicenseRequestInfo message now returns the device certificate serial number of the device that made the request.
- When using Entitlement Message v2, Widevine licenses can now be restricted based on the client’s device certificate serial number.
- A signed message with an invalid signature is now reported as a client error, instead of an internal error.
- Widevine API (6.14.3):
November 03, 2020
Managed Services
- Encoding Service (2.0.20308.1): Bugfix: 26384: Explicit IV passed as a part of a CPIX structure is not taken into account.
October 14, 2020
Managed Services
- Encoding Service (2.0.20283.1): Bugfix: 25788: DAR 2.11 causes encoding failures.
October 01, 2020
Managed Services
- Encoding Service (2.0.20269.1):
- Multi-key support extended with the Managed mode.
- New encryption IV format is reflected in the EncodingFinished event.
September 15, 2020
Managed Services
- Encoding Service (2.0.20259.2): Multi-key DRM support.
August 04, 2020
Managed Services
- Encoding Service (2.0.20216.1): Tenants Management API improved and extended.
July 23, 2020
Managed Services
- Encoding Service (2.0.20204.1):
- Support for 2.66:1 display aspect ratio (CinemaScope format) videos.
- Bugfix: Broken DashOnDemand packages with the Archiving modes "SingleTar" and "Tar".
July 22, 2020
Managed Services
- Encoding Service (2.0.20203.1): New Tenants Management API and "Manager" role to integrate with the Axinom Portal.
July 01, 2020
Managed Services
- DRM Service:
- PlayReady API (6.14.1):
- Updated PlayReady Server SDK to v4.4.6222 (from v4.2.5596).
- From this release, it is possible to provide an empty list of "inline" content keys in the entitlement message.
- Fixed reporting logging to correctly log all license requests were a tenant can be authenticated.
- PlayReady API (6.14.1):
June 29, 2020
Managed Services
- Encoding Service (2.0.20177.1): Support for DASH On-Demand Profile (OutputFormat= "DashOnDemand").
June 09, 2020
Managed Services
- Encoding Service (2.0.20161.1): Correct handling of the 16:10 aspect ratio.
June 08, 2020
Managed Services
- Encoding Service (2.0.20156.1):
- Updated tooling for DASH packaging.
- Audio and video chunks counting in DASH mode fixed.
- Missing audio tracks in the DASH manifest fixed.
- Thumbnails block in the DASH manifest fixed.
May 26, 2020
Managed Services
- Encoding Service (1.0.20142.1): Improved handling for Spot Instances Termination.
May 22, 2020
Managed Services
- DRM Service:
- Widevine API (6.14.2):
- Fixed Sync/DeviceCertificateStatusList endpoint to accept the updated Widevine Device Certificate Status List format.
- Fixed reporting logging to correctly log all license requests where a tenant can be authenticated.
- Widevine API (6.14.2):
May 11, 2020
Managed Services
- Encoding Service (1.0.20127.2):
- Friendly language names with labels in the DASH output.
- Language codes
chtandnonin the DASH output. - Correct handling for
tsolanguage.
April 30, 2020
Managed Services
- Encoding Service (1.0.20119.1): Support for custom FairPlay Key URL in the plain HLS output.
April 15, 2020
Managed Services
- Encoding Service (1.0.20098.1): Ordering of audio tracks based on the source file audio order in DASH, HLS, and CMAF modes.
April 08, 2020
Managed Services
- DRM Service:
- FairPlay API (6.14.3): ARM builds are now supported. Supported platforms are: Raspberry Pi 2 or compatible (ARMv7-A, VFPv3) with a 32-bit hard-float Linux OS.
March 24, 2020
Managed Services
- DRM Service:
- Widevine API (6.14.1):
- Fixed a crash with service certificate requests that could happen after a license request encrypted with the wrong service certificate was received.
- Fixed incorrect user agent logging when the string contained a comma.
- Fixed an issue where Inline Content Keys source couldn’t be empty.
- Widevine API (6.14.1):
March 19, 2020
Managed Services
- DRM Service:
- FairPlay API (6.14.2): Fixed an error involving managing native code calls. Previously, the app could crash under load when multiple simultaneous requests were processed.
March 13, 2020
Managed Services
- DRM Service:
- FairPlay API (6.14.1):
- Added Global FairPlay Data Sets feature. This means that if a Tenant is missing the FairPlay data set required for processing a license request, then the global data sets ar additionally searched. This feature is used in Testing environments. Axinom Test Credentials are now available for all Tenants by default.
- Content ID in persistent licenses is now unique, calculated based on the Asset ID.
- It is now possible to provide an empty list of "inline" content keys in the entitlement message.
- FairPlay API (6.14.1):
February 18, 2020
Managed Services
- DRM Service:
- PlayReady API (6.14.0): Updated PlayReady Server SDK to v4.2.5596 (from v3.0.2769). This adds support for PlayReader Header v4.3 and makes it possible to request CBCS content keys.
February 04, 2020
Managed Services
- DRM Service:
- Widevine API (6.14.0):
- The code from the Cryptography Module branch was merged. The app now uses the Cryptography Module library to handle sensitive data, leading to better security. This also allows encrypted license requests to be handled more efficiently.
- Extended TracedRequests and ClientErrors logs.
- Log fields are now always logged even if null or empty.
- Forward slashes are no longer escaped in log fields.
- Optimized logging code.
- Updated device certificate status list.
- Fixed an issue where the AxDrmMessage could be logged incorrectly.
- FairPlay API (6.14.0):
- Extended TracedRequests and ClientErrors logs.
- Log fields are now always logged even if null or empty.
- Forward slashes are no longer escaped in log fields.
- Optimized logging code.
- Fixed an issue where the AxDrmMessage could be logged incorrectly.
- PlayReady API (6.13.0):
- Extended TracedRequests and ClientErrors logs.
- Log fields are now always logged even if null or empty.
- Forward slashes are no longer escaped in log fields.
- Optimized logging code.
- Updated revocation data.
- Fixed an issue where the AxDrmMessage could be logged incorrectly.
- Fixed an issue where the reasonPhrase in the HTTP response was being logged incorrectly.
- Widevine API (6.14.0):
January 23, 2020
Managed Services
- DRM Service:
- Widevine API (6.13.0): Extended TracedRequests, ClientErrors, and Reporting logs.
- FairPlay API (6.13.0): Extended TracedRequests, ClientErrors and Reporting logs.
- PlayReady API (6.12.0):
- Updated production FrontendDataSyncApiKey.
- Extended TracedRequests, ClientErrors and Reporting logs.
January 13, 2020
Managed Services
- DRM Service:
- Widevine API (6.12.0):
- The original request URL is now logged for customer identification purposes, even when the app is behind one or more proxies.
- Updated production FrontendDataSyncApiKey.
- FairPlay API (6.12.0):
- The original request URL is now logged for customer identification purposes, even when the app is behind one or more proxies.
- Updated production FrontendDataSyncApiKey.
- Widevine API (6.12.0):

