Pnpcore Versions Save

The PnP Core SDK is a modern .NET SDK designed to work for Microsoft 365. It provides a unified object model for working with SharePoint Online and Teams which is agnostic to the underlying API's being called

1.12.0

2 months ago

Added

  • Add Groups property to ISharePointUser #1363 [jansenbe - Bert Jansen]
  • Added DeleteAll, DeleteByID, DeleteByLabel, RecycleByID, RecycleByLabel and RestoreByLabel methods for IFileVersionCollection #1375 [jansenbe - Bert Jansen]

Changed

  • Admin library: added support to specify the timezone when creating a site collection #1334 [kfircs - Kfir Chen]
  • Auth library: default access token retrieval log message to debug instead of information #1328 [jansenbe - Bert Jansen]
  • Viva Announcement Library resulted in two pages libaries breaking the page library detection logic #1343 [jansenbe - Bert Jansen]
  • Fix LookupValue handling for FromListDataAsStream in UserMulti field type #1348 [eduardpaul - Eduard Paul]
  • Fix adding Events (=calendar) list items when Events list was created at site root versus under /lists #1349 [jansenbe - Bert Jansen]
  • Added missing members to "IPnPContext" to improve testability #1351 [fzbm - Florian Zink]
  • Upgrade to version 6.35.0 of System.IdentityModel.Tokens.Jwt [jansenbe - Bert Jansen]
  • GetWssIdForTermAsync returns wrong WssId if used multiple times on the same PnPContext instance #1355 [jansenbe - Bert Jansen]
  • ViewType2 updating error #1360 [jansenbe - Bert Jansen]
  • Improved approach for getting the listitem folderpath #1353 [4ndri - Andri Capol]
  • Ensure the finishupload endpoint is always called #1387 [alexchx - Alex Chen]
  • Admin library: Add code to set sensitivity label to a group via updating associated site properties #1389 [wilecoyotegenius - Konrad K.]
  • Expose the BatchRequest.Id property and include it in the corresponding BatchResponse to enable more advanced batch handling scenarios #1374 [jansenbe - Bert Jansen]
  • Admin library: fixed issues with loading SharePoint Add-In and Azure ACS principal permissions when the payload exceeded 500 items [jansenbe - Bert Jansen]
  • GetUserEffectivePermissions not working with External accounts #1350 [jansenbe - Bert Jansen]
  • GetComments() only return maximum of 30 comments. It used to return all comments. #1361 [jansenbe - Bert Jansen]
  • Improved testability by removing type checking in QueryableExtensions.AsRequested #1376 [jansenbe - Bert Jansen]
  • IListItem like (ILikedByInformation) was not always loaded #1395 [jansenbe - Bert Jansen]
  • Performance: PnPContext initialization can be done with a single roundtrip to SharePoint if the valid site casing is used in combination with PnPContextOptions.SiteUriCasingIsCorrect #1383 [jansenbe - Bert Jansen]
  • BREAKING CHANGE: ITeamChannelTab.Id now is of type string instead of Guid #1407 [jansenbe - Bert Jansen]

1.11.0

5 months ago

Added

  • Support for using the ILongRunningOperation interface to track the progress of long running operations #1245 [JakeStanger - Jake Stanger]
  • Option to invoke external access provider asynchronously when using the ExternalAuthenticationProvider authentication provider #1269 [quails4Eva - David Petchey]
  • Support for .NET 8.0 [jansenbe - Bert Jansen]

Changed

  • Fixed Graph paging for US Government, Germany and China clouds + removed some hardcoded references to graph.microsoft.com [jansenbe - Bert Jansen]
  • Admin library: Group connected team sites use the Microsoft Graph api for both application and delegated permissions #1220 [danielpastoor - Daniel Pastoor]
  • Added Poland to the GeoLocation enum #1232 [jansenbe - Bert Jansen]
  • Fix issue to enumerate private/shared channel sites #1238 [valpvt]
  • Removed ExcludedBlockDownloadGroupIds properties from ISiteCollectionProperties as that prevented unlocking a site collection via the LockState property #1251 [jansenbe - Bert Jansen]
  • Upload of large files (chunked upload) also uses the addusingpath method, just like the regular upload #1256 [jansenbe - Bert Jansen]
  • Added IList.DefaultItemOpenInBrowser property #1248 [jansenbe - Bert Jansen]
  • Calling LoadAsync or EnsurePropertiesAsync on IFolder was broken #1236 [jansenbe - Bert Jansen]
  • Fixed the encoding of IPropertyValues (property bag) values when any of these chars was used in the property name: -./:<>|[] #1263 [jansenbe - Bert Jansen]
  • Currently only support getting SensitivityLabelId on ISite [jansenbe - Bert Jansen]
  • Admin library: Fixed issues with loading SharePoint Add-Ins [jansenbe - Bert Jansen]
  • Admin library: Extra parameters to configure the SharePoint Add-In and Azure ACS principal loading [jansenbe - Bert Jansen]
  • Changed IList.DraftVersionVisibility to use enum DraftVisibilityType instead of an int #1286 [jansenbe - Bert Jansen]
  • Fixing URL too long issue when downloading files #1290 [koenzomers - Koen Zomers]
  • Fixed regression coming from #1290 #1297 [jansenbe - Bert Jansen]
  • Admin library: switched to the new multi-geo aware site enumaration endpoint [jansenbe - Bert Jansen]
  • Fixed LoadListDataAsStream paging issue when item count was a multiple of the page size #1296 [jansenbe - Bert Jansen]
  • Made it easier to set a IField internal name [jansenbe - Bert Jansen]
  • Leave 'Teamify' loop when Team already existed #1319 [jansenbe - Bert Jansen]
  • Fixed 'hot reload' warning when debugging [jansenbe - Bert Jansen]
  • Fix setting site collection admins for groupified sites #1323 [mloitzl - Martin Loitzl]

