Skip to content

Commit

Permalink
Merge branch 'main' into doc-update-DC-CEC
Browse files Browse the repository at this point in the history
  • Loading branch information
v-ypalikila committed Jul 4, 2024
2 parents a83fad0 + e8c728c commit d03f1fa
Show file tree
Hide file tree
Showing 11 changed files with 90 additions and 54 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/connectors-gallery.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 10 additions & 8 deletions docs/data-privacy-security.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ description: Learn how to protect your customer's data when you extend Microsoft
author: erikadoyle
ms.author: edoyle
ms.topic: overview
ms.date: 11/15/2023
ms.date: 06/26/2024
---

# Data, Privacy, and Security considerations of extending Copilot for Microsoft 365

When you extend Copilot's repertoire of skills with a plugin, queries based on your prompts, conversation history, and Microsoft 365 data can be shared with the plugin to generate a response or complete a command. When you extend Copilot with a Microsoft Graph connector, your external data is ingested into Microsoft Graph and remains in your tenant. This article will outline data privacy and security considerations for developing different Copilot extensibility solutions, both in-house and as a commercial developer.
When you extend Copilot's repertoire of skills with a plugin, queries based on your prompts, conversation history, and Microsoft 365 data can be shared with the plugin to generate a response or complete a command. When you extend Copilot with a Microsoft Graph connector, your external data is ingested into Microsoft Graph and remains in your tenant. This article outlines data privacy and security considerations for developing different Copilot extensibility solutions, both in-house and as a commercial developer.

:::image type="content" source="assets/images/validation-principles.png" alt-text="Diagram key considerations for developing Copilot extensibility: Enterprise security and trust, Responsible AI, High-quality user experience, High-value functionality" border="false":::

Expand All @@ -23,13 +23,13 @@ Prompts, responses, and data accessed through Microsoft Graph aren't used to tra

## Plugins

