Skip to content

Commit 97e736e

Browse files
authored
Merge branch 'live' into patch-3
2 parents a82c7c2 + 76e0717 commit 97e736e

File tree

487 files changed

+4645
-2196
lines changed

Some content is hidden

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

487 files changed

+4645
-2196
lines changed

.openpublishing.redirection.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "powerapps-docs/maker/canvas-apps/add-images-to-excel.md",
5+
"redirect_url": "add-images-pictures-audio-video",
6+
"redirect_document_id": "false"
7+
},
8+
{
9+
"source_path": "powerapps-docs/maker/canvas-apps/tutorial-working-with-images-in-excel.md",
10+
"redirect_url": "add-images-pictures-audio-video",
11+
"redirect_document_id": "false"
12+
},
313
{
414
"source_path": "powerapps-docs/developer/common-data-service/fill-app-submission-form-appsource.md",
515
"redirect_url": "register-microsoft-partner-network",

powerapps-docs/developer/common-data-service/TOC.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,8 @@
395395
href: authenticate-dot-net-framework.md
396396
- name: Use OAuth
397397
href: authenticate-oauth.md
398+
- name: Office365 authentication with WS-Trust
399+
href: authenticate-office365-deprecation.md
398400
- name: "Tutorial: Register an app with Azure Active Directory"
399401
href: walkthrough-register-app-azure-active-directory.md
400402
- name: Build web applications using Server-to-Server (S2S) authentication
@@ -431,6 +433,8 @@
431433
items:
432434
- name: Download tools from NuGet
433435
href: download-tools-nuget.md
436+
- name: Install Power Apps CLI
437+
href: powerapps-cli.md
434438
- name: Community Tools
435439
href: community-tools.md
436440
- name: Testing tools

powerapps-docs/developer/common-data-service/audit-user-access.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Audit user access (Common Data Service) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
33
description: "Support for the ability to audit user access, including user identification, access time, and client type." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
5-
ms.date: 10/31/2018
5+
ms.date: 01/27/2019
66
ms.reviewer: ""
77
ms.service: powerapps
88
ms.topic: "article"
@@ -37,10 +37,10 @@ Common Data Service support the ability to audit user access. The information th
3737

3838
- `AuditAction.UserAccessAuditStopped`
3939

40-
`UserAccessviaWeb` indicates access from the Common Data Service web application or Dynamics 365 for Outlook. `UserAccessviaWebServices` indicates a web service request from the SDK. The `AuditAction` enumeration is available to your code when you include `OptionSets.cs` or `OptionSets.vb` in your application’s project.
40+
`UserAccessviaWeb` indicates access from the Common Data Service web application or Dynamics 365 for Outlook. `UserAccessviaWebServices` indicates a web service request from the SDK. The `AuditAction` enumeration is available to your code when you include `OptionSets.cs` in your application’s project.
4141

4242
### See also
43-
[Audit Entity Data Changes in Dynamics 365](/dynamics365/customer-engagement/developer/audit-entity-data-changes)
44-
[Configure Entities and Attributes for Auditing](/dynamics365/customer-engagement/developer/configure-entities-attributes-auditing)
45-
[Sample: Audit Entity Data Changes](/dynamics365/customer-engagement/developer/sample-audit-entity-data-changes)
46-
[Sample: Audit User Access](/dynamics365/customer-engagement/developer/sample-audit-user-access)
43+
[Audit data changes](/powerapps/developer/common-data-service/auditing-overview)
44+
[Configure entities and attributes for auditing](/powerapps/developer/common-data-service/configure-entities-attributes-auditing)
45+
[Sample: Audit entity data changes](/powerapps/developer/common-data-service/org-service/samples/audit-entity-data-changes)
46+
[Sample: Audit user access](/powerapps/developer/common-data-service/org-service/samples/audit-user-access)

powerapps-docs/developer/common-data-service/auditing-overview.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,5 @@ Organizations often need to be in compliance with various regulations to ensure
7575
Enabling or disabling of field level security by setting the <xref:Microsoft.Xrm.Sdk.Metadata.AttributeMetadata.IsSecured> attribute cannot be audited.
7676

7777
### See also
78-
[Data Management in Dynamics 365](/dynamics365/customer-engagement/developer/manage-data)
79-
[Audit entity data changes](/dynamics365/customer-engagement/developer/audit-entity-data-changes)
80-
[Configure entities and attributes for auditing](configure-entities-attributes-auditing.md)
81-
[Blog: Recover your deleted CRM data and recreate them using CRM API](https://blogs.msdn.com/b/crm/archive/2011/05/23/recover-your-deleted-crm-data-and-recreate-them-using-crm-api.aspx)
78+
79+
[Configure entities and attributes for auditing](configure-entities-attributes-auditing.md)

powerapps-docs/developer/common-data-service/authenticate-oauth.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ The following is an example of a custom class derived from <xref:System.Net.Http
162162

163163
```csharp
164164
/// <summary>
165-
///Custom HTTP message handler that uses OAuth authentication thru ADAL.
165+
///Custom HTTP message handler that uses OAuth authentication through ADAL.
166166
/// </summary>
167167
class OAuthMessageHandler : DelegatingHandler
168168
{
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
title: "Use of Office365 authentication with the WS-Trust security protocol (Common Data Service) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3+
description: "Describes deprecation of the WS-Trust security protocol and the authentication code changes required in applications."
4+
ms.custom: ""
5+
ms.date: 02/05/2020
6+
ms.reviewer: ""
7+
ms.service: powerapps
8+
ms.topic: "article"
9+
author: "phecke" # GitHub ID
10+
ms.author: "pehecke" # MSFT alias of Microsoft employees only
11+
manager: "kvivek" # MSFT alias of manager or PM counterpart
12+
search.audienceType:
13+
- developer
14+
search.app:
15+
- PowerApps
16+
- D365CE
17+
---
18+
19+
# Use of Office365 authentication with the WS-Trust security protocol
20+
21+
Use of the WS-Trust authentication security protocol when connecting to Common
22+
Data Service is no longer recommended and has been
23+
deprecated; see the [announcement](/power-platform/important-changes-coming#deprecation-of-office365-authentication-type-and-organizationserviceproxy-class-for-connecting-to-common-data-service).
24+
25+
This change
26+
impacts custom client applications that use “Office365” authentication and the
27+
[Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy](/dotnet/api/microsoft.xrm.sdk.client.organizationserviceproxy)
28+
or
29+
[Microsoft.Xrm.Tooling.Connector.CrmServiceClient](/dotnet/api/microsoft.xrm.tooling.connector.crmserviceclient)
30+
classes. If your applications use this type of authentication protocol and API,
31+
continue reading below to learn more about the recommended authentication
32+
changes to be made to your application’s code.
33+
34+
## How do I know if my code or application is using WS-Trust?
35+
36+
First and most importantly, this change **only** impacts client applications that
37+
connect to the Common Data Service. It does not impact custom plug-ins,
38+
workflow activities, or on-premises/IFD service connections.
39+
40+
- If your code employs user account and password credentials for authentication with Common Data Service or an application, you are likely using the WS-Trust security protocol. Some examples are shown below, though this list is not fully inclusive.
41+
42+
- When using the [CrmServiceClient](/dotnet/api/microsoft.xrm.tooling.connector.crmserviceclient) class with a connection string:
43+
44+
`connectionString="AuthType=Office365; Username=jsmith\@contoso.onmicrosoft.com;Password=passcode;Url=https://contoso.crm.dynamics.com"`
45+
46+
- When using [OrganizationServiceProxy](/dotnet/api/microsoft.xrm.sdk.client.organizationserviceproxy) class constructors:
47+
48+
49+
```csharp
50+
using (OrganizationServiceProxy organizationServiceProxy =
51+
new OrganizationServiceProxy(serviceManagement, clientCredentials)
52+
{ ... }
53+
```
54+
55+
- If you are using the `OrganizationServiceProxy` class at all in your code, you are using WS-Trust.
56+
57+
- If you are using [CrmServiceClient](/dotnet/api/microsoft.xrm.tooling.connector.crmserviceclient).`OrganizationServiceProxy` in your code, you are using WS-Trust.
58+
59+
## What should I do to fix my application code if affected?
60+
61+
There are very straight forward ways to modify your applications code to use
62+
the recommended connection interface for authentication with Common Data
63+
Service.
64+
65+
- If your code uses an [Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy](/dotnet/api/microsoft.xrm.sdk.client.organizationserviceproxy) instance:
66+
67+
If you are passing the `OrganizationServiceProxy` instance around to various methods, or returning the instance from a function, replace all occurrences of the type `OrganizationServiceProxy` with the [IOrganizationService](/dotnet/api/microsoft.xrm.sdk.iorganizationservice?view=dynamics-general-ce-9) interface. This interface exposes all the core methods used to communicate with Common Data Service.
68+
69+
When invoking the constructor, it is recommend you add the NuGet package [Microsoft.CrmSdk.XrmTooling.CoreAssembly](https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.CoreAssembly/) to your project and replace all use of `OrganizationServiceProxy` class constructors with [CrmServiceClient](/dotnet/api/microsoft.xrm.tooling.connector.crmserviceclient) class constructors. You will need to alter your coding pattern here, however, for simplicity `CrmServiceClient` supports connection strings in addition to complex constructors and the ability to provide external authentication handlers. `CrmServiceClient` implements `IOrganizationService`, therefore your new authentication code will be portable to the rest of your application code. You can find examples on the use of `CrmServiceClient` in the [PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples/tree/master/cds/orgsvc/C%23) repository.
70+
71+
- If your code is using [CrmServiceClient](/dotnet/api/microsoft.xrm.tooling.connector.crmserviceclient) with theOffice365authentication
72+
type:
73+
74+
An example of this is a connections string that looks like this:
75+
76+
`connectionString = "AuthType=Office365;Username=jsmith@contoso.onmicrosoft.com;Password=passcode;Url=https://contoso.crm.dynamics.com"`
77+
78+
Similarly, you could also use a `CrmServiceClient` constructor and pass in `AuthType.Office365`.
79+
80+
You have two options for dealing with this.<p/>
81+
82+
- Switch over to using an OAuth based connection string. Such connection string looks like this:
83+
84+
`connectionString = "AuthType=OAuth;Username=jsmith@contoso.onmicrosoft.com;
85+
Password=passcode;Url=https://contosotest.crm.dynamics.com;AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;
86+
RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;LoginPrompt=Auto"`
87+
88+
This will be your fastest way to update the code. Note that LoginPrompt can be set toneverto simulate the way that the Office 365 behavior worked.
89+
90+
The AppId and RedirectUri provided above are examples of working application registration values. These values work everywhere our online services are deployed. However, they are provided here as examples and you are encouraged to create your own application registration in Azure Active Directory (AAD) for applications running in your tenant.<p/>
91+
92+
- When we announce it, update to the latest [Microsoft.CrmSdk.XrmTooling.CoreAssembly](https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.CoreAssembly/) NuGet package that includes auto redirect support. This library will redirect an authentication type of Office365 to OAuth and use the example AppId and Redirect URI automatically. This capability is planned for the 9.2.x version of the Microsoft.CrmSdk.XrmTooling.CoreAssembly package.
93+
94+
- If you are accessing the [CrmServiceClient](/dotnet/api/microsoft.xrm.tooling.connector.crmserviceclient).`OrganizationServiceProxy` property:
95+
96+
Remove all use of that property in your code. `CrmServiceClient` implements `IOrganizationService` and exposes everything that is settable for the organization service proxy.
97+
98+
> [!IMPORTANT]
99+
> Regarding not being able to login using User ID/Password even if using OAuth: if your tenant and user is configured in Azure Active Directory for conditional access and/or Multi-Factor Authentication is required, you will not be able to use user ID/password flows in a non-interactive form at all. For those situations, you must use a Service Principal user to authenticate with Common Data Service.<p/>
100+
To do this, you must first register the application user (Service Principal) in Azure Active Directory. You can find out how to do this [here](https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal). During application registration you will need to create that user in Common Data Service and grant permissions. Those permissions can either be granted directly or indirectly by adding the application user to a team which has been granted permissions in Common Data Service. You can find more information on how to set up an application user to authenticate with Common Data Service [here](/powerapps/developer/common-data-service/use-single-tenant-server-server-authentication).
101+
102+
## Need help?
103+
104+
We will be monitoring the Power Apps ALM and ProDev community [forums](https://powerusers.microsoft.com/t5/Power-Apps-Component-Framework/bd-p/pa_component_framework). Please take a look there to get help on how to solve various issues or post a
105+
question.

powerapps-docs/developer/common-data-service/authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Office 365 authentication requires using the .NET Framework SDK assemblies with
4545

4646
Using Office 365 authentication does not require that your register your applications as OAuth does. You must simply provide a User Principal Name (UPN) and password for a valid user.
4747

48-
More information: [Authentication with .NET Framework applications](authenticate-dot-net-framework.md)
48+
More information: [Authentication with .NET Framework applications](authenticate-dot-net-framework.md), [Use of Office365 authentication with the WS-Trust security protocol](authenticate-office365-deprecation.md)
4949

5050
## All other software frameworks
5151

powerapps-docs/developer/common-data-service/configure-entity-relationship-cascading-behavior.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ The `CascadeConfiguration` (<xref:Microsoft.Xrm.Sdk.Metadata.CascadeConfiguratio
5757
|Reparent|See [About the reparent action](#about-the-reparent-action) later.|Active<br />Cascade<br />NoCascade<br />UserOwned|
5858
|Share|When the referenced entity record is shared with another user.|Active<br />Cascade<br />NoCascade<br />UserOwned|
5959
|Unshare|When sharing is removed for the referenced entity record.|Active<br />Cascade<br />NoCascade<br />UserOwned|
60-
60+
61+
> [!NOTE]
62+
> When executing an assign, any workflows or business rules that are currently active on the records will automatically be
63+
> deactivated when the reassignment occurs. The new owner of the record will need to reactivate the workflow or business rule
64+
> if they want to continue using it.
65+
6166
<a name="BKMK_ReparentAction"></a>
6267
### About the reparent action
6368
The reparent action is very similar to the share action except that it deals with the inherited read access rights instead of explicit read access rights. The reparent action is when you change the value of the referencing attribute in a parental relationship. When a reparent action occurs, the desired scope of the inherited read access rights for related entities might change. The cascade actions related to the reparent action refer to changes to read access rights for the entity record and any entity records related to it.
Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
---
2-
title: "Discovery Services (Common Data Service) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3-
description: "Common Data Service Discovery service is accessed through either the Web API or the Organization Service."
2+
title: "Discovery Service (Common Data Service) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3+
description: "Learn about access to the Discovery Service for discovering business organization instance details."
44
ms.custom: ""
5-
ms.date: 10/31/2018
6-
ms.reviewer: ""
5+
ms.date: 1/16/2019
6+
ms.reviewer: "pehecke"
77
ms.service: powerapps
88
ms.topic: "article"
99
author: "JimDaly" # GitHub ID
1010
ms.author: "jdaly" # MSFT alias of Microsoft employees only
11-
manager: "ryjones" # MSFT alias of manager or PM counterpart
11+
manager: "kvivek" # MSFT alias of manager or PM counterpart
1212
search.audienceType:
1313
- developer
1414
search.app:
1515
- PowerApps
1616
- D365CE
1717
---
18-
# Discovery Services
18+
# Discovery Service
1919

2020
[!INCLUDE [cc-discovery-service-description](includes/cc-discovery-service-description.md)]
2121

22+
The Discovery Service is accessed through two different APIs:
2223

23-
A Discovery service is accessed through either the Web API or the Organization Service.
24+
- For the OData V4 RESTful API: [Discover the URL for your organization](webapi/discover-url-organization-web-api.md)
25+
- For the discovery API available through the 2011 (SOAP) endpoint: [Use the Discovery Service with the Microsoft.Xrm.Sdk.Discovery NameSpace](org-service/discovery-service.md)
2426

25-
- For the Web API: [Discover the URL for your organization using the Web API](webapi/discover-url-organization-web-api.md)
26-
- For the Organization Service: [Use the Discovery Service with the Microsoft.Xrm.Sdk.Discovery NameSpace](org-service/discovery-service.md)
27+
> [!NOTE]
28+
> The *regional* Discovery Service is deprecated. More information: [Important changes (deprecations)](/power-platform/important-changes-coming.md).
2729
2830
### See Also
2931

3032
[Use the Common Data Service Web API](webapi/overview.md)<br />
31-
[Use the Common Data Service Organization Service](org-service/overview.md)
33+
[Modify your code to use global Discovery Service](webapi/discovery-orgsdk-to-webapi.md)

powerapps-docs/developer/common-data-service/duplicaterule-entities.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ The following special messages can also be used:
119119
120120
## DuplicateRuleCondition Special messages
121121
122-
[DuplicateRuleCondition](/reference/entities/duplicaterulecondition.md) is a child entity to `DuplicateRule`. Access to retrieve or modify these entities is dependant on access to the `DuplicateRule` it is associated with. More information: [DuplicateRuleCondition Messages](/reference/entities/duplicaterulecondition.md#messages).
122+
[DuplicateRuleCondition](/reference/entities/duplicaterulecondition.md) is a child entity to `DuplicateRule`. Access to retrieve or modify these entities is dependent on access to the `DuplicateRule` it is associated with. More information: [DuplicateRuleCondition Messages](/reference/entities/duplicaterulecondition.md#messages).
123123
124124
The following special messages can also be used:
125125

0 commit comments

Comments
 (0)