Interface ResolvedCeiling

A ceiling with every default applied and every list normalised.

interface ResolvedCeiling {
    fetch?: {
        domains: string[] | "*";
        methods: HttpMethod[];
        maxResponseBytes: number;
        maxRedirects: number;
        timeoutMs: number;
        maxRequestBytes?: number;
        approval?: EffectApproval;
    };
    fs.read?: {
        roots: string[];
        maxBytesPerRead: number;
        timeoutMs: number;
    };
    fs.write?: {
        roots: string[];
        mode: "create-only" | "create-or-replace";
        maxBytesPerFile: number;
        maxBytesPerCall: number;
        maxFilesPerCall: number;
        timeoutMs: number;
        approval: EffectApproval;
    };
    fs.delete?: {
        roots: string[];
        maxFilesPerCall: number;
        timeoutMs: number;
        approval: EffectApproval;
    };
    crypto?: true;
    audit: {
        store: "none" | "storage";
        content: "full" | "digest";
        retainDays?: number;
    };
}

Properties

fetch?: {
    domains: string[] | "*";
    methods: HttpMethod[];
    maxResponseBytes: number;
    maxRedirects: number;
    timeoutMs: number;
    maxRequestBytes?: number;
    approval?: EffectApproval;
}

Type declaration

  • domains: string[] | "*"
  • methods: HttpMethod[]
  • maxResponseBytes: number
  • maxRedirects: number
  • timeoutMs: number
  • Optional maxRequestBytes?: number

    Set exactly when methods holds a state-changing method.

  • Optional approval?: EffectApproval
fs.read?: {
    roots: string[];
    maxBytesPerRead: number;
    timeoutMs: number;
}

Type declaration

  • roots: string[]
  • maxBytesPerRead: number
  • timeoutMs: number
fs.write?: {
    roots: string[];
    mode: "create-only" | "create-or-replace";
    maxBytesPerFile: number;
    maxBytesPerCall: number;
    maxFilesPerCall: number;
    timeoutMs: number;
    approval: EffectApproval;
}

Type declaration

  • roots: string[]
  • mode: "create-only" | "create-or-replace"
  • maxBytesPerFile: number
  • maxBytesPerCall: number
  • maxFilesPerCall: number
  • timeoutMs: number
  • approval: EffectApproval
fs.delete?: {
    roots: string[];
    maxFilesPerCall: number;
    timeoutMs: number;
    approval: EffectApproval;
}

Type declaration

  • roots: string[]
  • maxFilesPerCall: number
  • timeoutMs: number
  • approval: EffectApproval
crypto?: true
audit: {
    store: "none" | "storage";
    content: "full" | "digest";
    retainDays?: number;
}

Type declaration

  • store: "none" | "storage"
  • content: "full" | "digest"
  • Optional retainDays?: number