Forum Discussion
Set data source credentials on Power BI Report Server through REST API to create a scheduled refresh
- 6 years ago
I've just done some tests and the following payload worked for me doing a PATCH http request against http://localhost/Reports/api/v2.0/PowerBIReports( {id} )/DataSources. Note I've changed the CredentialRetrieval value to "store" and I found I had to add the username and password both in the CredentialsInServer object and as the username/secret in the DataModelDataSource (if I did not so this second bit the scheduled refresh would not work). I've also stripped out the creation and modification fields as I don't think you can alter those from the client side anyway.
[ { "Id": "dcf1ca8d-4320-e911-bbac-94b86df86523", "Name": null, "Description": null, "Hidden": false, "Path": "", "IsEnabled": true, "DataSourceSubType": "DataModel", "DataModelDataSource": { "Type": "Import", "Kind": "SQL", "AuthType": "Windows", "SupportedAuthTypes": [ "Windows", "UsernamePassword" ], "Username": "domain\\user", "Secret": "MyPassword", "ModelConnectionName": "" }, "IsReference": false, "DataSourceType": "SQL", "ConnectionString": "localhost\\sql17;AdventureWorksDW2017", "IsConnectionStringOverridden": true, "CredentialRetrieval": "store", "CredentialsInServer": { "UserName": "domain\\user", "Password": "MyPassword", "UseAsWindowsCredentials": true, "ImpersonateAuthenticatedUser": false }, "CredentialsByUser": null } ]
I've just done some tests and the following payload worked for me doing a PATCH http request against http://localhost/Reports/api/v2.0/PowerBIReports( {id} )/DataSources. Note I've changed the CredentialRetrieval value to "store" and I found I had to add the username and password both in the CredentialsInServer object and as the username/secret in the DataModelDataSource (if I did not so this second bit the scheduled refresh would not work). I've also stripped out the creation and modification fields as I don't think you can alter those from the client side anyway.
[
{
"Id": "dcf1ca8d-4320-e911-bbac-94b86df86523",
"Name": null,
"Description": null,
"Hidden": false,
"Path": "",
"IsEnabled": true,
"DataSourceSubType": "DataModel",
"DataModelDataSource": {
"Type": "Import",
"Kind": "SQL",
"AuthType": "Windows",
"SupportedAuthTypes": [
"Windows",
"UsernamePassword"
],
"Username": "domain\\user",
"Secret": "MyPassword",
"ModelConnectionName": ""
},
"IsReference": false,
"DataSourceType": "SQL",
"ConnectionString": "localhost\\sql17;AdventureWorksDW2017",
"IsConnectionStringOverridden": true,
"CredentialRetrieval": "store",
"CredentialsInServer": {
"UserName": "domain\\user",
"Password": "MyPassword",
"UseAsWindowsCredentials": true,
"ImpersonateAuthenticatedUser": false
},
"CredentialsByUser": null
}
]
Thank you very much, worked perfectly!