Skip to content

Commit df20375

Browse files
committed
Merge branch 'master' into live
2 parents 781b40c + 0bc3bbe commit df20375

File tree

36 files changed

+2432
-4240
lines changed

36 files changed

+2432
-4240
lines changed

docs/apis/migration-api-overview.md

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
---
22
title: "SharePoint Online Import Migration API"
3-
ms.date: 10/09/2020
3+
ms.prod: sharepoint
4+
ms.date: 01/06/2021
45
ms.author: jhendr
56
author: JoanneHendrickson
67
manager: serdars
78
search.appverid: MET150
8-
description: "This document is to give more in depth information about how to use the SPO Migration API."
9+
description: "This article provides in depth information on how to use the SPO Migration API."
910
localization_priority: Priority
1011
---
1112
# SharePoint Import Migration API (CreationMigrationJob)
1213

1314
## API Documention
1415

15-
The following API description is based upon use of the SharePoint Client Side Object Model (CSOM). We do recommend using NuGet packages when you reference CSOM in your solution. You can find latest version of the SharePoint Online CSOM package from the NuGet library using id of `Microsoft.SharePointOnline.CSOM`.
16+
The following API description is based upon use of the SharePoint Client Side Object Model (CSOM). We do recommend using NuGet packages when you reference CSOM in your solution.
1617

