Automate Discourse Integration Tasks from PowerShell
The CData API Driver for ADO.NET is a standard ADO.NET Provider that make it easy to accomplish data cleansing, normalization, backup, and other integration tasks by enabling real-time access to Discourse.
ADO.NET Provider
The ADO.NET Provider provides a SQL interface for Discourse; this tutorial shows how to use the Provider to retrieve Discourse data.
Once you have acquired the necessary connection properties, accessing Discourse data in PowerShell can be enabled in three steps.
The Discourse API uses API Key authentication.
Using API Key Authentication
Discourse requires API Key and Username for authentication. API Keys are generated in the Discourse Admin panel under the API section. You can create user-specific API keys or all-users API keys. Once you have obtained the API Key, set it along with the Domain and Username in the ProfileSettings connection property.
Example Connection string
Profile=C:\profiles\Discourse.apip;ProfileSettings='Domain=forum.example.com;APIKey=your_api_key;Username=your_username;'AuthScheme=APIKey;
-
Load the provider's assembly:
[Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData API Driver for ADO.NET\lib\System.Data.CData.API.dll") -
Connect to Discourse:
$conn= New-Object System.Data.CData.API.APIConnection("Profile=C:\profiles\Discourse.apip;ProfileSettings='Domain=forum.example.com;APIKey=your_api_key;Username=your_username;'AuthScheme=APIKey;") $conn.Open() -
Instantiate the APIDataAdapter, execute an SQL query, and output the results:
$sql="SELECT , from Backups" $da= New-Object System.Data.CData.API.APIDataAdapter($sql, $conn) $dt= New-Object System.Data.DataTable $da.Fill($dt) $dt.Rows | foreach { Write-Host $_. $_. }