Version 2.0.5.x

v2.0.5.7 - 2020-02-12


NEM-228 - Show release Version and Date in the Frontend

NEM-288 - Asset Page - UI and extra fields on metadata

Changed the headlines and structure in the asset section to be more user friendly.

NEM-311 - VOD-Stack integration

It is possible to select VoD channels as a new channel format.

NEM-417 - Channel Player: warn when original source stream cannot be played due to CORS/SSL issues

The channel player now shows error that occur on load or while playback.

NEM-419 - Manifest Analyser: VOD: warn if example is mp4

The system only accepts dash or hls manifests as source for VOD channel. THis is now reflected in the analysis as well.

NEM-412 - Channel API - expose route(s) to enable/disable a channel / channels

A dedicated method can now be used in order to activate or deactivate a channel
PUT /channels/setState/:id
<whole object>,
"state": "enabled" // or "disabled"


NEM-230 - Clicking on Action on the enhanced table component gives an empty list

NEM-231 - Do not expose the ApiKey (systems key) to the frontend

NEM-253 - Display meaningful error when elastic search not set up correctly for ssai report

NEM-281 - fix not user friendly message

NEM-284 - Occasional backend crash on page switch

NEM-315 - Prevent the transmitter from logging everything in debug mode

NEM-322 - API key save fails silently (user login for non-existent tenant?)

NEM-324 - User not found even if user exist

NEM-325 - Player does not work with HLS

NEM-330 - Test-Player is not playing back HLS-Streams on Chrome

NEM-355 - Empty Reports Display

NEM-356 - Map shows data after a new tenant has registere

NEM-358 - Improve Test-Coverage to 70%

NEM-361 - Failed job does not change its status to 'failed'

NEM-378 - Error during ssai channel creation via API PRD

NEM-382 - SSAI PRD - encoding job never end

NEM-385 - Failing tasks do not add the error (reason for failing) to the task and job

NEM-386 - Failing channel synchronizer test

NEM-387 - Failing enable channel

NEM-389 - Ad Slates get generated to many times NEM-394 - Backend: crash in refresh.

NEM-396 - SSAI create new tenant error - Invalid template NEM-397 - Histories records all contain only 'undefined'

NEM-400 - Fix unstable tests

NEM-402 - Channel Synchroniser: if sync fails for one tenant, subsequent tenants are not synced.

NEM-403 - The notification Service is responding extremely slow

NEM-410 - VOD GPAC static HLS mainfests fail to parse

NEM-411 - VOD DASH channel creation attempts to create adSlates?

NEM-415 - Dash Encoding doesn't work

NEM-416 - Player gets stuck with buffering

NEM-420 - Output URI for VoD channels

NEM-422 - Segments to replay after midroll = 0 gives JSON error

NEM-424 - Channel config on a ad-server level

NEM-432 - Change columns in the job-lis

v2.0.5.6 - 2020-01-02


NEM-318 - Channel Synchronisation based on NEM-243

Synchronise channels with the assigned SSAI-Cluster automatically so that:
  • Channels never get out of sync
  • In case of a Redis outtake/reboot channels get recreated quickly

NEM-333 - Raise Notifications on channel synchronisation errors

In case an error happens in the synchronisation process it is saved to the notifications and every user can subscribe to this event to get notified via email, slack or webhook.

NEM-360 - Added VoD services to SSAI-Cluster

The SSAI-Cluster now supports live and VoD channels. The administration of such VoD channels is planned to be added with version

NEM-204 - Ad-Slate (mp4) upload and automatic transcoding

The Ad-Slate for a channel can now be added by uploading a mp4 file. This supersedes the old process of defining a URL because it directly transcodes and packages the ad-slate in the required renditions to fit smoothly into the stream.
Ad-Slate upload


NEM-369 - Channels that only exist in database cannot be deleted

Fixes: Channels that where only existing in the database but not in the SSAI-Cluster Redis database could not be deleted.

NEM-375 - InitDB causing issues on CosmosDB since a dependency update. Refactored InitDB-Process.

After updating the dependencies to Azure and inside the project to the latest versions the process to initialise new collections caused crashes in multiple scenarios. This initialisation process has been refactored and runs only once on system boot up. Which is not only decoupling the processes to fix the current issues but also speeds up the resource creation and update process,

NEM-376 - Use env variables in Jest test

In order to make use of the Jest vs-code extension default environment variables have been added to the Jest configuration.



  • Integrated: VoD Ad-Aggregation Service v4.0.2
  • Integrated: VoD Ad-Stitcher Service v4.0.3
  • Both services above allow the creation of VoD SSAI channels based on a .mrss playlist forwarded by the player