1.10.0

10 months ago

Added

  • Support for adding, removing and re-ordering list view columns #1144 [jansenbe - Bert Jansen]
  • Support for replacing the site collection admins #1184 [mloitzl - Martin Loitzl]
  • Support to delete list item versions (IListItemVersion) [jansenbe - Bert Jansen]
  • Admin Library: Tenant hub site join method GetSharePointAdmin().ConnectToHubSiteAsync #1193 [jansenbe - Bert Jansen]

Changed

  • Recognize editor component (CK4/CK5) being used in pages and allow developer to act on that IPage.EditorType [jansenbe - Bert Jansen]
  • Retain extra page settings (isSpellCheckEnabled, globalRichTextStylingVersion, isEmailReady, rtePageSettings and htmlAttributes) [jansenbe - Bert Jansen]
  • Fix to enable empty text parts to be added to a page #1164 [cnesmark - Christian Nesmark]
  • Use new syntax for inserting inline images when the page is using CK5 [jansenbe - Bert Jansen]
  • Fixed issue where section collapsibility is not set correctly when provisioning a page with a collapsible section containing a webpart. #1167 [mmi-wp - Mikkel Bukholt Mikkelsen]
  • IconAlignment cannot be used to infer collapsibility of a page section #1168 [mmi-wp - Mikkel Bukholt Mikkelsen]
  • Vertical sections should not be collapsible #1169 [mmi-wp - Mikkel Bukholt Mikkelsen]
  • Added CreatedDateTime property to ITeamChannel [jansenbe - Bert Jansen]
  • Support DateTime and DateTimeOffset types in OData filters #1173 [jansenbe - Bert Jansen]
  • AddAvailableContentTypeFromHubAsync throws Exception, even on success #1175 [jansenbe - Bert Jansen]
  • Correctly handle ContentTypeHub when the original context was created for the root site collection [jansenbe - Bert Jansen]
  • Fixed FieldLink handling when ContentTypeHub was used [jansenbe - Bert Jansen]
  • Fixed AddTaxonomy field methods when ContentTypeHub was used [jansenbe - Bert Jansen]
  • Handle the CSOM limitation of not being able to set an empty RestrictedAccessControlGroups property on ISiteCollectionProperties.Update [jansenbe - Bert Jansen]
  • Localized names for a TermSet can now be added #1188 [jansenbe - Bert Jansen]
  • Using GetTermById on ITermStore now loads the additional ITerm properties needed to enable operations on the loaded term #1189 [jansenbe - Bert Jansen]
  • GetCommentsAsync throws InvalidClientQueryException #1191 [jansenbe - Bert Jansen]
  • Ensure CultureInfo.InvariantCulture is used when translating dates to string #1201 [jansenbe - Bert Jansen]
  • Admin Library: do not return already approved permission requests #1202 [mloitzl - Martin Loitzl]
  • Ensure TermStore.DefaultLanguage is loaded before using it [jansenbe - Bert Jansen]
  • Fixed: Incorrect url for getting IRoleAssignment by principal id #1207 [JakeStanger - Jake Stanger]
  • Fixed: AddAvailableContentTypeFromHubAsync does not work on lists that are located in subsites - more broadly the 'site id' value used in Graph queries was not considering sub sites in multiple locations #1210 [jansenbe - Bert Jansen]
  • Fixed: Calling UpdateOverwriteVersion or SystemUpdate methods on ListItemAllFields when that was loaded from a IFolder resulted in error: "Guid should contain 32 digits with 4 dashes" #1213 [jansenbe - Bert Jansen]
  • Fixed updating multiple propertybag values doesn't work #1218 [jansenbe - Bert Jansen]

1.9.0

1 year ago

