Subscribe to Receive Email Notifications about Platform and Service Updates
# What's New in Lab On Demand
What's New in the other LODS platforms?
## **Released August 7, 2020** **External Instruction Source** - When an error occurs between the lab profile and the external instruction source, the error message is now displayed on the lab profile details page. A note will be displayed at the top of the page to indicate that there is an error. - External instruction source configuration messaging has been updated to not mention any specific external instruction sources. - When configuring a lab to use external instructions, a warning will now be displayed if the repository exceeds the maximum repo size limit (500mb) or if the repo is getting close to the limit. **Search Filters and Output Options** - Search filters have been added for _Was Launched_ and _Was Not Launched_ to the following search pages: - Find Cloud Credential Pools - Find Subscription Pools - Find Organizations - Find Lab Series - Find Lab Profiles - A new output option has been added to the Find Lab Profiles search page. - number (#) networks is now available as a filter and output option. - A new output option has been added to the Find Organizations search page. - _Parent_ is now available as an output option. **Additional API Options** - We have two new API commands. A parameter of id can be used to specify the lab profile. - _GetLabInstructions_: returns the IDL-MD instructions of a lab profile as a string. - _GetLabInstructionsPackage_: allows you to download the IDL-MD instructions of a lab as a binary file. - We have added two parameters to the Catalog API Call. - _LabSeriesID_: will limit results to the Lab Series specified. - _organizationID_: will limit results to the Organization specified The Organization ID is the integer at the end of URL when visiting the organization page in LOD. For example, https://labondemand.com/Organization/3 , the organization ID would be 3. **Cloud Slice Geolocation** - Cloud Slice labs can now be geolocated to launch in the cloud region that is physically closest to the lab user. - In addition to IPv4 geolocation services, LOD can now process IPv6 IP addresses during the lab launch process. **Upgraded Instructor Monitoring for Hyper-V Labs** - The instructor monitoring experience has been upgraded with the following features: - Better screen refresh rates provide a smoother view of what is happening in the lab. - Works with Enhanced Session Mode. - Allows instructors to see the mouse cursor of the student. - When taking control, students and instructors will see each other’s initials next to their respective cursors in real time. **LOD Improvements and Fixes** - The _My Labs_ link in LOD has been replaced with _Dashboard_. When logging into Lab on Demand, lab developers will be directed to Dashboard instead of the Admin page. - Cloud Resource Templates no longer display the description in the Resources tab of the lab client for Cloud Slice labs. - The sort order of resources configured on the Advanced tab of a lab profile are now reflected in the lab client. Subsequent changes to the sort order are reflected in the lab after the lab has been reloaded. - Updated vSphere Activity Based Assessment logic to be more resilient when scoring. - LTI 1.3 can now provide a status of complete/incomplete for labs that do not have any scoring. - Updated localization on virtualization set up screen to localize all text displayed. - Class monitor pages now default the layout to display lab instances in small tiles, instead of a list view. - Updated logic when detecting windows for cloud slice split view results in greater accuracy when determining whether an interstitial page should be shown. - Added the ability to remove an expiration date on a cloud subscription in a Subscription Pool. - Fixed a bug that caused an application error when a lab tag is deleted while a lab profile that uses the lab tag is being saved. - Fixed an issue that caused an application error when viewing a lab instance details page, from a lab profile where the cloud tab was edited while there were active lab instances. - Fixed an issue that prevented saving some child labs that use a CSS subscription pool. - Fixed a bug that hid the _Allow Setting Expiration Time_ drop-down menu when creating new lab profiles. - Fixed a bug that prevented lab developers from adding VM profiles to a lab profile when the number of vCPUs did not exceed the limit. - Fixed a bug that resulted in some extraneous text displayed next to the Force Check In link in the instruction editor. ## **Released July 10, 2020** **Multi-fabric Sequencing** Lab profiles have a new option on the Advanced tab, to configure lab fabric build sequence. This allows labs that contain multiple fabrics to control which fabric is built first or if building can occur simultaneously. Lab fabrics can be built virtualization then cloud, cloud then virtualization or parallel to each other. **Shared Labs** Lab authors can now choose whether a shared lab environment will automatically launch when a participant lab is launched or if an instructor will first need to launch the shared environment before participants are allowed access. Automatic launching is enabled by selecting the checkbox next to the shared environment role on the advanced tab of a lab profile. **LOD Improvements and Fixes** - Variable output and text replacements will be rendered in the lab client immediately upon any creation or update. - A read only copy of the instructions is now available via the edit instructions link in lab profiles with externally managed instructions. This allows authors to utilize the recently released Replacements feature as well as manage replacement tokens and activities. - The connection quality indicators in LabonDemand and the lab client have been updated with new values to better align with the recently implemented changes in how latency is calculated. - Total score, passing score, and passed results are now displayed on the lab instance details page of scored labs. - LTI 1.3 Deep Linking is now available for Moodle. - Fixed a bug causing select browsers/OS combinations to loop through the launch process for cloud labs. - Fixed a bug that prevented the close button from appearing in modal dialog windows. - Fixed a bug that prevented the lab client from tracking progress when selecting tasks list configured in Git Integration and includes. ## **Released July 6, 2020** - The Docs app has been updated with a search function in the top menu bar. This will search document titles, as well as the contents of available LOD and TMS documentation, and list any documentation that matches your search term(s). ## **Released June 26, 2020** **Lab Latency** - Lab instance average latency now filters out outliers that could skew the overall average of the latency value displayed in the lab client, as well as lab instance details pages. - Lab instance and lab instance connection history pages now show the latency deviation for that lab instance. Lab instance deviation is the standard deviation of all recorded latency values for the lab instance. A high standard of deviation indicates an inconsistent and potentially unstable network connection. **Azure CSS Improvements** - Lab instance details pages now show the cloud subscription instance that the lab used. Additional details are available for the subscription, including subscription state, pool, cloud subscription ID, enrollment account, state last changed, created and Azure management group. This will assist with management and administrative tasks. - CSS Subscription pools Now have search buttons to view lab instances and Cloud Subscription Instances that are associated to the subscription pool. **LTI 1.3 Deep Linking** - Deep linking is now generally available for use with Canvas and Blackboard. Speak with your Account Executive to help determine if your LMS is LTI 1.3 compatible. **LOD Improvements and Fixes** - Cloud Slice labs will now launch an interstitial page to help with resizing and relocation if opened in a window or tab that cannot readily be resized or moved. - You can now search for API Consumers by specifying which lab series are available to them using the Available Lab Series and Available Lab Series Name filters. - A note is now placed on the lab instance details page when the instance is canceled using the API cancel call. - Fixed a bug that prevented enhanced users from saving a differencing disk to their organization storage. - Fixed a bug that prevented a user with the proper permissions from being able to view lab tags that they have added to lab profiles. - Fixed a bug that caused an improper title to appear in the Network drop-down selector in the lab client. - Fixed a bug that prevented a user with proper permissions from deleting a cloud resource template. - Fixed a bug that prevented a lab instance from closing when using the split windows view. - Fixed a bug that caused a VMware lab to fail to launch when ESX creates a folder that already exists. ## **Released June 12, 2020** **IDLx Replacements** - There is a new option in the IDLx @lab menu for Replacements. Replacements allow for text or regex find and replace. Replacements can be used to cleanup or extend existing instructions sources, potentially eliminating the need for lab errata. **Azure CSS Improvements** - Azure CSS Resource Group names have been simplified to be read more user friendly. - Removed the Name field from Azure Enrollment Accounts. Only the Principal Name is displayed. **LOD Improvements and Fixes** - Per hour pricing is now displayed on lab profile details pages and returned in a LabProfile and Catalog API calls. - When a cloud based lab inherits the environment from another lab, the virtualization and cloud platforms are now disabled. - Users can now choose to cancel a lab instance directly from a running lab when saving their current lab would otherwise exceed the number of allowed saved labs configured on their account. - When starting a virtual machine in a running lab instance, the message "There is not enough available memory to start this Virtual Machine. Please try again later." will appear when their isn't enough RAM on the host. - The DeepLink URL is now displayed on API Consumer page. - Dark theme updated so that autofill fields match other text fields. - Updated outgoing TS1 notification to include the reason and user org when an API launch fails. - Search filters are now shown in alphabetical order when selecting from the add filter drop-down menu. - Cloud hosted VMs no longer take Datacenter availability into account. - Themes applied to the lab will now render when viewing the instructions through the Lab Manual view. - When lab instructions contain a non-breaking space, it will no longer be parsed and displayed in lab instructions or in IDLx syntax such as code blocks. - Additional logging of API errors has been added to the API Error Console to provide more information about the error that occurred. - Fixed a bug that prevented IDLx sections with variable dependencies from showing/hiding in a Lab Manual. - Fixed a bug resulting in an error when a description is provided through an LTI 1.3 launch. - Fixed a bug that prevented ACP enforcement on a lab profile with specific user permission configuration. - Fixed a bug that caused an application error when viewing a lab instance for a lab profile where the cloud platform is changed on a lab profile while there are running lab instances. - Fixed a bug that would populate CSS settings on the Cloud tab when a lab was configured for CSS, changed to CSR and then back to CSS. - Fixed a bug that prevented Expected Cloud Cost to be displayed when printing or exporting lab profile search results. - Fixed a bug that prevented labs from displaying when the lab profile is configured for French language. ## **Released May 29, 2020** **Lab Instance Transfer** - When permitted, students, instructors, and lab developers can transfer their lab instance to one another using email. This setting can be turned on at the organization level. LOD administrators will also be able to swap lab instances between users using a Transfer console available through the lab instance details page. **Lab Instance Time Extension** - When permitted, students and/or instructors can be allowed to extend their lab instance via the pencil icon next to the lab timer. When the icon is selected, they will be presented with a calendar to set the new expiration date for their lab. The maximum amount of time that the lab can be extended is configured on the Organization that owns the lab profile. Once a maximum extension time is set, a drop-down menu in the lab profile will have three options to select who can extend their lab. The options consist of: - Not Allowed - Allow only instructors to extend lab expiration - Allow users to extend lab expiration (includes instructors) **Activity Based Assessment (ABA)** - There is a new ABA option for both Question and Automated activities that allows page navigation to be blocked until the student answers or completes the activity correctly. This feature will be very beneficial for challenge based lab scenarios. - Fixed a bug that prevented multiple answer ABA activities from displaying properly in a task list. **Evaluations** - When creating or editing an Evaluation, there is now a setting labeled Allow Skipping. By default, Evaluations will allow skipping, but it is now possible to disable the option to skip an evaluation, by unchecking the Allow Skipping setting. **Improved Error Messaging** - We have updated error messaging to better indicate why a lab cannot be launched. The new messages include: - All available hosts have hit a launch throttle limit. - A host with sufficient RAM could not be found. - A host with access to all required virtual disk files could not be found. - A host with sufficient local storage could not be found. - A public IP address is not currently available. - A host with an available external container port is not currently available. **API Error Console** - A new console for tracking API launch errors is now available under the Lab Instances tile. This will allow LOD and organization admin to quickly identify the following issues that students may encounter when trying to launch a lab through the LOD API. Note the values in parentheses are only placeholders and will likely be different depending on the resources requested during the launch. - A host with sufficient local storage could not be found. - This lab is not currently available for launch via API. It is awaiting security review. - Sorry, you have taken this lab the maximum number of (3) times. - User has too many active labs (2). - Student is already using too much RAM to launch this lab (max 100 GB). - External API integration has reached the maximum number of concurrent lab instances (1000). - API consumer is using the maximum amount of allowed RAM (1000 GB). - The maximum number of current labs for this lab profile are currently running (10). - The user's organization currently has the maximum allowed active labs (300). - The user's organization is currently using the maximum allowed amount of RAM (800 GB). - The maximum amount of RAM for labs belonging to ABC Learning Co. is currently in use (1200 GB). - The maximum number of labs that belong to ABC Learning Co. are currently running (800). - The maximum number of current labs for this lab series are currently running (30). - The user's organization is currently using the maximum allowed amount of RAM (1200 GB). - Class has reached the maximum number of concurrent lab instances (30). **Improvements and Fixes** - Updated markdown to HTML parser. This update allows better integration with Github flavored markdown. - The number of results displayed on an event's homepage can now be set when configuring the event. - The number of concurrent instances allowed per user can now be set with the API parameter maxActiveLabs. - Added Win Shortcut key to the commands menu (lightning bolt) - Activities and LCAs are now saved into new lab profiles created from a running lab instance. - When configuring a lab profile that uses Azure or AWS as the virtualization platform, the tabs are re-ordered in a more intuitive order so that a lab developer can configure the lab one tab at a time, from left to right. - Validation has been added to VM profiles to ensure that a network adapter is added, when creating a new Azure VM profile or editing an existing profile. - Corrected typo in lab instance sharing tool tip and also Container port unavailable error message. - When creating or editing a VM profile that uses AWS as the platform, unsupported checkbox options have been removed from the bottom of the Basic Information tab. Removed options include: Host Integration Enabled, Use Enhanced Session Mode, and Enabled Dynamic Screen Resizing. - When creating or editing a VM profile that uses vSphere, AWS, or Azure as the platform, unsupported checkbox Use Enhanced Session Mode has been removed. - VMware VM display names are now limited to 64 characters. - The Zoom slider will move above the tab labels in the lab client when long custom tabs are configured on the lab profile or the slider would otherwise overlap the tabs. - Added a loading screen to lab profiles that have a hidden VM and no Cloud landing page. - Improved resilience during the Differencing Disk process when capturing very large virtual machines. - In addition to standard PKCS#1 keys, LTI 1.3 now supports PKCS#8 keys provided by Blackboard for launching and scoring labs. - Fixed a bug resulting in an error when searching for Lab Profiles by Expected Cloud Cost. - Fixed a bug that allowed a user to continue using expired permissions so long as they used AAD to sign in. - Fixed a bug that prevented the instructions from being carried over when saving a running lab as a new lab profile. - Fixed a bug that caused an application error when force checking in lab instructions. - Fixed a bug that prevented some applications from honoring line breaks when using Type Text. - Fixed a bug that prevented Cloud Resource Templates from being saved, cloned, or deleted. - Fixed a bug that allowed a lab to be pre-instanced from a disabled Lab Series. ## **Released May 15, 2020** **Life Cycle Action** - A new Life Cycle Action hook has been added to Lab on Demand. A script can now be run against a VM or Container when the lab is Tearing Down and the Blocking option enabled. This combination will allow the script to complete before tearing down the resources required by the script. **Lab Instance Sharing** - Lab instance Sharing is now available for Cloud Slice Labs. - Fixed a bug preventing the validation of an email address when the character-case didn't match the value returned by the authentication provider. **Lab Instance Monitoring** - The Class monitoring page has been upgraded to include a grid layout that displays currently running labs. There are three different sizes of thumbnail to choose from and the layout can be toggled to the legacy layout when desired. **Azure CSS and CSR Improvements** - When a CSS lab profile is exported and imported, the subscription level settings (ACP and user permissions) are now preserved during the export/import. - The subscription prefix setting on enrollment accounts has been moved to the CSS subscription pool, so that the prefix will be applied to all enrollment accounts in the pool. - Reworked CSS resource provisioning so that resources deployed via Resource Templates are not blocked by the Access Control Policies configured in the lab profile. - Azure CSS labs are now subject to Cloud Security Review based on Access Control Policies. - Improved the way that Access Control Policies are applied in CSS labs to scope subscription and resource group ACPs appropriately. - Updated the naming convention on the LOD Policy Set in Azure, to include identifiers for the platform and type of Azure lab. A script will be ran to update any references to this in Life Cycle Actions and Activity Based Assessments. **Accessibility** - Star rating evaluations are now announced by a screen reader and are keyboard navigable. - Added and corrected labels used by assistive technologies. **Improvements and Fixes** - Updated Snapshot feature to use an improved process for transferring files. - In Azure and AWS labs the User Account name prefix is pre-populated with the text, User1-. - LTI 1.3 Error messages are now properly presented in HTML instead of text. - Updated logic in LTI 1.3 service to respect enabled/disabled status of an API consumer when it is set to integration testing status. - Removed dialog that would be improperly displayed when assigning an AWS user to a region when saving a new lab profile. - Removed references to deleted lab profiles on Shared Environment Lab Profile pages. - Fixed a bug that prevented the VLAN ID set in a VM profile from initializing on a lab host. - Fixed a bug that caused some vSphere VM profiles to display the wrong OS version on the details page. - Fixed a bug preventing variables from populating in the Intellisense menu while editing lab instructions in a running lab. - Fixed a bug preventing labs utilizing German language option from launching. --- ## **Released April 24, 2020** **We are now LTI Advantage Complete Certified** - LTI allows administrators to easily integrate labs into their existing LTI 1.3 compliant learning management systems. In addition to more granular scoring and grading, LTI offers enhanced security utilizing OAuth 2 tokens and an improved authentication flow. **Azure Cloud Slice Subscription (CSS)** - There are now two variants of Azure Cloud Slice; Cloud Slice Subscription (CSS) and Cloud Slice Resource Group (CSR). CSS allows full access to an Azure subscription, to allow Azure training at the subscription level, rather than at the resource group level. This solution will be a functional replacement for Azure Passes for MOC courses. Cloud Slice Resource Group (CSR) has had no changes in functionality. For more information about CSS, read Enabling Azure Learning in the Post Azure Pass Era. **Accessibility Enhancements** Many accessibility improvements have been made to the lab client resulting in an improved experience for those utilizing assistive technology. Some of these enhancements include the following. - Menu buttons are now 100% accessible using keyboard commands. - Notifications, text fields, and status messages can now be announced by screen readers in real time. - The colors used in Lab on Demand lab client themes have been adjusted so that text is easier to read and differentiate from the background. All themes now meet WCAG AA guidelines. **Lab Client Localization API Parameter** - Platform generated Dialogs, tabs, and menu items in the lab client can now be localized using the lang parameter during API launches. The available options include Chinese, English, French, Japanese, Korean, Portuguese, and Spanish. **Lab Instance Sharing** - Lab instances can now be shared from the hamburger menu in the lab. This allows those with permissions to share their lab instance with another individual. When sharing, an email will automatically be sent out to the email address provided. Optional features may be extended from the original user's account such as saving differencing disks and editing instructions. The share can optionally be set to expire at a specified time and date. Additionally, the lab instance share can be protected by an established authentication provider. **Virtual Machine (VM) Profile Improvements** - VM profiles now display the hard disk capacity on the details page. - Lab developers can now create VM disks up to 2TB in capacity, this was previously limited to 256GB. **Improvements and Fixes** - When exporting a lab profile that uses a vSphere VM with EFI enabled, that setting will now persist when the lab is exported. - Increased security for authenticated launch links and introduced optional per user retake logic. - Fixed a bug in the lab client that could prevent a lab from syncing with the server when the lab is configured for virtualization but does not contain any VMs. - Fixed a bug in the lab edit page that prevented the minimum show time on Content URLs from being removed. - Removed the validation warning when saving an Azure CSS lab without a Resource Group configured. - Improved logic to require an Access Control Policy in Azure CSS labs when a user is given Contributor or Subscription Permissions. - Updated tool tip in Cloud Subscription Pool Automation Settings. - A column has been added to Lab Series details pages to identify the cloud platform that is being used in each lab profile. ## **Released March 27, 2020** **Lab Instruction Improvements** - Lab instruction authoring has been improved to allow a function to show/hide lab instructions and lab instruction elements. Instructions and elements in Sections and code blocks can be shown or hidden based on the lab variable set via Life Cycle Actions, Activity Based Assessments, an IDLx textbox or an IDLx drop-down menu. - This can also work in conjunction with labs that use instructions stored in GitHub and displayed in the lab via a Markdown include. This allows the lab instructions to be displayed dynamically based on the variable set in the lab. For example, you could configure the drop-down menu to have 2 language options; en and fr. Then in GitHub where the lab instructions are stored you could create 2 copies of the lab instructions; one in English and one in French, with the lab variable value at the end of the file name. The lab user could then select en or fr in the drop-down menu in their launched lab, and the corresponding lab instruction file from GitHub would be displayed in the lab. - Additionally, the variable can be selected with an API launch. This allows the lab to display a specific Section when the lab launches. - **Sections**: Sections are used to group lab instructions and elements together so they may be called up on and manipulated as one. This is done by assigning a lab variable that has been set via LCA, ABA, an IDLx textbox or an IDLx drop-down menu. > :::sectionName(variableName-variabelValue) > section text or markdown elements > ::: - **IDLx Drop-down**: there is a new @lab token to add a drop-down menu to lab instructions, and assign multiple values to the drop-down menu. The values added to the drop-down become variables in the lab and can be assigned to IDLx sections as a way to show/hide lab instructions. The @lab token can be found in the @lab button when editing lab instructions or by using the syntax below. - **Dynamic Includes**: IDLx already supports displaying lab instructions stored in GitHub via a Markdown Include. That functionality has been expanded to use variables set in the lab to display lab instructions based on the drop-down menu selection. This requires the file names of the content in GitHub to have the variable value at the end of the file name, and a Section created in the lab instructions with a variable that has been set via LCA, ABA, an IDLx textbox or an IDLx drop-down menu. > **External repository file name**: > > `sample1-en.md`. > >**Include syntax with variable in file name**: > > `!instructions[(https://raw.githubusercontent.com/user1/sample1-@lab. Variable (language).md)` > > In this example, the variable value is `en` and the variable name is `language`. These are not limited to language selections. Lab variables, Sections and code blocks can be used to show/hide content based on the lab variable. Another use case for this could be Choose your difficulty, where there are multiple versions of the lab instructions with varying difficulty levels and the lab user selects their preference and lab instructions are displayed accordingly. **Improvements and Fixes** - Updated Instructions Import Page Title to reflect general usage of IDLx. - The background color and foreground color in the lab client now meets the minimum contrast ratio of 4.5:1. - Language now declared in HTML of Lab Client. - Deprecated QR code for lab launches. - Resource Template parameters are now preserved when cloning a lab using Save As or when a child lab inherits the cloud environment from a parent lab profile. - Disabled API consumers will now be hidden on the lab series publish page. - Tabs in the lab client now have an underline to show which tab is in focus. - When launching a lab by clicking launch on subscription or launch on subscription pool, the correct dialog is now displayed. ## **Released February 28, 2020** **Alt+Tab Shortcut Available in Commands Menu** - The Alt+Tab keyboard combination is now available as a shortcut under the Commands Menu. This allows students to swiftly switch between two full screen applications in their lab instance. When switching between three or more applications, the shift key may be held while selecting the Alt+Tab shortcut to cycle through all open applications on Windows and select Linux virtual machines. **Cloud Security Review** - A Cloud Security Last Reviewed filter is now available when searching for lab profiles. The output will display the date and time that the last Cloud Security Review was completed. - Access Control Policies can now be sorted by Requires Security Review. - Never has been added to the list of available options in the Cloud Security Review Approval Expires filter when searching for lab profiles. **Lab Variables Now Configurable by Lab Authors** - Lab authors can now initialize lab variables from the very start of the lab. These can be used in Life Cycle Actions(LCA) as well as Activity Based Assessments(ABA). These variables are available in IDLx using @lab.Variable(name). **Improvements and Fixes** - Access Control Policies can now be sorted by Requires Security Review. - Tooltips have been added to the Advanced tab of API consumer profiles, to describe the available options. - Two new filters, Is parent of and Is child of, are now available when searching for organizations on Labondemand.com. - Updated the root file path of resources on the Lab profile details page. - Lab Tags are now returned when the LabProfile API method is called. - Fixed a bug allowing students to launch an additional lab when they should have been limited by the number of retakes configured on the lab series. - Fixed a bug preventing labs from launching when URL reserved characters are passed to the lab host as cloud passwords. - Fixed a bug that prevented Last Activity and Last Console Sync from periodically ---