Welcome to the November 2021 release of the Bot Framework SDK. This release has been focused on bug fixes and general improvements.
SDK [release notes]
December 2021 (version 4.15.1)
- Improvements to the Language Understanding library's loading and performance.
- Adaptive ForEach Action has been refactored to ForEachElement with improved stack processing and performance.
User-Assigned Managed Identity
Azure Bot's identity management has been updated to include support for 1) User-Assigned Managed Identity, and 2) Azure AD Single Tenant app. This is in addition to the currently supported Azure AD Multi-Tenant app identity. For more details on how to create and deploy an Azure Bot using these new identity mechanisms, please refer to the following docs:
Create an Azure Bot resource
Deploy your bot to Azure
Improved Streaming Library
A new streaming library Microsoft.Bot.Connector.Streaming
has been released which greatly improves performance of bots using web sockets. This library will exist side-by-side with the legacy streaming library Microsoft.Bot.Streaming
. CloudAdapter
uses the new streaming library by default, and BotFrameworkHttpAdapter
uses the legacy streaming library by default. Both these defaults can be overridden by the bot's adapter by overriding a virtual method.
Code to override CloudAdapter
to use legacy streaming library:
protected override StreamingConnection CreateWebSocketConnection(WebSocket socket, ILogger logger)
{
return new LegacyStreamingConnection(socket, logger);
}
Code to override BotFrameworkHttpAdapter
to use new streaming library:
public override StreamingRequestHandler CreateStreamingRequestHandler(IBot bot, WebSocket socket, string audience)
{
var connection = new WebSocketStreamingConnection(socket, Logger);
return new StreamingRequestHandler(bot, this, connection, audience);
}
Changes to LanguageGeneration.Templates class
This release introduces a global flag called "Templates.EnableFromFile" that indicates whether the Adaptive Expression fromFile function is allowed in LG templates. If an application had previously made use of this function, it is now required to add the line "Templates.EnableFromFile = true;" to the Startup.cs code.
4.15.0 SDK Change Logs
- Update README by @mrivera-ms in #5748
- Fix bug that whether an Orchestrator object can extract entities or n… by @hcyang in #5749
- [#5192] Add unit tests for SendHandoffActivity by @ceciliaavila in #5754
- Disable code coverage reporting for netcoreapp 2.1 by @BruceHaley in #5755
- Ensure the results of Orchestrator scoring are not readonly by @EricDahlvang in #5763
- Register
missingProperties
custom function to get all variables the template contains by @Danieladu in #5518 - Skip Adaptive.Tests.ActionTests.Action_MissingProperty for dotnet 2.1 by @cosmicshuai in #5771
- Skip MissingProperty test temporarily by @Danieladu in #5772
- use correct header schema for BeginSkill by @a-b-r-o-w-n in #5767
- Add component governance detection to ci build v2. by @BruceHaley in #5776
- extend merge built-in function by @Danieladu in #5742
- fix: clean up tests in adaptive expressions by @Danieladu in #5781
- fix #5778: CreateIfNotExistsAsync before add to _checkedContainers by @rmt2021 in #5779
- uischema: add missing ui options by @yeze322 in #5501
- fix: Fix the case issue that would block the building in linux system by @Danieladu in #5777
- Streaming: Surface exceptions like other paths to allow error handling in upper layers. by @carlosscastro in #5803
- Added dialogs property of AdaptiveDialog to the hidden list by @LeeParrishMSFT in #5785
- Convert HeroCards to BlockKit by @mdrichardson in #5571
- Make Multi-language recognizer case-insensitive by @Danieladu in #5811
- MSAL auth: fix log entry text by @carlosscastro in #5784
- Increase timeout for TranscriptStoreBaseTests.GetPagedResultAsync by @EricDahlvang in #5823
- Disable failing JwtTokenValidationTests by @EricDahlvang in #5833
- Make StreamingRequestHandler methods virtual by @mrivera-ms in #5828
- Delete appid/password from tests by @EricDahlvang in #5836
- Update interdependency graph URL in README.md by @BruceHaley in #5844
- Managed Identity (MSI) + Single Tenant support for Bot apps by @msomanathan in #5829
- check whether Metadata contains Timestamp by @rmt2021 in #5799
- Add unit tests for AdaptiveDialogBot parameters by @BruceHaley in #5868
- Add ThrowOnRecursive to AnalyzerOptions by @EricDahlvang in #5872
- Fix intermittent test failure in BotBuilder-DotNet-CI-PR-yaml by @BruceHaley in #5876
- Corrected GetConversationMembers to use TeamsInfo helper class rather… by @LeeParrishMSFT in #5874
- Increase test coverage on Microsoft.Bot.Connector by @BruceHaley in #5761
- Add "omnichannel" to Channels by @EricDahlvang in #5891
- Prevent duplicate None labels from being added twice by @tsuwandy in #5892
- Fix ReplaceDialog Action: DialogContext.BeginDialogAsync(): A dialog … by @QaisAlkhateeb in #5656
- Move IAdaptiveDialogDependencies to Adaptive library by @mrivera-ms in #5897
- [#5895] Increase Microsoft.Bot.Builder.Dialogs.Debugging code coverage by @ceciliaavila in #5896
- [#387] Increase Microsoft.Bot.Builder.Azure code coverage by @sw-joelmut in #5890
- [#5838][Part 1] Increase Microsoft.Bot.Streaming code coverage by @ceciliaavila in #5839
- [#5838][Part 2] Increase Microsoft.Bot.Streaming code coverage by @ceciliaavila in #5840
- [#5898] Increase Microsoft.Bot.Builder.Azure.Queues code coverage by @ceciliaavila in #5899
- Add key for InternalsVisibleTo in Microsoft.Bot.Streaming by @EricDahlvang in #5901
- FileResource and SourceMap improvements by @EricDahlvang in #5788
- Add ShowSignInLink to OAuthPromptSettings by @mrivera-ms in #5906
- [#5904] Increase Microsoft.Bot.Builder.AI.Orchestrator code coverage by @ceciliaavila in #5905
- Deprecate CosmosDbCustomClientOptions by @EricDahlvang in #5910
- New pipelines for the new vNextPrototype branch by @BruceHaley in #5912
- fix: Component Governance: CVE-2021-31957 by @BruceHaley in #5916
- Streaming Library Refactor by @msomanathan in #5908
- Fix build break. by @msomanathan in #5918
- Cherry-Pick to 4.15: Add / accept header to ConnectorClient httpclient (#5926) by @EricDahlvang in #5929
- Cherry-Pick to 4.15: MSAL: Update to Microsoft.Identity.Client v4.37 to allow sendX5C conf… by @EricDahlvang in #5928
- Cherry-Pick: E2E tests for new streaming library (#5932) by @msomanathan in #5941
- Cherrypick 5925: Fix comparison policy of string in adaptive expressions by @EricDahlvang in #5939
- Cherry-Pick: Update Microsoft.AspNetCore.Http to 2.1.22 (#5936) by @msomanathan in #5942
- CherryPick to 4.15: add control property (#5943) by @EricDahlvang in #5945
- #minor Cherry-Pick to 4.15: flip enableFromFile to false by default and fix unit tests (#5953) by @EricDahlvang in #5954
- #minor cherry-pick to 4.15: Revert: Register missingProperties custom function to get all variables (#5962) by @EricDahlvang in #5963
Full Changelog: 4.14.0...4.15.0