Added

  • Support for custom cloud environments by setting Environment to Custom followed by specifying the needed Graph and Azure AD endpoints #1014 [jansenbe - Bert Jansen]
  • Implements support for the access request configuration #1040 [plamber - Patrick Lamber]
  • Option to specify the X509Certificate2 when using the OnBehalfOfAuthenticationProvider, similar to the support there is for this in the X509CertificateAuthenticationProvider #1047 [mloitzl - Martin Loitzl]
  • Option to get a file by unique id using the GetFileById methods on IWeb [jansenbe - Bert Jansen]
  • Option to get a file by link (any fully qualified link to a file, including sharing links) using the GetFileByLink methods on IWeb #1054 [jansenbe - Bert Jansen]
  • Configure whether the web templates dialog shows up or not via the WebTemplatesGalleryFirstRunEnabled property on IWeb #1057 [jansenbe - Bert Jansen]
  • Added EnableAudienceTargeting methods on IList [jansenbe - Bert Jansen]
  • Added support for adding, updating and removing audiences on navigation nodes #1065 [jansenbe - Bert Jansen]
  • Admin library: added 43 new properties to ITenantProperties [jansenbe - Bert Jansen]
  • Admin library: added 15 new properties to ISiteCollectionProperties [jansenbe - Bert Jansen]
  • Bulk user validation method ValidateUsersAsync and ValidateAndEnsureUsersAsync on IWeb [jansenbe - Bert Jansen]
  • When using the GetSiteCollectionsWithDetailsAsync method you now can choose to also return the site collections linked to private and shared Teams channels #1076 [jansenbe - Bert Jansen]
  • Fix URL encoding for use in SPO REST ...Path methods (e.g. getFolderByServerRelativePath) #1077 [jansenbe - Bert Jansen]
  • Added Rename methods on IFolder to make it easier to rename a folder #1080 [jansenbe - Bert Jansen]
  • Support for reading and cloning News Digest pages #1086 [jansenbe - Bert Jansen]
  • Add capabilities to grant or revoke permissions to existing sharing link #1094 [MathijsVerbeeck - Mathijs Verbeeck]
  • Support for listing, approving and denying api access requests after installing an app #1100 [mloitzl - Martin Loitzl]
  • Added Rename methods on IFile to make it easier to rename a file #1109 [jansenbe - Bert Jansen]
  • Added feature to enable or disable the SharePoint service principal #1117 [mloitzl - Martin Loitzl]
  • Method to ensure the 'Everyone except external users' user for any site language #1127 [plamber - Patrick Lamber]
  • Added support for listing, adding and revoking permission grants for a SharePoint service principal #1132 [mloitzl - Martin Loitzl]
  • Admin library: added support for listing Azure ACS principals and SharePoint AddIns [jansenbe - Bert Jansen]
  • Support for moving a ListItem to a sub folder #1146 [mloitzl - Martin Loitzl]

Changed

  • Lookup, Url and User fields were not loaded for list item versions #1031 [jansenbe - Bert Jansen]
  • Fix issue when loading freshly added page comments without reloading the actual page [jansenbe - Bert Jansen]
  • Fix modern team site creation when no valid description was passed in #1037 [LeHailender - Jens Haile]
  • Fix for adding site collection term group #1041 [jansenbe - Bert Jansen]
  • The JSON controldata sectionindex value of page could not be converted to System.Int32 : Handle Pnp Provisioning template extraction failure from Project Management site template #1058 [stokuri - Suman Tokori]
  • Improve code consistency for the eventhub model [jansenbe - Bert Jansen]
  • Added DefaultViewUrl property for IList [jansenbe - Bert Jansen]
  • Added more values for ListTemplateType [jansenbe - Bert Jansen]
  • Added UserCustomActions to IList [jansenbe - Bert Jansen]
  • Fixed enum order for ListExperience [jansenbe - Bert Jansen]
  • Extended the IPnPContext interface to contain all the public method and properties to better support mocking in unit tests #1083 [jansenbe - Bert Jansen]
  • Fix SiteCollectionManager.GetSiteCollectionWithDetailsAsync returning null when getting root site collection #1089 [jansenbe - Bert Jansen]
  • Removed BlockDownloadFileTypeIds and ExcludedBlockDownloadGroupIds properties from Tenant properties as they could not be saved preventing other property updates #1087 [jansenbe - Bert Jansen]
  • Added the RetainEditorAndModifiedOnMove property to the MoveCopyOptions and optimized file copy/move operations to use the cross site API as much as possible #989 #1091 [jansenbe - Bert Jansen]
  • Dropped .NET 5 support as it's not supported anymore [jansenbe - Bert Jansen]
  • Fix for IFile/IListItem - CheckIfUserHasPermissionsAsync Throws ->System.NullReferenceException: #1097 [jansenbe - Bert Jansen]
  • Improved model for PnPContext extensions allowing them to be used by mocking frameworks in unit tests #1083 [plamber - Patrick Lamber]
  • Chars ' and . are allowed in alias and urls [jansenbe - Bert Jansen]
  • Add possibility to get the IServicePrincipal via IAppManager #1116 [mloitzl - Martin Loitzl]
  • Don't set BaseAddress of MicrosoftGraphClient when there's no change #1114 [jansenbe - Bert Jansen]
  • Option to create private/shared Teams channels #1126 [JakeStanger - Jake Stanger]
  • Bump Nuget package version dependencies to align with PnP PS needs [jansenbe - Bert Jansen]

1.8.0

1 year ago