v2.0.5.5 - 2019-12-05


NEM-88 - Default database entries on tenant level

A newly registered tenant gets all the important resources out of the box which simplifies the the setup process. The setup includes:
  • Connection to the shared SSAI-Cluster
  • Connection to the shared Azure Media Services account
  • A default HLS and DASH channel
  • Logic for processing advertisements in the format required for a dedicated channel
Note: The settings existing tenants made to their processes, systems and channels will not be changed.

NEM-98 - Notifications and subscription to notifications

Some internal processes emit notification that are listed in the notification section in the app:
Additionally users can subscribe to the notifications (
  • Job created
  • Job failed
  • Job is done
The currently supported subscription methods are Email, Slack and Webhook.

NEM-226 - Frontend: Improved handling of unknown routes

Unknown routes will lead to a friendly error message :-)

NEM-275 - Replace chart.js with Nivo for rendering charts

To provide a richer experience when looking at your stats we included the Nivo charting framework.

NEM-338 - DASH: Support trick play tracks

Additionally to the video representations a trick-play representation can be defined.
<Representation id="video=260000(mode=trik)" bandwidth="260000" width="416" height="234" codecs="avc1.64000D" scanType="progressive" ></Representation> understands the difference to the main video track and adjusts the encoding profile accordingly.

v2.0.5.4 - 2019-11-15


NEM-319 - Logging in Elastic Search and Elastic Cloud

The system can now be deployed with additional environment variables that enable the forwarding of the logs to a ElasticCloud instance.
Details: Underneath there is a Filebeat instance started and configured that is forwarding the logs to ElasticSearch.
Until today a user needed to delete all the jobs and medias that are related to a title in order to be able to delete a title and not have any orphan entries. Now those related entries will be deleted automatically in the background whenever a title is deleted.


NEM-313 - Restricting user and tenant access to delete of single items

Knowing the UUID of an entry it was possible to delete an item of another tenant. This Security flaw was removed.



  • [DASH] Synchronization of source manifest scan is now added to DASH, too.
  • [DASH] Enhance client-side VAST tracking capabilities by signaling the ads complete VAST documents (supporting FreeWheel PoC)
  • [DASH] Service names (for DASH) made configurable.
  • [DASH] Update log format
  • [Channel-API] enhance synchronization of scan-jobs by new 'scan-job-generation' for DASH
  • [DASH] Signal URL to client-VAST in view request
  • [DASH] added route to fetch VAST document for client-side VAST tracking
  • [DASH-Scanner] enhance synchronization of scan-jobs by new 'scan-job-generation' for DASH
  • [DASH-Scanner] added SERVICE_NAME=dash-scanner to ENV
  • [DASH-Scanner] scan source manifest at the defined minimumUpdatePeriod interval signaled in the source MPD
  • [DASH-Scanner] format logging by prepending channel- (cid:), replacement- (rid:), period- (pid:) ids accordingly to any log message
  • [DASH-Replacer] Signal complete VAST responses to clients i.o. to enable full VAST tracking
  • [DASH-Replacer] added SERVICE_NAME=dash-replacer to ENV
  • [DASH-Replacer] store complete VAST responses for delivery to the sai-client (client-side VAST tracking)
  • [DASH-Replacer] format logging by prepending channel- (cid:), session- (sid:), replacement- (rid:) ids accordingly to any log message
  • [DASH-Replacer] Fix: Multiple enable crashes channel
  • [DASH-Replacer] Fix: Disable-enable cycle needs time to propagate correctly
  • [DASH-Replacer] Fix: Duplicate scan-job on re-schedule orphaned scan-jobs, source scan errors, channel re-synchronisation errors

v2.0.5.3 - 2019-10-30


NEM-188 - Apply correct styles on SweetAlert dialog boxes

Buttons did not get the CSS styles. This is changed to the correct styling. See: NEM-105

NEM-296 - token refresh seems to be broken

After the time-to-live of the user token was expired after 1 hour there was no automated fetch with the refresh token which led to fetching errors and empty pages.
The Frontend was logging:
UnAuthorizedError: Request cannot be authenticated. Invalid token.
Fixed by an improved handling of the refresh token.

NEM-301 - Fixed: Navigation to /app route causes a wrong redirection

Issue: Pasting into the browser redirects you to: which is not a route and so is a blank page.
Fixed by refactoring the routing.

NEM-304 - Fixed: Cannot add a channel on staging because faulty id in url

