Major Changes in This Version¶
Added Notification API HTTP Endpoint¶
command API now exposes a new endpoint (
POST /notifications )
allowing the broadcaster to send notifications to all users without needing to
send them from the game. This lets you perform actions such as controlling the
notifications from an admin website, for example.
New Branding of Genvid SDK¶
We launched a new set of branding elements and incorporated them into the Genvid SDK. This update doesn’t affect the SDK in any functional way. Enjoy the new look!
Upgraded NodeJS to 8.12.0 LTS¶
The Genvid SDK installer now bundles the NodeJS 8.12.0 LTS release. This resolves some compatibility issues several samples had with earlier versions of NodeJS. The SDK is not yet compatible with NodeJS 10.13.0 LTS.
Upgraded HashiCorp Suite (Consul 1.4.4, Nomad 0.8.7, Vault 1.1.2, Terraform 0.11.13)¶
We upgraded all 4 products of the HashiCorp Suite used in the Genvid SDK. This includes the latest features and security fixes as of April 2019.
New Vault Management Interface¶
You can now manage your cluster Vaults directly from the Cluster Status page. This new interface lets you perform normal Vault operations, such as re-initializing, resetting, applying policies, etc.
New Genvid Web SDK module¶
- A compressed node package file.
See the upgrade notes for version 1.20.0 for more information.
Local Cluster No Longer Configured During Bastion Setup¶
Creating a local cluster is now an option when running the
genvid-bastion install command–not the default behavior. See
Initialize a Local Cluster for more information.
Studio-UI Broadcast Panel Deprecated¶
We deprecated the Broacast panel in Studio-UI and will remove it in a future release. You can still use the On Air button, which is in the bottom-left corner of Studio-UI. If you currently have a Broadcast panel in your dashboard, you can remove it by clicking the Edit button of the dashboard.
Toolbox Now Supports Named Profiles¶
The Genvid Toolbox now supports custom named profiles to make managing multiple environments easier. Once created, you can change the environment variables GENVID_PROFILE and GENVID_PROFILES_PATH from their default values (“” and “~/.genvid/profile”) to point to the custom profile you want to use.
If you change the value of GENVID_PROFILE, the named profile must exist in the folder set by GENVID_PROFILES_PATHS. Otherwise, an exception will be raised.
The GenvidClient Interface Now Supports Reconnection to Leaf¶
The GenvidClient interface now exposes an
onDisconnect callback that is
triggered when the client’s websocket closes.
The interface also exposes a
reconnect function. It receives new stream
info, a new leaf URI, and a new token as parameters, then establishes a new
websocket connection to the provided URI.
Minor Changes and Other Fixes¶
- [sdk] Now supporting IPv6.
- [sdk] Added missing early parameter validations from SDK functions to avoid crash.
- [sdk] Fixed some memory leaks when Genvid_Terminate() is called.
- [sdk] Fixed a crash when Genvid_Terminate() is called.
- [sdk] Fixed tags on genvid.sdk.frame* metrics.
- [web] The
genvidmodule no longer depends on
- [web] The WebGL clearColor value is now expected to be an array of numbers.
- [web] Added support to event twitchextoncontext. The handler of this event has an extra parameter with the new context and array of modified fields.
- [web] GenvidClient now exposes an OnDisconnect callback, triggered when its websocket closes.
- [web] GenvidClient now exposes the ability to reconnect to a leaf.
- [web] Fixed volume state inconsistencies with Standalone, YouTube, and Twitch video player.
- [web] Fixed inconsistent mute state behavior in overlay for Tutorial and UE4 samples.
- [web] Twitch player overlay no longer pauses during the first seconds after the stream starts to play.
- [web] When the video resumes playing after being paused, it will resume at the most recent video time.
- [bins] Binsd is now started by default on the Bastion and Cluster instead of with the Studio Sample.
- [studio] Disabled auto-cut checkbox when no scenes are created.
- [studio] Disabled Audio Mixer panel when audio stream is disabled.
- [studio] Disabled On Air button for standalone mode.
- [studio] Changed scenes display from dropdown to unfold list.
- [studio] Added indication of which scene is currently streamed.
- [studio] Moved save and delete buttons to selected scene.
- [studio] Added undo feature to selected scene. Resets scene to last saved settings.
- [studio] When auto-cut selected, saving changes will cut to the current streaming scene.
- [studio] Added warning message for uncut saved changes on streaming scene.
- [studio] Added value fields to showcase current streaming audio values.
- [studio] Avoid to freeze the monitor when we select source view.
- [studio] Solved an issue preventing the video layout sliders to update their range.
- [studio] Temporarily disabled the access to Still-Image video layout until the feature is completed.
- [studio] Added a fixed panel to display On Air status and the information related to the Cut action.
- [studio] Fixed a Play in Editor issue that prevented it from streaming on the website.
- [ingest] Reduced chances of Ingest crashing from clicking start/stop in OBS.
genvid.leafd.connection.currentis now correctly updated as a gauge.
- [composed] Fixed a rare crash in ComposeD due to concurrent access on sessions list.
- [rootd] Fixed an issue where Rootd couldn’t listen to it’s binding address after a failure.
- [terraform] Fixed the module definition so that the userdata doesn’t change when the number of workers instances is greater than one. Note that server instances will still be recreated if server_instance_count is modified.
- [terraform] Fixed a bug where the Linux servers where no longer using Consul as a primary DNS resolver after reboot.
- [terraform] Forced VPC Terraform Module to version 1.66.0 as our modules are not compatible with version 2.x
- [terraform] Users no longer need to change the iam_policy_auto_create Terraform variable to “1” so the AWS policies pass when creating the cluster.
genvid-bastion statuswill now show the version of the bastion and cluster instance.
- [toolbox] Fixed
genvid-sdk setupto look for the SDK images in the correct key path.
- [toolbox] Added a new command
genvid-sdk clean-images-sdkfor cleaning old SDK images.
- [toolbox] New subcommand
genvid-sdk versiondisplays the version of the cluster instance.
- [toolbox] Added a new
genvid-sdk update-imagescommand which lets you update the images configuration on a cluster based on an already populated S3 bucket.
- [toolbox] The
genvid.toolbox.DockerTool.update_imagenow have an optional
--basedirargument to set the directory the files are stored in. We also added the method
genvid.toolbox.SDK.update_archivewhich renames a ZIP file to match the regular expression
genvid.toolbox.DockerTool.RE_IMAGE_IMAGEID. We updated all samples for the new functionality.
- [toolbox] When DOCKER_MACHINE_NAME is not set,
genvid.toolbox.DockerToolwill no longer try to use
defaultfor setting the environment. Instead, it uses the default client connection. This should allow the system to build using Docker for Windows.
- [toolbox] Added a new
BastionToolin the Genvid toolbox to help manage a local Bastion.
genvid.toolbox.sdk.get_confignow also returns the secrets.
genvid-bastion startcan now also start non-autostart jobs if passed as an argument.
- [toolbox] Added
genvid.toolbox.SDK.load_config_templateto parse a configuration file through
consul-template(like most of our samples scripts do).
- [toolbox] SDK version number is now displayed at the bottom of Bastion-UI and Cluster-UI.
- [toolbox] In Cluster-UI, we added a link to the associated Bastion at the bottom-left corner.
- [toolbox] Bastion-UI and Cluster-UI are upgraded to Angular 7.
- [toolbox] In Bastion-UI, we have a new layout for the Terraform-settings editor along with labels that display the type of value (local, global, or default).
- [toolbox] API schemas are now located in genvidtools/libs for both Bastion-api and Cluster-api to share.
- [toolbox] Swagger UI is implemented in Bastion-UI for Bastion-API documentation.
- [toolbox] Fixed a bug where
genvid-ami setupwould create an AMI using a region obtained from Terraform variables, but then try to access it using the AWS configuration of the environment.
- [toolbox] Terraform module is initialized when a clone cluster is created.
- [toolbox] Added support for loading user profiles using the new environment variables GENVID_PROFILE and GENVID_PROFILES_PATH.
genvid-systemd-servicescan now set the Consul node ID through the
genvid-bastion installnow accepts
--node-nameto set the Bastion Consul Agent node name and ID.
- [toolbox] Fixed a bug which caused
genvid-clusters terraform-planto return an exit code of 1 on success.
- [toolbox] Fixed an issue where an existing Vault token would fail to be reused.
- [toolbox] Added 3 new methods to
- [toolbox] The command
genvid-sdk load-config-sdknow updates the binaries path for the local cluster.
- [toolbox] You can now specify the number of allocations included in the bug report when using
genvid-sdk setupwill now correctly update the binairies of an existing local cluster.
- [toolbox] Fixed a bug where S3 bucket key-prefixes could contain a duplicated
/depending on their format.
- [toolbox] Fixed a bug where genvid-sdk setup would return before the local cluster is ready to be used.
- [toolbox] Fixed a race-condition where we would try to set a policy in Vault before it is fully initialized.
- [toolbox] Fixed a bug where some jobs wouldn’t stop properly in certain circumstances.
- [ami] Changed the VAULT_ADDR value from http://vault.service.consul to http://active.vault.service.consul.
- [ami] We now ensure the Windows DNS is correctly set after reboot.
- [ami] We now flush the DNS cache regularly on Windows to resolve discovery of dynamic addresses faster.
- [ami] Set Windows Negative DNS Cache to 0 on the genvidtech-wingame AMI.
- [genvid-ami] Added a new
--ami-versionargument to the setup command. This option should only be used when explicitly stated in the documentation or by expert users.
- [wingame-ami] The game AMI now supports instance types without a
Z:\drive. This makes it easier to use newer instance types like the G3.
- [cluster-api] The CLUSTER_ID environment variable now propagates properly to each job.
- [gvencode] Fixed the memory footprint to no longer grow indefinitely.
- [gvencode][composed] Fix missing symbol names in stack trace on Linux.
- [ue4] Added Unreal Engine v4.21 compatibility to the UE4 plugin.
- [ue4] Added a manifest file functionality to Unreal samples.
- [ue4] The UE4 Cube sample can now be forced to build with Visual Studio 2015 or 2017.
- [ue4] Fixed regular lag spikes when playing in the Unreal Editor with a cluster selected.
- [ue4] Corrected cubes rotation direction.
- [unity] Fixed Genvid terminate issue related to events/commands.
- [unity] Fixed website matrix conversion code which prevented proper clicking of the cubes.
- [unity] Changed D3D11 Fullscreen Mode to Fullscreen Window to fix sample freezes.
- [unity] Added a command line argument when booting a Unity application to activate the Genvid SDK.
- [unity] Modified the
ProjectSettings.assetfile from the sample project to be compatible with Unity 2018 for the resolution when used in the cloud.
- [unity] Added a new refresh button in the Genvid window for the
Genvid.dllto fix a package install issue.
- [unity] Added a button to display the Unity editor logs in the Genvid window.
- [unity] Unity prefab and sample updated to use new function in the C Sharp wrapper to filter the Genvid status between error, warning, and success.
- [unity] Better handling of faulty web requests while using the Genvid window.
- [unity] Fixed the manual activation of the Genvid SDK inside the Genvid Unity prefab.
- [unity] Fixed a 10 second freeze when doing a start/stop in the Unity editor.
- [unity] Fixed bug where Unity would forget cluster selection in Genvid Editor window.
- [unity] Fixed a crash that occurred when switching between clusters in the Genvid Editor window.
- [unity] Fixed an issue related to DLL handling while opening the Genvid window during runtime.
- [samples] Added annotation samples in UE4 and Unity that display their results on the website.
- [docker-machine] Docker Machine upgraded from v0.13.0 to v0.16.1.
- [hashi-ui] Hashi-UI upgraded to v1.0.0.
- [consul-template] Consul Template software upgraded from v0.19.4 to v0.20.0.
- [nomad] Nomad-UI link has been added to Bastion UI and Cluster UI.
- [bastion] The local cluster is no longer created by default. You will need to run
genvid-sdk setupto create it.
- [consul] We now set the parameter disable_host_node_id in Consul configuration, which lets the Consul Agent have a more stable node ID based on its hostname.
- [consul] Leaf Websocket endpoint is now configurable (static) through Consul at genvid/services/leaf/websocketURLSuffix.