Added

  • Added support for using RefinementFilters via the IWeb.Search methods #924 [lroos - Llewellyn Roos]
  • Adds Getusereffectivepermissions for IWeb, IList and IListItem #926 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added license information in the generated Nuget packages #945 [clurdish - Landon Petzoldt]
  • Author property for IWeb #947 [jansenbe - Bert Jansen]
  • IPnPContext interface on PnPContext to support mocking for use in testing #948 [jansenbe - Bert Jansen]
  • Support for getting, setting and clearing of (folder based) column defaults #949 [jansenbe - Bert Jansen]
  • Requesting re-indexing of a web or list #950 [jansenbe - Bert Jansen]
  • RateLimit header processing capability, turned off by default [jansenbe - Bert Jansen]
  • Added DeleteRecycledSiteCollection methods to delete site collections from the recycle bin [jansenbe - Bert Jansen]
  • Admin library: ability to specify ResourceBehaviorOptions when creating a Group using application permissions #978 [koenzomers - Koen Zomers]
  • Admin library: Ability to specify members on team site creation time #981 [LeHailender - Jens Haile]
  • Added add and remove functionality for indexed web properties #1006 [LeHailender - Jens Haile]
  • Added .NET 7 binaries [jansenbe - Bert Jansen]
  • Moved to C# 10 [jansenbe - Bert Jansen]
  • Support for configuring field visibility in display, edit and new forms #999 [jansenbe - Bert Jansen]
  • Add ITermSet.GetTermsByCustomProperty method to retrieve a list of terms with a certain custom property key and value #1021 [mloitzl - Martin Loitzl]

Changed

  • Fix: Wrong if condition combination & instead of && in BaseQueryableDataModelCollection method GetAsyncEnumerator #911 [jansenbe - Bert Jansen]
  • Fix: Using multiple owners when creating modern team site using delegated permissions failed [jansenbe - Bert Jansen]
  • Simplified model for working url, user, lookup, and taxonomy fields #915 [jansenbe - Bert Jansen]
  • Add KANBAN to the ViewType2 enum #930 [martinlingstuyl - Martin Lingstuyl]
  • Add MODERNCALENDAR to the ViewType2 enum #939 [martinlingstuyl - Martin Lingstuyl]
  • Fix search sort direction with new POST approach #937 [lroos - Llewellyn Roos]
  • Ensure the Name property is loaded #955 [jansenbe - Bert Jansen]
  • VerifyProperties fails to detect other model types loaded via QueryProperties as dirty #961 [jansenbe - Bert Jansen]
  • Getting pages with ".aspx" in file name fails #974 [jansenbe - Bert Jansen]
  • Fix for failure at getting list items with a column entitled "Comments" #979 [jansenbe - Bert Jansen]
  • Adding missing property IsVisible property to AdaptiveCardAction #986 [koenzomers - Koen Zomers]
  • GetAvailableThemesAsync throws exception when 'isInverted' or 'name' values missing from JSON response #990 [jansenbe - Bert Jansen]
  • Lists.GetByTitle should be case insensitive #991 [jansenbe - Bert Jansen]
  • Making RichTextEditorInstanceId setable to enable consuming libraries to set inline images #997 [heinrich-ulbricht - Heinrich Ulbricht]
  • Escape characters in inline image Caption, AltText and Link properties to prevent malformed JSON #995 [jansenbe - Bert Jansen]
  • Added support for also loading the additional fields returned by a lookup field when using LoadListDataAsStreamAsync [jansenbe - Bert Jansen]
  • Drop redundant Microsoft.Extensions.Logging.Abstractions reference [jansenbe - Bert Jansen]
  • Moved to a language neutral approach for translating SharePoint timezones to .NET TimeZoneInfo instances and provided a new public GetTimeZoneInfo method on ITimeZone [jansenbe - Bert Jansen]

1.7.0

1 year ago

