Skip to content

Policies

Manage policy documents with the de.iterate SDK.

Overview

The policies resource provides operations for managing organizational policies, including versioning, publishing, and archiving.

List Policies

typescript
const response = await client.policies.list();

console.log(`Found ${response.data.length} policies`);
for (const policy of response.data) {
  console.log(`  • ${policy.title} (${policy.status})`);
}

Search Policies

typescript
const results = await client.policies.search('security');

console.log(`Found ${results.length} matching policies`);

Get Policy

typescript
const policy = await client.policies.get('POL-001');

console.log(policy.title);
console.log(policy.version);
console.log(policy.status);

Create Policy

typescript
const policy = await client.policies.create({
  title: 'Remote Work Policy',
  content: '# Remote Work Policy\n\nThis policy outlines...',
  status: 'draft',
  category: 'Human Resources',
  owner: 'hr-team@company.com',
  reviewDate: new Date('2025-12-01'),
});

console.log(`Created: ${policy.id}`);

CreatePolicyInput

FieldTypeRequiredDescription
titlestringPolicy title
contentstringPolicy content (Markdown)
status'draft' | 'published' | 'archived'Status
categorystringPolicy category
ownerstringPolicy owner
approverstringApprover
effectiveDateDateWhen policy takes effect
reviewDateDateNext review date

Update Policy

typescript
await client.policies.update('POL-001', {
  content: 'Updated content...',
  version: '2.0',
});

Delete Policy

typescript
await client.policies.delete('POL-001');

Publish Policy

typescript
const published = await client.policies.publish('POL-001');
console.log(`Published: ${published.title} v${published.version}`);

Archive Policy

typescript
const archived = await client.policies.archive('POL-001');

Get Version History

typescript
const versions = await client.policies.getVersions('POL-001');

for (const version of versions) {
  console.log(`v${version.version} - ${version.updatedAt}`);
}

Policy Type

typescript
interface Policy {
  id: string;
  type: 'policy';
  title: string;
  content?: string;
  status: 'draft' | 'published' | 'archived';
  version?: string;
  category?: string;
  owner?: string;
  approver?: string;
  effectiveDate?: Date;
  reviewDate?: Date;
  createdAt: Date;
  updatedAt: Date;
}

Examples

Policy Review Report

typescript
async function policyReviewReport() {
  const response = await client.policies.list();
  const now = new Date();
  
  const needsReview = response.data.filter(p => {
    if (!p.reviewDate) return false;
    return new Date(p.reviewDate) < now;
  });
  
  console.log(`Policies needing review: ${needsReview.length}`);
  for (const policy of needsReview) {
    console.log(`  • ${policy.title}`);
    console.log(`    Review due: ${policy.reviewDate}`);
  }
}

Next Steps

Released under the MIT License.