Version 2.0.5.x
Last updated
Last updated
Changed the headlines and structure in the asset section to be more user friendly.
It is possible to select VoD channels as a new channel format.
Find details on how to use them at: https://nowtilus.gitbook.io/serverside-ai/video-player-app/vod-dash-hls
The channel player now shows error that occur on load or while playback.
The system only accepts dash or hls manifests as source for VOD channel. THis is now reflected in the analysis as well.
A dedicated method can now be used in order to activate or deactivate a channel
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
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.
The SSAI-Cluster now supports live and VoD channels. The administration of such VoD channels is planned to be added with version 2.0.5.7
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.
Fixes: Channels that where only existing in the Serverside.ai database but not in the SSAI-Cluster Redis database could not be deleted.
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,
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
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.
Some internal processes emit notification that are listed in the notification section in the app: https://admin.serverside.ai/app/settings/notifications
Additionally users can subscribe to the notifications (https://admin.serverside.ai/app/settings/profile):
Job created
Job failed
Job is done
The currently supported subscription methods are Email, Slack and Webhook.
Unknown routes will lead to a friendly error message :-)
To provide a richer experience when looking at your stats we included the Nivo charting framework.
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>
Serverside.ai understands the difference to the main video track and adjusts the encoding profile accordingly.
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.
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
Buttons did not get the CSS styles. This is changed to the correct styling. See: NEM-105
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:
Fixed by an improved handling of the refresh token.
Issue: Pasting https://admin.serverside.ai/app/ into the browser redirects you to: https://admin.serverside.ai/app/app/dashboard which is not a route and so is a blank page.
Fixed by refactoring the routing.
Creating a new channel forwarded the user to a wrong URL with [object%20object] instead of the channel id:
Fixed by refactoring the routing.
Added unified success and error message handling utilising SweetAlert2: https://sweetalert2.github.io/
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:
It is now possible to resend the confirmation email by an admin via:
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.
The frontend routing has changed from a hash based approach like
to a path based schema
to enable multiple layers of nesting like
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:
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
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)
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
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 readme.md 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