Added

  • Support for configuring top and quicklaunch navigation #805 and #813 [MathijsVerbeeck - Mathijs Verbeeck]
  • Extended the team channel tabs to following tabs: Word (Configurable), Ppt (Configurable), Excel (Configurable), Pdf (Configurable), Stream, Planner, Forms, OneNote, PowerBi, SharePoint Page or List #808 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added support for asynchronous file & listitem copy/move functionality on the ISite interface using the SPO CopyJobs API #814 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added support for vanity URLs in the admin library [jansenbe - Bert Jansen]
  • Teams Chat support #657 [MathijsVerbeeck - Mathijs Verbeeck]
  • Support for finding files in lists and folders using enumeration and wild card pattern matching #818 [dennisvanniel - Dennis van Niel]
  • Added capability to retrieve webtemplates (all) or by name #835 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added sharing capabilities (enumerate + add/delete) for files #834 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added support for Event Receivers (enumerate, add or delete) #835 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added sharing capabilities (enumerate + add/delete) for folders #841 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added possibility to mention user, application, team tag and conversation in a chat message #840 + docs #854 [MathijsVerbeeck - Mathijs Verbeeck]
  • Allow to enumerate / add / update / delete team events #848 + docs #854 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added functionalities to list replies of a teams chat message and add new replies #853 + docs #854 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added Thumbnail retrieval options for an IFile [jansenbe - Bert Jansen]
  • Admin library: support for creating group connected sites using application permissions (= creation of groups via Graph) #859 [danielpastoor - Daniel Pastoor]
  • Admin library: Checking if a given site exists via it's site URL #859 [danielpastoor - Daniel Pastoor]
  • Added support for creating and configuring Document Sets #866 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added support for Event Receivers (enumerate, add or delete) on ISite #871 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added link unfurling: throw any SharePoint (sharing) link in and you will get back detailed information about the SharePoint resource, including thumbnails #847 [jansenbe - Bert Jansen]
  • Added sharing capabilities (add) for list items #879 [jansenbe - Bert Jansen]
  • Added support for adding, publishing and unpublishing content types and document sets from the tenant's content type hub #881 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added support for consuming content types from the content type hub [jansenbe - Bert Jansen]
  • Support for getting site (ISite) and file (IFile) analytics [jansenbe - Bert Jansen]
  • Option to convert an IFile into another format (PDF, JPG, Html or GLB) and process the returned stream (e.g. download/upload as file) #849 [MathijsVerbeeck - Mathijs Verbeeck]
  • Get preview from IFile for embedding #885 [MathijsVerbeeck - Mathijs Verbeeck]
  • Support for querying the IWeb recycle bin #894 [jansenbe - Bert Jansen]
  • Support for exporting and importing the search configuration at web, site and tenant level #887 [jansenbe - Bert Jansen]
  • Admin library: create/remove/ensure a site collection app catalog #898 [jansenbe - Bert Jansen]
  • Support for updating site fields and pushing down the changes to the lists using the field #889 [jansenbe - Bert Jansen]
  • Taxonomy: added GetTermSetById and GetSetById methods on ITermStore to enable loading a termset or term without knowing the termset group #892 [jansenbe - Bert Jansen]
  • Taxonomy: added GetWssIdForTerm methods on IWeb #892 [jansenbe - Bert Jansen]
  • Added FilesFolderWebUrl graph beta property for ITeamChannel #902 [jansenbe - Bert Jansen]
  • Added SendMail methods for IGraphUser and IMe #905 [MathijsVerbeeck - Mathijs Verbeeck]
  • Added SetUserAsOwner to ISharePointGroup #907 [MathijsVerbeeck - Mathijs Verbeeck]

Changed

  • Support option to load Folder from ListItem #810 [FelgeIO - Reinhard Felgenhauer]
  • Page transformation testing: reliabilty improvements #807 [pkbullock - Paul Bullock]
  • Fix for invalid datatime value being returned by CSOM tenant information call #803 [jansenbe - Bert Jansen]
  • Admin library: also try to restore the associated Microsoft 365 group when a group connected site is restored #801 [jansenbe - Bert Jansen]
  • Fixed wrong ConfigureAwait usage. #824 [s-KaiNet - Sergei Sergeev]
  • Allow custom Accept header with ApiRequest #829 [koenzomers - Koen Zomers]
  • Fix to enable deleting an attachment with special characters in the file name #830 [jansenbe - Bert Jansen]
  • Added GetFilesFolder methods on ITeamChannel to provide an easy access point to the SharePoint File capabilities starting from a Team channel #843 [jansenbe - Bert Jansen]
  • Changed GraphGroup constructor from Internal to Public #845 [danielpastoor - Daniel Pastoor]
  • Improved page HTML rendering to avoid webpart ids showing up in search #846 [jansenbe - Bert Jansen]
  • Fixed issue in term loading now using $expand for performance reasons + enabled loading of child of child terms #850 [jansenbe - Bert Jansen]
  • Sometimes calls added via Batch methods were executed interactively #858 [jansenbe - Bert Jansen]
  • When not throwing errors on batch request failures the batch failure collection was duplicated whenever the batch was smaller then the max batch size #858 [jansenbe - Bert Jansen]
  • List item paging got stuck in an infinite loop when the list contained the same amount items as the requested page size #872 [jansenbe - Bert Jansen]
  • Made additional IView properties settable #874 [jansenbe - Bert Jansen]
  • Added support to set the navigation orientation and menu style for non communication sites #875 [jansenbe - Bert Jansen]
  • More resilient parsing of CSOM GUID's #877 [jansenbe - Bert Jansen]
  • Ensure labels can be retrieved using application permissions #882 [jansenbe - Bert Jansen]
  • Don't retry when a SocketException occurs due to an unknown host [jansenbe - Bert Jansen]
  • Removed beta label from ITeamChannel property IsFavoriteByDefault and updated beta test to use the FilesFolderWebUrl property [jansenbe - Bert Jansen]
  • Added CreateDriveRecipient on sharing options classes to allow the creation of an IDriveRecipient #909 [jansenbe - Bert Jansen]

1.6.0

2 years ago

