Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register 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! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
5 | |
1 | |
1 | |
1 | |
1 |