v2.3.0
Updating your application
To update your application to use the newest version of Microsoft Graph Toolkit, navigate to your project directory and run:
npm i @microsoft/mgt@latest
If you’re using the Toolkit via mgt-loader
, your application will be automatically updated to the newest version.
Teams SSO Provider
Thank you @simonagren for contributing this feature! 🙌
Version 2.3 includes a brand new Provider, TeamsMsal2Provider, for authentication in Microsoft Teams applications. Built on top of msal-browser and the more secure Authorization Code Flow with PKCE, this new provider supports both single-sign on and interactive login in your Microsoft Teams tab applications
What’s the difference between the TeamsProvider and TeamsMsal2Provider?
The TeamsProvider, built on top of msal.js, uses the implicit grant flow and only supports authentication through interactive client-side login. The new TeamsMsal2Provider, built on top of msal-browser, implements the OAuth 2.0 Authorization code flow with PKCE, which is more secure. Additionally, the TeamsMsal2Provider now supports single sign-on in addition to interactive login.
Why should I migrate?
Authorization Code Flow is more secure for web applications than the implicit grant flow used in our original Teams Provider, and we recommend using the TeamsMsal2Provider going forward.
Additionally, with the new provider, you are able to leverage Single Sign-On in your Teams application, which means if a user consents to use your app, they do not have to consent again on another device as they are signed in automatically.
Please note, for SSO, you will need to implement a backend that enables exchanging the Microsoft Teams authentication token with a token that can be used to call Microsoft Graph via the on-behalf-of flow. Take a look at our Node SSO Sample for a reference implementation of the backend service, and for an end-to-end example of enabling Single Sign-On with the Microsoft Graph Toolkit in your Microsoft Teams apps.
Will you continue supporting the existing TeamsProvider?
Yes, as long as msal.js is supported, we will continue supporting the original Teams Provider. However, we do not plan to add any additional features and any new feature development will go in the new TeamsMsal2Provider.
How do I migrate or get started developing with the new provider?
Check out our Teams MSAL2 Provider documentation for migration instructions, and our step-by step Build a Microsoft Teams Tab (interactive login) or Build a Microsoft Teams SSO Tab guides to get started with developing an application.
File upload functionality in mgt-file-list
Thank you @aaclage for contributing this feature! 🙌
We’ve updated our File List component to support the uploading of files by users. Now, you can display a list of files and/or folders from One Drive or SharePoint and allow users to upload items from their device to that location with a single attribute.
Below is an example that shows a signed-in user uploading files to their root drive:
To try out this new feature, visit the documentation to learn how to use File List.
Improvements and Updates
- Add
role
value to presence in mgt-person #1257 - Add 'presentational' loading template when mgt-get component refreshes #1242
- Add loading document thumbnails in mgt-get #1222 (thanks @waldekmastykarz)
- Add loading progress ring in mgt-file-list #1221
- Add group type multi selection in mgt-people-picker #1186
- Add
selectGroupsById
support in mgt-people-picker #1174 (thanks @umaknow-william) - Allow
PublicClientApplication
to be passed directly into Msal2Provider #1181 (thanks @isaacfimbres1) - Update timeCached for cached users without photo when recheck after configured caching period #1247 (thanks @NathZ1)
- Update cursor to pointer when mgt-person-card is clickable #1282 (thanks @jonepo)
- Add support to new apisandbox solution #1258
New samples:
Bug fixes:
- Fix bug: insight file rendering from cache in mgt-file-list - #1251
- Fix bug: cleanup unused css in mgt-person-card - #1250
- Fix bug: templateContext not passed to templateRendered event - #1237
- Fix bug: calling functions with multiple args in tempalteContext - #1227 (thanks @waldekmastykarz)
- Fix bug: filter out null groups in mgt-people-picker - #1205
- Fix bug: pre-encode name/email for users that contain '#' sign - #1197
- Fix bug: updated dependencies in ProxyProvider sample - #1300
- Fix bug: mgt-agenda header display for all day events - #1291 (thanks @SharePointJR)
- Fix bug: default image for mgt-person-card standalone - #1288
- Fix bug: templateContext changes will trigger re-rendering of templates - #1279
- Fix bug: css custom properties not properly set when using
--input-border-*
- #1278 - Fix bug: overflow text on task titles - #1276 (thanks @iorivera)