17-
> [!NOTE]
18-
> You can find latest version of the SharePoint Online Client Side Object Model from [NuGet gallery](https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/).
18+
You can find latest version of the SharePoint Online Client Side Object Model (CSOM) package from the [NuGet gallery](https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/). Use the ID `Microsoft.SharePointOnline.CSOM`.
19+
20+
>[!Important]
21+
> **Pending change:** Files larger than 15 GB must now create the required checksum using [QuickXorHash](https://docs.microsoft.com/onedrive/developer/code-snippets/quickxorhash?view=odsp-graph-online). We have provided an example [here](#what-is-stored-in-those-azure-blob-containers).
22+
>
23+
>The previous method of MD5Hash is still required for files smaller than 2 GB; however this requirement will be removed at some point in the future.
1924
20-
> [!NOTE]
21-
> The **SharePoint Migration Tool** is not available for users of Office 365 operated by 21Vianet in China. It is also not available for users of Office 365 with the German cloud using the data trustee, *German Telekom*. However, it is supported for users in Germany whose data ___location is not in the German data center.
2225

2326
## Methods
2427

@@ -84,6 +87,7 @@ The valid URL including SAS token for accessing the user provided Azure Queue us
8487
```
8588
(SharedAccessQueuePermissions.Add | SharedAccessQueuePermissions.Read | SharedAccessQueuePermissions.Update)
8689
```
90+
8791
Once accepted, the job ID will be written to the notification queue if it was provided and access is valid. The notification queue can be used for multiple migration jobs at the same time, as each job will identify itself in values sent back to the notification queue.
8892

8993
The following are examples of all event types logged into the Azure reporting queue:
@@ -384,11 +388,13 @@ Several log types can be included such as the full import log, along with warnin
384388

385389
## Changes for those using the "Ship Disk" option
386390

387-
To use the Migration API, you must have a temporary storage container in Azure. When uploading files into the temporary storage, an MD5 is required as a property on every file. However, when shipping the data on hard drives this MD5 property doesn’t get assigned automatically. As a work around, we have adapted the Migration API to allow the MD5 to be passed for every file as part of the manifest. This also applies for IV values when encrypting the data.
391+
To use the Migration API, you must have a temporary storage container in Azure. When uploading files into the temporary storage, a checksum is required as a property on every file. For files larger than 15GB, this is done using QuickXorHash (see example below). For files 2 GB or smaller, MD5 is required as a property on every file.
392+
393+
However, when shipping the data on hard drives this property doesn’t get assigned automatically. As a work around, we have adapted the Migration API to allow the checksum to be passed for every file as part of the manifest. This also applies for IV values when encrypting the data.
388394

389395
Since the MD5 is generated at the source instead of at the upload time in Azure, Microsoft can confirm the integrity of the file directly against the source MD5.
390396

391-
### What is stored in those Azure Blob Containers?
397+
## What is stored in those Azure Blob Containers?
392398

393399
The Migration API requires the Azure Container for content passing and also for log and queue reporting. It can be split down as a summary as follows:<br>
394400

@@ -398,15 +404,40 @@ The Migration API requires the Azure Container for content passing and also for
398404

399405
There are two new optional parameters in manifest.xml:
400406

407+
- QuickXorHash
401408
- MD5Hash
402409
- InitializationVector
403410

404-
#### Preparing the package
411+
### Preparing the package
405412
The method for calling the migration job doesn’t change; only the package generation needs to be changed.
406413

407-
In the Manifest container one file is named Manifest.xml. There are 2 optional attributes added to the file node: *MD5Hash* and *InitializationVector*. <br>
414+
In the Manifest container one file is named Manifest.xml. There are 2 optional attributes added to the file node: *QuickXorHash*,*MD5Hash* and *InitializationVector*. <br>
415+
416+
**Example for files over 15 GB:**
408417

409-
Example:
418+
```xml
419+
<?xml version="1.0" encoding="utf-8"?>
420+
<SPObjects xmlns="urn:deployment-manifest-schema">
421+
<SPObject Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ObjectType="SPFolder" ParentId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents">
422+
<Folder Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Url="Shared Documents" Name="Shared Documents" ParentFolderId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" ContainingDocumentLibrary="a69654d6-eb09-4638-aa6b-a7e8ff86f555" TimeCreated="2021-01-06T18:50:15" TimeLastModified="2021-01-06T18:50:15" SortBehavior="1" />
423+
</SPObject>
424+
<SPObject Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ObjectType="SPDocumentLibrary" ParentId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents">
425+
<DocumentLibrary Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" BaseTemplate="DocumentLibrary" RootFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" RootFolderUrl="/Shared Documents" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Title="Documents" HasUniqueRoleAssignments="true">
426+
<ContentTypes />
427+
</DocumentLibrary>
428+
</SPObject>
429+
<SPObject Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ObjectType="SPFile" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt">
430+
<File Url="Shared Documents/MyFile.txt" Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Name="MyFile.txt" ListItemIntId="1" ListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" TimeCreated="2021-01-06T18:43:38" TimeLastModified="2018-06-07T17:54:28" Version="1.0" FileValue="MyFile.txt" FileSize="17662712" Author="1" ModifiedBy="1" MD5Hash="qVBFIb8MJLzT5INrE4XcDQ==" Checksum="3k59aOUae2xygD5B/jtxY4x0Xko=" />
431+
</SPObject>
432+
<SPObject Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ObjectType="SPListItem" ParentId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt">
433+
<ListItem FileUrl="Shared Documents/MyFile.txt" DocType="File" ParentFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Order="100" Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" Name="MyFile.txt" DirName="/Shared Documents" IntId="1" DocId="aef2bb11-7ee8-4343-87cd-5938d260e647" Version="1.0" Author="1" ModifiedBy="1" TimeLastModified="2018-06-07T17:54:28" TimeCreated="2021-01-06T18:43:38" ModerationStatus="Approved">
434+
<Fields />
435+
</ListItem>
436+
</SPObject>
437+
</SPObjects>
438+
```
439+
440+
**Example for files under 2 GB:**
410441

411442
```xml
412443
<FileMD5Hash="CXPP/MWYxY87NjjnLZrFg==" InitializationVector="4WlC5zQK0r9s39LoB2w==" />
@@ -472,7 +503,6 @@ If the migration API was unable to resolve a user using the login provided in th
472503
1. A new deleted user with the provided login and SystemId is created and is used in the associated metadata within the package.
473504
1. A warning will be reported in the ImportLogs- “Failed to retrieve user '[email protected]' attributes from the SiteUsers; falling back to passed in values”
474505

475-
476506
## Appendices
477507

478508
### Acronyms Defined

docs/declarative-customization/list-form-configuration.md

Lines changed: 76 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ To configure a form, you will use JSON formatters that you are already familiar
1515

1616
To configure the form in a list or library:
1717

18-
To show or hide a column in a list or library form:
19-
2018
1. Go to the list or library for which you want to configure the form.
2119
1. If you are in a list:
2220

@@ -46,13 +44,13 @@ To show or hide a column in a list or library form:
4644
> [!NOTE]
4745
> Form configuration allows for certain [predefined elements and attributes](column-formatting.md#creating-custom-json) to build the custom header.
4846
49-
1. Below is an example of a custom header JSON:
47+
1. Below is an example of a custom header & JSON:
5048

5149
![Custom list form header](images/list-form-configuration-header.png)
5250

5351
```JSON
5452
{
55-
"debugmode": "true",
53+
"debugMode": true,
5654
"elmType": "div",
5755
"attributes": {
5856
"class": "ms-borderColor-neutralTertiary"
@@ -79,7 +77,7 @@ To show or hide a column in a list or library form:
7977
"elmType": "div",
8078
"attributes": {
8179
"iconName": "Group",
82-
"class": "ms-fontSize-42 ms-fontWeight-regular ms-fontColor-themePrimary",
80+
"class": "ms-fontSize-42 ms-fontWeight-regular ms-fontColor-themePrimary",
8381
"title": "Details"
8482
},
8583
"style": {
@@ -106,17 +104,16 @@ To show or hide a column in a list or library form:
106104
"children": [
107105
{
108106
"elmType": "div",
109-
"txtContent": "='Contact details for ' +[$Title]"
107+
"txtContent": "='Contact details for ' + [$Title]"
110108
}
111109
]
112110
}
113111
]
114112
}
115113
```
116-
117-
1. To preview your changes, click the **Preview** button.
118-
1. To save your changes, click the **Save** button.
119-
1. Close the form and open the form again to view the applied header.
114+
1. To preview your changes, click the **Preview** button.
115+
1. To save your changes, click the **Save** button.
116+
1. Close and open the form again to view the custom header.
120117

121118
## Configure custom footer
122119

@@ -126,43 +123,47 @@ To show or hide a column in a list or library form:
126123
> [!NOTE]
127124
> Form configuration allows for certain [predefined elements and attributes](column-formatting.md#creating-custom-json) to build the custom footer.
128125

129-
1. Below is an example of a custom footer JSON:
126+
1. Below is an example of a custom footer & JSON:
130127

131128
![Custom list form footer](images/list-form-configuration-footer.png)
132129

133130
```JSON
134131
{
135-
"debugMode": true,
136-
"elmType": "div",
137-
"style": {
138-
"width": "100%",
139-
"text-align": "left",
140-
"overflow": "hidden",
141-
"border-top-width": "1px"
142-
},
143-
"children": [{
132+
"debugMode": true,
144133
"elmType": "div",
145134
"style": {
146-
"width": "100%",
147-
"padding-top": "10px",
148-
"height": "24px"
135+
"width": "100%",
136+
"text-align": "left",
137+
"overflow": "hidden",
138+
"border-top-width": "1px"
149139
},
150-
"children": [{
151-
"elmType": "a",
152-
"txtContent":"='Contact Details for '+[$Title]",
153-
"attributes": {
154-
"target": "_blank",
155-
"href": "='https://aka.ms/contacts?email='+[$Email]",
156-
"class": "ms-fontColor-themePrimary ms-borderColor-themePrimary ms-fontWeight-semibold ms-fontSize-m ms-fontColor-neutralSecondary–hover ms-bgColor-themeLight–hover"
157-
}
158-
}]
159-
}]
140+
"children": [
141+
{
142+
"elmType": "div",
143+
"style": {
144+
"width": "100%",
145+
"padding-top": "10px",
146+
"height": "24px"
147+
},
148+
"children": [
149+
{
150+
"elmType": "a",
151+
"txtContent": "='Contact Details for ' + [$Title]",
152+
"attributes": {
153+
"target": "_blank",
154+
"href": "='https://aka.ms/contacts?email=' + [$Email]",
155+
"class": "ms-fontColor-themePrimary ms-borderColor-themePrimary ms-fontWeight-semibold ms-fontSize-m ms-fontColor-neutralSecondary–hover ms-bgColor-themeLight–hover"
156+
}
157+
}
158+
]
159+
}
160+
]
160161
}
161162
```
162163

163164
1. To preview your changes, click the **Preview** button.
164165
1. To save your changes, click the **Save** button.
165-
1. Close the form and open the form again to view the applied header.
166+
1. Close and open the form again to view the custom footer.
166167

167168
## Configure custom body with one or more sections
168169

@@ -181,50 +182,54 @@ To show or hide a column in a list or library form:
181182

182183
```JSON
183184
{
184-
"sections": [{
185-
//give a display name for the section
186-
"displayname": "",
187-
"fields": [
188-
//reference your fields here using their display name
189-
"Title"
190-
]
191-
},
192-
{
193-
//give a display name for the section
194-
"displayname": "",
195-
"fields": [
196-
//reference your fields here using their display name
185+
"sections": [
186+
{
187+
//give a display name for the section
188+
"displayName": "",
189+
"fields": [
190+
//reference your fields here using their display name
191+
"Title"
192+
]
193+
},
194+
{
195+
//give a display name for the section
196+
"displayName": "",
197+
"fields": [
198+
//reference your fields here using their display name
199+
]
200+
}
197201
]
198-
}]
199202
}
200203
```
201204

202205
1. Below is an example of a custom body JSON with sections:
203206

204207
```JSON
205208
{
206-
"sections": [{
207-
"displayname": "",
208-
"fields": [
209-
"Title"
210-
]
211-
},
212-
{
213-
"displayname": "Details",
214-
"fields": [
215-
"Department",
216-
"Email",
217-
"Country"
218-
]
219-
},
220-
{
221-
"displayname": "Application",
222-
"fields": [
223-
"Application Id",
224-
"Approver",
225-
"Reviewer"
226-
]
227-
}]
209+
"sections": [
210+
{
211+
"displayName": "",
212+
"fields": [
213+
"Title"
214+
]
215+
},
216+
{
217+
"displayName": "Details",
218+
"fields": [
219+
"Department",
220+
"Email",
221+
"Country"
222+
]
223+
},
224+
{
225+
"displayName": "Application",
226+
"fields": [
227+
"Application Id",
228+
"Approver",
229+
"Reviewer"
230+
]
231+
}
232+
]
228233
}
229234
```
230235

@@ -237,4 +242,4 @@ To show or hide a column in a list or library form:
237242

238243
1. To preview your changes, click the **Preview** button.
239244
1. To save your changes, click the **Save** button.
240-
1. Close the form and open the form again to view the applied header.
245+
1. Close and open the form again to view the custom body.

docs/general-development/advanced-scenarios-and-additional-samples.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Advanced Scenarios and Additional Samples
3-
ms.date: 11/23/2020
3+
ms.date: 01/14/2021
44
ms.prod: sharepoint
55
ms.assetid: 110bcc88-2b55-4d80-ab5c-dc3b9658e48d
66
localization_priority: Normal
@@ -22,12 +22,12 @@ The [Using Advanced REST Functionality with the Excel Services Gadget](https://
2222

2323
## Embedding Workbook Data
2424

25-
The [Excel Services REST API Examples](https://www.microsoft.com/microsoft-365/blog/2009/11/09/excel-services-in-sharepoint-2010-rest-api-examples/) sample shows you how to use the REST API to embed workbook data in interesting ways.
25+
The [Excel Services REST API Examples](https://www.microsoft.com/en-us/microsoft-365/blog/2009/11/09/excel-services-in-sharepoint-2010-rest-api-examples/) sample shows you how to use the REST API to embed workbook data in interesting ways.
2626

2727
## More REST API Syntax Examples
2828

2929
The [Excel Services REST API Syntax](https://www.microsoft.com/en-us/microsoft-365/blog/2009/11/05/excel-services-in-sharepoint-2010-rest-api-syntax/) blog entry provides additional Excel Services REST API syntax examples.
3030

3131
## Ideas About How to Take Advantage of the REST API
3232

33-
The [Excel Services REST API Examples](https://www.microsoft.com/microsoft-365/blog/2009/11/04/simple-access-to-spreadsheet-data-using-the-excel-services-2010-rest-api/) blog entry provides additional ideas about what you can do with the REST API in Excel Services.
33+
The [Excel Services REST API Examples](https://www.microsoft.com/en-us/microsoft-365/blog/2009/11/04/simple-access-to-spreadsheet-data-using-the-excel-services-2010-rest-api/) blog entry provides additional ideas about what you can do with the REST API in Excel Services.

0 commit comments

Comments
 (0)