You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/apis/migration-api-overview.md
+12-8Lines changed: 12 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: "SharePoint Import Migration API"
3
3
description: "This article provides overview information on how to use the SharePoint Migration API."
4
-
ms.date: 04/28/2024
4
+
ms.date: 07/03/2024
5
5
ms.author: ranren
6
6
author: underreview
7
7
manager: dapodean
@@ -21,6 +21,10 @@ Use Migration API to migrate content from file shares, SharePoint Server, and ot
21
21
22
22
## What's new
23
23
24
+
### July 2024
25
+
26
+
We started enforcing HTTPS connection to SharePoint provided Azure Blob Storage Containers by adding a `spr=https` field in SAS tokens. This enforcement is fully effective on July 21, 2024. Check [Use Azure Blob Storage Containers and Azure Queues with SharePoint Migration API](migration-azure.md) for details.
27
+
24
28
### April 2024
25
29
26
30
We added new fields in ``JobEnd`` events to indicate the count and bytes imported for files. Check [Migration events in Azure Queue](migration-events.md#jobend-import) for details.
@@ -61,7 +65,7 @@ Migration API generates logs in the manifest container. Check the log entries fo
61
65
62
66
### Use app-based authentication
63
67
64
-
Migration generates workload to the SPO backend differently from end user-generated traffic. To properly allocate resources with our elastic capability, only use app-based authentication in your migration solution.
68
+
Migration generates workload to the SharePoint backend differently from end user-generated traffic. To properly allocate resources with our elastic capability, only use app-based authentication in your migration solution.
65
69
66
70
Don't use user mode in your migration solution. Running migration in user mode triggers increased throttling, resulting in poor performance.
67
71
@@ -82,28 +86,28 @@ For service-based migration tools that run without a signed-in user present, suc
82
86
83
87
You can choose to share a single App ID to cover multiple migration solutions created or create individual App ID for each of the products. Make sure to register App IDs. Sharing App IDs doesn't affect performance or throttling.
84
88
85
-
### Keep destination SPO site unactivated
89
+
### Keep destination SharePoint Site unactivated
86
90
87
-
To avoid migration issues, deactivate the target site for users until the migration completion. The source could remain active, allowing read and write to keep productivity. Switch users to the new SPO destination sites after migration completion.
91
+
To avoid migration issues, deactivate the target site for users until the migration completion. The source could remain active, allowing read and write to keep productivity. Switch users to the new SharePoint destination sites after migration completion.
88
92
89
93
## Performance
90
94
91
-
Migration API processes jobs through a queue mechanism with pre-configured workload management settings. Migration API processes the jobs on a best-effort basis, without Service Level Agreement (SLA) or guaranteed performance.
95
+
Migration API processes jobs through a queue mechanism with preconfigured workload management settings. Migration API processes the jobs on a best-effort basis, without Service Level Agreement (SLA) or guaranteed performance.
92
96
93
97
### Optimize migration performance
94
98
95
99
In order to ensure optimal performance for your migration projects, it's important to plan carefully, especially when dealing with large-scale migrations. For more information on how to estimate timespans and optimize performance, see our [performance guide](/sharepointmigration/sharepoint-online-and-onedrive-migration-speed).
96
100
97
101
### I'm seeing throttling messages
98
102
99
-
To ensure good user experiences for all Microsoft 365 customers, SharePoint uses throttling to protect the SharePoint Online infrastructure. Avoid getting throttled by following [throttling guidance](https://aka.ms/spo429).
103
+
To ensure good user experiences for all Microsoft 365 customers, SharePoint uses throttling to protect the SharePoint infrastructure. Avoid getting throttled by following [throttling guidance](https://aka.ms/spo429).
100
104
101
-
## Special topics
105
+
## Special articles
102
106
103
107
### Migrating sharing events of files and folders
104
108
105
109
Check [Sharing events](/sharepoint/dev/apis/migration-api-shared) article for instructions when migrating shared events metadata with files and folders.
106
110
107
111
### Web Parts
108
112
109
-
Use SPMT's Web Part serializer DLL to migrate Web Parts into SharePoint. Check [Migrate Web Parts](/sharepoint/dev/apis/migrate-webparts-with-migrationapi) for instructions.
113
+
Use SharePoint Migration Tool (SPMT)'s Web Part serializer DLL to migrate Web Parts into SharePoint. Check [Migrate Web Parts](/sharepoint/dev/apis/migrate-webparts-with-migrationapi) for instructions.
Copy file name to clipboardExpand all lines: docs/apis/migration-azure.md
+9-5Lines changed: 9 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: "Use Azure Blob Storage Containers and Azure Queues with SharePoint Migration API"
3
3
description: "This article provides in-depth information on how to use the SharePoint Migration API with Azure Containers and Queues."
4
-
ms.date: 05/08/2024
4
+
ms.date: 07/03/2024
5
5
ms.author: ranren
6
6
author: underreview
7
7
manager: dapodean
@@ -32,9 +32,9 @@ Migration API provisions the containers in the same datacenter of the SharePoint
32
32
33
33
Migration API destroys Used containers 30-90 days after completing migration jobs.
34
34
35
-
#### Decorate the traffic to avoid throttling
35
+
#### Avoid throttling by decorating the traffic
36
36
37
-
[Decorate your HTTP traffic](/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#how-to-decorate-your-http-traffic) to avoid throttling.
37
+
Avoid throttling by [decorating your HTTP traffic](/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#how-to-decorate-your-http-traffic).
38
38
39
39
#### Encryption
40
40
@@ -76,6 +76,8 @@ Pass this value to `CreateMigrationJob` method as `azureContainerSourceUri` para
76
76
77
77
The SAS access token contains `Read` and `Write` permissions only. It doesn't contain `List`.
78
78
79
+
SharePoint enforces HTTPS connections to containers by setting `spr=https` field in SAS tokens.
80
+
79
81
###### MetadataContainer value
80
82
81
83
A **Uri** value containing the URI of the newly created container for storing **manifest** files, along with the SAS access token.
@@ -84,6 +86,8 @@ Pass this value to `CreateMigrationJob` method as `azureContainerManifestUri` pa
84
86
85
87
The SAS access token contains `Read` and `Write` permissions only. It doesn't contain `List`.
86
88
89
+
SharePoint enforces HTTPS connections to containers by setting `spr=https` field in SAS tokens.
90
+
87
91
###### EncryptionKey
88
92
89
93
A **Byte Array** value containing the AES256CBC encryption key for both containers provisioned.
@@ -102,9 +106,9 @@ Alternatively, use user-provided Azure Queues if desired. Check the requirement
102
106
103
107
### Azure Queue Encryption
104
108
105
-
When using `CreateMigrationJobEncrypted` method, Migration API encrypts the messages written to the Azure Queue.
109
+
`CreateMigrationJobEncrypted` method encrypts the messages written to the Azure Queue.
106
110
107
-
Make sure you preserve `JobId` and the `IV` values returned by `CreateMigrationJobEncrypted` method, to decrypt the message.
111
+
To decrypt the messages, make sure you preserve `JobId` and the `IV` values returned by `CreateMigrationJobEncrypted` method.
Microsoft Azure is used to host the various components needed to implement SharePoint webhooks.
24
20
25
21
Source code and other materials for the reference implementation are available in two flavors:
22
+
26
23
- A SharePoint provider-hosted application version
27
24
- An Office 365 Azure AD application, which can be found in the [SharePoint developer samples GitHub repository](https://aka.ms/sp-webhooks-sample-reference).
28
25
@@ -35,9 +32,7 @@ The application shows you how to manage webhooks, specifically for a SharePoint
35
32
### Deployment guides
36
33
37
34
- The [SharePoint webhooks reference implementation deployment guide](https://github.com/SharePoint/sp-dev-samples/blob/master/Samples/WebHooks.List/Deployment%20guide.md) lists the deployment steps used to deploy the SharePoint provider-hosted reference implementation.
38
-
39
35
- To deploy the Office 365 Azure AD application, use the steps described at [SharePoint webhooks Azure AD reference implementation deployment guide](https://github.com/SharePoint/sp-dev-samples/blob/master/Samples/WebHooks.List.AzureAD/Deployment%20guide.md), which shows you how to use a Web API function as webhook service.
40
-
41
36
- If you're more interested in using Azure Functions, see the [Azure Functions guide](https://github.com/SharePoint/sp-dev-samples/blob/master/Samples/WebHooks.List.AzureAD/azure%20functions%20guide.md) for more details on how to use Azure Functions in this reference implementation.
42
37
43
38
### Introduction to webhooks
@@ -48,9 +43,9 @@ Webhooks notify your application about changes in SharePoint that the applicatio
48
43
49
44
The reference implementation works with a SharePoint list. To add a webhook to a SharePoint list, your application first creates a webhook subscription by sending a [`POST /_api/web/lists('list-id')/subscriptions`](./lists/create-subscription.md) request. The request includes the following items:
50
45
51
-
* A payload that identifies the list that you're adding the webhook for.
52
-
* The ___location of your webhook service URL to send the notifications.
53
-
* The expiration date of the webhook.
46
+
- A payload that identifies the list that you're adding the webhook for.
47
+
- The ___location of your webhook service URL to send the notifications.
48
+
- The expiration date of the webhook.
54
49
55
50
After you've requested SharePoint to add your webhook, SharePoint validates that your webhook service endpoint exists. It sends a validation string to your service endpoint. SharePoint expects that your service endpoint returns the validation string within 5 seconds. If this process fails, the webhook creation is canceled. If you've deployed your service, this works and SharePoint returns an HTTP 201 message on the POST request that the application initially sent. The payload in the response contains the ID of the new webhook subscription.
56
51
@@ -74,8 +69,6 @@ public async Task<SubscriptionModel> AddListWebHookAsync(string siteUrl, string
74
69
}
75
70
```
76
71
77
-
<br/>
78
-
79
72
When making a call to SharePoint, you need to provide authentication information, and in this case you're using a **Bearer** authentication header with an **access token**. To obtain the access token, intercept the token via an **ExecutingWebRequest** event handler:
@@ -123,7 +116,6 @@ To avoid getting the same change repeatedly, it's important that you inform Shar
123
116
The following are some key things to note about changes:
124
117
125
118
- SharePoint does not call your service in real-time: when a change happens on a list that has a webhook, SharePoint queues a webhook callout. Once each minute, this queue is read and the appropriate service endpoints are called. This batching of requests is important. For example, if a bulk upload of 1000 records occurred at once, batching prevents SharePoint from calling your endpoint 1000 times. So your endpoint is only called once, but when you call the `GetChanges()` method, you get 1000 change events that you need to process.
126
-
127
119
- To guarantee an immediate response, regardless of the number of changes there, it's important that the workload of your service endpoint runs asynchronously. In the reference implementation, we leveraged the power of Azure: the service serializes the incoming payload and stores it in an Azure Storage queue while there's an Azure web job that runs continuously and checks for messages in the queue. When there are messages in the queue, the web job processes them and also executes your logic asynchronously.
128
120
129
121
## Complete end-to-end flow
@@ -157,7 +149,7 @@ Create a web job that on a weekly basis reads all the subscription IDs from the
157
149
> [!NOTE]
158
150
> This web job is not part of this reference implementation.
159
151
160
-
The actual renewal of a SharePoint list webhook can be done by using a `[PATCH /_api/web/lists('list-id')/subscriptions(‘subscriptionID’)](./lists/update-subscription.md)` REST call.
152
+
The actual renewal of a SharePoint list webhook can be done by using a [`PATCH /_api/web/lists('list-id')/subscriptions(‘subscriptionID’)`](./lists/update-subscription.md) REST call.
161
153
162
154
In the reference implementation, updating of webhooks is implemented in the [WebHookManager](https://github.com/SharePoint/sp-dev-samples/blob/master/Samples/WebHooks.List/SharePoint.WebHooks.Common/WebHookManager.cs) class of the **SharePoint.WebHooks.Common** project.
163
155
@@ -176,18 +168,16 @@ Updating a webhook is done by using the **UpdateListWebHookAsync** method:
176
168
/// <returns>true if successful, exception in case something went wrong</returns>
Because SharePoint is calling out to your webhook service endpoint, your endpoint needs to be reachable by SharePoint. This makes development and debugging slightly more complex. The following are some strategies that you can use to make your life easier:
186
178
187
-
* During initial development, you provide your own serialized payload to your service processing logic. This makes it possible to completely test your processing logic without deploying the service endpoint (and even without configuring a webhook).
188
-
189
-
* If you have access to Azure resources, you can deploy your endpoint to Azure by using a debug build and configuring the Azure App Service for debugging. This allows you to set a remote breakpoint and do remote debugging using Visual Studio.
190
-
179
+
- During initial development, you provide your own serialized payload to your service processing logic. This makes it possible to completely test your processing logic without deploying the service endpoint (and even without configuring a webhook).
180
+
- If you have access to Azure resources, you can deploy your endpoint to Azure by using a debug build and configuring the Azure App Service for debugging. This allows you to set a remote breakpoint and do remote debugging using Visual Studio.
191
181
- If you do not want to deploy your service during development time, you need to use a secure tunnel for your service. The idea is that you tell SharePoint that the notification service is located on a shared public endpoint. In the client, you install a component that connects to that shared public service, and whenever a call is made to the public endpoint, the client component is notified and it pushes the payload to your service running on localhost. [ngrok](https://ngrok.com/) is an implementation of such a secure tunnel tool that you can use to debug your webhook service locally.
Copy file name to clipboardExpand all lines: docs/declarative-customization/site-design-o365cli.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: SharePoint site design - CLI for Microsoft 365 commands
3
3
description: Use the CLI for Microsoft 365 to create, retrieve, and remove site designs and site scripts.
4
-
ms.date: 06/28/2022
4
+
ms.date: 06/27/2024
5
5
ms.localizationpriority: high
6
6
---
7
7
@@ -17,7 +17,7 @@ To run the CLI for Microsoft 365 commands, you'll need to do the following:
17
17
18
18
1. Download and install [NodeJS LTS version](https://nodejs.org/en/)
19
19
1. Follow the instructions at [Installing the CLI](https://pnp.github.io/cli-microsoft365/user-guide/installing-cli/) to install the CLI for Microsoft 365 on your machine
20
-
1. Follow the instructions at [Logging in to Office 365](https://pnp.github.io/cli-microsoft365/user-guide/connecting-office-365/) to connect to your SharePoint tenant.
20
+
1. Follow the instructions at [Logging in to Office 365](https://pnp.github.io/cli-microsoft365/user-guide/connecting-microsoft-365) to connect to your SharePoint tenant.
21
21
22
22
To verify your setup and connection, try using the [sitedesign list](https://pnp.github.io/cli-microsoft365/cmd/spo/sitedesign/sitedesign-list) command to read the current list of site designs. If the cmdlet runs and returns with no errors, you're ready to proceed.
Copy file name to clipboardExpand all lines: docs/declarative-customization/site-design-trigger-flow-tutorial.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Using site designs and Power Automate to track site creation requests
3
3
description: Invoke a Power Automate flow using the site script triggerFlow action to capture the site creation event and build a site directory. This tutorial is intended to illustrate a simple example of using site designs and Power Automate.
4
-
ms.date: 06/28/2022
4
+
ms.date: 06/05/2024
5
5
ms.localizationpriority: high
6
6
---
7
7
@@ -68,7 +68,7 @@ In order to capture the site creation event and create the corresponding list it
Copy file name to clipboardExpand all lines: docs/embedded/concepts/admin-exp/adminrole.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ ms.localizationpriority: high
9
9
10
10
The SharePoint Embedded administrator is a dedicated role to manage SharePoint Embedded containers through [SharePoint PowerShell](/powershell/module/sharepoint-online/connect-sposervice) and SharePoint admin center. This role is required for [developer admins](./developer-admin/dev-admin.md) to create new container types through PowerShell cmdlets and also for consuming tenant admins to manage containers created in their tenants.
11
11
12
-
The global administrator role already has all the permissions of the SharePoint Embedded administrator role. A SharePoint administrator can assign themselves the SharePoint Embedded administrator role to act as a consuming tenant admin or a developer administrator for SharePoint Embedded.
12
+
The global administrator role already has all the permissions of the SharePoint Embedded administrator role. A global administrator can assign a user the SharePoint Embedded administrator role to act as a consuming tenant admin or a developer administrator for SharePoint Embedded.
13
13
14
14
The SharePoint Embedded administrator role is available in Microsoft Entra and Microsoft 365 Admin Center. This role doesn't have access to site management. This means that a SharePoint Embedded administrator can't see 'Active sites' and 'Deleted sites' pages on the SharePoint Admin Center and also can't run site specific PowerShell cmdlets.
0 commit comments