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

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
leshgancomp
New Member

Create Datasource with REST API from PHP

Good afternoon. I'm trying to create a new Datasource using PHP. When sending a request, an error is returned to me.

 

Error:

 

Spoiler

( [error] => Array (
  [code] => DM_GWPipeline_UnknownError
    [pbi.error] => Array(
      [code] => DM_GWPipeline_UnknownError
      [parameters] => Array()

      [details] => Array(
        [0] => Array(
          [code] => DM_ErrorDetailNameCode_UnderlyingErrorMessage
          [detail] => Array(
            [type] => 1
            [value] => Неправильный параметр.

          )

        )

        [1] => Array(
          [code] => DM_ErrorDetailNameCode_UnderlyingHResult
          [detail] => Array(
            [type] => 1
            [value] => -2146893785
          )

        )

      )

      [exceptionCulprit] => 1
    )

  )

)

 

 

PHP:

 

Spoiler

$gateway = $this->get($gateway_id);
$exponent = $gateway['publicKey']['exponent'];
$modulus = $gateway['publicKey']['modulus'];
$credentialsData = json_encode([
"credentialData" => [
  [
    "name" => "username",
    "value" => $db_username
  ],
  [
    "name" => "password",
    "value" => $db_password
  ]
]
]);
$rsa = new RSA();
$rsa->loadKey([
    'e' => new BigInteger(base64_decode($exponent), 256),
    'n' => new BigInteger(base64_decode($modulus), 256)
]);
echo $rsa->getPublicKey(); // returns -----BEGIN PUBLIC KEY----- ...................... -----END PUBLIC KEY----- 
$rsa->setEncryptionMode(RSA::ENCRYPTION_OAEP);
$ciphertext = $rsa->encrypt($credentialsData);


$params = [
  "dataSourceType" => $db_type,
  "connectionDetails" => json_encode([
    "server" => $db_server,
    "database" => $db_name
  ]),
  "dataSourceName" => $db_name,
  "onPremGatewayRequired" => true,
  "credentialDetails" => [
    "credentials" => base64_encode($ciphertext),
    "credentialType" => "Basic",
    "encryptedConnection" => "NotEncrypted",
    "privacyLevel" => "None",
   "encryptionAlgorithm" => "RSA-OAEP"
  ]
];
$this->request->execute('gateways/'.$gateway_id.'/datasources', $params, PowerBiRequest::METHOD_POST_JSON);

 

0 REPLIES 0

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

July Power BI Update Carousel

Power BI Monthly Update - July 2026

Check out the July 2026 Power BI update to learn about new features.

60 days of Data Days Carousel

Data Days 2026

Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.