Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
muhammed24
Regular Visitor

Problem in Update Datasource Power BI REST API Call

https://learn.microsoft.com/en-us/rest/api/power-bi/gateways/update-datasource

The Power BI REST API call mentioned above is a PATCH request that is used to change/update the datasource credentials.

 

Request body is the credentialDetails, whose format is different for different credentials type.

For basic credentials with username and password, it looks like the following - 

{ "credentialDetails": { "credentialType": "Basic", "credentials": "{\"credentialData\":[{\"name\":\"username\", \"value\":\"john\"},{\"name\":\"password\", \"value\":\"*****\"}]}", "encryptedConnection": "Encrypted", "encryptionAlgorithm": "None", "privacyLevel": "None", "useEndUserOAuth2Credentials": "False" } }

 

For on-premise encrypted credentials - 

{ "credentialDetails": { "credentialType": "Windows", "credentials": "AB....EF==", "encryptedConnection": "Encrypted", "encryptionAlgorithm": "RSA-OAEP", "privacyLevel": "None" } }

 

The problem I am facing is that the credentials I want to update is On-premise with "Windows" credential type with username and password. But I am not able to find the right json format for such a request. If anyone can help, please.

 

power BI rest API with python  Power BI REST API Update datasource credentials 

1 ACCEPTED SOLUTION
muhammed24
Regular Visitor

I found the answer. For using WIndows credentials, first the credentials need to be encrypted to a credential string.

The python example is given here - https://github.com/microsoft/PowerBI-Developer-Samples/tree/master/Python/Encrypt%20credentials

 

View solution in original post

5 REPLIES 5
muhammed24
Regular Visitor

I found the answer. For using WIndows credentials, first the credentials need to be encrypted to a credential string.

The python example is given here - https://github.com/microsoft/PowerBI-Developer-Samples/tree/master/Python/Encrypt%20credentials

 

lmarangio
Helper I
Helper I

Hey @muhammed24 did you try to use the following format?

 

 "credentials": "{\"credentialData\":[{\"name\":\"username\", \"value\":\"john\"},{\"name\":\"password\", \"value\":\"*****\"}]}"

 

Let me know if this works:)  

@lmarangio 

I tried your format. It is not working. Gave an PrimitiveValue error. Then I tried the same format within curly brackets and I get the following error.

{
  "error": {
    "code": "BadRequest",
    "message": "Bad Request",
    "details": [
      {
        "message": "The property 'credentials' does not exist on type 'Microsoft.PowerBI.ServiceContracts.Api.GatewayDatasource'. Make sure to only use property names that are defined by the type.",
        "target": "datasourceDelta"
      }
    ]
  }
}

 

 

I see. This means that with "credentialtype" Windows we are not allow to use the format above. Did you try with Basic Credentials? https://learn.microsoft.com/en-us/rest/api/power-bi/gateways/update-datasource#basic-credentials-exa...

@lmarangio  Yes I did. I tried various combinations too, it didn't work. But I learnt that we have to encrypt the Windows Username and password into a single string and use that as credential. So I am now trying to find the way to do that encryption in Python. (I made a new question)

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.