March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
I am trying to provide the credentials for an Azure Table Storage datasource via the Power BI API (specifically the Nuget package). I have successfully done this for Azure SQL, but I'm not sure what the serialized credentials provided to the CredentialDetails.Credentials property should be...
{"credentialData": [ {"name":"accountkey", "value":"my account key here - support for SAS signatures would be great!"}]}
I have tried every combination of accountkey, Account Key, account-key, etc under the sun - although I have tried them all in one request - hoping that the backend would ignore the redundant data. But I keep getting a BadRequest error from the backend. I have also set the value of the CredentialDetails.Key property to "Key". I'm making these assumptions off the basis of what the 'Data source credentials' property pages look like on the Power BI service itself.
Are these datasource-specific credential schemas documented anywhere?
It would also be great if the DatasourceType property on the GatewayDatasource object was something other than 'Unknown'... like 'AzureTable' maybe???
FYI, the error content I get back from the Power BI service is:
{"error":{"code":"DM_GWPipeline_Gateway_DataSourceAccessError","pbi.error":{"code":"DM_GWPipeline_Gateway_DataSourceAccessError","parameters":{},"details":[]}}}
Solved! Go to Solution.
you should use the following format:
{
"credentials":"{\"credentialData\":[{\"name\":\"key\",\"value\":\"hi...rg==\"}]}",
"credentialType": "Key",
"encryptedConnection": "Encrypted | NotEncrypted", // chose one
"privacyLevel": "None | Private | Organizational | Public", // chose one
"encryptionAlgorithm":"None"
}
Thank you for pointing the datasource type issue, will fix it.
you should use the following format:
{
"credentials":"{\"credentialData\":[{\"name\":\"key\",\"value\":\"hi...rg==\"}]}",
"credentialType": "Key",
"encryptedConnection": "Encrypted | NotEncrypted", // chose one
"privacyLevel": "None | Private | Organizational | Public", // chose one
"encryptionAlgorithm":"None"
}
Thank you for pointing the datasource type issue, will fix it.
Hi,
This works - thanks for that.
A few questions/observations/suggestions:
* Is this documented anywhere? e.g. what should the format for 'credentials' be for other types of datasources? I feel that we shouldn't have to come to this forum for this sort of information.
* Rather than crafting a JSON string, it would be good if the PowerBI Client SDK supported a strongly-typed class for each datasource type.
* EncryptedConnection/PrivacyLevel/EncryptedAlgorithm: is there any documentation around these at all? When should they be used? What types of datasource do they apply to?
* Datasource Name: The datasource object that is returned by various APIs has a 'DatasourceName' property - this is invariably blank. It would be handy to have this populated in the event that a report had multiple datasources of the same type - it is possible to distinguish between them via the ConnectionDetails property, however that is a bit tricky. I'm assuming that this relies on Power BI Desktop supporting datasource names that it currently doesn't.
No love for Table Storage?
I'm going to assume that it is not possible to set Azure Table Storage access credentials via the Power BI API then?
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
7 | |
3 | |
2 | |
1 | |
1 |