Skip to content

Commit b19a7c6

Browse files
authored
Merge branch 'master' into patch-2
2 parents 47787c9 + daf2c81 commit b19a7c6

File tree

238 files changed

+4870
-2193
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

238 files changed

+4870
-2193
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ We’ll also monitor [#spfx](http://sharepoint.stackexchange.com/tags/spfx/), [#
1515
You can also tweet / follow [@officedev](https://twitter.com/officedev) or [@officedevpnp](https://twitter.com/officedevpnp).
1616

1717
## SharePoint Framework Releases
18+
* **September 5, 2018**
19+
* **SPFx v1.6** - [See the release notes here](https://github.com/SharePoint/sp-dev-docs/wiki/SharePoint-Framework-v1.6-release-notes)
20+
21+
* **June 26, 2018**
22+
* **SPFx v1.5.1** - [See the release notes here](https://github.com/SharePoint/sp-dev-docs/wiki/Release-Notes-for-SPFx-Package-Version-1.5.1)
23+
1824
* **June 5, 2018**
1925
* **SPFx v1.5** - [See the release notes here](https://github.com/SharePoint/sp-dev-docs/wiki/Release-Notes-for-SharePoint-Framework-Package-v1.5)
2026

docs/apis/alm-api-for-spfx-add-ins.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -223,17 +223,17 @@ Get-PnPApp -Scope Tenant
223223

224224
## Office 365 CLI commands to add, deploy, and manage SharePoint apps cross-platform
225225

226-
Using the [Office 365 CLI](https://sharepoint.github.io/office365-cli?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs), you can automate deploying, publishing, installing, upgrading, and retracting your apps. The Office 365 CLI is a cross-platform command-line interface that can be used on any platform, including Windows, MacOS, and Linux. To learn more about these commands, see the following sections.
226+
Using the [Office 365 CLI](https://pnp.github.io/office365-cli?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs), you can automate deploying, publishing, installing, upgrading, and retracting your apps. The Office 365 CLI is a cross-platform command-line interface that can be used on any platform, including Windows, MacOS, and Linux. To learn more about these commands, see the following sections.
227227

228228
### Add and publish your app to the app catalog
229229

230-
Adding your app (.sppkg file, .app file) to the tenant app catalog is a prerequisite to making your app available for use on your SharePoint sites. Use the [add](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-add/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command to do this:
230+
Adding your app (.sppkg file, .app file) to the tenant app catalog is a prerequisite to making your app available for use on your SharePoint sites. Use the [add](https://pnp.github.io/office365-cli/cmd/spo/app/app-add/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command to do this:
231231

232232
```shell
233233
spo app add --filePath ./spfx.sppkg
234234
```
235235

236-
Once added, you need to continue with publishing your app, effectively making the app available to be used by the users of your tenant. Use the [deploy](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-deploy/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command to do this:
236+
Once added, you need to continue with publishing your app, effectively making the app available to be used by the users of your tenant. Use the [deploy](https://pnp.github.io/office365-cli/cmd/spo/app/app-deploy/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command to do this:
237237

238238
```shell
239239
spo app deploy --id <app id> --skipFeatureDeployment
@@ -247,7 +247,7 @@ spo app deploy --id <app id> --skipFeatureDeployment
247247

248248
### Remove the app from the app catalog
249249

250-
You may want to remove an app that you added earlier, and you can do this by using the [remove](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-remove/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
250+
You may want to remove an app that you added earlier, and you can do this by using the [remove](https://pnp.github.io/office365-cli/cmd/spo/app/app-remove/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
251251

252252
```shell
253253
spo app remove --id <app id>
@@ -256,21 +256,21 @@ spo app remove --id <app id>
256256

257257
### Use apps on your site
258258

259-
After the app is added to the app catalog and published, you can install the app to your site by using the [install](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-install/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
259+
After the app is added to the app catalog and published, you can install the app to your site by using the [install](https://pnp.github.io/office365-cli/cmd/spo/app/app-install/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
260260

261261
```shell
262262
spo app install --id <app id> --siteUrl <url>
263263
```
264264

265265

266-
To upgrade the app, use the [upgrade](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-upgrade/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
266+
To upgrade the app, use the [upgrade](https://pnp.github.io/office365-cli/cmd/spo/app/app-upgrade/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
267267

268268
```shell
269269
spo app upgrade --id <app id> --siteUrl <url>
270270
```
271271

272272

273-
To uninstall the app from your site, use the [uninstall](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-uninstall/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
273+
To uninstall the app from your site, use the [uninstall](https://pnp.github.io/office365-cli/cmd/spo/app/app-uninstall/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
274274

275275
```shell
276276
spo app uninstall --id <app id> --siteUrl <url>
@@ -282,14 +282,14 @@ spo app uninstall --id <app id> --siteUrl <url>
282282
283283

284284
### List and get apps in the app catalog
285-
You can see what apps have been added to the app catalog by using the [list](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-list/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
285+
You can see what apps have been added to the app catalog by using the [list](https://pnp.github.io/office365-cli/cmd/spo/app/app-list/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
286286

287287
```shell
288288
spo app list
289289
```
290290

291291

292-
You can get a single app's details by using the [get](https://sharepoint.github.io/office365-cli/cmd/spo/app/app-get/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
292+
You can get a single app's details by using the [get](https://pnp.github.io/office365-cli/cmd/spo/app/app-get/?utm_source=msft_docs&utm_medium=page&utm_campaign=Application+Lifecycle+Management+ALM+APIs) command:
293293

294294
```shell
295295
spo app get --id <app id>
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: SPO provided Migration Azure container and queue
3+
ms.author: jhendr
4+
author: JoanneHendrickson
5+
manager: pamgreen
6+
ms.date: 6/20/2018
7+
description: "One of the Main requirement for using our Migration API is the usage of an Azure container as a temporary storage. We now provide a default container that can be used for using the migration API."
8+
---
9+
10+
# SPO provided Migration Azure container and queue
11+
12+
Microsoft’s Migration API requires the use of an Azure container for temporary storage. To simplify the process, you are now provided with a default container while using the migration API. If you choose, you can still provide your own Azure container.
13+
14+
## Encryption is required
15+
16+
For the Migration API to accept a Migration Job coming from a SPO provided Azure container, the data needs to be encrypted at rest. The customer is still allowed to provide their own Azure account if they prefer to not use encryption.
17+
18+
## Advantages
19+
20+
|Advantage|Description|
21+
|:-----|:-----|
22+
|Cost of Azure container goes to SPO|Since we are providing the containers, those containers are now part of the basic SharePoint online Offering. Every tenant who signs up for SharePoint Online will get this for free).|
23+
|Containers and queues are unique per request and not reused|Once a container is given to a customer this container will not be reused or shared.|
24+
|Containers and queue are automatically deleted|As per the standard SharePoint Online Compliance, we will destroy the container within 30 to 90 days automatically.|
25+
|Containers and queues are in the customer’s datacenter ___location|We make sure to provision containers that are in the same physical ___location than their SharePoint online tenant.|
26+
|They are obtainable programmatically|There is no need to interact with Azure unless the user chooses.
27+
28+
## How to use it
29+
30+
### Getting Containers
31+
32+
```csharp
33+
public SPProvisionedMigrationContainersInfo ProvisionMigrationContainers()
34+
```
35+
36+
The call will return an object that contains two strings containing two SAS tokens for accessing the two required containers and a byte array for the AES256CBC encryption.
37+
38+
This key will need to be used when encrypting the data. We forget the key once we give it out, therefore you must keep it to pass it again for the Submit Migration Job call.
39+
40+
```csharp
41+
Uri DataContainerUri
42+
43+
Uri MetadataContainer Uri
44+
45+
byte[] EncryptionKey
46+
```
47+
48+
### Getting Queue
49+
50+
```csharp
51+
public SPProvisionedMigrationQueueInfo ProvisionMigrationQueue()
52+
```
53+
54+
This method will return a string containing the SAS token for accessing the Azure queue.
55+
56+
The queue can be reused across multiple migration jobs so this call should not be that frequently as the `SPProvisionedMigrationContainersInfo()` call.
57+
58+
```csharp
59+
Uri JobQueueUri
60+
```
61+
62+
### After getting the Container and the Queue:
63+
64+
Once those calls have been made, the rest of the flow remains the same for using the Migration API.

docs/apis/migration-api-encryption.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
title: OneDrive for Business and SharePoint Online Migration API – Encryption
3+
ms.author: jhendr
4+
author: JoanneHendrickson
5+
manager: pamgreen
6+
ms.date: 6/20/2018
7+
description: "How to pass encrypted content at rest to the API securely."
8+
---
9+
10+
# OneDrive for Business and SharePoint Online Migration API encryption
11+
12+
Using the Migration API requires a temporary storage container in Azure. This Azure container is already only openable by someone having a SAS key access to the container. The gGoal of this feature is to allow to pass eEncrypted content at rest to the API meaning that even if a malicious user has access to the Container he won’t be able to use its content.
13+
14+
## What is stored in the Azure blob container
15+
16+
The Migration API requires the Azure Container for content passing and also for log and queue reporting back. It can be split down as a summary into those buckets:
17+
18+
Content
19+
20+
- Files
21+
- Manifest
22+
- Metadata
23+
- Permissions
24+
- List items
25+
- Taxonomy
26+
- Logs (created by SharePoint Online to report back on the migration results)
27+
- Queue
28+
- Real time reportig on the progress
29+
30+
## What is the encryption feature?
31+
32+
When using the encryption parameter, everything listed above will be encrypted at rest and the key will need to be preserved in order to read the logs and the real time progress.
33+
The main benefits is making the content useless for a malicious user who would manage to breach into the Azure container.
34+
35+
This comes with a small cost of performance. This feature is optional when using the API and it is recommended to only use it for the most confidential information since it does reduce the speed of the migration by a small portion. Microsoft destroys the key once the migration job is finished and there is no way to recover the key if lost, not even from support.
36+
37+
## As a 3rd party developer how do I take advantage of the Encryption feature?
38+
39+
### Calling the API
40+
41+
The method for calling the Migration Job has a different name and an additional parameter at the end. The new name is: `CreateMigrationJobEncrypted`
42+
43+
The new parameter is: `EncryptionOption`
44+
45+
For now, it only supports receiving an AES256CBC Encryption Key.
46+
47+
Example:
48+
49+
```csharp
50+
public Guid CreateMigrationJobEncrypted(
51+
Guid gWebId,
52+
string azureContainerSourceUri,
53+
string azureContainerManifestUri,
54+
string azureQueueReportUri,
55+
EncryptionOption AES256CBCKey)
56+
```
57+
58+
## Extra requirement
59+
60+
For the encryption, each file must be encrypted and have an IV assigned to it. The encryption method should follow the AES CBC 256 Standard. The IV should be different for every file including the manifests in the package and should be stored as a property on each files.
61+
62+
- Name = [IV]
63+
- Value = [Base64encoded byte array of the IV]
64+
65+
## Reading the queue when encrypted
66+
67+
When using the encryption option, the messages in the queue will also get encrypted.
68+
69+
It is important to remember the Job ID. Without the specific key used for the job, you won’t be able to read the message back.
70+
71+
Here is the JSON content in the queue message
72+
73+
```json
74+
{"Label", "Encrypted"},
75+
{"JobId", "[JobId value]"},
76+
{"IV", "[IV value in base64format]"},
77+
{"Content", "[encrypted message in base64string]"}
78+
```
79+
80+
Once the messages are decrypted, they will be the same as the API without encryption.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: "Running Migrations into OneDrive and SharePoint Online: Handling Throttling "
3+
ms.author: jhendr
4+
author: JoanneHendrickson
5+
manager: pamgreen
6+
ms.date: 6/10/2018
7+
ms.topic: article
8+
description: "Migration is critical for SPO and is prioritized alongside service availability."
9+
---
10+
11+
# Running Migrations into OneDrive and SharePoint Online: Throttling
12+
13+
This document is intended for ISVs migrating content into OneDrive and SharePoint only.
14+
15+
## Context and Expectations Setting
16+
17+
Migration is critical for SPO and is prioritized alongside service availability. When we detect that service availability may be threatened, 429 response codes are sent back to protect the experience of end users.
18+
19+
429 is a normal part of any well-functioning cloud system; the expectation is that background tasks will get 429s and all background task callers (both ISVs and Microsoft apps) should ride through them without direct customer impact to their own end users.
20+
21+
The number of 429s sent back is a function of the current load on the farm, as well as other tenant/farm level variables. Therefore, it is important to focus on migration throughput rather than the number of 429s themselves.
22+
23+
Set expectations with customers:
24+
25+
- Expect to create and manage migration efforts at any time
26+
- Expect content migration throughput to be higher during off-peak times and lower during peak times.
27+
28+
Overall throughput over the duration of a day still aligns with our public documentation here.
29+
30+
## Best Practices
31+
32+
Below are the key best practices we recommend migration vendors follow.
33+
34+
**Interactive flag:**<br>Include an *interactive flag* in your user agent string for interactive calls such as user login, launch jobs, etc. For example: `ISV|VendorName|AppName/Version|Interactive` <br>
35+
36+
We allow 300 calls every 5 minutes for handling small migrations and site management that customers expect to complete interactively.
37+
38+
> [!NOTE]
39+
> Once you have implemented Interactive flag for the system to pick that cue, it may not be instantaneous; allow a few days for it to take effect.
40+
41+
**Retry value**:<br>Use the retry value in the http header of the 429 message and do not exponential back-off.
42+
43+
**429:**<br>Do not handle 429 as an error condition displayed to the user. When 429 does occur, handle it as a background task retry and do not prompt users to contact support.
44+
45+
- If users cannot login or if jobs are not progressing, please escalate.
46+
- If you are seeing over 30% of requests getting 429 over 30 minutes, please escalate.
47+
48+
**Throughput:**<br>Expect throughput to be lower during peak hours as opposed to off-peak hours. Generally, nights and weekends in the customer’s time zone (the time zone of the region where their SPO tenant is setup) are off-peak. Customers should be encouraged to move migration to off-peak hours if possible.
49+
50+
- If throughput during peak hours is an order of magnitude worse than off-peak hours, that should be escalated.
51+

0 commit comments

Comments
 (0)