Creating a new channel forwarded the user to a wrong URL with [object%20object] instead of the channel id:
Fixed by refactoring the routing.


NEM-105 - Frontend: Error/ Success Messages handled by the SweetAlerts framework

Added unified success and error message handling utilising SweetAlert2:

NEM-136 - Show more detail on errors

Sending an error from the backend can now be resolved completely by the frontend to show all the details of the error message.
Example of error handling in the backend:
throw new MoleculerError('Manifest Invalid', 501, 'ERR_INVALID_MANIFEST', analysis.errors)

NEM-216 - Admins can now resend the verification e-mail for a particular user

It is now possible to resend the confirmation email by an admin via:<user-id>

NEM-216 - Users can request the verification e-mail if they ave not received the original mail

Users that have not yet verified their email address can now choose to resend the confirmation email after trying to login in case they have nor received the first one.

NEM-276 - Frontend routing has changed from hash to a path based approach

The frontend routing has changed from a hash based approach like
to a path based schema
to enable multiple layers of nesting like

NEM-293 - Add Freewheel as possible ad-server

On the channel detail page freewheel can now be used as another supported ad-server.
In order to use freewheel please always add the following line to the ad source parameters (optional) field:
{"caid": "<campaign-id>"}



  • Synchronisation within the channel scan process is enhanced leading to more stability in cases of source stream manifest or connection errors, ssai-component updates and ssai-channel-api interactions
  • API-Keys are enabled for DASH
  • HLS source updates are safely throttled to half the segment target duration. HLS output manifests are defaulted to 10 in length.
  • Earlier fixes to the FreeWheel adapter are included.
    • Fix typo in parameter name (flag)
    • Add HTTP-header for client IP
  • SpotX adapter now features GDPR client parameters.
    • Whitelist regs[...] in client/session url parameters
    • Whitelist user[...] in client/session url parameters
  • Fix: Multiple enable crashes channel
  • Fix: Disable-enable cycle needs time to propagate correctly
  • Fix: Duplicate scan-job on re-schedule orphaned scan-jobs, source scan errors, channel re-synchronisation errors

v2.0.5.2 - 2019-10-14


  • NEM-205 - Frontend: Enable channel params on the channel detail page
  • NEM-232 - Clean up the registration page
  • NEM-244 - Replace use of specific subclasses (e.g. ForbiddenError) with MoleculerError
  • NEM-256 - Clean up the login page
  • NEM-279 - Frontend: remove "handleJSONChange" from DataConnector
  • NEM-280 - Frontend: Allow maxWidth for List columns to be passed in props


  • NEM-220 - Frontend: Make sure buttons are always accessible in lists
  • NEM-225 - Add error handling to "Invite User"
  • NEM-257 - Asset metadata: Type should be a dropdown
  • NEM-274 - Remove Elastic Environment Variables (They are no longer used because the channel service pulls the elastic config now from the systems service)

v2.0.5.1 - 2019-10-02


  • NEM-97 - Finalize asset detail page (including: limit with of tables and auto-generated detail page for medias+jobs)
  • NEM-259 - DASH analyzer to support the alternative DASH-Manifest representation structure

v2.0.5.0 - 2019-09-27 - Alpha Release


  • NEM-87 - Improved the registration flow by making the mails cleaner and improving the process
  • NEM-90 - Handling of forbidden sections. Section display is now dependent on the role of a user: SuperAdmin, Admin or Viewer
  • NEM-91 - Implement the Reporting and Dashboard section
  • NEM-92 - Implement pagination, sorting and reload on the table view
  • NEM-153 - Changed flow.tasks to taskTemplates in the code to make the purpose clearer
  • NEM-163 - Reviewed the and put most of the docs in the wiki
  • NEM-189 - Updated the new logo on main page and favicon
  • NEM-206 - Changed the configuration to come from the systems service
  • NEM-211 - Added x-total-count to the response headers
  • NEM 213 - Implemented the new SSAI-Cluster API
  • NEM-242 - Improved the API error http status codes
  • NEM-245 - Replace 501 errors with 500 errors
  • NEM-247 - Improve channel API responses handling on update
  • NEM-251 - Implemented SSAI-Cluster channels API interface changes
  • NEM-258 - In the profiles set bFrame to 0 by default


  • NEM-219 - FIX: Cannot login again after logout or token expiration - SOLUTION: Delete existing token before login
  • NEM-223 - FIX: Search on assets and users not working
  • NEM-246 - FIX: Updating a channel doesn't update ad server url
  • NEM-248 - FIX: On Windows docker often cannot start dependencies after machine restart
Last modified 4mo ago