with Netlify and OpenSRS?
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
Initiate a domain transfer to OpenSRS. See the documentation
Update DNS records for a specified domain. See the documentation
Harness the power of the Netlify API on Pipedream to automate your web development workflows, streamline site deployments, manage DNS settings, and more. With Pipedream's serverless platform, you can orchestrate Netlify's capabilities in concert with numerous other services to enhance productivity, monitor your deployments, and react to events in real-time. Create custom CI/CD pipelines, synchronize your site's content with third-party systems, or automate responses to form submissions, all with the seamless integration of the Netlify API within Pipedream workflows.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
netlify: {
type: "app",
app: "netlify",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.netlify.com/api/v1/user`,
headers: {
Authorization: `Bearer ${this.netlify.$auth.oauth_access_token}`,
},
})
},
})
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
});
},
})