diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index d1f5d409d..7ca50e843 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -144,6 +144,131 @@ "source_path": "docs/embedded/terms-of-service.md", "redirect_url": "/sharepoint/dev/embedded/overview", "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/adminrole.md", + "redirect_url": "/sharepoint/dev/embedded/administration/adminrole", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/billing/billing.md", + "redirect_url": "/sharepoint/dev/embedded/administration/billing/billing", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/billing/billingmanagement.md", + "redirect_url": "/sharepoint/dev/embedded/administration/billing/billingmanagement", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/billing/meters.md", + "redirect_url": "/sharepoint/dev/embedded/administration/billing/meters", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/consuming-tenant-admin/cta.md", + "redirect_url": "/sharepoint/dev/embedded/administration/consuming-tenant-admin/cta", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctaUX.md", + "redirect_url": "/sharepoint/dev/embedded/administration/consuming-tenant-admin/ctaUX", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctapowershell.md ", + "redirect_url": "sharepoint/dev/embedded/administration/consuming-tenant-admin/ctapowershell", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/admin-exp/developer-admin/dev-admin.md", + "redirect_url": "sharepoint/dev/embedded/administration/developer-admin/dev-admin", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/security-and-compliance.md", + "redirect_url": "sharepoint/dev/embedded/compliance/security-and-compliance", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/app-concepts/app-architecture.md", + "redirect_url": "sharepoint/dev/embedded/development/app-architecture", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/app-concepts/auth.md", + "redirect_url": "sharepoint/dev/embedded/development/auth", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/content-experiences/office-experience.md", + "redirect_url": "sharepoint/dev/embedded/development/content-experiences/office-experience", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/content-experiences/search-content.md", + "redirect_url": "sharepoint/dev/embedded/development/content-experiences/search-content", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/content-experiences/user-experiences-overview.md", + "redirect_url": "sharepoint/dev/embedded/development/content-experiences/user-experiences-overview", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/fluid.md", + "redirect_url": "sharepoint/dev/embedded/development/fluid", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/app-concepts/limits-calling.md", + "redirect_url": "sharepoint/dev/embedded/development/limits-calling", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/app-concepts/sharing-and-perm.md", + "redirect_url": "sharepoint/dev/embedded/development/sharing-and-perm", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/tutorials/doc-processing-acs.md", + "redirect_url": "sharepoint/dev/embedded/development/tutorials/doc-processing-acs", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/tutorials/launch-experience.md", + "redirect_url": "sharepoint/dev/embedded/development/tutorials/launch-experience", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/tutorials/metadata.md", + "redirect_url": "sharepoint/dev/embedded/development/tutorials/metadata", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/tutorials/migrate-abs-to-spe.md", + "redirect_url": "sharepoint/dev/embedded/development/tutorials/migrate-abs-to-spe", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/tutorials/using-file-preview.md", + "redirect_url": "sharepoint/dev/embedded/development/tutorials/using-file-preview", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/tutorials/using-webhooks.md", + "redirect_url": "sharepoint/dev/embedded/development/tutorials/using-webhooks", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/app-concepts/containertypes.md", + "redirect_url": "sharepoint/dev/embedded/getting-started/containertypes", + "redirect_document_id": false + }, + { + "source_path": "docs/embedded/concepts/app-concepts/register-api-documentation.md", + "redirect_url": "sharepoint/dev/embedded/getting-started/register-api-documentation", + "redirect_document_id": false } ] } diff --git a/docs/embedded/concepts/admin-exp/adminrole.md b/docs/embedded/administration/adminrole.md similarity index 100% rename from docs/embedded/concepts/admin-exp/adminrole.md rename to docs/embedded/administration/adminrole.md diff --git a/docs/embedded/concepts/admin-exp/billing/billing.md b/docs/embedded/administration/billing/billing.md similarity index 78% rename from docs/embedded/concepts/admin-exp/billing/billing.md rename to docs/embedded/administration/billing/billing.md index 8035641a1..6ef373a92 100644 --- a/docs/embedded/concepts/admin-exp/billing/billing.md +++ b/docs/embedded/administration/billing/billing.md @@ -1,7 +1,7 @@ --- title: PAYG billing for SharePoint Embedded description: This article explains the billing models and how to set up PAYG billing. -ms.date: 02/12/2025 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -13,13 +13,13 @@ SharePoint Embedded is a consumption-based Pay-as-you-go (PAYG) offering meaning With the standard billing model, all consumption-based charges are directly billed to the tenant who owns or develops the application. The admin in the developer tenant must establish a valid billing profile when creating a standard container type. -![Standard](../../../images/1bill521.png) +![Standard](../../images/1bill521.png) ### Pass-through With pass-through billing, consumption-based charges are billed directly to the tenant registered to use the SharePoint Embedded application. Admins in the developer tenant don't need to set up a billing profile when creating a pass-through SharePoint Embedded container type. Once the container type is registered in the consuming tenant, the consuming tenant admin (SharePoint Admin or Global Admin) needs to set up the billing profile in the consuming tenant to use the SharePoint Embedded application. -![Pass Through](../../../images/2bill521.png) +![Pass Through](../../images/2bill521.png) ## Prerequisites to create SharePoint Embedded container type @@ -29,6 +29,14 @@ A new container type will be created using **SharePoint Online Management Shell* 1. Open SharePoint Online Management Shell from **Start** screen, type **sharepoint**, and then select **SharePoint Online Management Shell**. 1. Connect to SPO service using `Connect-SPOService` cmdlet by providing admin credentials associated with tenancy. For information on [how to use Connect-SPOService](/powershell/module/sharepoint-online/connect-sposervice), refer the linked documentation. +### Tenant requirements + +- An active instance of SharePoint is required in your Microsoft 365 tenant. +- Users who will be authenticating into SharePoint Embedded Container Types and Containers must be in Entra ID (Members and Guests) + + > [!NOTE] + > An Office license is not required to collaborate on Microsoft Office documents stored in a container. + ### Roles and Permissions - The admin who sets up the billing relationship for SharePoint Embedded needs to have owner or contributor permissions on the Azure subscription. @@ -44,9 +52,9 @@ For the Standard Billing container type, the developer admin needs to set up: ## Set up a Standard Billing container type -For standard billed container types, developer admin should set up billing in their tenant. Microsoft 365 SharePoint Embedded Administrator serves as the developer admin. Global Administrators in Microsoft 365 can assign users the SharePoint Embedded Administrator. The Global Administrator role already has all the permissions of the SharePoint Embedded Administrator role. The SharePoint Embedded Admin role is available in Microsoft Entra and Microsoft 365 Admin Center. +For standard billed container types, developer admins should set up billing in their tenant. The Microsoft 365 SharePoint Embedded Administrator serves as the developer admin. Global Administrators in Microsoft 365 can assign users the SharePoint Embedded Administrator role, which already has all the permissions of the SharePoint Embedded Administrator role. The SharePoint Embedded Admin role is available in Microsoft Entra and Microsoft 365 Admin Center. -SharePoint Embedded Admin can create container type using `New-SPOContainerType` cmdlet by providing an **Azure subscription**, **resource group** associated with the subscription, and a **region**. +SharePoint Embedded Admin can create a container type using the `New-SPOContainerType` cmdlet by providing an Azure subscription, the resource group associated with the subscription, and a region. - If you don't have an Azure subscription, you can create one by following the steps here to [create an Azure subscription in your tenancy](/azure/cloud-adoption-framework/ready/azure-best-practices/initial-subscriptions), - If you don't have a resource group, you can create one by following the steps here to [create a resource group](/azure/azure-resource-manager/management/manage-resource-groups-portal) @@ -99,19 +107,19 @@ New-SPOContainerType -ContainerTypeName -isPassThroughBilling ``` -### [Set Up Guide in Consuming Tenant Admin Center](../../admin-exp/consuming-tenant-admin/cta.md#set-up-billing-for-pass-through-app) +### [Set Up Guide in Consuming Tenant Admin Center](../consuming-tenant-admin/cta.md#set-up-billing-for-pass-through-app) 1. In [Microsoft 365 admin center](https://admin.microsoft.com/), select **Setup**, and the view the **Files and Content** section. Select **Automate Content with Microsoft Syntex.** - ![Microsoft 365 admin center Files and Content](../../../images/DTCBilling1.png) + ![Microsoft 365 admin center Files and Content](../../images/DTCBilling1.png) 1. Select **Go to Syntex settings**. 1. Select **Apps** under **Syntex services for**, select **SharePoint Embedded** - ![Microsoft 365 admin center SharePoint Embedded Billing setting](../../../images/DTCBilling2.png) + ![Microsoft 365 admin center SharePoint Embedded Billing setting](../../images/DTCBilling2.png) 1. Follow the instructions on the **SharePoint Embedded** flyer to turn on SharePoint Embedded apps. ## SharePoint Embedded meters -Refer to the [SharePoint Embedded meters](meters.md) article to learn more about the supported pay-as-you-go meters. +To learn more about the supported pay-as-you-go meters, refer to the [SharePoint Embedded meters](meters.md) article. diff --git a/docs/embedded/concepts/admin-exp/billing/billingmanagement.md b/docs/embedded/administration/billing/billingmanagement.md similarity index 94% rename from docs/embedded/concepts/admin-exp/billing/billingmanagement.md rename to docs/embedded/administration/billing/billingmanagement.md index c308de4ce..b2e03cac5 100644 --- a/docs/embedded/concepts/admin-exp/billing/billingmanagement.md +++ b/docs/embedded/administration/billing/billingmanagement.md @@ -21,7 +21,7 @@ The Microsoft Cost Management portal provides a comprehensive overview of your c 1. Once signed in, locate the left-hand navigation menu. 1. Select on "Cost Management + Billing". If it's not visible, you can search for it using the search bar at the top of the portal. - ![Cost Management](../../../images/billmanag1.png) + ![Cost Management](../../images/billmanag1.png) ### Select Your Subscription @@ -39,7 +39,7 @@ The Microsoft Cost Management portal provides a comprehensive overview of your c 1. In the Cost Analysis page, you can customize the date range to view costs for specific periods. 1. Use the filters to break down costs by tags - app ID, tenant ID or container type ID. Filters can also set by Meters, Resources etc. Refer to the [SharePoint Embedded meters](meters.md) article to learn more about the pay-as-you-go meters supported. -![Meters](../../../images/billmanag2.png) +![Meters](../../images/billmanag2.png) ### Download Invoices @@ -51,7 +51,7 @@ The Microsoft Cost Management portal provides a comprehensive overview of your c 1. To better manage your spending, you can set up budgets and alerts. 1. Select "Budgets" under the Cost Management section. - ![Budgets](../../../images/billmanag3.png) + ![Budgets](../../images/billmanag3.png) 1. Create a new budget by specifying the amount and the time period. 1. Set up alerts to notify you when spending approaches or exceeds your budget. diff --git a/docs/embedded/concepts/admin-exp/billing/meters.md b/docs/embedded/administration/billing/meters.md similarity index 62% rename from docs/embedded/concepts/admin-exp/billing/meters.md rename to docs/embedded/administration/billing/meters.md index b069744e7..e2b2be709 100644 --- a/docs/embedded/concepts/admin-exp/billing/meters.md +++ b/docs/embedded/administration/billing/meters.md @@ -1,21 +1,16 @@ --- title: SharePoint Embedded Billing Meters description: This article describes the meters in SharePoint Embedded. -ms.date: 05/21/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- # SharePoint Embedded Billing Meters -SharePoint Embedded employs a pay-as-you-go (PAYG) billing model through an Azure subscription. Billing is determined by how much data in GB you store in SharePoint Embedded, transactions used to access and modify the container and container contents, and data that is egressed from SharePoint Embedded platform. Each of these factors contributes to the overall cost, ensuring that you only pay for the resources and services you use. You can view this usage and billing details in the [Azure Cost Management](https://ms.portal.azure.com/). Both Standard Billing container type and Pass-through Billing container type will use the same meters. +SharePoint Embedded employs a pay-as-you-go (PAYG) billing model through an Azure subscription. Billing is determined by how much data in GB you store in SharePoint Embedded, transactions used to access and modify the container and container contents, and data that is egressed from the SharePoint Embedded platform. Each of these factors contributes to the overall cost, ensuring that you only pay for the resources and services you use. You can view this usage and billing details in the [Azure Cost Management](https://ms.portal.azure.com/). Both Standard Billing container type and Pass-through Billing container type will use the same meters. -SharePoint Embedded has three billing meters as shown. Refer to the [product page](https://adoption.microsoft.com/en-us/sharepoint/embedded/) for pricing details +SharePoint Embedded has three billing meters as shown. Refer to the [product page](https://adoption.microsoft.com/en-us/sharepoint/embedded/) for pricing details. -|                 SharePoint Embedded Service Meters                          |                     Meter Unit                      | -| :--------------------------------: | :----------: | -| Storage | $/GB | -| API Transactions | $/Transactions | -| Egress | $/GB | ## Storage @@ -23,7 +18,7 @@ Storage consumption meters in SharePoint Embedded apply to the storage used by f ## API Transactions -Each Microsoft Graph call made explicitly by the SharePoint Embedded application are counted one transaction and customers are billed based on the transaction count. See the [examples](/graph/api/resources/filestoragecontainer) of Microsoft Graph calls that can be made by a SharePoint Embedded application. +Each Microsoft Graph call made explicitly by the SharePoint Embedded application is counted as one transaction and customers are billed based on the transaction count. See the [examples](/graph/api/resources/filestoragecontainer) of Microsoft Graph calls that can be made by a SharePoint Embedded application. However, calls made by internal services to the containers, which the application has no control over, are **not** charged. Some examples of such nonchargeable transactions include: diff --git a/docs/embedded/concepts/admin-exp/consuming-tenant-admin/cta.md b/docs/embedded/administration/consuming-tenant-admin/cta.md similarity index 93% rename from docs/embedded/concepts/admin-exp/consuming-tenant-admin/cta.md rename to docs/embedded/administration/consuming-tenant-admin/cta.md index 359c29e56..786aa6acf 100644 --- a/docs/embedded/concepts/admin-exp/consuming-tenant-admin/cta.md +++ b/docs/embedded/administration/consuming-tenant-admin/cta.md @@ -1,7 +1,7 @@ --- title: Consuming Tenant Admin description: This article describes the role and responsibilities of Consuming Tenant Admin in SharePoint Embedded. -ms.date: 05/21/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -23,7 +23,7 @@ For information on [SharePoint Embedded Admin](../adminrole.md) ## Administration Tools -Consuming tenant admins can manage SharePoint Embedded applications with +Consuming tenant admins can manage SharePoint Embedded applications with the following options: ### SharePoint Online Management Shell @@ -35,7 +35,7 @@ On PowerShell, the SharePoint Embedded Admin can run the following cmdlets: 1. Edit the sensitivity label on a container 1. Set sharing capability configuration on a container -For information on consuming tenant admin in [PowerShell](./ctapowershell.md) +For information on consuming tenant admin in [PowerShell](../consuming-tenant-admin/ctapowershell.md) ### SharePoint Administrator Center @@ -50,11 +50,11 @@ For information on consuming tenant admin in SharePoint Admin see [container man ## Security and Compliance Administration -SharePoint Embedded uses Microsoft’s comprehensive compliance and data governance solutions to help organizations manage risks, protect, and govern sensitive data, and respond to regulatory requirements. Security and compliance solutions work in a similar manner in the SharePoint Embedded platform as they do today in the Microsoft 365 platform so that data is stored in a secure, protected way that meets customers’ business and compliance policies while making it easy for Compliance and SharePoint Administrators to enforce critical security and compliance policies on the content. For information on supported security and compliance capabilities, see [Security and Compliance](../../security-and-compliance.md). +SharePoint Embedded uses Microsoft’s comprehensive compliance and data governance solutions to help organizations manage risks, protect, and govern sensitive data, and respond to regulatory requirements. Security and compliance solutions work in a similar manner in the SharePoint Embedded platform as they do today in the Microsoft 365 platform so that data is stored in a secure, protected way that meets customers’ business and compliance policies while making it easy for Compliance and SharePoint Administrators to enforce critical security and compliance policies on the content. For information on supported security and compliance capabilities, see [Security and Compliance](../../compliance/security-and-compliance.md). ## Set Up Billing for Pass-through App -To use Pass-through SharePoint Embedded App, SharePoint Embedded Admin needs to set up Microsoft Syntex billing in [Microsoft 365 admin center](https://admin.microsoft.com/). No user can access any Pass-through SharePoint Embedded apps before a valid billing is set up for SharePoint Embedded platform. +To use Pass-through SharePoint Embedded App, SharePoint Embedded Admin needs to set up Microsoft Syntex billing in [Microsoft 365 admin center](https://admin.microsoft.com/). No user can access any Pass-through SharePoint Embedded apps before a valid billing is set up for the SharePoint Embedded platform. ### [Meters](../billing/meters.md) @@ -74,11 +74,13 @@ SharePoint Embedded has three billing meters as shown. Refer to the [product pag 1. A valid Azure resource group is required. You can create one by following the steps here to [create a resource group](/azure/azure-resource-manager/management/manage-resource-groups-portal). 1. In [Microsoft 365 admin center](https://admin.microsoft.com/), select **Setup**, and the view the **Files and Content** section. Select **Automate Content with Microsoft Syntex.** - ![Microsoft 365 admin center Files and Content](../../../images/DTCBilling1.png) + ![Microsoft 365 admin center Files and Content](../../images/DTCBilling1.png) 1. Select **Go to Syntex settings**. 1. Select **Apps** under **Syntex services for**, select **SharePoint Embedded** -![Microsoft 365 admin center SharePoint Embedded Billing setting](../../../images/DTCBilling2.png) + + ![Microsoft 365 admin center SharePoint Embedded Billing setting](../../images/DTCBilling2.png) + 1. Follow the instructions on the **SharePoint Embedded** flyer to turn on SharePoint Embedded apps. ### [Billing Management](../billing/billingmanagement.md) diff --git a/docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctaUX.md b/docs/embedded/administration/consuming-tenant-admin/ctaUX.md similarity index 86% rename from docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctaUX.md rename to docs/embedded/administration/consuming-tenant-admin/ctaUX.md index c986d863f..424850d11 100644 --- a/docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctaUX.md +++ b/docs/embedded/administration/consuming-tenant-admin/ctaUX.md @@ -22,11 +22,11 @@ The following actions are supported in SharePoint Admin Center: **Global admin** will also see "Active Containers" and "Deleted Containers" page along with Site administration pages when they sign in to SharePoint Admin Center. -![Active Containers global admin](../../../images/ctaux1.png) +![Active Containers global admin](../../images/ctaux1.png) **SharePoint Embedded admin** will only see "Active Containers" and "Deleted Containers" page when they sign in to SharePoint Admin Center. -![Active Containers SPE admin](../../../images/ctaux2.png) +![Active Containers SPE admin](../../images/ctaux2.png) ## Active Containers @@ -40,7 +40,7 @@ The Active Containers page displays all the active containers within the tenant, 1. **Sensitivity label :** Name of the label assigned to the container 1. **Created on :** Date and time when the container was created -![Active Container Properties](../../../images/ctaux3.png) +![Active Container Properties](../../images/ctaux3.png) ### View details of a container @@ -48,15 +48,15 @@ The detailed container view provides a deeper dive into container-specific metad 1. **General:** This panel displays all the general metadata about a container, usage, and configuration settings. - ![Container Details](../../../images/ctaux4.png) + ![Container Details](../../images/ctaux4.png) 1. **Membership:** This panel shows the user permissions for different users associated with the container. > [!IMPORTANT] -> The SharePoint Embedded platform supports four distinct [roles](../../app-concepts/sharing-and-perm.md): Owner, Manager, Writer, and Reader. The SharePoint Embedded application on your tenant may not utilize all four roles and might refer to these roles using different names. +> The SharePoint Embedded platform supports four distinct [roles](../../development/sharing-and-perm.md): Owner, Manager, Writer, and Reader. The SharePoint Embedded application on your tenant may not utilize all four roles and might refer to these roles using different names. > -![SharePoint Embedded Membership Roles](../../../images/ctaux5.png) +![SharePoint Embedded Membership Roles](../../images/ctaux5.png) ## Deleted Containers @@ -71,12 +71,11 @@ The deleted containers page lists all containers in the tenants deleted containe 1. Created on 1. **Deleted on**: Date and time when the container was deleted. -![Container Deletion](../../../images/ctaux6.png) +![Container Deletion](../../images/ctaux6.png) ## Delete a container > [!WARNING] -> > Deleting a container may cause unexpected issues for the SharePoint Embedded application it belongs to and may interrupt the application's usage. This action should only be performed by admins when absolutely necessary. Deleting a container can have implications on the functionality of a SharePoint Embedded app, Here are some examples of the potential issues that an application can encounter when deleting a container. @@ -86,15 +85,15 @@ Deleting a container can have implications on the functionality of a SharePoint A container can be deleted from the Active containers page for any business reason by the CTA. By default, the delete button is deactivated. On selecting a container, the delete button is activated. The CTA can then select the delete button. -![Container Deletion Process](../../../images/ctaux7.png) +![Container Deletion Process](../../images/ctaux7.png) This opens a side panel that warns the user about the effect on the associated SPE application due to the deletion of a container and inform the user about the restoration policy. The CTA can at this stage either cancel the panel and go back to the active containers page or proceed further with the deleting by clicking on “Delete container”. -![Container deletion selection](../../../images/ctaux8.png) +![Container deletion selection](../../images/ctaux8.png) The selected container is successfully deleted and moved into the deleted containers page. -![Deleted SPE Container](../../../images/ctaux9.png) +![Deleted SPE Container](../../images/ctaux9.png) **Deleted containers are permanently purged after 93 days unless there is a retention policy applied to the containers** @@ -102,11 +101,11 @@ The selected container is successfully deleted and moved into the deleted contai A container in the deleted container collection can be restored on the Deleted containers page by selecting the corresponding containers by selecting the "Restore" link -![Restore Button SPE Container](../../../images/ctaux10.png) +![Restore Button SPE Container](../../images/ctaux10.png) Restoration of the container happens in the background and the status of the same is displayed on the top-right corner of the page. Upon successful restoration, the container will be available in the Active Containers page. -![Restored SPE Container](../../../images/ctaux11.png) +![Restored SPE Container](../../images/ctaux11.png) ## Permanently delete a container @@ -118,15 +117,15 @@ The CTA can permanently delete a deleted container from the deleted container co The CTA selects the container to be permanently deleted. The “Permanently delete” button is enabled. -![Permanent SPE Container deletion](../../../images/ctaux12.png) +![Permanent SPE Container deletion](../../images/ctaux12.png) Upon clicking the button, a pop-up appears. warning the CTA on the action they're performing. If sure, the CTA can proceed and select on “Delete”. Otherwise the CTA can cancel the action. -![Container Deletion warning](../../../images/ctaux13.png) +![Container Deletion warning](../../images/ctaux13.png) Upon clicking Delete, the container is permanently deleted and the status of the same appears in the top-right corner of the page. Upon successful deletion, the container is permanently removed from the deleted container collection and can't be restored. -![SPE Container Deleted](../../../images/ctaux15-n.png) +![SPE Container Deleted](../../images/ctaux15-n.png) ## Coming Soon diff --git a/docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctapowershell.md b/docs/embedded/administration/consuming-tenant-admin/ctapowershell.md similarity index 90% rename from docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctapowershell.md rename to docs/embedded/administration/consuming-tenant-admin/ctapowershell.md index fa33e43ab..6a46cc10d 100644 --- a/docs/embedded/concepts/admin-exp/consuming-tenant-admin/ctapowershell.md +++ b/docs/embedded/administration/consuming-tenant-admin/ctapowershell.md @@ -1,7 +1,7 @@ --- title: Consuming Tenant Admin PowerShell description: This article describes how an admin can manage containers through SPO PowerShell. -ms.date: 10/08/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -11,14 +11,14 @@ The consuming tenant administrator can manage containers using PowerShell comman For more information on assigning the SharePoint Embedded admin role, see the [SharePoint Embedded Administrator](../adminrole.md). -The following are some of the container-specific commands actions currently supported on PowerShell: +The following are some of the container-specific command actions currently supported on PowerShell: ### Application administration - Get the details of all SharePoint Embedded applications registered in the tenant -- Get the details of all SharePoint Embedded applications the tenant sorted basis storage +- Get the details of all SharePoint Embedded applications in the tenant sorted by storage - Get the details of a specific SharePoint Embedded application in the tenant -- Get the permissions of owning applications in the tenant +- Get the permissions of the owning applications in the tenant - Configure the External sharing setting of a container of a SharePoint Embedded application in the tenant ### Container administration @@ -40,18 +40,18 @@ To get started using PowerShell to manage SharePoint Embedded, you have to insta > [!IMPORTANT] > You must use the latest version of SharePoint PowerShell to use container administration cmdlets. + ## Application Administration With PowerShell cmdlets, tenant admin can get a list of SharePoint Embedded applications registered in their Microsoft 365 tenancy. They can also view all the applications that have "read" and/or "write" access and the level of access to these SharePoint Embedded applications. -The following commands can be used to manage SharePoint Embedded applications registered on your Microsoft 365 tenants. +The following commands can be used to manage SharePoint Embedded applications registered on your Microsoft 365 tenants: ```powershell Get-SPOApplication ``` ```powershell - Get-SPOApplication -OwningApplicationId ``` @@ -59,7 +59,7 @@ For more information, see [Get-SPOApplication cmdlet](/powershell/module/sharepo ### View guest application permissions -Admins can view the guest application permissions for any SharePoint Embedded application within their tenant using this command. +Admins can view the guest application permissions for any SharePoint Embedded application within their tenant using this command: ```powershell Get-SPOApplication -OwningApplicationId -ApplicationId @@ -83,25 +83,25 @@ Set-SPOApplication -OwningApplicationId – SharingCapabil ### View Containers -Admins can get a list of all the containers for a SharePoint Embedded application using the following commands. This command lists all the active containers within the application. +Admins can get a list of all the containers for a SharePoint Embedded application using the following commands. This command lists all the active containers within the application: ```powershell -Get-SPOContainer -OwningApplicationId |FT +Get-SPOContainer -OwningApplicationId | FT ``` The `OwningApplicationId` is the ID of the SharePoint Embedded application. For more information about using this command, see [Get-SPOContainer cmdlet](/powershell/module/sharepoint-online/get-spocontainer). -> [!Note] +> [!NOTE] > To enumerate Microsoft Loop containers, use Owning App ID: **a187e399-0c36-4b98-8f04-1edc167a0996** for all the cmdlets of container administration. ### View containers sorted by storage Consuming tenant admins can also get a list of all the containers of a SharePoint Embedded application sorted by storage using the following commands. ```powershell -Get-SPOContainer -OwningApplicationId -SortByStorage |FT +Get-SPOContainer -OwningApplicationId -SortByStorage | FT ``` -`` can be Ascending; Descending +`` can be `Ascending` or `Descending`. ### View details of a Container @@ -113,6 +113,7 @@ Consuming tenant admins can use the following command: Get-SPOContainer -Identity Get-SPOContainer -Identity ``` + Here, the `containerId` is the ID of the container & `siteURL` is the URL of the SharePoint site that is associated with the container. ### Sensitivity Label of a container @@ -129,7 +130,7 @@ Consuming tenant admins can remove the sensitivity label of a container of an ap Set-SPOContainer -Identity -RemoveLabel ``` -The `ContainerId` is the ID of the container whose sensitivity label is being set +The `ContainerId` is the ID of the container whose sensitivity label is being set. ### Delete containers @@ -194,4 +195,4 @@ Set-SPOApplicationPermission ## Security and Compliance Administration -SharePoint Embedded uses Microsoft’s comprehensive compliance and data governance solutions to help organizations manage risks, protect, and govern sensitive data, and respond to regulatory requirements. Security and compliance solutions work similarly in the SharePoint Embedded platform as they do today in Microsoft 365 platform so that data is stored in a secure, protected way that meets customers’ business and compliance policies while making it easy for Compliance and SharePoint Administrators to enforce critical security and compliance policies on the content. For information on supported security and compliance capabilities, see [Security and Compliance](../../security-and-compliance.md). +SharePoint Embedded uses Microsoft’s comprehensive compliance and data governance solutions to help organizations manage risks, protect, and govern sensitive data, and respond to regulatory requirements. Security and compliance solutions work similarly in the SharePoint Embedded platform as they do today in the Microsoft 365 platform so that data is stored in a secure, protected way that meets customers’ business and compliance policies while making it easy for Compliance and SharePoint Administrators to enforce critical security and compliance policies on the content. For information on supported security and compliance capabilities, see [Security and Compliance](../../compliance/security-and-compliance.md). diff --git a/docs/embedded/concepts/admin-exp/developer-admin/dev-admin.md b/docs/embedded/administration/developer-admin/dev-admin.md similarity index 82% rename from docs/embedded/concepts/admin-exp/developer-admin/dev-admin.md rename to docs/embedded/administration/developer-admin/dev-admin.md index 14871ae6d..f9621225e 100644 --- a/docs/embedded/concepts/admin-exp/developer-admin/dev-admin.md +++ b/docs/embedded/administration/developer-admin/dev-admin.md @@ -1,14 +1,14 @@ --- title: Developer Admin description: This article describes the role and responsibilities of Developer Tenant Admin in SharePoint Embedded. -ms.date: 05/21/2024 +ms.date: 03/03/2024 ms.localizationpriority: high --- # Developer Admin ## Overview -Organizations that create file management applications with the help of SharePoint Embedded are referred to as Developer Ecosystem and the persona responsible for the management of the applications is called the developer administrator. Developer administrators can perform various administrative actions on the SharePoint Embedded applications created and on the container types, the blueprint for the containers that hold the content of instances of the application. They can also create and manage trial container types to get started with the SharePoint Embedded experience, attach billing profiles to their application, etc. In this article, we describe the enterprise manageability features that are supported in the developer administrator role. +Organizations that use SharePoint Embedded for file management are included in the Developer Ecosystem, which is overseen by developer administrators. These administrators are responsible for managing applications and the container types that have containers, the foundation of an application that needs to store content. Additionally, they can connect billing profiles to their applications. This article describes the management features available to developer administrators. ## Developer Admin Role @@ -17,7 +17,7 @@ Organizations that create file management applications with the help of SharePoi > > Global Administrators can continue to execute SharePoint Embedded container cmdlets. -A Microsoft 365 SharePoint Embedded Administrator serves as the developer admin. Global Administrators in Microsoft 365 can assign users the SharePoint Embedded Administrator. The Global Administrator role already has all the permissions of the SharePoint Embedded Administrator role. The SharePoint Embedded Role is available in Microsoft Entra and Microsoft 365 Admin Center. For information on [SharePoint Embedded Administrator](../adminrole.md) role. +A Microsoft 365 SharePoint Embedded Administrator serves as the developer admin. Global Administrators in Microsoft 365 can assign users the SharePoint Embedded Administrator role. The Global Administrator role already has all the permissions of the SharePoint Embedded Administrator role. The SharePoint Embedded Role is available in Microsoft Entra and Microsoft 365 Admin Center. For information on [SharePoint Embedded Administrator](../adminrole.md) role. The following are some of the container-specific commands actions currently supported on PowerShell: @@ -26,10 +26,11 @@ The following are some of the container-specific commands actions currently supp - Creation of Standard container type with direct to customer billing - Creation of Trial container type - Container type management - - Viewing of container types in the developer tenant - - Editing properties of a container type in the developer tenant - - Configuration properties of a container type in the developer tenant + - Viewing of container types in the tenant + - Editing properties of a container type in the tenant + - Configuration properties of a container type in the tenant - Manage billing of applications/ container types for standard billing + - Removing a container type in the tenant ### Billing responsibilities of the developer admin @@ -54,7 +55,7 @@ To get started using PowerShell to manage SharePoint Embedded, you have to insta ### Creation of container types -The developer administrator can create a container type using PowerShell cmdlets. Each container type is associated to an application ID, a one to one mapping, and an Azure subscription ID. The developer administrator can also create Trial container types that have a validity of 30 days to test out SharePoint Embedded. The following commands can be used to create SharePoint Embedded container types on the developer admin’s tenant: +The developer administrator can create a container type using PowerShell cmdlets. Each container type is associated to an application ID, a one to one mapping, and an Azure subscription ID. The developer administrator can also create Trial container types that have a validity of 30 days to test out SharePoint Embedded. The following [commands](/powershell/module/sharepoint-online/new-spocontainertype) can be used to create SharePoint Embedded container types on the developer admin’s tenant: Standard billing container type: diff --git a/docs/embedded/concepts/security-and-compliance.md b/docs/embedded/compliance/security-and-compliance.md similarity index 83% rename from docs/embedded/concepts/security-and-compliance.md rename to docs/embedded/compliance/security-and-compliance.md index 1a828f530..af95b70a3 100644 --- a/docs/embedded/concepts/security-and-compliance.md +++ b/docs/embedded/compliance/security-and-compliance.md @@ -1,17 +1,17 @@ --- title: Security and Compliance description: Details Security and Compliance methods provided by SharePoint Embedded -ms.date: 05/21/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- # Security and Compliance -Microsoft's SharePoint Embedded provides a faster way to create secure and compliant documents stored in various applications. SharePoint Embedded uses Microsoft’s comprehensive compliance and data governance solutions to help organizations manage risks, protect, and govern sensitive data, and respond to regulatory requirements. Security and compliance solutions work in a similar manner in the SharePoint Embedded platform as they do today on the Microsoft 365 (Microsoft 365) platform so that data is stored in a secure, protected way that meets customers’ business and compliance policies while making it easy for Compliance and SharePoint Administrators to enforce critical security and compliance policies on the content. +Microsoft's SharePoint Embedded provides a faster way to create secure and compliant documents stored in various applications. SharePoint Embedded uses Microsoft’s comprehensive compliance and data governance solutions to help organizations manage risks, protect, and govern sensitive data, and respond to regulatory requirements. Security and compliance solutions work similarly in the SharePoint Embedded platform as they do today on the Microsoft 365 (Microsoft 365) platform so that data is stored in a secure, protected way that meets customers’ business and compliance policies while making it easy for Compliance and SharePoint Administrators to enforce critical security and compliance policies on the content. In this article, we describe the security and compliance policies that are supported today on content that resides in the SharePoint Embedded platform, and their capabilities and limitations. -Since SharePoint Embedded by design doesn’t have any user interface, some Compliance scenarios necessitating user interaction aren't natively supported. The owning application that governs the container can choose to support these scenarios and provide the optimal experience to end users by using existing Microsoft Graph API. +Since SharePoint Embedded by design doesn’t have any user interface, some Compliance scenarios necessitating user interaction aren't natively supported. The owning application that governs the container can choose to support these scenarios and provide the optimal experience to end users by using the Microsoft Graph. ## Compliance Policies using Microsoft Purview @@ -23,13 +23,13 @@ Currently, SharePoint Embedded supports the following Compliance features under Get-SPOApplication ``` -1. Retrieve a list of containers in a SharePoint Embedded application by providing the ApplicationID returned in Step #1 +1. Retrieve a list of containers in a SharePoint Embedded application by providing the ApplicationID returned in Step #1: ```powershell Get-SPOContainer -OwningApplicationId ``` -1. Retrieve the details of a container including the ContainerSiteURL by providing the ContainerID returned in Step #2. +1. Retrieve the details of a container including the ContainerSiteURL by providing the ContainerID returned in Step #2: ```powershell Get-SPOContainer -OwningApplicationId -Identity @@ -48,15 +48,16 @@ In addition to existing file properties, Audit events related to SharePoint Embe ![Audit events](../images/sc1.png) + ### eDiscovery Compliance Admins can use eDiscovery tools in Microsoft Purview to search/hold/export content hosted in the SharePoint Embedded platform. For more information on eDiscovery, see [Microsoft Purview eDiscovery solutions](/purview/ediscovery). -To perform an eDiscovery Search on all SharePoint Embedded content, Admins should select on **'All'** SharePoint Sites when configuring the eDiscovery Search in Microsoft Purview. This enables the Search for content stored in all SharePoint Sites and all SharePoint Embedded containers. +To perform an eDiscovery Search on all SharePoint Embedded content, Admins should select **All** SharePoint Sites when configuring the eDiscovery Search in Microsoft Purview. This enables the Search for content stored in all SharePoint Sites and all SharePoint Embedded containers. ![eDiscovery search](../images/sc2.png) -To limit the eDiscovery Search to one/few SharePoint Embedded containers, Admins can **'Choose sites'** under the **‘SharePoint sites’** workload and provide the desired container URL. +To limit the eDiscovery Search to one/few SharePoint Embedded containers, Admins can **Choose sites** under the **SharePoint sites** workload and provide the desired container URL. ![choose sites in eDiscovery search](../images/sc3.png) @@ -64,7 +65,7 @@ To limit the eDiscovery Search to one/few SharePoint Embedded containers, Admins SharePoint Embedded supports retention and holds policies on content stored in its applications using the Microsoft Purview compliance portal. For more information on DLM, see [Learn about Microsoft Purview Data Lifecycle Management](/purview/data-lifecycle-management). -The existing retention policy is applied to all SharePoint Embedded containers if the policy is configured for 'All sites'. Similarly, creating a new retention/hold policy on *All* SharePoint Sites workload automatically enforces the policy on all SharePoint Sites and all containers within SharePoint Embedded. +The existing retention policy is applied to all SharePoint Embedded containers if the policy is configured for **All sites**. Similarly, creating a new retention/hold policy on *all* SharePoint Sites workload automatically enforces the policy on all SharePoint Sites and all containers within SharePoint Embedded. ![retention policy](../images/sc4.png) @@ -88,7 +89,7 @@ Admins can also restrict the enforcement of a DLP policy to specific SharePoint Several scenarios supported by DLP today need user interaction that isn’t natively supported by SharePoint Embedded. For instance, based on its configuration, a DLP policy that prevents external sharing might allow end users to provide a business justification to override the policy. The client app that renders this DLP-flagged file item needs to support such user interactions. -Policy tips are shown today for files hosted in SharePoint so that users are kept informed about DLP-flagged file items and corresponding restrictions. Similarly, for policy tips to be displayed for files hosted in SharePoint Embedded, the client app can choose to provide more support by utilizing the existing Graph APIs for this purpose. +Policy tips are shown today for files hosted in SharePoint so that users are kept informed about DLP-flagged file items and corresponding restrictions. Similarly, for policy tips to be displayed for files hosted in SharePoint Embedded, the client app can choose to provide more support by utilizing the Microsoft Graph for this purpose. ## Security features @@ -126,4 +127,4 @@ These settings are available with the following PowerShell cmdlet. The `Authoriz Set-SPOContainer -Identity -ConditionalAccessPolicy ``` -To learn more about Conditional Access Policy, see [Control access from unmanaged devices](/sharepoint/control-access-from-unmanaged-devices). +To learn more about conditional access policies, see [Control access from unmanaged devices](/sharepoint/control-access-from-unmanaged-devices). diff --git a/docs/embedded/concepts/app-concepts/app-architecture.md b/docs/embedded/development/app-architecture.md similarity index 92% rename from docs/embedded/concepts/app-concepts/app-architecture.md rename to docs/embedded/development/app-architecture.md index 7f1220b94..d3eb1d73c 100644 --- a/docs/embedded/concepts/app-concepts/app-architecture.md +++ b/docs/embedded/development/app-architecture.md @@ -9,7 +9,7 @@ ms.localizationpriority: high All files and documents in SharePoint Embedded are stored in containers, with all containers and container content created and stored within a Microsoft 365 Tenant. All containers and container content are created, managed, and interacted via the SharePoint Embedded application using Microsoft Graph. -![SharePoint Embedded Architecture](../../images/SPEArch.png) +![SharePoint Embedded Architecture](../images/SPEArch.png) ## SharePoint Embedded application @@ -25,7 +25,7 @@ The same Microsoft Entra ID tenant can be both owning and consuming tenant of a A container is the basic storage unit in SharePoint Embedded. Also, a container defines a security and compliance boundary. -A container type is a SharePoint Embedded resource that defines the relationship, access privileges, and billing accountability between an application and a set of containers. Also, the container type defines behaviors on the set of containers. Learn more about [container types](containertypes.md). +A container type is a SharePoint Embedded resource that defines the relationship, access privileges, and billing accountability between an application and a set of containers. Also, the container type defines behaviors on the set of containers. Learn more about [container types](../getting-started/containertypes.md). The container type is represented on each container as an immutable property and is used across the entire SharePoint Embedded ecosystem. Each container type is strongly coupled with one SharePoint Embedded application, which is referred to as the owning application. The owning application developer (the owning tenant) is responsible for creating and managing their container types. SharePoint Embedded mandates a 1:1 relationship between owning application and container type. @@ -35,11 +35,11 @@ An application's access to containers and container content is determined by a s In this illustration, multiple applications are deployed in the tenancy, including two apps developed by ISVs (App 1 and 2) and a LOB app (App 3). Each application can access only to the stack of containers of the container type they own. -![SPE multi app architecture](../../images/SPECTDedicated.png) +![SPE multi app architecture](../images/SPECTDedicated.png) In this illustration, both App 1 and App 2 in the tenancy have access to the same container type. Both apps can access the stack of the containers of that type. -![SPE multi app architecture sharing Container Types](../../images/SPECTShared.png) +![SPE multi app architecture sharing Container Types](../images/SPECTShared.png) #### Example @@ -47,4 +47,4 @@ Contoso is an ISV and built a human resource management application on SharePoin In this scenario, both the human resource management application developed by Contoso and the auditing application developed by Fabrikam have their own container type. Contoso is the owning tenant of the human resource management application; and the application is the owning app for its container Type. Likewise, Fabrikam is the owning tenant the auditing application; and the application is the owning app for its container type. In addition, Fabrikam is the consuming tenant for both applications. -![Example](../../images/apparchexample.png) +![Example](../images/apparchexample.png) diff --git a/docs/embedded/concepts/app-concepts/auth.md b/docs/embedded/development/auth.md similarity index 91% rename from docs/embedded/concepts/app-concepts/auth.md rename to docs/embedded/development/auth.md index e4044a1d4..52bbc43a5 100644 --- a/docs/embedded/concepts/app-concepts/auth.md +++ b/docs/embedded/development/auth.md @@ -51,12 +51,12 @@ SharePoint Embedded operations [without a user](/graph/auth-v2-service) require Currently, there are two types of operations that aren't accessible via Microsoft Graph: -- [Container type management](containertypes.md) on owning tenants, which are performed via PowerShell cmdlets. -- [Container type registration](register-api-documentation.md) on consuming tenants, exposed via SharePoint REST API v2. +- [Container type management](../getting-started/containertypes.md) on owning tenants, which are performed via PowerShell cmdlets. +- [Container type registration](../getting-started/register-api-documentation.md) on consuming tenants, exposed via SharePoint REST API v2. -To perform [container type management](containertypes.md) operations, you must be a SharePoint Embedded Administrator or Global Administrator. +To perform [container type management](../getting-started/containertypes.md) operations, you must be a SharePoint Embedded Administrator or Global Administrator. -To [register a container type](register-api-documentation.md), you must request the `Container.Selected` permission on the `Office 365 SharePoint Online` resource. +To [register a container type](../getting-started/register-api-documentation.md), you must request the `Container.Selected` permission on the `Office 365 SharePoint Online` resource. | Scope name | Scope ID | Type | Operation | | :-------------------: | :----------------------------------: | :---------: | :-----------------------------------------------------------------------------------------------: | @@ -67,7 +67,7 @@ To [register a container type](register-api-documentation.md), you must request ### Container type application permissions -SharePoint Embedded applications need to be granted container type application permissions by the owner application before they can access containers of the given container type. Container type application permissions are granted to applications via [container type registration](./register-api-documentation.md). +SharePoint Embedded applications need to be granted container type application permissions by the owner application before they can access containers of the given container type. Container type application permissions are granted to applications via [container type registration](../getting-started/register-api-documentation.md). | Permission | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------ | @@ -114,6 +114,6 @@ Here are some actions you can take next: - Office 365 SharePoint Online (resourceAppId: `00000003-0000-0ff1-ce00-000000000000`) - `Container.Selected` (type: `Role`, ID: `19766c1b-905b-43af-8756-06526ab42875`) to register a container on consuming tenants 1. [Grant admin consent](/entra/identity/enterprise-apps/grant-admin-consent?pivots=portal) to your application on both owning and consuming tenants (which can be the same tenant). -1. [Create a new container type](containertypes.md) on the owning tenant. -1. [Register a container type](register-api-documentation.md) on the consuming tenant. +1. [Create a new container type](../getting-started/containertypes.md) on the owning tenant. +1. [Register a container type](../getting-started/register-api-documentation.md) on the consuming tenant. 1. [Create a container](/graph/api/filestoragecontainer-post) diff --git a/docs/embedded/concepts/content-experiences/office-experience.md b/docs/embedded/development/content-experiences/office-experience.md similarity index 100% rename from docs/embedded/concepts/content-experiences/office-experience.md rename to docs/embedded/development/content-experiences/office-experience.md diff --git a/docs/embedded/concepts/content-experiences/search-content.md b/docs/embedded/development/content-experiences/search-content.md similarity index 67% rename from docs/embedded/concepts/content-experiences/search-content.md rename to docs/embedded/development/content-experiences/search-content.md index 7d586f6a1..2e7f83a5f 100644 --- a/docs/embedded/concepts/content-experiences/search-content.md +++ b/docs/embedded/development/content-experiences/search-content.md @@ -1,7 +1,7 @@ --- title: Search SharePoint Embedded containers and content description: Overview on how to search SharePoint Embedded containers and content -ms.date: 08/15/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -16,7 +16,7 @@ Use the Microsoft Search API in Microsoft Graph to search SharePoint Embedded co ## Example 1: Search containers by container type -This example queries all containers by the specified container type with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all container instances of the specified container type in the tenant. +This example queries all containers by the specified container type with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all container instances (`drive`) of the specified container type in the tenant: ### Request @@ -90,7 +90,7 @@ Content-type: application/json ## Example 2: Search containers by title -This example queries all containers by a specified container display name and the SharePoint Embedded application didn't opt out from content discoverability on Microsoft 365. The response includes all container instances in the tenant that match the criteria. +This example queries all containers by a specified container display name and the SharePoint Embedded application didn't opt out from content discoverability on Microsoft 365. The response includes all container instances in the tenant that match the criteria: ### Request @@ -163,7 +163,7 @@ Content-type: application/json ## Example 3: Search containers by container description -This example queries all containers by the specified container type and container description, with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all container instances in the tenant that match the criteria. +This example queries all containers by the specified container type and container description, with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all container instances in the tenant that match the criteria: ### Request @@ -237,7 +237,7 @@ Content-type: application/json ## Example 4: Search for content by title in a specific container -This example queries all the content by a specific title in a specific container instance, with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all `driveItems` in the specific container instance that match the criteria. +This example queries all the content by a specific title in a specific container instance, with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all `driveItems` in the specific container instance that match the criteria: ### Request @@ -336,7 +336,7 @@ Content-type: application/json ## Example 5: Search by content -This example queries all the content by the specified words across all containers of a specific container type, with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all `driveItems` that match the criteria. +This example queries all the content by the specified words across all containers of a specific container type, with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all `driveItems` that match the criteria: ### Request @@ -433,7 +433,7 @@ Content-type: application/json ``` ## Example 6: Search containers by container custom property -This example queries all containers by the specified custom property key:value pair, with the SharePoint Embedded applicatio that has opted out from content discoverability on Microsoft 365. The response includes all containers that match the criteria. +This example queries all containers by the specified custom property key:value pair, with the SharePoint Embedded application that has opted out from content discoverability on Microsoft 365. The response includes all containers that match the criteria: > [!NOTE] > The custom property name must be appended with the text "OWSTEXT" in the query string. @@ -507,9 +507,9 @@ Content-type: application/json ] } ``` -## Example 7: Search for content with specific content properties in response body +## Example 7: Search for content with specific content properties in the response body and sort the results -This example queries container content by specific words and requires the response to include all specified attributes on the content. +This example queries container content by specific words and requires the response to include all specified attributes on the content. Properties that are [sortable](/sharepoint/technical-reference/crawled-and-managed-properties-overview) can be used to sort the results. ### Request @@ -545,7 +545,13 @@ Content-Type: application/json "lastModifiedBy", "fileSystemInfo", "fileSystemInfo" - ] + ], + "sortProperties": [ + { + "name": "Created", + "isDescending": false + } + ] } ] } @@ -629,7 +635,197 @@ Content-type: application/json } ``` -## Known Limitation +## Known Limitations - Search requests run in the context of the signed-in user. Search results are only scoped to enforce any access control applied to the items by the user. For example, search results will include all container or container content matching the search criteria and accessible by the user regardless of whether the SharePoint Embedded application is authorized to access. You should specify the desired container type by including the ContainerTypeId as part of your **queryString** when searching for containers or container content to ensure search results are properly scoped. - For your application to access the containers or container content in search results, it must have access permissions to the corresponding container types. + +## Enumerate (filter) SharePoint Embedded content + +Content can also be enumerated using URL parameters to return specific content in SharePoint Embedded containers. This does not use the search API to retrieve items. See the [enumerate query parameter](/graph/filter-query-parameter?tabs=http) for reference. + +## Example 1: enumerate content by a specific column property and view the results + +This example enumerates the specified container content by the column property that is on the item: + +### Request + +```HTTP +GET https://graph.microsoft.com/v1.0/drives/{{ContainerID}}/items?$filter=startswith(listitem/fields/{{ColumnProperty}}, '{{Value}}')&$expand=listitem($expand=fields) +``` + +### Response + +```HTTP +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives('b%21CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF')/items(listItem(fields()))", + "value": [ + { + "@odata.etag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"", + "@microsoft.graph.downloadUrl": "https://.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe/_layouts/15/download.aspx?UniqueId=b8051d89-836e-4b8e-bd2b-7634bac92825&Translate=false&tempauth=v1.eyJzaXRlaWQiOiJmOTZhZTQwOC0yOGFmLTQxYWQtODhhZC1kZGZmY2ZkYjc1ZmUiLCJhcHBfZGlzcGxheW5hbWUiOiJTUEUtQmFzZWJhbGwiLCJhcHBpZCI6ImZiN2NmNTIwLWNiMzMtNDViZi1hMjM4LWFlNTFkMzE2NjY1ZiIsImF1ZCI6IjAwMDAwMDAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMC9wdWNlbGlrZW50ZXJwcmlzZS5zaGFyZXBvaW50LmNvbUAxNTNhNmViZS1mZjYyLTRiY2UtYjFiYy1hMWVkYTNiYzY2NDUiLCJleHAiOiIxNzMxNjE3MDE3In0.CgoKBHNuaWQSAjY5EgsIzpKzp9W7wj0QBRoNMjAuMTkwLjEzNS40MioscW54cjFGalBneHh2N1lGTkp1dUpxTFZWdFFIS1hOQ2RlQ3EvUUk2aHhlcz0wuAE4AUIQoWPmC1YwAABF4iHcgCWrfkoQaGFzaGVkcHJvb2Z0b2tlbnIpMGguZnxtZW1iZXJzaGlwfDEwMDM3ZmZlOWE5NDg5ZGRAbGl2ZS5jb216ATKCARIJvm46FWL_zksRsbyh7aO8ZkWSAQVTdGV2ZZoBB1B1Y2VsaWuiASdzdGV2ZUBwdWNlbGlrZW50ZXJwcmlzZS5vbm1pY3Jvc29mdC5jb22qARAxMDAzN0ZGRTlBOTQ4OUREsgFyY29udGFpbmVyLnNlbGVjdGVkIGFsbGZpbGVzLnJlYWQgYWxsZmlsZXMud3JpdGUgY29udGFpbmVyLnNlbGVjdGVkIGFsbHNpdGVzLnJlYWQgYWxscHJvZmlsZXMucmVhZCBhbGxwcm9maWxlcy5yZWFkyAEB.tfaYgtjhQxMctJeHUWb9RU7CChHXqFHT0FaM9Dt7J9I&ApiVersion=2.1", + "createdDateTime": "2024-09-20T16:46:00Z", + "eTag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"", + "id": "01UELPCREJDUC3Q3UDRZF32K3WGS5MSKBF", + "lastModifiedDateTime": "2024-11-01T08:14:28Z", + "name": "ClaimExample-1.docx", + "size": 2299607, + "webUrl": "https://.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe/_layouts/15/Doc.aspx?sourcedoc=%7BB8051D89-836E-4B8E-BD2B-7634BAC92825%7D&file=ClaimExample-1.docx&action=default&mobileredirect=true", + "cTag": "\"c:{B8051D89-836E-4B8E-BD2B-7634BAC92825},5\"", + "commentSettings": { + "commentingDisabled": { + "isDisabled": false + } + }, + "createdBy": { + "application": { + "displayName": "SPEContainerType", + "id": "fb7cf520-cb33-45bf-a238-ae51d316665f" + }, + "user": { + "displayName": "SharePoint App" + } + }, + "lastModifiedBy": { + "application": { + "displayName": "SPEContainerType", + "id": "fb7cf520-cb33-45bf-a238-ae51d316665f" + }, + "user": { + "displayName": "Steve Pucelik", + "email": "Steve@.onmicrosoft.com" + } + }, + "parentReference": { + "driveId": "b!CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF", + "driveType": "other", + "id": "01UELPCRF6Y2GOVW7725BZO354PWSELRRZ", + "path": "/drives/b!CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF/root:", + "sharepointIds": { + "listId": "e6e197c4-4ab3-43a8-b402-5983507c6385", + "listItemUniqueId": "c4782251-bdd3-4766-a747-b2a2f51c3a00", + "siteId": "f96ae408-28af-41ad-88ad-ddffcfdb75fe", + "siteUrl": "https://.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe", + "tenantId": "153a6ebe-ff62-4bce-b1bc-a1eda3bc6645", + "webId": "2705c2f8-33aa-4a72-8438-25114dc3203b" + } + }, + "file": { + "mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "hashes": { + "quickXorHash": "DMzi0kCsuukcHlMXiPX9tmTCXtA=" + } + }, + "fileSystemInfo": { + "createdDateTime": "2024-09-20T16:46:00Z", + "lastModifiedDateTime": "2024-11-01T08:14:28Z" + }, + "shared": { + "scope": "unknown" + }, + "listItem@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives('b%21CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF')/items('01UELPCREJDUC3Q3UDRZF32K3WGS5MSKBF')/listItem(fields())/$entity", + "listItem": { + "@odata.etag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"", + "createdDateTime": "2024-09-20T16:46:00Z", + "eTag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"", + "id": "23", + "lastModifiedDateTime": "2024-11-01T08:14:28Z", + "webUrl": "https://.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe/_layouts/15/Doc.aspx?sourcedoc=%7BB8051D89-836E-4B8E-BD2B-7634BAC92825%7D&file=ClaimExample-1.docx&action=default&mobileredirect=true", + "createdBy": { + "application": { + "displayName": "SPEContainerType", + "id": "fb7cf520-cb33-45bf-a238-ae51d316665f" + }, + "user": { + "displayName": "SharePoint App" + } + }, + "lastModifiedBy": { + "application": { + "displayName": "SPEContainerType", + "id": "fb7cf520-cb33-45bf-a238-ae51d316665f" + }, + "user": { + "displayName": "Steve Pucelik", + "email": "Steve@M.onmicrosoft.com" + } + }, + "parentReference": { + "id": "0", + "path": "Document Library", + "siteId": "f96ae408-28af-41ad-88ad-ddffcfdb75fe" + }, + "contentType": { + "id": "0x0101004368E78BC3115C4CAD94FEA35E0F9D90", + "name": "Document" + }, + "fields@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives('b%21CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF')/items('01UELPCREJDUC3Q3UDRZF32K3WGS5MSKBF')/listItem/fields/$entity", + "fields": { + "@odata.etag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"", + "id": "23", + "FileLeafRef": "ClaimExample-1.docx", + "": "", + "ContentType": "Document", + "Created": "2024-09-20T16:46:00Z", + "AuthorLookupId": "1073741822", + "Modified": "2024-11-01T08:14:28Z", + "EditorLookupId": "7", + "_CheckinComment": "", + "LinkFilenameNoMenu": "ClaimExample-1.docx", + "LinkFilename": "ClaimExample-1.docx", + "DocIcon": "docx", + "FileSizeDisplay": "2299607", + "ItemChildCount": "0", + "FolderChildCount": "0", + "_ComplianceFlags": "", + "_ComplianceTag": "", + "_ComplianceTagWrittenTime": "", + "_ComplianceTagUserId": "", + "_CommentCount": "", + "_LikeCount": "", + "_DisplayName": "Confidential \\ Internal only", + "AppAuthorLookupId": "1", + "AppEditorLookupId": "1", + "Edit": "0", + "_UIVersionString": "19.0", + "MediaServiceImageTags@odata.type": "#Collection(microsoft.graph.Json)", + "MediaServiceImageTags": [] + } + } + } + ] +} +``` + +## Example 2: Enumerate content by a specific column property and Order the results + +This example enumerates the specified container content by the column property that is on the item and will order the results by the column specified: + +### Request + +```HTTP +GET https://graph.microsoft.com/v1.0/drives/{{ContainerID}}/items?$filter=listitem/fields/{{ColumnProperty}} eq '{{Value}}'&$select=id,name,lastModifiedDateTime,size&$expand=listitem($expand=fields)&$orderby=createdDateTime desc +Headers: +Content-Type: application/json +Prefer: HonorNonIndexedQueriesWarningMayFailRandomly +``` + +> [!NOTE] +> +> When a container has more than 5,000 items and you are using the enumerate method with the OrderBy clause, you must include the following in the header of your request. +> +> `Content-Type: application/json` +> `Prefer: HonorNonIndexedQueriesWarningMayFailRandomly` +## Example 3: Enumerate content by mulitple column properties and Order the results + +This example enumerates the specified container content by the column property you specify and the name of the document (listitem/fields/FileLeafRef) that is on the item and will order the results by the column specified: + +### Request + +```HTTP +GET https://graph.microsoft.com/v1.0/drives/{{ContainerID}}/items?$filter=listitem/fields/{{ColumnProperty1}} eq '{{Value}}' AND listitem/fields/FileLeafRef eq '{{Value}}' &$select=id,name,lastModifiedDateTime,size&$expand=listitem($expand=fields)&$orderby=createdDateTime desc +Headers: +Content-Type: application/json +Prefer: HonorNonIndexedQueriesWarningMayFailRandomly +``` \ No newline at end of file diff --git a/docs/embedded/concepts/content-experiences/user-experiences-overview.md b/docs/embedded/development/content-experiences/user-experiences-overview.md similarity index 92% rename from docs/embedded/concepts/content-experiences/user-experiences-overview.md rename to docs/embedded/development/content-experiences/user-experiences-overview.md index 217ae7ec9..2cf79b470 100644 --- a/docs/embedded/concepts/content-experiences/user-experiences-overview.md +++ b/docs/embedded/development/content-experiences/user-experiences-overview.md @@ -13,11 +13,11 @@ SharePoint Embedded provides a comprehensive set of user experience features lik Office documents from SharePoint Embedded applications can be opened for viewing, editing, and collaborating using either the web or Office applications for a richer viewing and editing experience. Learn more about [Office experiences available on SharePoint Embedded](./office-experience.md). -You can set up your applications to launch Office when a user selects an Office document within your application. This includes options to directly launch an Office application or to open it in a specific mode, such as view (for read-only content) or edit (for editing mode). Learn how to [configure the right Office Experience for your Office Documents](../../tutorials/launch-experience.md) +You can set up your applications to launch Office when a user selects an Office document within your application. This includes options to directly launch an Office application or to open it in a specific mode, such as view (for read-only content) or edit (for editing mode). Learn how to [configure the right Office Experience for your Office Documents](../tutorials/launch-experience.md) ## Preview content -Integrate your application with SharePoint Embedded player plugin to offer file preview experiences on a wide range of supported file types. You can embed the file preview experiences either in an iFrame or open a new page. Learn how to [offer File Preview experiences for content on your applications](../../tutorials/using-file-preview.md) +Integrate your application with SharePoint Embedded player plugin to offer file preview experiences on a wide range of supported file types. You can embed the file preview experiences either in an iFrame or open a new page. Learn how to [offer File Preview experiences for content on your applications](../tutorials/using-file-preview.md) ## Download @@ -30,7 +30,7 @@ You can use [Microsoft Graph's Download DriveItem API](/graph/api/driveitem-get- You can control how your content appears in the Microsoft 365 experience. The default behavior is SharePoint Embedded application content will be hidden in Microsoft 365 environments including office.com, oneDrive.com, or other Microsoft intelligent file discovery features. The default behavior also excludes Copilot for Microsoft 365 from grounding with your SharePoint Embedded application content. -If you want to opt into the Microsoft 365 experience, during container type creation, you can change the default settings using cmdlet [Set-SPOContainerTypeConfiguration](../admin-exp/developer-admin/dev-admin.md#container-type-configuration-properties) as per this example: +If you want to opt into the Microsoft 365 experience, during container type creation, you can change the default settings using cmdlet [Set-SPOContainerTypeConfiguration](../../administration/developer-admin/dev-admin.md#container-type-configuration-properties) as per this example: ```powershell Set-SPOContainerTypeConfiguration diff --git a/docs/embedded/concepts/fluid.md b/docs/embedded/development/fluid.md similarity index 96% rename from docs/embedded/concepts/fluid.md rename to docs/embedded/development/fluid.md index 6df8f5fd9..84d879d7f 100644 --- a/docs/embedded/concepts/fluid.md +++ b/docs/embedded/development/fluid.md @@ -19,10 +19,10 @@ Start [building](https://github.com/microsoft/FluidExamples/) in the Fluid [Samp ### Get started with SharePoint Embedded -Try SharePoint Embedded for free by creating a container type for [trial purposes](./app-concepts/containertypes.md). +Try SharePoint Embedded for free by creating a container type for [trial purposes](../getting-started/containertypes.md). 1. Set up a free trial [Microsoft 365 tenant](https://www.microsoft.com/microsoft-365/enterprise/microsoft365-plans-and-pricing). Alternatively, you can use an existing tenant if you have admin credentials. -1. Sign into the [SharePoint Embedded Visual Studio Code Extension](.././getting-started/spembedded-for-vscode.md) and follow the steps to create an application and container type for trial purposes. +1. Sign into the [SharePoint Embedded Visual Studio Code Extension](../getting-started/spembedded-for-vscode.md) and follow the steps to create an application and container type for trial purposes. ## Prerequisites diff --git a/docs/embedded/concepts/app-concepts/limits-calling.md b/docs/embedded/development/limits-calling.md similarity index 100% rename from docs/embedded/concepts/app-concepts/limits-calling.md rename to docs/embedded/development/limits-calling.md diff --git a/docs/embedded/concepts/app-concepts/sharing-and-perm.md b/docs/embedded/development/sharing-and-perm.md similarity index 76% rename from docs/embedded/concepts/app-concepts/sharing-and-perm.md rename to docs/embedded/development/sharing-and-perm.md index 84d84aac2..4c63f4843 100644 --- a/docs/embedded/concepts/app-concepts/sharing-and-perm.md +++ b/docs/embedded/development/sharing-and-perm.md @@ -1,7 +1,7 @@ --- title: Sharing and Permissions description: Outlines Permission Model for SharePoint Embedded -ms.date: 05/21/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -15,11 +15,11 @@ In SharePoint Embedded, content always inherits permissions from its parent hier | :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Grant an additive permission | [POST /drives/{drive-id}/items/{item-id}/invite](/graph/api/driveitem-invite) | The sendInvitation property must always be false. You can't grant additive permissions to the root folder in a container as this is essentially the same as adding a User to a role. You can't use AppOnly permissions. | | Retrieve permissions | [GET /drives/{drive-id}/items/{item-id}/permissions](/graph/api/permission-get) & [GET /drives/{drive-id}/items/{item-id}/permissions/{perm-id}](/graph/api/permission-get), | | -| Delete an additive permission | [DELETE /drives/{drive-id}/items/{item-id}/permissions/{perm-id}](/graph/api/permission-delete) | You can only delete the additive permission on the drive item where it was originally added. | +| Delete additive permissions | [DELETE /drives/{drive-id}/items/{item-id}/permissions/{perm-id}](/graph/api/permission-delete) | You can only delete the additive permission on the drive item where it was originally added. | ## Role-based sharing setting -SharePoint Embedded offers a role-based sharing model that allows developers to configure file-sharing permissions based on container permission roles, offering a choice between restrictive and open sharing model. By default, the sharing setting is configured to the open model, permitting unrestricted content sharing by all users. This sharing setting is part of [container type configuration](containertypes.md#configuring-container-types). This configuration can only be set by application owner's developers. To learn more about container permission roles, refer to [Authentication and Authorization with SharePoint Embedded](auth.md#container-permissions). +SharePoint Embedded offers a role-based sharing model that allows developers to configure file-sharing permissions based on container permission roles, offering a choice between restrictive and open sharing models. By default, the sharing setting is configured to the open model, permitting unrestricted content sharing by all users. This sharing setting is part of [container type configuration](../getting-started/containertypes.md#configuring-container-types). This configuration can only be set by the application owner's developers. To learn more about container permission roles, refer to [Authentication and Authorization with SharePoint Embedded](auth.md#container-permissions). ### Restrictive sharing model @@ -29,7 +29,7 @@ Only container members who are either the Owner or Manager roles are permitted t Any container members and guests with edit permissions can add new permissions to this file. -This can be configured using the PowerShell cmdlet [Set-SPOcontainerTypeConfiguration](../admin-exp/developer-admin/dev-admin.md#container-type-configuration-properties) as per this example: +This can be configured using the PowerShell cmdlet [Set-SPOcontainerTypeConfiguration](../administration/developer-admin/dev-admin.md#container-type-configuration-properties) as per this example: ```powershell Set-SPOcontainerTypeConfiguration @@ -43,9 +43,9 @@ By default, SharePoint Embedded application sharing configuration is the same as ### Application external sharing override -For SharePoint Embedded applications, sharing configurations can be adjusted at the application level. Consuming tenant admin can configure permissions that are different than tenant level sharing settings. For example, if a tenant's sharing setting prohibits sharing with guests, SharePoint Embedded applications can be configured to allow guest sharing. So, all containers within that SharePoint Embedded application would have the ability to include guests or extend another permissions, while other SharePoint Embedded applications and SharePoint maintain restricted sharing permissions. +For SharePoint Embedded applications, sharing configurations can be adjusted at the application level. Consuming tenant admin can configure permissions that are different than tenant-level sharing settings. For example, if a tenant's sharing setting prohibits sharing with guests, SharePoint Embedded applications can be configured to allow guest sharing. So, all containers within that SharePoint Embedded application would have the ability to include guests or extend another permission, while other SharePoint Embedded applications and SharePoint maintain restricted sharing permissions. -This setting can only be set by consuming tenant SharePoint Embedded admin, and can be configured using the latest PowerShell cmdlet [Set-SPOApplication](../admin-exp/consuming-tenant-admin/ctapowershell.md#set-sharing-capability-of-applications) as shown in this example: +This setting can only be set by consuming tenant SharePoint Embedded admin, and can be configured using the latest PowerShell cmdlet [Set-SPOApplication](../administration/consuming-tenant-admin/ctapowershell.md#set-sharing-capability-of-applications) as shown in this example: ```powershell Set-SPOApplication diff --git a/docs/embedded/tutorials/doc-processing-acs.md b/docs/embedded/development/tutorials/doc-processing-acs.md similarity index 95% rename from docs/embedded/tutorials/doc-processing-acs.md rename to docs/embedded/development/tutorials/doc-processing-acs.md index 412655ecd..2d450bf9e 100644 --- a/docs/embedded/tutorials/doc-processing-acs.md +++ b/docs/embedded/development/tutorials/doc-processing-acs.md @@ -1,7 +1,7 @@ --- title: Document Processing with Azure Cognitive Services description: Enabling document processing with Azure Cognitive Services. -ms.date: 05/21/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -17,14 +17,14 @@ To set up automatic AI processing with your current SharePoint application upon 1. Get the delta changes of the container. You're currently able to get the notification whenever there's any change in our container and will now get the files that are added or updated. 1. Call Azure Cognitive Services’s Document Intelligence service API. You'll need to create an Azure AI resource to use the API to extract the fields from an image and get the extracted files. You might store them as shown in this tutorial or you might process them as you like. -![document processing schema](../images/Document-Processing.png) +![document processing schema](../../images/Document-Processing.png) > [!TIP] > To learn more about the Microsoft Graph APIs used in this tutorial, see [Track changes for a Drive](/graph/api/driveitem-delta), [Get a DriveItem resource](/graph/api/driveitem-get), and [Upload or replace the contents of a DriveItem](/graph/api/driveitem-put-content). ## Get the delta changes of a container -Open **GraphProvider.ts** and implement the method `getDriveChanges` to get the list of changed items. +Open **GraphProvider.ts** and implement the method `getDriveChanges` to get the list of changed items: ```typescript public static async getDriveChanges(driveId: string): Promise { @@ -57,7 +57,7 @@ public static async getDriveChanges(driveId: string): Promise { } ``` -Implement the method `getDriveItem` to fetch a file from a container. +Implement the method `getDriveItem` to fetch a file from a container: ```typescript public static async getDriveItem(driveId: string, itemId: string): Promise { @@ -65,7 +65,7 @@ public static async getDriveItem(driveId: string, itemId: string): Promise } ``` -Create a new file **ReceiptProcessor.ts** and implement a method `processDrive`. +Create a new file **ReceiptProcessor.ts** and implement a method `processDrive`: ```typescript export abstract class ReceiptProcessor { @@ -104,7 +104,7 @@ To use the Azure Cognitive Services Document Intelligence APIs, you need to crea After this step, you should have an endpoint and a key ready to use. -Now open **ReceiptProcessor.ts** to create method `dac` to store the Azure Cognitive Services credentials. +Now open **ReceiptProcessor.ts** to create method `dac` to store the Azure Cognitive Services credentials: ```typescript private static dac = new DocumentAnalysisClient( @@ -131,7 +131,7 @@ private static async getDriveItemStream(url: string): Promise { } ``` -Create method `analyzeReceiptStream` to get the OCR fields through Azure Cognitive Services processing. Here we're taking the `prebuilt-invoice` model, but other models can be chosen. +Create method `analyzeReceiptStream` to get the OCR fields through Azure Cognitive Services processing. Here we're taking the `prebuilt-invoice` model, but other models can be chosen: ```typescript private static async analyzeReceiptStream(stream: Readable): Promise { @@ -151,7 +151,7 @@ private static async analyzeReceiptStream(stream: Readable): Promise { } ``` -Create method `removeUnwantedFields` to remove the undesirable fields in Azure Cognitive Services’s response. +Create a method `removeUnwantedFields` to remove the undesirable fields in Azure Cognitive Services’s response: ```typescript private static removeUnwantedFields(fields: any) { diff --git a/docs/embedded/tutorials/launch-experience.md b/docs/embedded/development/tutorials/launch-experience.md similarity index 100% rename from docs/embedded/tutorials/launch-experience.md rename to docs/embedded/development/tutorials/launch-experience.md diff --git a/docs/embedded/tutorials/metadata.md b/docs/embedded/development/tutorials/metadata.md similarity index 97% rename from docs/embedded/tutorials/metadata.md rename to docs/embedded/development/tutorials/metadata.md index d386980c9..1973c22b9 100644 --- a/docs/embedded/tutorials/metadata.md +++ b/docs/embedded/development/tutorials/metadata.md @@ -7,7 +7,7 @@ ms.localizationpriority: high # Using Metadata with SharePoint Embedded Containers -In SharePoint Embedded, columns can be added to [Containers](../concepts/app-concepts/containertypes.md) to address scenarios requiring custom metadata via Microsoft Graph APIs. Content in the container can then set desired values for corresponding metadata. Metadata is schematized and can be queried. Note the APIs to create and manage columns are on the container instances level – an application is responsible for defining and managing the columns across its containers. +In SharePoint Embedded, columns can be added to [Containers](../../getting-started/containertypes.md) to address scenarios requiring custom metadata via Microsoft Graph APIs. Content in the container can then set desired values for corresponding metadata. Metadata is schematized and can be queried. Note the APIs to create and manage columns are on the container instances level – an application is responsible for defining and managing the columns across its containers. ## Authorization and Authentication diff --git a/docs/embedded/tutorials/migrate-abs-to-spe.md b/docs/embedded/development/tutorials/migrate-abs-to-spe.md similarity index 99% rename from docs/embedded/tutorials/migrate-abs-to-spe.md rename to docs/embedded/development/tutorials/migrate-abs-to-spe.md index bbdada045..d9994ba3d 100644 --- a/docs/embedded/tutorials/migrate-abs-to-spe.md +++ b/docs/embedded/development/tutorials/migrate-abs-to-spe.md @@ -45,7 +45,7 @@ This tutorial will guide you through migrating content from Azure Blob Storage ( 1. Create a new App Registration in [Microsoft Entra ID portal](https://entra.microsoft.com). 1. In the App Registration, add a new Mobile & Console application platform in [Microsoft Entra ID App Registration Authenticate portal](https://entra.microsoft.com) - ![Screenshot of Microsoft Entra ID application configuration](../images/app-registration-console-platform.png) + ![Screenshot of Microsoft Entra ID application configuration](../../images/app-registration-console-platform.png) 1. A ContainerType 1. A Container diff --git a/docs/embedded/tutorials/using-file-preview.md b/docs/embedded/development/tutorials/using-file-preview.md similarity index 100% rename from docs/embedded/tutorials/using-file-preview.md rename to docs/embedded/development/tutorials/using-file-preview.md diff --git a/docs/embedded/tutorials/using-webhooks.md b/docs/embedded/development/tutorials/using-webhooks.md similarity index 86% rename from docs/embedded/tutorials/using-webhooks.md rename to docs/embedded/development/tutorials/using-webhooks.md index 856214996..b0511b294 100644 --- a/docs/embedded/tutorials/using-webhooks.md +++ b/docs/embedded/development/tutorials/using-webhooks.md @@ -1,7 +1,7 @@ --- title: Using Webhooks description: Use webhooks with SharePoint Embedded. -ms.date: 05/21/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -16,17 +16,17 @@ You'll use webhooks to invoke the Azure Cognitive Services APIs from the applica To set up webhooks with your [current SharePoint Embedded application](/training/modules/sharepoint-embedded-create-app/), you need to: 1. Create and register a webhook endpoint to get notifications whenever there's a change in your container. This will be done using REST APIs. -1. Connect to Graph and subscribe to changes. You can expose your application to the internet by either running it locally or deploying it on the cloud. For the purposes of this tutorial, you'll be employing the former by utilizing ngrok and then subscribing to the changes by making a POST call. +1. Connect to Graph and subscribe to changes. You can expose your application to the internet by either running it locally or deploying it on the cloud. For this tutorial, you'll be employing the former by utilizing ngrok and then subscribing to the changes by making a POST call. 1. Perform any desired action by handling the webhook data. One such use case is covered in [Enabling document processing with Azure Cognitive Services tutorial](./doc-processing-acs.md). -![using webhooks schema](../images/Using-Webhooks.png) +![using webhooks schema](../../images/Using-Webhooks.png) > [!TIP] > To learn more about the Microsoft Graph APIs used in this tutorial, see [Create subscription](/graph/api/subscription-post-subscriptions). ## Create and register a webhook -Open the **index.ts** file and add an endpoint `onReceiptAdded`. +Open the **index.ts** file and add an endpoint `onReceiptAdded`: ```typescript server.post('/api/onReceiptAdded', async (req, res, next) => { @@ -40,13 +40,13 @@ server.post('/api/onReceiptAdded', async (req, res, next) => { }); ``` -You also need to add the query parser plugin at the top of this file so that it runs at server startup. +You also need to add the query parser plugin at the top of this file so that it runs at server startup: ```typescript server.use(restify.plugins.bodyParser(), restify.plugins.queryParser()); ``` -Create **onReceiptAdded.ts** and implement the method `onReceiptAdded` to read `validationToken` and `driveId`. `validationToken` is required when Graph makes a one-time call to verify the endpoint upon creation of the webhook subscription. `driveId` is the container-id for which the subscription is created. +Create **onReceiptAdded.ts** and implement the method `onReceiptAdded` to read `validationToken` and `driveId`. `validationToken` is required when Microsoft Graph makes a one-time call to verify the endpoint upon creation of the webhook subscription. `driveId` is the container-id for which the subscription is created. ```typescript require('isomorphic-fetch'); @@ -74,7 +74,7 @@ export const onReceiptAdded = async (req: Request, res: Response) => { ## Connect to Graph and subscribe to changes -Follow the [documentation](https://ngrok.com/docs/getting-started/) to create a tunnel for your backend server by utilizing ngrok. +Follow the [documentation](https://ngrok.com/docs/getting-started/) to create a tunnel for your backend server using ngrok. After starting the app, run the following command in a terminal: @@ -82,8 +82,9 @@ After starting the app, run the following command in a terminal: ngrok http 3001 ``` -On successful completion, you should get the following output. The public-facing endpoint for the app is highlighted in the red rectangle. -![ngrok registration](../images/ngrok-registration.png) +On successful completion, you should get the following output. The public-facing endpoint for the app is highlighted in the red rectangle: + +![ngrok registration](../../images/ngrok-registration.png) Once the tunneling is active, you can subscribe to delta changes in the container by adding the webhook URL. To do that, open Postman and make the following `POST` request with the appropriate graph access token and `notificationUrl` with the `driveId` appended as a query parameter to ensure that you get notifications for changes only in the desired container. diff --git a/docs/embedded/concepts/app-concepts/containertypes.md b/docs/embedded/getting-started/containertypes.md similarity index 76% rename from docs/embedded/concepts/app-concepts/containertypes.md rename to docs/embedded/getting-started/containertypes.md index ec172b914..c778c312c 100644 --- a/docs/embedded/concepts/app-concepts/containertypes.md +++ b/docs/embedded/getting-started/containertypes.md @@ -1,7 +1,7 @@ --- title: SharePoint Embedded Container Types description: This article explains how Container Types work. -ms.date: 02/17/2025 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -9,16 +9,14 @@ ms.localizationpriority: high A container type is a SharePoint Embedded resource that defines the relationship, access privileges, and billing accountability between a SharePoint Embedded application and a set of containers. Also, the container type defines behaviors on the set of containers. -Each container type is strongly coupled with one SharePoint Embedded application, which is referred to as the owning application. The owning application developer is responsible for creating and managing their container types. - -SharePoint Embedded mandates a 1:1 relationship between owning application and a container type. +Each container type is strongly coupled with one SharePoint Embedded application, which is referred to as the owning application. The owning application developer is responsible for creating and managing their container types. SharePoint Embedded mandates a 1:1 relationship between owning application and a container type. Container type is represented on each container instance as an immutable property (ContainerTypeID) and is used across the entire SharePoint Embedded ecosystem, including: -- Access authorization. A SharePoint Embedded application must be associated with a container type to get access to container instances of that type. Once associated, the application has access to all container instances of that type. The actual access privilege is determined by the application-ContainerTypeID permission setting. The owning application by default has full access privilege to all container instances of the container type it's strongly coupled with. Learn more about [SharePoint Embedded Authorization](../app-concepts/auth.md). -- Easy exploration. Container type can be created for trial purposes, allowing developers to explore SharePoint Embedded application development and assess its features for free. -- Billing. Container types for non-trial purposes are billable and must be created with an Azure Subscription. The usage of containers is metered and charged. Learn more about [metering](../admin-exp/billing/meters.md) and the [SharePoint Embedded billing experience](../admin-exp/billing/billing.md). -- Configurable behaviors. Container type defines selected behaviors for all container instances of that type. Learn more about setting [Container type configuration](../app-concepts/containertypes.md#configuring-container-types). +- **Access authorization**: A SharePoint Embedded application must be associated with a container type to get access to container instances of that type. Once associated, the application has access to all container instances of that type. The actual access privilege is determined by the application-ContainerTypeID permission setting. The owning application by default has full access privilege to all container instances of the container type it's strongly coupled with. Learn more about [SharePoint Embedded Authorization](../development/auth.md). +- **Easy exploration**: Container type can be created for trial purposes, allowing developers to explore SharePoint Embedded application development and assess its features for free. +- **Billing**: Container types for non-trial purposes are billable and must be created with an Azure Subscription. The usage of containers is metered and charged. Learn more about [metering](../administration/billing/meters.md) and the [SharePoint Embedded billing experience](../administration/billing/billing.md). +- **Configurable behaviors**: Container type defines selected behaviors for all container instances of that type. Learn more about setting [Container type configuration](../getting-started/containertypes.md#configuring-container-types). > [!NOTE] > @@ -80,7 +78,7 @@ New-SPOContainerType [-ContainerTypeName] [-OwningApplicationId] ] -``` +``` \ No newline at end of file diff --git a/docs/embedded/concepts/app-concepts/register-api-documentation.md b/docs/embedded/getting-started/register-api-documentation.md similarity index 98% rename from docs/embedded/concepts/app-concepts/register-api-documentation.md rename to docs/embedded/getting-started/register-api-documentation.md index 1d93584a3..e0f29f0ff 100644 --- a/docs/embedded/concepts/app-concepts/register-api-documentation.md +++ b/docs/embedded/getting-started/register-api-documentation.md @@ -1,7 +1,7 @@ --- title: Register File Storage container Type Application Permissions description: Register the container type. -ms.date: 01/28/2025 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -16,7 +16,7 @@ There are no restrictions on how many times the registration API can be invoked. > [!NOTE] > Only the owning application of the container type can invoke the registration API in the consuming tenant. > -> The registration API is **NOT** a Graph API and can only be invoked using an AppOnly and a cert-based access token. Learn more about [authentication](./auth.md). +> The registration API is **NOT** a Graph API and can only be invoked using an AppOnly and a cert-based access token. Learn more about [authentication](../development/auth.md). ## Container type Permissions @@ -41,7 +41,7 @@ The registration API determines what permissions a SharePoint Embedded applicati ## HTTP request -``` http +```http PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions ``` diff --git a/docs/embedded/getting-started/spembedded-for-vscode.md b/docs/embedded/getting-started/spembedded-for-vscode.md index c04b3feab..28532433a 100644 --- a/docs/embedded/getting-started/spembedded-for-vscode.md +++ b/docs/embedded/getting-started/spembedded-for-vscode.md @@ -1,7 +1,7 @@ --- title: SharePoint Embedded for Visual Studio Code description: Installation and getting started with SharePoint Embedded for Visual Studio Code -ms.date: 07/17/2024 +ms.date: 03/03/2025 ms.localizationpriority: high --- @@ -37,7 +37,7 @@ If you don't already have a tenant, you can get a tenant through the [Microsoft ## Create a container type with a trial configuration -Once signed in, you are prompted to create a [container type with trial configuration](../concepts/app-concepts/containertypes.md#trial-use). A container type lets you get started calling SharePoint Embedded APIs and building a proof-of-concept application using SharePoint Embedded. Learn more about [container types](../concepts/app-concepts/containertypes.md). +Once signed in, you are prompted to create a [container type with trial configuration](./containertypes.md#trial-use). A container type lets you get started calling SharePoint Embedded APIs and building a proof-of-concept application using SharePoint Embedded. Learn more about [container types](containertypes.md). ![home screen](../images/vsx-images/n4vsx-home-screen.png) @@ -51,9 +51,9 @@ Once signed in, you are prompted to create a [container type with trial configur ## Create a Microsoft Entra ID App -Every container type is owned by a Microsoft Entra ID application. The first step when creating a free trial container type is to create a new or select an existing Microsoft Entra ID application as the owning application. You can either specify the name of your new application or pick one of your existing applications. Learn more about SharePoint Embedded [app architecture](../concepts/app-concepts/app-architecture.md) +Every container type is owned by a Microsoft Entra ID application. The first step when creating a free trial container type is to create a new or select an existing Microsoft Entra ID application as the owning application. You can either specify the name of your new application or pick one of your existing applications. Learn more about SharePoint Embedded [app architecture](../development/app-architecture.md) -- Follow the prompts to name your new Entra application or select an existing application ID +- Follow the prompts to name your new Entra application or select an existing application ID: ![Create App](../images/vsx-images/n6aname-app.png) @@ -64,9 +64,9 @@ After your container type is created and your application is configured, you'll ## Register your container type -After creating your container type, you'll need to register that container type on your local tenant. Learn more about container type [registration](../concepts/app-concepts/register-api-documentation.md). +After creating your container type, you'll need to register that container type on your local tenant. Learn more about container type [registration](./register-api-documentation.md). -- Follow the prompts and select **'Register on local tenant'** on the lower right corner of the VS Code window +- Follow the prompts and select **Register on local tenant** on the lower right corner of the VS Code window - If you don't see the prompt, you can right-click on your `` and select **Register** from the menu ![register](../images/vsx-images/n7aregister-ct.png) diff --git a/docs/embedded/overview.md b/docs/embedded/overview.md index 3edcf79ba..9f707d52e 100644 --- a/docs/embedded/overview.md +++ b/docs/embedded/overview.md @@ -56,10 +56,12 @@ Microsoft 365 customers have different entitlements related to storage, usage, a The partition created in the consumer’s Microsoft 365 tenant by a SharePoint Embedded app doesn’t count towards other Microsoft 365 entitlements including the total amount of Microsoft SharePoint storage that can be used by your organization. Instead, the partition in the consumer’s Microsoft 365 tenant by the SharePoint Embedded app are billed separately through an Azure subscription on a pay-as-you-go metered consumption model that’s based on total storage and the number of API calls. > [!NOTE] -> Learn more about billing for SharePoint Embedded, see [Billing Meters](concepts/admin-exp/billing/meters.md). +> Learn more about billing for SharePoint Embedded, see [Billing Meters](./administration/billing/meters.md). ## Get Started with SharePoint Embedded +[Review the prerequisites](./administration/billing/billing.md) + Create a "File Storage Container" in 15 minutes or less: - [Free trial: SharePoint Embedded for Visual Studio Code](./getting-started/spembedded-for-vscode.md) diff --git a/docs/toc.yml b/docs/toc.yml index 169148127..40a5952cd 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -548,70 +548,68 @@ items: - name: Overview href: embedded/overview.md - - name: Getting Started - items: - - name: SharePoint Embedded for Visual Studio Code - href: embedded/getting-started/spembedded-for-vscode.md - name: Scenarios and Use Cases href: embedded/scenarios-and-use-cases.md - - name: Concepts + - name: Getting Started items: - - name: Application Architecture - href: embedded/concepts/app-concepts/app-architecture.md + - name: SharePoint Embedded Visual Studio Code Extension + href: embedded/getting-started/spembedded-for-vscode.md - name: Container Types - href: embedded/concepts/app-concepts/containertypes.md + href: embedded/getting-started/containertypes.md - name: Register Container Type API - href: embedded/concepts/app-concepts/register-api-documentation.md + href: embedded/getting-started/register-api-documentation.md + - name: Development + items: + - name: Application Architecture + href: embedded/development/app-architecture.md - name: Authentication - href: embedded/concepts/app-concepts/auth.md + href: embedded/development/auth.md - name: Sharing and Permissions - href: embedded/concepts/app-concepts/sharing-and-perm.md + href: embedded/development/sharing-and-perm.md - name: Limits and Calling Patterns - href: embedded/concepts/app-concepts/limits-calling.md - - name: Content Experiences - items: - - name: Office Experiences - href: embedded/concepts/content-experiences/office-experience.md - - name: User Experiences - href: embedded/concepts/content-experiences/user-experiences-overview.md - - name: Search Content - href: embedded/concepts/content-experiences/search-content.md - - name: Admin Experiences - items: - - name: Billing - href: embedded/concepts/admin-exp/billing/billing.md - - name: Billing Management - href: embedded/concepts/admin-exp/billing/billingmanagement.md - - name: SharePoint Embedded Billing Meters - href: embedded/concepts/admin-exp/billing/meters.md - - name: Consuming Tenant Admin - href: embedded/concepts/admin-exp/consuming-tenant-admin/cta.md - - name: Container Management in PowerShell - href: embedded/concepts/admin-exp/consuming-tenant-admin/ctapowershell.md - - name: Consuming Tenant Admin UX - href: embedded/concepts/admin-exp/consuming-tenant-admin/ctaUX.md - - name: Developer Admin - href: embedded/concepts/admin-exp/developer-admin/dev-admin.md - - name: SharePoint Embedded Admin - href: embedded/concepts/admin-exp/adminrole.md + href: embedded/development/limits-calling.md - name: Fluid Framework - href: embedded/concepts/fluid.md - - name: Security and Compliance - href: embedded/concepts/security-and-compliance.md - - name: Tutorials - items: + href: embedded/development/fluid.md + - name: Office Experiences + href: embedded/development/content-experiences/office-experience.md + - name: User Experiences + href: embedded/development/content-experiences/user-experiences-overview.md + - name: Search Content + href: embedded/development/content-experiences/search-content.md - name: Launch Experience - href: embedded/tutorials/launch-experience.md + href: embedded/development/tutorials/launch-experience.md - name: Using Metadata with SharePoint Embedded Containers - href: embedded/tutorials/metadata.md + href: embedded/development/tutorials/metadata.md - name: Using File Preview - href: embedded/tutorials/using-file-preview.md + href: embedded/development/tutorials/using-file-preview.md - name: Using Document Processing with Azure Cognitive Services - href: embedded/tutorials/doc-processing-acs.md + href: embedded/development/tutorials/doc-processing-acs.md - name: Using Webhooks - href: embedded/tutorials/using-webhooks.md + href: embedded/development/tutorials/using-webhooks.md - name: Migrate ABS to SPE - href: embedded/tutorials/migrate-abs-to-spe.md + href: embedded/development/tutorials/migrate-abs-to-spe.md + - name: Administration + items: + - name: Billing + href: embedded/administration/billing/billing.md + - name: Billing Management + href: embedded/administration/billing/billingmanagement.md + - name: SharePoint Embedded Billing Meters + href: embedded/administration/billing/meters.md + - name: Consuming Tenant Admin + href: embedded/administration/consuming-tenant-admin/cta.md + - name: Container Management in PowerShell + href: embedded/administration/consuming-tenant-admin/ctapowershell.md + - name: Consuming Tenant Admin UX + href: embedded/administration/consuming-tenant-admin/ctaUX.md + - name: Developer Admin + href: embedded/administration/developer-admin/dev-admin.md + - name: SharePoint Embedded Admin + href: embedded/administration/adminrole.md + - name: Compliance + items: + - name: Security and Compliance + href: embedded/compliance/security-and-compliance.md - name: SharePoint Embedded Learning Modules items: - name: SharePoint Embedded - overview & configuration