@openpolicy/sdk
Version:
Public API for defining privacy policies with OpenPolicy
98 lines (75 loc) • 2.64 kB
Markdown
# `@openpolicy/sdk`
> TypeScript SDK for defining privacy and cookie policies as code.
Part of [OpenPolicy](https://openpolicy.sh) — a policy-as-code framework that compiles legal agreements from TypeScript at build time.
## Install
```sh
bun add @openpolicy/sdk
# or: npm install @openpolicy/sdk
```
## Usage
### Privacy policy
```ts
// openpolicy.ts
import { defineConfig } from "@openpolicy/sdk";
export default defineConfig({
company: {
name: "Acme",
legalName: "Acme, Inc.",
address: "123 Main St, San Francisco, CA 94105",
contact: "privacy@acme.com",
},
privacy: {
effectiveDate: "2026-01-01",
dataCollected: {
"Account information": ["Email address", "Display name"],
"Usage data": ["Pages visited", "Session duration"],
},
legalBasis: "Legitimate interests and user consent",
retention: {
"Account data": "Until account deletion",
"Analytics data": "13 months",
},
cookies: { essential: true, analytics: true, marketing: false },
thirdParties: [
{ name: "Vercel", purpose: "Hosting" },
{ name: "Plausible", purpose: "Privacy-friendly analytics" },
],
jurisdictions: ["us", "eu"],
},
});
```
### Cookie policy
```ts
// cookies.config.ts
import { defineConfig } from "@openpolicy/sdk";
export default defineConfig({
company: {
name: "Acme",
legalName: "Acme, Inc.",
address: "123 Main St, San Francisco, CA 94105",
contact: "privacy@acme.com",
},
cookie: {
effectiveDate: "2026-01-01",
cookies: { essential: true, analytics: true, marketing: false },
jurisdictions: ["us", "eu"],
},
});
```
## Compiling policies
The SDK exports types and helper functions for _defining_ policies. To compile them to Markdown or HTML, pair it with one of:
- **[`@openpolicy/vite`](https://openpolicy.sh/docs/getting-started/vite)** — Vite plugin (build-time, with hot-reload in dev)
- **[`@openpolicy/astro`](https://openpolicy.sh/docs/getting-started/astro)** — Astro integration
- **[`@openpolicy/cli`](https://openpolicy.sh/docs/getting-started/cli)** — `openpolicy generate` CLI command
## Documentation
Full field reference and guides: [openpolicy.sh/docs](https://openpolicy.sh/docs)
## AI Agents
If you use an AI coding agent (Claude Code, Cursor, Copilot, etc.), run:
```sh
npx @tanstack/intent@latest install
```
This installs skill files that give your agent accurate, up-to-date guidance for OpenPolicy APIs.
## Links
- [GitHub](https://github.com/jamiedavenport/openpolicy)
- [openpolicy.sh](https://openpolicy.sh)
- [npm](https://www.npmjs.com/package/@openpolicy/sdk)