JavaScript

JavaScript examples using native fetch (Node.js 18+ or browser).

Prerequisites

  • Node.js 18+ (native fetch) or node-fetch
  • OTTR_API_KEY environment variable

Create Approval

create-approval.js
// Create approval
const response = await fetch('https://api.ottr.run/v1/approvals', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.OTTR_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    key_path: 'deploy/prod',
    value: 'approved',
    ttl_seconds: 600,
    info: 'Deploy to production?'
  })
});

const { url } = await response.json();
console.log('Approval URL:', url);

Poll for Result

poll.js
// Poll for approval
while (true) {
  const response = await fetch('https://api.ottr.run/v1/key/deploy/prod', {
    headers: { 'Authorization': `Bearer ${process.env.OTTR_API_KEY}` }
  });
  const value = await response.text();

  if (value === 'approved') {
    console.log('Approved!');
    // ... proceed with deployment
    break;
  }
  await new Promise(r => setTimeout(r, 5000));
}