<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Error Creating PowerBI on-premise datasource using RestAPI in Developer</title>
    <link>https://community.fabric.microsoft.com/t5/Developer/Error-Creating-PowerBI-on-premise-datasource-using-RestAPI/m-p/3975407#M53154</link>
    <description>&lt;P&gt;you seem to be decoding one too many times&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;encrypted_secret_b64 = base64.b64encode(encrypted_secret).decode()&lt;/SPAN&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 05 Jun 2024 21:15:12 GMT</pubDate>
    <dc:creator>lbendlin</dc:creator>
    <dc:date>2024-06-05T21:15:12Z</dc:date>
    <item>
      <title>Error Creating PowerBI on-premise datasource using RestAPI</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Error-Creating-PowerBI-on-premise-datasource-using-RestAPI/m-p/3973789#M53134</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Dear community I recently want to create fully automated process to add and recycle access keys to PowerBI datasource and i have problem with PowerBI Rest API. I can't create or modify datasource because of problems with key value.&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm taking public key and modulus from datagateway&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;'publicKey': {&lt;/SPAN&gt;&lt;SPAN&gt;'exponent'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'AQAB'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;'modulus'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&lt;/SPAN&gt;&lt;SPAN&gt;=='&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;and I'm trying to encode this using python function.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; cryptography.hazmat.primitives.asymmetric &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; rsa, padding&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; cryptography.hazmat.primitives &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; hashes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; cryptography.hazmat.backends &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; default_backend&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; base64&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;modulus_b64 = ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;exponent_b64 = ""&lt;/SPAN&gt;&lt;BR /&gt;secret = ""&lt;BR /&gt;&lt;SPAN&gt;&lt;BR /&gt;modulus = int.from_bytes(base64.b64decode(modulus_b64), byteorder=&lt;/SPAN&gt;&lt;SPAN&gt;'big'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;exponent = int.from_bytes(base64.b64decode(exponent_b64), byteorder=&lt;/SPAN&gt;&lt;SPAN&gt;'big'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public_numbers = rsa.RSAPublicNumbers(exponent, modulus)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public_key = public_numbers.public_key(default_backend())&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;encrypted_secret = public_key.encrypt(&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; secret.encode(),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; padding.OAEP(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mgf=padding.MGF1(algorithm=hashes.SHA256()),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; algorithm=hashes.SHA256(),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label=&lt;/SPAN&gt;&lt;SPAN&gt;None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;encrypted_secret_b64 = base64.b64encode(encrypted_secret).decode()&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;after that i'm sending put request to&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;https://api.powerbi.com/v1.0/myorg/gateways/&lt;/SPAN&gt;&lt;SPAN&gt;{gateway}&lt;/SPAN&gt;&lt;SPAN&gt;/datasources&lt;/SPAN&gt;&lt;/PRE&gt;&lt;DIV&gt;&lt;DIV&gt;and generate body information accordingly to Microsoft documentation&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"connectionDetails"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"{\"extensionDataSourceKind\": \"Databricks\", \"extensionDataSourcePath\": \"{\\\"host\\\": \\\"adb-0000000000000000000.0.azuredatabricks.net\\\", \\\"httpPath\\\": \\\"/sql/1.0/warehouses/0000000000000\\\"}\"}"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"credentialDetails"&lt;/SPAN&gt;&lt;SPAN&gt;: {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"credentialType"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"Key"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"credentials"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"{\"credentialData\": [{\"name\": \"key\", \"value\": \"daasd==\"}]}"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"encryptedConnection"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"Encrypted"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"encryptionAlgorithm"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"RSA-OAEP"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"privacyLevel"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"Organizational"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; },&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"dataSourceName"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"DB01"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"dataSourceType"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"Extension"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;i'm allways getting this response. Do you know what might be couse of that?&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;{'error': {'code': 'DM_GWPipeline_UnknownError', &lt;/SPAN&gt;&lt;SPAN&gt; 'pbi.error': {'code': 'DM_GWPipeline_UnknownError', &lt;/SPAN&gt;&lt;SPAN&gt; 'parameters': {}, &lt;/SPAN&gt;&lt;SPAN&gt; 'details': [{'code': 'DM_ErrorDetailNameCode_UnderlyingErrorMessage', &lt;/SPAN&gt;&lt;SPAN&gt; 'detail': {'type': 1, &lt;/SPAN&gt;&lt;SPAN&gt; 'value': 'The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters. '}}, &lt;/SPAN&gt;&lt;SPAN&gt; {'code': 'DM_ErrorDetailNameCode_UnderlyingHResult', &lt;/SPAN&gt;&lt;SPAN&gt; 'detail': {'type': 1, 'value': '-2146233033'}}]}}}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 Jun 2024 09:47:53 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Error-Creating-PowerBI-on-premise-datasource-using-RestAPI/m-p/3973789#M53134</guid>
      <dc:creator>BlocksCanFly</dc:creator>
      <dc:date>2024-06-05T09:47:53Z</dc:date>
    </item>
    <item>
      <title>Re: Error Creating PowerBI on-premise datasource using RestAPI</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Error-Creating-PowerBI-on-premise-datasource-using-RestAPI/m-p/3975407#M53154</link>
      <description>&lt;P&gt;you seem to be decoding one too many times&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;encrypted_secret_b64 = base64.b64encode(encrypted_secret).decode()&lt;/SPAN&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 05 Jun 2024 21:15:12 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Error-Creating-PowerBI-on-premise-datasource-using-RestAPI/m-p/3975407#M53154</guid>
      <dc:creator>lbendlin</dc:creator>
      <dc:date>2024-06-05T21:15:12Z</dc:date>
    </item>
    <item>
      <title>Re: Error Creating PowerBI on-premise datasource using RestAPI</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Error-Creating-PowerBI-on-premise-datasource-using-RestAPI/m-p/3977429#M53187</link>
      <description>&lt;P&gt;Hi i though the same and i used microsoft tamplate from github.&amp;nbsp;&lt;A href="https://github.com/microsoft/PowerBI-Developer-Samples/tree/master/Python/Encrypt%20credentials" target="_blank"&gt;PowerBI-Developer-Samples/Python/Encrypt credentials at master · microsoft/PowerBI-Developer-Samples · GitHub&lt;/A&gt;&lt;BR /&gt;and still didn't worked. So i tired to make same request via gui and scout changes and find out this request use different &lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="17njPpZo9l.png" style="width: 942px;"&gt;&lt;img src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1112408iDDF2FED2A1102FF6/image-size/large?v=v2&amp;amp;px=999" role="button" title="17njPpZo9l.png" alt="17njPpZo9l.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 06 Jun 2024 14:53:42 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Error-Creating-PowerBI-on-premise-datasource-using-RestAPI/m-p/3977429#M53187</guid>
      <dc:creator>BlocksCanFly</dc:creator>
      <dc:date>2024-06-06T14:53:42Z</dc:date>
    </item>
  </channel>
</rss>