Added

  • Added HasCommunicationSiteFeatures methods on IWeb [jansenbe - Bert Jansen]
  • Web branding via IBrandingManager with support for getting and setting themes and site chrome (header/footer/navigation) [jansenbe - Bert Jansen]
  • Added admin library support for enumerating all webs in a given site collection [jansenbe - Bert Jansen]
  • EventHub for system notifications - retryevent is the first event being handled, allowing to understand when code get's throttled [jansenbe - Bert Jansen]
  • Properties on PnPContext to enable adding context. These properties are passed along in case of an EventHub notification [jansenbe - Bert Jansen]
  • Added Created, LastItemDeletedDate, LastItemModifiedDate and LastItemUserModifiedDate properties on IList [jansenbe - Bert Jansen]
  • Added GetFlowInstances methods on IList to enumerate the Power Automate Flows connected to the list [jansenbe - Bert Jansen]
  • Added Search methods on IWeb offering a search experience #210 [jansenbe - Bert Jansen]
  • Added support for setting default term(s) when creating single/multi value taxonomy fields #776 [jansenbe - Bert Jansen]
  • Added support for setting a termset as open when creating a taxonomy field #778 [jansenbe - Bert Jansen]
  • Added support for changing the content type order of list (influences the order in the "New" menu) #775 [jansenbe - Bert Jansen]
  • Improved options for adding/removing users from a SharePoint group + additional methods to directly grant a role definitions to user #773 [jansenbe - Bert Jansen]
  • Added support for reading the Viva Connections dashboard and adding, updating and removing ACEs from the dashboard #664 [mgwojciech - Marcin Wojciechowski]
  • Added support checking if a site is defined as Home Site (needed for Viva Connections support) #664 [mgwojciech - Marcin Wojciechowski]
  • Added option to add a website tab to a Teams channel #791 [MathijsVerbeeck - Mathijs Verbeeck]

Changed

  • Check for browser-wasm when adding Microsoft GraphClient #700 [avuorine - Andreas Vuorinen]
  • GetSiteCollectionProperties call (uses CSOM) returns a 0 value for month (e.g. Date(2022,0,3,13,32,4,77)). Added temporary fix for #703 [jansenbe - Bert Jansen]
  • If an SPO REST query returns an "odata.nextLink" value and that one contains a skiptoken parameter then use that instead of building a next link. Fixes #701 [jansenbe - Bert Jansen]
  • Blazor WASM problem on .NET 5+ with MD5 hashing: PlatformNotSupportedException #705 [jansenbe - Bert Jansen]
  • Updating "empty" fields in exising list item did not work as expected #707 [jansenbe - Bert Jansen]
  • Normalize site alias names before using them [jansenbe - Bert Jansen]
  • Introduce BoolJsonConverter in order to handle both appearances of addedFromPersistedData #728 [czullu - Christian Zuellig]
  • ExecuteAsync(throwOnError:false) is ignored during listitem handling code that processed the list item response #741 [jansenbe - Bert Jansen]
  • GetPagesAsync fails with pageHeader translateX or translateY as nulls - additional checks added #740 [jansenbe - Bert Jansen]
  • Blazor WASM cannot download files using the download.aspx page due to CORS limitations #736 [jansenbe - Bert Jansen]
  • When using LoadListDataAsStreamAsync to load list items number columns without a value set where returned as value 0 whereas they should have been returned as null #751 [jansenbe - Bert Jansen]
  • The ISiteCollectionManager.GetSiteCollections methods now allow to filter OneDrive for Business site collections [jansenbe - Bert Jansen]
  • When creating a PnPContext via the IPnPContextFactory you can now specify a CancellationToken. Using this token pending request can be cancelled (e.g. breaking out of a throttling retry loop) [jansenbe - Bert Jansen]
  • Only update the FieldLink.DisplayName value when it is specified #792 [jansenbe - Bert Jansen]
  • Improved IFolder.EnsureFolderAsync implementation that works without the need to load all folders on a level, this way the method works on libraries with a large amount of folders #793 [Ironbell]
  • Added suppport for using the PNP_DISABLETELEMETRY environment variable to turn off PnP Core SDK telemetry (next to the existing configuration option) [jansenbe - Bert Jansen]
  • Page description that is automatically set is flagged as default description, subsequent user page edits will then override this description. This aligns with the OOB behavior and fixes #790 and #765 [jansenbe - Bert Jansen]
  • Improved support for inline images: configure with link, caption and alternative text + updated internal rendering #745 [jansenbe - Bert Jansen]
  • Model.GetChangesAsync() should not clean loaded list collections #760 [jansenbe - Bert Jansen]

1.5.0

2 years ago

