truegrain - v1.1.0
    Preparing search index...

    Interface AuditEvent

    One decision the engine recorded.

    refused and denied are separate on purpose, and a consumer should keep them separate. Denied is access: this caller may not read a field. Refused is correctness: nobody can be told this accurately, and hint names a question that can be answered. Counting them together turns every fan-out into an access incident.

    Carries no filter values, no SQL text and no result rows, by design. The sqlHash identifies the statement without disclosing it.

    interface AuditEvent {
        bytesBilled: number;
        code: string;
        decision: AuditDecision;
        deniedFields: string[];
        dialect: string;
        dimensions: string[];
        durationMs: number;
        error: string;
        hint: string;
        identity: string;
        jobId: string;
        metrics: string[];
        modelVersion: string;
        namespace: string;
        raw: Record<string, unknown>;
        reason: string;
        retry: "" | Retry;
        rowCount: number;
        sqlHash: string;
        time: string;
    }
    Index
    bytesBilled: number

    What the warehouse says the query cost. Zero means not reported rather than free: DuckDB bills nobody and reports nothing, and the two are indistinguishable.

    code: string

    Which refusal, when decision is refused.

    decision: AuditDecision

    What the engine decided.

    deniedFields: string[]

    Semantic fields refused, on a denial. Never shown to the denied caller.

    dialect: string

    The warehouse this compiled for.

    dimensions: string[]

    How it was grouped.

    durationMs: number

    Wall clock time of the warehouse round trip.

    error: string

    The failure, when decision is error.

    hint: string

    What would answer instead. The actionable half.

    identity: string

    Who asked. anonymous on an engine without authentication.

    jobId: string

    The warehouse's own identifier, so two logs can be joined.

    metrics: string[]

    What was asked for. Names only, never values.

    modelVersion: string

    The workspace digest that answered, tying a number to a model revision.

    namespace: string

    The workspace namespace the request resolved to.

    raw: Record<string, unknown>

    The event as the engine sent it, for anything not modelled here.

    reason: string

    The refusal in the engine's own words.

    retry: "" | Retry

    What the caller should do about a refusal.

    rowCount: number

    Rows returned, for a query that ran to completion.

    sqlHash: string

    Identifies the compiled statement without disclosing it.

    time: string

    When the decision was made, RFC 3339.