with Guru and OpenSRS?
Emit new event when a user makes an edit to a card. See the documentation
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event for each new domain registration. See the documentation
Emit new event when the status of a domain transfer changes. See the documentation
Emit new event when a user clicks on the "I read it" button in an Announcement. See the documentation
Links an existing tag to a specified card in Guru. See the documentation
Initiate a domain transfer to OpenSRS. See the documentation
Export a specific card identified by its ID to a PDF file. See the documentation
The Guru API on Pipedream enables the automation of knowledge sharing and management tasks within your team or organization. Using this API, you can programmatically interact with Guru's knowledge base, including retrieving card details, creating new cards, and updating existing content. By leveraging Pipedream's serverless platform, you can craft workflows that trigger based on events from other services, process the data, and perform actions in Guru to keep your team's knowledge up to date and accessible.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
guru: {
type: "app",
app: "guru",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.getguru.com/api/v1/teams`,
headers: {
"Accept": `application/json`,
},
auth: {
username: `${this.guru.$auth.username}`,
password: `${this.guru.$auth.api_key}`,
},
})
},
})
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
opensrs: {
type: "app",
app: "opensrs",
}
},
async run({steps, $}) {
const connectionDetails = {
reseller_username: this.opensrs.$auth.reseller_username,
api_key: this.opensrs.$auth.api_key,
api_host_port: this.opensrs.$auth.api_host_port
};
//Payload of the request
const xml = `<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">${this.opensrs.$auth.domain}</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>`;
// Generate signature
const generateSignature = (xml, apiKey) => {
let md5 = crypto.createHash('md5');
md5.update(xml + apiKey);
let firstHash = md5.digest('hex');
md5 = crypto.createHash('md5');
md5.update(firstHash + apiKey);
return md5.digest('hex');
};
const signature = generateSignature(xml, connectionDetails.api_key);
// Prepare and call OpenSRS API
const headers = {
'Content-Type': 'text/xml',
'X-Username': connectionDetails.reseller_username,
'X-Signature': signature
};
return await axios($, {
method: "POST",
url: connectionDetails.api_host_port,
headers,
data: xml
});
},
})