Added

  • Added script for offline code coverage calculation + updated docs #606 [s-KaiNet - Sergei Sergeev]
  • Added ALM support to PnP Core SDK. Awesome job from Sergei! #601 [s-KaiNet - Sergei Sergeev]
  • Added IRequestModule pipeline concept enabling to intercept pre/post http requests. First use case is the WithHeaders() option [jansenbe - Bert Jansen]
  • Added support for SharePoint Syntex off-peak hours content classification and extraction for lists and folders [jansenbe - Bert Jansen]
  • Added support for breaking permission inheritance and configuring custom security for a web [jansenbe - Bert Jansen]
  • Support for using PnP Core SDK with other cloud environments such as the US government clouds (GCC, GCC High and DoD), Germany and China clouds [jansenbe - Bert Jansen]
  • Added support to for using new Guid() in PnP Core SDK LINQ queries #633 [s-KaiNet - Sergei Sergeev]
  • Added support for list web hooks #630 [s-KaiNet - Sergei Sergeev]
  • Added EnsureSiteAssetsLibrary method on IList [jansenbe - Bert Jansen]
  • Added support for handling images used inline of a text part on a page [jansenbe - Bert Jansen]
  • Added support for .NET 6 ~ PnP Core SDK now will ship with as .NET Standard 2.0, .NET 5 and .NET 6 package [jansenbe - Bert Jansen]
  • Added taxonomy field related properties. #653 [s-KaiNet - Sergei Sergeev]
  • Added support for handling throttling and network resilience for Azure AD requests made via MSAL #656 [patrikhellgren - Patrik Hellgren]
  • Added documentation and inline comments to help SDK users understand IQueryable and when to use .AsRequested() #660 [s-KaiNet - Sergei Sergeev]
  • Added documentation to help CSOM developers switch to PnP Core SDK #669 [s-KaiNet - Sergei Sergeev]
  • Added user profiles and social following features #680 [s-KaiNet - Sergei Sergeev]

Changed

  • Remove non linq get query as it caused issues when loading additional properties on an added file #570 [jansenbe - Bert Jansen]
  • Added HasUniqueRoleAssignments property on IWeb and IListItem #575 [jansenbe - Bert Jansen]
  • Added ItemCount property on IList [jansenbe - Bert Jansen]
  • Changed IFileVersion.Size to be a long and map to "Length" SharePoint property instead of the "Size" property, needed for large file versions #581 [jansenbe - Bert Jansen]
  • Fixed updating of role definitions [jansenbe - Bert Jansen]
  • Implement SharePoint Group description property restrictions + more SharePoint group tests [jansenbe - Bert Jansen]
  • Populate the IFile linked to an IListItem when getting list items via LoadListDataAsStream [jansenbe - Bert Jansen]
  • Added the IsCatalog, IsDefaultDocumentLibrary, IsPrivate, IsSiteAssetsLibrary, IsSystemList properties on IList [jansenbe - Bert Jansen]
  • Rest based paging did not always continue to the next page [jansenbe - Bert Jansen]
  • Improved offline test file generation when cloning a PnPContext #591 [jansenbe - Bert Jansen]
  • Added IsSyntexEnabled methods on IWeb [jansenbe - Bert Jansen]
  • Fixed ListItem datetime handling - time was always send to SharePoint in AM #593 [bilenth - Bilen]
  • Added non async method for working with hub sites in ISite [jansenbe - Bert Jansen]
  • Enabled support for loading "system" fields when doing a CAML query #607 [jansenbe - Bert Jansen]
  • Added support for cloning a PnPContext for a group id [jansenbe - Bert Jansen]
  • PERF: where possible made all internal classes sealed. See https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/#peanut-butter for details on the why [jansenbe - Bert Jansen]
  • Improved SPO REST error handling, now the relevant batch request headers (like the request correlation id) are included in the error [jansenbe - Bert Jansen]
  • Fix: prevent duplicate header additions when processing returned headers in REST batch [jansenbe - Bert Jansen]
  • Throw more descriptive exceptions when a PnPContext is created using the IPnPContextFactory while authentication is not properly configured #623 [jansenbe - Bert Jansen]
  • Fix: Mixing multiple top level QueryProperties statements when one of them has child QueryProperties generated a wrong query #625 [jansenbe - Bert Jansen]
  • Added IQueryable where it still was missing + throw exception when not LINQ query is not possible #627 [jansenbe - Bert Jansen]
  • Fix: multi value lookup only persisted first lookup value #628 [jansenbe - Bert Jansen]
  • Fix: LINQ queries on the sub webs (webs) now work ~ improved logic that chooses between REST and Graph #631 [jansenbe - Bert Jansen]
  • Http clients and retry handlers never got their logger assigned, fixed now so that for example throttling will show in logs [jansenbe - Bert Jansen]
  • Increased reliability via retry on SocketException in SendAsync #650 [patrikhellgren - Patrik Hellgren]
  • Non collapsible sections were wrongly loaded as collapsible sections in collapsed state [jansenbe - Bert Jansen]
  • Page sections where not removeable #666 [jansenbe - Bert Jansen]
  • List item documentation update #668 [koenzomers - Koen Zomers]
  • Added IsSyntexEnabledForCurrentUser methods on IWeb [jansenbe - Bert Jansen]
  • Improved LINQ query syntax #675 [s-KaiNet - Sergei Sergeev]
  • SharePoint Syntex Content Center sites pages can use a full width section [jansenbe - Bert Jansen]
  • Added LoadListDataAsStream batch methods [jansenbe - Bert Jansen]
  • Documentation update showing improved PnP PowerShell syntax for creating Azure AD applications #681 [JackStrap - Jack Strapopoulos]
  • PERF: use network compression, batches with just one request are now handled as "regular" request enabling compression to work #654 [jansenbe - Bert Jansen]
  • PERF: switched to using odata=nometadata to pull less data across the wire for SharePoint REST requests #655 [jansenbe - Bert Jansen]
  • Fix: adding, updating and removing FieldLinks from site/list content types now is supported [jansenbe - Bert Jansen]

