Skip to content

Commit 8f639cb

Browse files
authored
Merge pull request #8385 from MicrosoftDocs/main
Merge main to live
2 parents baebfb3 + 362d181 commit 8f639cb

File tree

6 files changed

+24
-32
lines changed

6 files changed

+24
-32
lines changed

powerapps-docs/developer/data-platform/register-plug-in.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ Similarly, you should note that removing the assembly from the solution won't re
206206

207207
### Set user impersonation for a step
208208

209-
With the Plug-in Registration tool running and logged into the target Dataverse environment, you can proceed to set or change a step registration. In this section, we will discuss changing the user on whos behalf the plug-in will perform its operations. Meaning, the effective user that is performing the data operations initiated by the plug-in. By default, the calling user (the user that invoked an operation in Dataverse) is the owner of said operations. However a different user can be specified in the step registration. You will need to have the System Administrator or System Customizer security role to perform this operation.
209+
With the [Plug-in Registration tool](#about-the-plug-in-registration-tool) running and logged into the target Dataverse environment, you can proceed to set or change a step registration. In this section, we will discuss changing the user on whos behalf the plug-in will perform its operations. Meaning, the effective user that is performing the data operations initiated by the plug-in. By default, the calling user (the user that invoked an operation in Dataverse) is the owner of said operations. However a different user can be specified in the step registration. You will need to have the System Administrator or System Customizer security role to perform this operation.
210210

211211
To set the user in a plug-in step:
212212

@@ -244,7 +244,7 @@ You can unregister or disable plug-ins and their components using the Plug-in Re
244244
245245
### Disable or enable a plug-in step
246246

247-
With the Plug-in Registration tool running and logged into the target Dataverse environment, you can proceed to disable or enable plug-in steps. Disabling a step effectively turns off the plug-in from executing when Dataverse processes the entity and message combination specified in the step registration.
247+
With the [Plug-in Registration tool](#about-the-plug-in-registration-tool) running and logged into the target Dataverse environment, you can proceed to disable or enable plug-in steps. Disabling a step effectively turns off the plug-in from executing when Dataverse processes the entity and message combination specified in the step registration.
248248

249249
> [!IMPORTANT]
250250
> Disabling a plug-in can negatively affect the functionality of your app, a solution, or the Dataverse system. Make sure you understand the implications before you proceed.

powerapps-docs/developer/data-platform/scalable-customization-design/database-transactions.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ One of the most fundamental concepts behind many of the challenges faced here is
3131
A common reason that problems can occur in this area is the lack of awareness of how customizations can affect transactions.
3232

3333
Although the details of how this is done is beyond the scope of this topic, the most simple element to consider is that as Dataverse interacts with data in its database. SQL Server determines the appropriate locks to be taken by transactions on that data such as:
34-
- When retrieving a particular record, SQL Server takes a read lock on that record.
35-
- When retrieving a range of records, in some scenarios it can take a read lock on that range of records or the entire table.
3634
- When creating a record, it generates a write lock against that record.
3735
- When updating a record, it takes a write lock against the record.
3836
- When a lock is taken against a table or record, it’s also taken against any corresponding index records.

powerapps-docs/developer/model-driven-apps/clientapi/send-in-app-notifications.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Send in-app notifications within model-driven apps"
33
description: Learn how to configure notifications in model-driven apps by using a client API.
4-
ms.date: 05/22/2023
4+
ms.date: 06/23/2023
55
ms.reviewer: jdaly
66
ms.service: powerapps
77
ms.subservice: mda-developer
@@ -20,13 +20,13 @@ contributors:
2020

2121
Developers of model-driven apps can configure notifications to be displayed to app users as a toast or within the notification center. Your model-driven app automatically polls the system for new notifications and displays them to the user. The notification sender or your system administrator can configure how the notification is shown and how it can be dismissed. Notifications appear in the notification center until the recipient dismisses them or they expire. By default, a notification expires after 14 days but your administrator can override this setting.
2222

23-
Notifications are user-specific. Each notification is intended for a single user, identified as the recipient when the notification is sent. If a notification needs to be sent to multiple users, individual notifications must be created and sent for each recipient.
23+
Notifications are user-specific. Each notification is intended for a single user, identified as the recipient when the notification is sent. Sending a notification to a team isn't supported. If you need to send notifications to multiple users, you must create notifications for each individual user.
2424

2525
This article outlines the steps for how to send in-app notifications to a specific user. To see how these notifications appear in applications, see [In-app notifications in model-driven apps](/powerapps/user/notifications).
2626

2727
## Enable the in-app notification feature
2828

29-
To use the in-app notification feature, you need to enable the **In-app notifications** setting. This setting is stored within the model-driven app.
29+
To use the in-app notification feature, you need to enable the **In-app notifications** setting. This setting is stored within the model-driven app.
3030

3131
1. Sign in to [Power Apps](https://make.powerapps.com).
3232

@@ -36,7 +36,7 @@ To use the in-app notification feature, you need to enable the **In-app notifica
3636

3737
1. Open **Settings** and switch to **Features**.
3838

39-
1. Enable "In-app notifications".
39+
1. Enable **In-app notifications**.
4040

4141
> [!div class="mx-imgBorder"]
4242
> ![Custom page as main page](media/send-in-app-notifications/app-designer-settings-enable-in-app-notifications.png "Custom page as main page")
@@ -162,7 +162,7 @@ Notifications sent using the `SendAppNotification` message are stored in the [No
162162
|Display Name|Schema Name|Description|
163163
|---|---|---|
164164
|**Title**|`Title`|The title of the notification.|
165-
|**Owner**|`OwnerId`|The user who receives the notification.|
165+
|**Owner**|`OwnerId`|The *user* who receives the notification. While this column can be set to either a user or team, you must only set this to a user. The notification can't be set to a team.|
166166
|**Body**|`Body`|Details about the notification.|
167167
|IconType|`IconType`|The list of predefined icons. The default value is `Info`. For more information, go to [Changing the notification icon](#changing-the-notification-icon) later in this article.|
168168
|**Toast Type**|`ToastType`|The list of notification behaviors. The default value is `Timed`. For more information, go to [Changing the notification behavior](#changing-the-notification-behavior) later in this article.|
@@ -1143,4 +1143,4 @@ The Power Apps Notification connector is for push notifications, which are separ
11431143
[createRecord (Client API reference)](reference/xrm-webapi/createrecord.md)<br />
11441144
[In-app notifications in model-driven apps](/powerapps/user/notifications)<br />
11451145
[appnotification EntityType](/power-apps/developer/data-platform/webapi/reference/appnotification)<br />
1146-
[Notification (appnotification) table/entity reference](../../data-platform/reference/entities/appnotification.md)
1146+
[Notification (appnotification) table/entity reference](../../data-platform/reference/entities/appnotification.md)

powerapps-docs/maker/canvas-apps/connections-list.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ contributors:
1515
- lancedMicrosoft
1616
- mduelae
1717
- alaug
18+
- ProfessorKendrick
1819
---
1920
# Overview of connectors for canvas apps
2021

@@ -24,7 +25,7 @@ A connector may provide **tables** of data or **actions**. Some connectors provi
2425

2526
## Tables
2627

27-
If your connector provides tables, you add your data source and then select the table in the data source that you want to manage. Power Apps both retrieves table data into your app and updates data in your data source automatically for you. For example, you can add a data source that contains a table named **Lessons** and then set the **Items** property of a control, such as a gallery or a form, to this value in the formula bar:
28+
If your connector provides tables, you add your data source, and then select the table in the data source that you want to manage. Power Apps both retrieve table data into your app and updates data in your data source automatically for you. For example, you can add a data source that contains a table named **Lessons** and then set the **Items** property of a control, such as a gallery or a form, to this value in the formula bar:
2829

2930
![Plain data source Items property.](./media/connections-list/ItemPropertyPlain.png)
3031

@@ -55,7 +56,7 @@ If you need to handle custom data updates for action connectors, build a formula
5556
5657
For more information about how to customize your formula for custom updates, see these articles:
5758

58-
[Patch](functions/function-patch.md)<br>[Collect](functions/function-clear-collect-clearcollect.md)<br>[Update](functions/function-update-updateif.md)
59+
[Patch](functions/function-patch.md)<br />[Collect](functions/function-clear-collect-clearcollect.md)<br />[Update](functions/function-update-updateif.md)
5960

6061
> [!NOTE]
6162
> To work with dynamic schema, you can use an **experimental** feature called **Dynamic schema**. Dynamic schema refers to the possibility that the same action may return a different table with different columns. Conditions that may cause the columns in the tables to differ include the action input parameters, the user or role that's executing the action, and the group in which the user is working, among others. For example, SQL Server stored procedures may return different columns if run with different inputs, or an Azure DevOps instance may use custom fields that aren't available by default. For working with dynamic schema, the [connector documentation](/connectors) shows **The outputs of this operation are dynamic.** as the return value.
@@ -106,7 +107,7 @@ This type of connection is also secure. For example Twitter uses this type of a
106107

107108
### SQL User name and password authentication
108109

109-
This type of connection isn't secure because it doesn't rely on end-user authentication. **It should only be used in cases where you can safely assume that everyone who has access to this connection can see and use all of the data to which the connection provides access.** You can't reliably lock down portions of the data accessible within the connection. For instance, if the connection allows access to a single table, you can't rely on a userID to filter and only show data for that specific user within that table. For a reliable security, use more secure connection such as [Azure AD Integrated](connections-list.md#azure-active-directory-aad).
110+
This type of connection isn't secure because it doesn't rely on end-user authentication. **It should only be used in cases where you can safely assume that everyone who has access to this connection can see and use all of the data to which the connection provides access.** You can't reliably lock down portions of the data accessible within the connection. For instance, if the connection allows access to a single table, you can't rely on a userID to filter and only show data for that specific user within that table. For reliable security, use a more secure connection such as [Azure AD Integrated](connections-list.md#azure-active-directory-aad).
110111

111112
In SQL Server, this type of connection is called **SQL Server Authentication**. Many other database data sources provide a similar capability. When you publish your application, your users don't need to supply a unique user name and password. They're using the user name and password you supply when you author the application. The connection authentication to the data source is **Implicitly Shared** with your users. Once the application is published, the connection is also published and available to your users. Your end users can also create applications using any connection using SQL Server authentication that is shared with them. Your users can't see the user name or password, but the connection will be available to them. **There are valid scenarios for this type of connection. For instance if you have a read-only database that is available to everyone in the company. Reference data scenarios (for example, a corporate calendar) can be useful for this kind of connection.** More information: [Use Microsoft SQL Server securely with Power Apps](connections/sql-server-security.md)
112113

@@ -120,12 +121,12 @@ Power Apps now has full preview support for **[Secure implicit connections](work
120121
> **Secure implicit connections** is now **On** by default for new apps.
121122
122123
#### Notification to update your apps
123-
If you have applications that may be upgraded to use this feature then you will see a message on the Apps page. It will indicate the number of apps that need your attention.
124+
If you have applications that may be upgraded to use this feature then you'll see a message on the Apps page. It indicates the number of apps that need your attention.
124125

125126
> [!div class="mx-imgBorder"]
126127
> ![Notification to update your apps.](./media/connections-list/attention-alert.png)
127128
128-
Select the link and it will open a side panel that will list all of the apps that need attention.
129+
Select the link and it opens a side panel that will list all of the apps that need attention.
129130

130131
> [!div class="mx-imgBorder"]
131132
> ![Side panel.](./media/connections-list/app-needs-attention.png)
@@ -162,8 +163,8 @@ When your app is republished and shared, then end-users won't have access to the
162163
#### Limitations
163164

164165
1. All types of implicitly shared connections work such as action and tabular.
165-
2. Server and database names are hidden in network traces but visible in the consent dialog. Column names are not hidden.
166-
3. For tabular connectors, we only limit CRUD actions such as Get, Post, Put, or Delete. If you have permissions to **Put** then you have access to **Post**.
166+
2. Server and database names are hidden in network traces but visible in the consent dialog. Column names aren't hidden.
167+
3. For tabular connectors, we only limit CRUD actions such as Get, Post, Put, or Delete. If you have permissions to **Put**, then you have access to **Post**.
167168
4. Action based connectors limit based on the specific API being used in the application.
168169
5. Warnings are still enabled in sharing. The warning around implicitly shared connections still warns while in private preview. However, your connection with this feature is secure – despite the warning.
169170
6. Publishing to an entire tenant, as opposed to specific groups or individuals isn't supported.
@@ -174,21 +175,21 @@ This type of connection isn't secure because it doesn't rely on end-user authent
174175

175176
## Data sources in solutions
176177

177-
Solutions are used for [application lifecycle management](/power-platform/alm/overview-alm) and provide additional capabilities for managing the lifecycle of **data sources**. If a canvas app is in a solution, [connection references](../data-platform/create-connection-reference.md) and [environment variables](../data-platform/environmentvariables.md) may be created to store information about the data sources. This ensures data sources can be changed or re-established when solutions are migrated to different environments.
178+
Solutions are used for [application lifecycle management](/power-platform/alm/overview-alm) and provide other capabilities for managing the lifecycle of **data sources**. If a canvas app is in a solution, [connection references](../data-platform/create-connection-reference.md) and [environment variables](../data-platform/environmentvariables.md) may be created to store information about the data sources. This ensures data sources can be changed or re-established when solutions are migrated to different environments.
178179

179180
## Rename data sources in apps
180181

181182
To learn about renaming data sources in an app, and the difference between tabular and action-based data sources, go to [Rename Power Apps action-based data sources](rename-data-source.md).
182183

183184
## Connection consent dialog
184185

185-
When users open an app that uses connectors for the first time, they'll see a "connection consent" dialog for the following purposes.
186+
When users open an app that uses connectors for the first time, they see a "connection consent" dialog for the following purposes.
186187

187188
1. To inform users about the data sources accessed by the app.
188189

189190
1. To outline the actions a connector may, or may not perform in an app. For example, for apps using the **Office 365 Users** connector, this could be the following.
190191

191-
- This app will be able to:
192+
- This app is able to:
192193
- Read your full user profile
193194
- Read the full profile of all users
194195
- It won't be able to:
@@ -198,7 +199,7 @@ When users open an app that uses connectors for the first time, they'll see a "c
198199

199200
1. To facilitate manual end-user authentication, when needed.
200201

201-
For some connections, Power Platform can automatically authenticate a user to access a data source. However, if the automatic sign-in fails, this dialog prompts users to fix a connection by manually signing in. Power Platform can only attempt automatic sign-in for a connection when a data source pre-authorizes Microsoft’s Azure API connections service principal, granting it permission to perform single sign-on for a user when a connection is created. For more information on single sign-on, see [What is single sign-on (SSO)?](/azure/active-directory/manage-apps/what-is-single-sign-on)
202+
For some connections, Power Platform can automatically authenticate a user to access a data source. However, if the automatic sign-in fails, this dialog prompts users to fix a connection by manually signing in. Power Platform can only attempt automatic sign-in for a connection when a data source preauthorizes Microsoft’s Azure API connections service principal, granting it permission to perform single sign-on for a user when a connection is created. For more information on single sign-on, see [What is single sign-on (SSO)?](/azure/active-directory/manage-apps/what-is-single-sign-on)
202203

203204
The following image is an example of the connection consent dialog for an app connecting to a SharePoint site.
204205

@@ -218,10 +219,10 @@ For select connectors, admins can suppress this dialog, and consent on behalf of
218219
Microsoft Power Platform is only able to suppress the consent dialog for connections to data sources where:
219220

220221
1. There isn’t an obligation by the data source to show an explicit consent UI.
221-
1. The data source pre-authorizes Microsoft’s Azure API connections service principal to enable single-sign-on.
222+
1. The data source preauthorizes Microsoft’s Azure API connections service principal to enable single-sign-on.
222223
1. An admin configures an app to suppress the consent for the preceding connections.
223224

224-
The pre-authorization of Microsoft’s Azure API connections service principal exists for Microsoft's first-party data sources, and may be configured by custom applications registered in an Azure AD tenant that are used by custom connectors. An admin manages consent suppression on a per-app basis (as opposed to connector basis), so suppression is managed at the most granular app experience level&mdash;this level of granularity prevents consent suppression for an organization’s "approved apps" from inadvertently suppressing consent for apps that aren't approved or reviewed.
225+
The preauthorization of Microsoft’s Azure API connections service principal exists for Microsoft's first-party data sources, and may be configured by custom applications registered in an Azure AD tenant that are used by custom connectors. An admin manages consent suppression on a per-app basis (as opposed to connector basis), so suppression is managed at the most granular app experience level&mdash;this level of granularity prevents consent suppression for an organization’s "approved apps" from inadvertently suppressing consent for apps that aren't approved or reviewed.
225226

226227
[!INCLUDE[footer-include](../../includes/footer-banner.md)]
227228

0 commit comments

Comments
 (0)