Similar to traditional [Teams apps](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#privacy-policy) and [Power Platform connectors](/connectors/custom-connectors/certification-submission#step-4b-product-or-end-service-metadata), plugins for Microsoft Copilot are individually governed by their terms of use and privacy policies. As a plugin developer, you are responsible for securing your customer's data within the bounds of your service and providing information on your policies regarding users' personal information. Admins and users can then view your [privacy policy](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#privacy-policy) and [terms of use](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#terms-of-use) in the app store before choosing to add or use your plugin as a Copilot data source.
Similar to traditional [Teams apps](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#privacy-policy) and [Power Platform connectors](/connectors/custom-connectors/certification-submission#step-4b-product-or-end-service-metadata), plugins for Microsoft Copilot are individually governed by their terms of use and privacy policies. As a plugin developer, you're responsible for securing your customer's data within the bounds of your service and providing information on your policies regarding users' personal information. Admins and users can then view your [privacy policy](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#privacy-policy) and [terms of use](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#terms-of-use) in the app store before choosing to add or use your plugin as a Copilot data source.

When you plug in your app to Copilot as a plugin, your external data stays within your app; it *does not* flow into Microsoft Graph or is used to train Microsoft Copilot LLMs. Copilot does, however, generate a search query to send to your plugin on the user's behalf based on their prompt and conversation history with Copilot, and data the user has access to in Microsoft 365.

Message extension plugins use the same [authentication process for Teams message extensions](/microsoftteams/platform/bots/how-to/authentication/bot-sso-overview).

Power Platform plugins use the same [authentication process for custom connectors](/connectors/custom-connectors/azure-active-directory-authentication).
Power Platform connector plugins use the same [authentication process for custom connectors](/connectors/custom-connectors/azure-active-directory-authentication).

## Considerations for line-of-business developers

Expand All @@ -44,11 +44,11 @@ Copilot for Microsoft 365 only shares data with and searches in plugins or conne

## Considerations for independent software vendors

Message extension plugins are packaged and distributed in the same way as Microsoft Teams apps that are integrated to run across the Microsoft 365 ecosystem. Microsoft Graph connectors can also be packaged and distributed in the same way as Teams apps.
Power Platform connectors as Copilot plugins are [certified](/connectors/custom-connectors/certification-submission) and [packaged](/connectors/custom-connectors/certification-submission#connector-and-plugin-packaging-guide) in the same way as regular [Power Platform Connectors](/connectors/custom-connectors/certification-submission). They can then be submitted to [Microsoft Partner Center](https://partner.microsoft.com) through the **Microsoft 365 and Copilot program** as a **Power Platform Connector**.

Power Platform plugins are certified and distributed in the same way as Power Platform connectors, by first publishing your connector to the [Power Platform Connectors](https://github.com/microsoft/PowerPlatformConnectors) open source repository, and then submitting its information to Microsoft.
Message extension plugins are packaged and distributed in the same way as [Teams apps](/microsoftteams/platform/concepts/build-and-test/apps-package) that are [integrated to run across the Microsoft 365 ecosystem](/microsoftteams/platform/m365-apps/overview). Microsoft Graph connectors can also be packaged and distributed in the same way as Teams apps.

Submission of your app package to the Microsoft Partner Center *Microsoft 365 and Copilot* program requires meeting [certification policies](./publish.md#microsoft-365-and-copilot-program) for acceptance to Microsoft 365 in-product stores. Microsoft Commercial Marketplace certification policies and Teams Store validation guidelines regarding privacy, security, and responsible AI include:
Submission of your app package to the Microsoft Partner Center *Microsoft 365 and Copilot* program requires meeting [certification policies](./publish.md#microsoft-365-and-copilot-program) for acceptance to Microsoft 365 in-product stores. Microsoft Commercial Marketplace certification policies and applicable Teams Store validation guidelines regarding privacy, security, and responsible AI include:

| Commercial marketplace certification policy | Teams store guidelines |
|----------|-----------|
Expand All @@ -62,10 +62,12 @@ Submission of your app package to the Microsoft Partner Center *Microsoft 365 an
| [1140.4.1 General](/legal/marketplace/certification-policies#1-apps-with-artificial-intelligenceai-generated-content-must-meet-below-requirements) | [Responsible AI checks](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines?branch=pr-en-us-9402#teams-apps-extensible-as-microsoft-365-chat-plugin) |
| [1140.9 Teams apps extensible as plugins for Microsoft Copilot for Microsoft 365](/legal/marketplace/certification-policies#11409-teams-apps-extensible-as-microsoft-365-copilot-plugin) | [Teams apps extensible as plugins for Microsoft Copilot](/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#teams-apps-extensible-as-microsoft-365-chat-plugin) |

Submission to the Microsoft 365 and Copilot program is currently limited to [verified publishers](/entra/identity-platform/publisher-verification-overview). This provides end-users and organizational admins assurance that the publisher of an app has been verified as authentic by Microsoft.
For Microsoft Graph connectors (packaged as Teams apps), submission to the Microsoft 365 and Copilot program is currently limited to [verified publishers](/entra/identity-platform/publisher-verification-overview). This provides end-users and organizational admins assurance that the publisher of an app has been verified as authentic by Microsoft.

## See also

[Data, Privacy, and Security for Microsoft Copilot (Microsoft 365 admin)](/copilot/microsoft-365/microsoft-365-copilot-privacy)

[Publish plugins and connectors for Microsoft Copilot for Microsoft 365](publish.md)

[Microsoft commitment to responsible AI](https://www.microsoft.com/ai/responsible-ai)
2 changes: 1 addition & 1 deletion docs/ecosystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ This article will walk you through the resources of the Microsoft 365 ecosystem

## Plugins and connectors work across Microsoft 365 experiences

There are over 350 million daily active users across applications in the Microsoft 365 ecosystem, including Teams, Outlook, Word, Excel, Power Point, and the Microsoft 365 app. When you write a plugin or connector, it can reach all the places Copilot runs across Microsoft 365.
There are over 350 million daily active users across applications in the Microsoft 365 ecosystem, including Teams, Outlook, Word, Excel, Power Point, and the Microsoft 365 app. When you write a plugin or connector, it can reach all the places Copilot extensibility is supported across Microsoft 365.

. . . but that's not all! Depending on the [way you extend Copilot](./decision-guide.md), your plugin or connector also runs outside of Copilot experiences. The following table lists alternate ways the skills and knowledge from your plugins and connectors are available to end-users within an organization:

Expand Down
4 changes: 2 additions & 2 deletions docs/feedback.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ In this doc you will find help and resources needed for Copilot for Microsoft 36

## Developer support channels

To inquire about general questions related to Copilot and Copilot samples use the following community groups. Use the [Microsoft 365 Admin Center](https://admin.microsoft.com/Adminportal/Home#/homepage) for any business-critical issues that need SLA(service level agreement) based support and [Microsoft Q&A](/answers/tags/465/copilot-m365.html) for general questions.
To inquire about general questions related to Copilot and Copilot samples use the following community groups. Use the [Microsoft 365 Admin Center](https://admin.microsoft.com/Adminportal/Home#/homepage) for any business-critical issues that need SLA(service level agreement) based support and [Microsoft Q&A](/answers/tags/466/copilot-m365-development) for general questions.

| **Support channel category** | **Channel** |
|:------------|:------------|
| Microsoft Copilot for Microsoft 365 service issues, development issues, and limited advisory support. | If you have a Premier/Unified support agreement for Microsoft 365, visit the [Microsoft 365 Admin Center](https://admin.microsoft.com/Adminportal/Home#/homepage) and use the Support menu to open a service request. |
| General questions about Microsoft Copilot for Microsoft 365 | If you have general questions on Microsoft Copilot for Microsoft 365, submit your questions on [Microsoft Q&A](/answers/tags/465/copilot-m365.html). |
| General questions about Microsoft Copilot for Microsoft 365 | If you have general questions on Microsoft Copilot for Microsoft 365, submit your questions on [Microsoft Q&A](/answers/tags/466/copilot-m365-development). |
| Developer community help | [Microsoft Q&A](/answers/) exists as the home of technical questions and answers for Microsoft products. Use the [Microsoft Copilot for Microsoft 365 Development](/answers/tags/466/copilot-m365-development.html) tag to post questions, connect with other developers, and submit answers. |
| Extensibility samples | Submit issues and ask general questions related to samples using the respective Microsoft Copilot for Microsoft 365 [extensibility samples](samples.md) GitHub repositories. |

Expand Down
2 changes: 1 addition & 1 deletion docs/includes/preview-disclaimer.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ ms.topic: include

> [!IMPORTANT]
>
> - Plugins for Microsoft Copilot for Microsoft 365 are in public preview and only work in Microsoft 365 Chat in Microsoft Teams.
> - Plugins for Microsoft Copilot for Microsoft 365 are in public preview and only work in Copilot chat in Microsoft Teams.
> - The capability is enabled by default in all Microsoft 365 Copilot licensed tenants. Admins can disable this functionality on a user and group basis and control how individual plugins are approved for use, and which plugins are enabled. For details see: [Manage Plugins for Copilot in Integrated Apps](/microsoft-365/admin/manage/manage-plugins-for-copilot-in-integrated-apps?context=/microsoft-365-copilot/extensibility/context).
10 changes: 5 additions & 5 deletions docs/openapi-document-guidance.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ title: How to make an OpenAPI document effective in extending Copilot capabiliti
description: Learn what makes an OpenAPI description most effective for extending Copilot skills
author: njaci1
ms.author: kelvinnjaci
ms.topic: openapi
ms.topic: how-to
ms.date: 05/21/2024
---

# How to make an OpenAPI document effective in extending Copilot

Plugins let Microsoft Copilot work with web services and get real-time information. Copilot uses this information to extend its skills. With a plugin, a user can bring real-time data from their line of business (LOB) system on to the Copilot.

A plugin is comprised of a web service, its OpenAPI description, and a manifest file. The plugin manifest informs Copilot about the plugin's capabilities. The plugin manifest includes an OpenAPI description for the web service. The OpenAPI description is particularly important because it describes to Copilot how to connect to the web service. For optimal plugin performance with Copilot, provide a clear and meaningful OpenAPI description. This document will explain the elements that make an OpenAPI description effective for a plugin that extends Copilot.
A plugin is comprised of a web service, its OpenAPI description, and a manifest file. The plugin manifest informs Copilot about the plugin's capabilities. The plugin manifest includes an OpenAPI description for the web service. The OpenAPI description is important because it describes to Copilot how to connect to the web service. For optimal plugin performance with Copilot, provide a clear and meaningful OpenAPI description. This document explains the elements that make an OpenAPI description effective for a plugin that extends Copilot.

Here, we presume that you have a web service and an OpenAPI description for the web service.

**OpenAPI Validation**: A good first step is to verify that your OpenAPI description follows the rules of the [OpenAPI Specification](https://swagger.io/resources/open-api/). You can use [Hidi](https://github.com/microsoft/OpenAPI.NET/blob/vnext/src/Microsoft.OpenApi.Hidi/readme.md), a command line tool that can validate OpenAPI descriptions among other use cases, or any other tool of choice. A valid OpenAPI description not only works well with Copilot but also makes sure that your OpenAPI description can work with other tools.

**The info section**: The description field is optional in the OpenAPI specification, but it is essential for an OpenAPI description that is meant to extend Copilot skills. Copilot needs the description field to know what the API does and when to use the plugin. Always have a description field and make it brief but clear. For example, here is an info section of a repairs shop web service OpenAPI description.
**The info section**: The description field is optional in the OpenAPI specification, but it's essential for an OpenAPI description that is meant to extend Copilot skills. Copilot needs the description field to know what the API does and when to use the plugin. Always have a description field and make it brief but clear. For example, here's an info section of a repairs shop web service OpenAPI description.

```yaml
info:
Expand All @@ -30,7 +30,7 @@ info:

Additionally add a meaningful description of each operation supported by your API. After Copilot chooses to use a plugin based on the user's prompt and the plugin description, it searches through the descriptions of the paths to determine the endpoint to use to satisfy the user's request.

Operation IDs are shown during debugging as functions to indicate which operations Copilot is attempting to execute. Here is a sample of an openAPI document and a sample of the corresponding debugger output:
Operation IDs are shown during debugging as functions to indicate which operations Copilot is attempting to execute. Here's a sample of an openAPI document and a sample of the corresponding debugger output:

```yaml
paths:
Expand All @@ -47,7 +47,7 @@ Debugger output:

**Parameters:** If an operation supported by your API takes in parameters, include the parameters in the OpenAPI description. Include a description field for each parameter to briefly describe it, and where necessary, give an example of the parameter's usage. Parameters are use by Copilot to get all the required information from a user's prompt for making a request to the API.

Here is an example:
Here's an example:

```yaml
parameters:
Expand Down
Loading

0 comments on commit d03f1fa

Please sign in to comment.