1.4.0

2 years ago

Added

  • Added IWeb.GetFileByServerRelativeUrlOrDefault methods that can return null for non existing files + dropped the IFile.Exists property as it never really worked [jansenbe - Bert Jansen]
  • Added support for reading, configuring and saving of collapsible sections on pages #539 [jansenbe - Bert Jansen]
  • Preview of Admin library providing Microsoft 365 admin functionality to PnP Core SDK users [jansenbe - Bert Jansen]
  • Support for running unit tests using Application permissions (compared to default Delegated) [jansenbe - Bert Jansen]
  • PnP Transformation Framework to support transforming external content to SharePoint Online modern pages [paolopia - Paolo Pialorsi]

Changed

  • Improved parsing of JSON ListItem content, preventing unwanted string into DateTime parsing #519 [jansenbe - Bert Jansen]
  • Ensure list item fields are not marked as changed after the initial load of the list item #508 [jansenbe - Bert Jansen]
  • Don't replace _ with x005f and space with x0020 when working with list item fields, the StaticName is to be used for instead [jansenbe - Bert Jansen]
  • Fix for "Requested value 'systemEventMessage' was not found." for Chat Messages #536 [jansenbe - Bert Jansen]
  • Default retry mechanism now uses retry-after header for REST, CSOM and Graph requests, aligned with the settings in PnP Framework [jansenbe - Bert Jansen]
  • Switched to using V1 Taxonomy API now that it's out of beta [jansenbe - Bert Jansen]
  • Implemented generic handling for non-English timezone strings, initial fix for #543 [jansenbe - Bert Jansen]
  • PnP Core SDK internals are not exposed anymore to libraries outside of the PnP Core SDK solution [jansenbe - Bert Jansen]
  • PnP Core SDK assemblies are now strong named #542 [jansenbe - Bert Jansen]
  • PERF: ImplementsInterface -> massive performance improvement! Running all offline PnP.Core tests is twice as fast... [jansenbe - Bert Jansen]
  • PERF: AsExpando removed LINQ dependencies to speed up and lower memory requirments [jansenbe - Bert Jansen]
  • PERF: Improved parsing of REST batch response for .NET 5: 50% less memory allocations + 50% to 90% performance gain (depending on the size) [jansenbe - Bert Jansen]
  • PERF: Reuse JsonSerializerOptions: overall offline test run is 10% faster [jansenbe - Bert Jansen]
  • PERF: Standardized on JsonSerializer.Deserialize, replaced JsonDocument.Parse where needed [jansenbe - Bert Jansen]
  • PERF: Get the response string, using HttpCompletionOption.ResponseHeadersRead and ReadAsStreamAsync to lower the memory pressure when processing larger responses + performance is better [jansenbe - Bert Jansen]
  • PERF: Cache LINQ based field lookups in ListDataAsStreamHandler, 35% faster when loading 2500 list items with all fields [jansenbe - Bert Jansen]
  • Added All property that gets translated to a * in the $select when PnP Framework resorts to using a SharePoint REST query [jansenbe - Bert Jansen]
  • Added _CommentCount to BuiltInFields #554 [avuorine]
  • For raw API requests the url encoding was not always done correct [jansenbe - Bert Jansen]

1.3.0

2 years ago

Added

  • Support for working with IListItem attachments [jansenbe - Bert Jansen]
  • Page scheduling support: enable a pages library for page publish scheduling and schedule the publishing of a page [jansenbe - Bert Jansen]
  • IsSubSite methods on IWeb [jansenbe - Bert Jansen]
  • Support for converting the site's datetime to UTC and vice versa [jansenbe - Bert Jansen]
  • Using @mentioning in page/listitem comments and replies [jansenbe - Bert Jansen]
  • Support for downloading versions of a file #483 [DaleyKD - Kyle Daley]
  • Support for ListItem versions #481 [DaleyKD - Kyle Daley]
  • Support for liking/unliking pages + adding/deleting comments and comment replies + like/unlike these comments on pages [jansenbe - Bert Jansen]
  • Support for adding/deleting comments and comment replies + like/unlike these comments on list items [jansenbe - Bert Jansen]

Changed

  • Reliabilty update when parsing taxonomy field json [jansenbe - Bert Jansen]
  • Throw exception when using a REST based list item add/update while only the user id is specified [jansenbe - Bert Jansen]
  • "Special" field value types (User, Lookup, Url, Taxonomy) were wrongly marked as changed on data load causing blanking out data with item updates [jansenbe - Bert Jansen]
  • Fixed the SharePoint Syntex ClassifyAndExtract functionality to skip folders and work well with large lists [jansenbe - Bert Jansen]
  • Fixed issue when using AddValidateUpdateItemUsingPath (used for IlistItem adds) is returning a field level add error - now an exception is thrown [jansenbe - Bert Jansen]
  • Fixed memory leaks for use cases that resulted in repeated creation of the Azure AppInsights TelemetryClient [jansenbe - Bert Jansen]
  • Fixed bug that resulted in an unneeded query due to paging #486 [PaoloPia - Paolo Pialorsi]