Ports: the three things that differ across clouds (storage, fan-out, identity) sit behind these interfaces. Cloudflare, memory, and AWS adapters implement them.

interface PolicyRecord {
    approver: null | string;
    author: string;
    doc: PolicyDocument;
    status: "draft" | "approved" | "published";
}

Properties

approver: null | string
author: string
status: "draft" | "approved" | "published"