Kaizen
Browse modulesInsightsinsights/serverInterfaces

Interface: ReportingModel

Defined in: server/insights/model/define-reporting-model.ts:227

A validated reporting model. Carries the physical bindings (subjects with columns/tenant/soft-delete, metrics, canned reports, dashboards) PLUS the derived physical-free ReportingModelMetadata. Only metadata is safe to serialize to the browser.

Properties

cannedReports

readonly cannedReports: ReadonlyMap<string, ResolvedCannedReport>;

Defined in: server/insights/model/define-reporting-model.ts:230


dashboards

readonly dashboards: ReadonlyMap<string, {
  filters?: (
     | {
     field: string;
     id: string;
     kind: "date-range";
     label: string;
   }
     | {
     field: string;
     id: string;
     kind: "select";
     label: string;
     multiple?: boolean;
     searchable?: boolean;
   }
     | {
     defaultOperator?: "gt" | "lt" | "gte" | "lte" | "eq";
     field: string;
     format?: "number" | "currency";
     id: string;
     kind: "measure";
     label: string;
     operators?: ("gt" | "lt" | "gte" | "lte" | "eq")[];
   }
     | {
     field: string;
     id: string;
     kind: "search";
     label: string;
  })[];
  key: string;
  label: string;
  tiles: (
     | {
     id: string;
     kind: "metric" | "canned-report";
     layout: {
        h: number;
        w: number;
        x: number;
        y: number;
     };
     ref: string;
     visualization?:   | {
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "metric";
        legend?: boolean;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        ticker?: {
           colorCoded?: boolean;
           invertColors?: boolean;
           label?: string;
           value: string;
        };
        tickers?: {
           colorCoded?: ... | ... | ...;
           invertColors?: ... | ... | ...;
           label?: ... | ...;
           value: string;
        }[];
        value: string;
      }
        | {
        category: string;
        facet?: {
           field: string;
           scales?: "shared" | "independent";
        };
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "bar";
        legend?: boolean;
        mode?: "percent" | "stacked" | "grouped" | "diverging";
        orientation?: "vertical" | "horizontal";
        series: {
           colorSlot?: number;
           field: string;
           label?: string;
        }[];
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
      }
        | {
        bars: {
           colorSlot?: number;
           field: string;
           label?: string;
        }[];
        curve?: "linear" | "monotone";
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "combo";
        legend?: boolean;
        lines: {
           colorSlot?: number;
           field: string;
           label?: string;
        }[];
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        x: string;
      }
        | {
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "gauge";
        legend?: boolean;
        limit?: number;
        limitField?: string;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        sweep?: 180 | 270 | 360;
        thresholds?: {
           color: ... | ... | ...;
           label?: ... | ...;
           value: number;
        }[];
        value: string;
      }
        | {
        area?: boolean;
        compact?: boolean;
        curve?: "linear" | "monotone";
        facet?: {
           field: string;
           scales?: "shared" | "independent";
        };
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "line";
        legend?: boolean;
        points?: boolean;
        series: {
           colorSlot?: number;
           field: string;
           label?: string;
        }[];
        stack?: "none" | "absolute" | "percent";
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        x: string;
      }
        | {
        category: string;
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        innerRadiusRatio?: number;
        kind: "pie";
        legend?: boolean;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        value: string;
      }
        | {
        facet?: {
           field: string;
           scales?: "shared" | "independent";
        };
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        group?: string;
        kind: "scatter";
        label?: string;
        legend?: boolean;
        size?: string;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        x: string;
        y: string;
      }
        | {
        bins?: number;
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "histogram";
        legend?: boolean;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        value: string;
      }
        | {
        color?: "diverging" | "sequential";
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "heatmap";
        legend?: boolean;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        value: string;
        x: string;
        y: string;
      }
        | {
        after: string;
        before: string;
        category: string;
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "dumbbell";
        legend?: boolean;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
      }
        | {
        category: string;
        change: string;
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "waterfall";
        legend?: boolean;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        total?: string;
      }
        | {
        conversion?: "previous" | "first";
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "funnel";
        legend?: boolean;
        stage: string;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        value: string;
      }
        | {
        color?: "diverging" | "sequential";
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "us-map";
        label?: string;
        latitude: string;
        legend?: boolean;
        longitude: string;
        state: string;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        value: string;
      }
        | {
        color?: "diverging" | "sequential";
        format?: {
           compact?: boolean;
           dateStyle?: "short" | "long" | "medium";
           maximumFractionDigits?: number;
           wholeNumberTicks?: boolean;
        };
        grid?: boolean;
        kind: "choropleth";
        legend?: boolean;
        region: string;
        summary?: {
           field: string;
           fn: "min" | "max" | "count" | "avg" | "sum" | "last";
           label?: string;
        };
        value: string;
      }
        | {
        kind: "table";
      };
   }
     | {
     background?: boolean;
     id: string;
     kind: "text-cell";
     layout: {
        h: number;
        w: number;
        x: number;
        y: number;
     };
     ref?: undefined;
     text: string;
     variant: "body" | "heading-1" | "heading-2";
     visualization?: undefined;
  })[];
}>;

Defined in: server/insights/model/define-reporting-model.ts:231


metadata

readonly metadata: {
  cannedReports?: {
     definition: {
        aggregations?: {
           alias: string;
           field?: string;
           fn: "min" | "max" | "count" | "avg" | "sum";
        }[];
        columns: string[];
        filter?: FilterNode;
        groupBy?: {
           bucket?: "year" | "month" | "day" | "week" | "quarter";
           field: string;
        }[];
        schemaVersion: 1;
        sort: {
           by: string;
           direction: "asc" | "desc";
        }[];
        subject: string;
        timezone: string;
        totals?: boolean;
     };
     key: string;
     name: string;
  }[];
  dashboards?: {
     filters?: (
        | {
        field: string;
        id: string;
        kind: "date-range";
        label: string;
      }
        | {
        field: string;
        id: string;
        kind: "select";
        label: string;
        multiple?: boolean;
        searchable?: boolean;
      }
        | {
        defaultOperator?: "gt" | "lt" | "gte" | "lte" | "eq";
        field: string;
        format?: "number" | "currency";
        id: string;
        kind: "measure";
        label: string;
        operators?: (... | ... | ... | ... | ...)[];
      }
        | {
        field: string;
        id: string;
        kind: "search";
        label: string;
     })[];
     key: string;
     label: string;
     tiles: (
        | {
        id: string;
        kind: "metric" | "canned-report";
        layout: {
           h: number;
           w: number;
           x: number;
           y: number;
        };
        ref: string;
        visualization?:   | {
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "metric";
           legend?: boolean;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           ticker?: {
              colorCoded?: ...;
              invertColors?: ...;
              label?: ...;
              value: ...;
           };
           tickers?: ...[];
           value: string;
         }
           | {
           category: string;
           facet?: {
              field: ...;
              scales?: ...;
           };
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "bar";
           legend?: boolean;
           mode?: "percent" | "stacked" | "grouped" | "diverging";
           orientation?: "vertical" | "horizontal";
           series: {
              colorSlot?: ...;
              field: ...;
              label?: ...;
           }[];
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
         }
           | {
           bars: {
              colorSlot?: ...;
              field: ...;
              label?: ...;
           }[];
           curve?: "linear" | "monotone";
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "combo";
           legend?: boolean;
           lines: {
              colorSlot?: ...;
              field: ...;
              label?: ...;
           }[];
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           x: string;
         }
           | {
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "gauge";
           legend?: boolean;
           limit?: number;
           limitField?: string;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           sweep?: 180 | 270 | 360;
           thresholds?: ...[];
           value: string;
         }
           | {
           area?: boolean;
           compact?: boolean;
           curve?: "linear" | "monotone";
           facet?: {
              field: ...;
              scales?: ...;
           };
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "line";
           legend?: boolean;
           points?: boolean;
           series: {
              colorSlot?: ...;
              field: ...;
              label?: ...;
           }[];
           stack?: "none" | "absolute" | "percent";
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           x: string;
         }
           | {
           category: string;
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           innerRadiusRatio?: number;
           kind: "pie";
           legend?: boolean;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           value: string;
         }
           | {
           facet?: {
              field: ...;
              scales?: ...;
           };
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           group?: string;
           kind: "scatter";
           label?: string;
           legend?: boolean;
           size?: string;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           x: string;
           y: string;
         }
           | {
           bins?: number;
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "histogram";
           legend?: boolean;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           value: string;
         }
           | {
           color?: "diverging" | "sequential";
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "heatmap";
           legend?: boolean;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           value: string;
           x: string;
           y: string;
         }
           | {
           after: string;
           before: string;
           category: string;
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "dumbbell";
           legend?: boolean;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
         }
           | {
           category: string;
           change: string;
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "waterfall";
           legend?: boolean;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           total?: string;
         }
           | {
           conversion?: "previous" | "first";
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "funnel";
           legend?: boolean;
           stage: string;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           value: string;
         }
           | {
           color?: "diverging" | "sequential";
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "us-map";
           label?: string;
           latitude: string;
           legend?: boolean;
           longitude: string;
           state: string;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           value: string;
         }
           | {
           color?: "diverging" | "sequential";
           format?: {
              compact?: ...;
              dateStyle?: ...;
              maximumFractionDigits?: ...;
              wholeNumberTicks?: ...;
           };
           grid?: boolean;
           kind: "choropleth";
           legend?: boolean;
           region: string;
           summary?: {
              field: ...;
              fn: ...;
              label?: ...;
           };
           value: string;
         }
           | {
           kind: "table";
         };
      }
        | {
        background?: boolean;
        id: string;
        kind: "text-cell";
        layout: {
           h: number;
           w: number;
           x: number;
           y: number;
        };
        ref?: undefined;
        text: string;
        variant: "body" | "heading-1" | "heading-2";
        visualization?: undefined;
     })[];
  }[];
  metrics?: {
     aggregation: {
        field?: string;
        fn: "min" | "max" | "count" | "avg" | "sum";
     };
     format?: {
        money?: {
           currencyCode?: string;
           representation: "decimal" | "minorUnits";
           scale: number;
        };
        type: "string" | "number" | "boolean" | "date" | "enum" | "datetime" | "money";
     };
     key: string;
     label: string;
     subject: string;
  }[];
  subjects: {
     defaultColumns?: string[];
     fields: {
        capabilities: {
           aggregatable: boolean;
           filterable: boolean;
           groupable: boolean;
           sortable: boolean;
        };
        enumValues?: string[];
        key: string;
        label: string;
        money?: {
           currencyCode?: string;
           representation: "decimal" | "minorUnits";
           scale: number;
        };
        type: "string" | "number" | "boolean" | "date" | "enum" | "datetime" | "money";
     }[];
     key: string;
     label: string;
  }[];
};

Defined in: server/insights/model/define-reporting-model.ts:232

cannedReports?

optional cannedReports?: {
  definition: {
     aggregations?: {
        alias: string;
        field?: string;
        fn: "min" | "max" | "count" | "avg" | "sum";
     }[];
     columns: string[];
     filter?: FilterNode;
     groupBy?: {
        bucket?: "year" | "month" | "day" | "week" | "quarter";
        field: string;
     }[];
     schemaVersion: 1;
     sort: {
        by: string;
        direction: "asc" | "desc";
     }[];
     subject: string;
     timezone: string;
     totals?: boolean;
  };
  key: string;
  name: string;
}[];

dashboards?

optional dashboards?: {
  filters?: (
     | {
     field: string;
     id: string;
     kind: "date-range";
     label: string;
   }
     | {
     field: string;
     id: string;
     kind: "select";
     label: string;
     multiple?: boolean;
     searchable?: boolean;
   }
     | {
     defaultOperator?: "gt" | "lt" | "gte" | "lte" | "eq";
     field: string;
     format?: "number" | "currency";
     id: string;
     kind: "measure";
     label: string;
     operators?: (... | ... | ... | ... | ...)[];
   }
     | {
     field: string;
     id: string;
     kind: "search";
     label: string;
  })[];
  key: string;
  label: string;
  tiles: (
     | {
     id: string;
     kind: "metric" | "canned-report";
     layout: {
        h: number;
        w: number;
        x: number;
        y: number;
     };
     ref: string;
     visualization?:   | {
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "metric";
        legend?: boolean;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        ticker?: {
           colorCoded?: ...;
           invertColors?: ...;
           label?: ...;
           value: ...;
        };
        tickers?: ...[];
        value: string;
      }
        | {
        category: string;
        facet?: {
           field: ...;
           scales?: ...;
        };
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "bar";
        legend?: boolean;
        mode?: "percent" | "stacked" | "grouped" | "diverging";
        orientation?: "vertical" | "horizontal";
        series: {
           colorSlot?: ...;
           field: ...;
           label?: ...;
        }[];
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
      }
        | {
        bars: {
           colorSlot?: ...;
           field: ...;
           label?: ...;
        }[];
        curve?: "linear" | "monotone";
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "combo";
        legend?: boolean;
        lines: {
           colorSlot?: ...;
           field: ...;
           label?: ...;
        }[];
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        x: string;
      }
        | {
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "gauge";
        legend?: boolean;
        limit?: number;
        limitField?: string;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        sweep?: 180 | 270 | 360;
        thresholds?: ...[];
        value: string;
      }
        | {
        area?: boolean;
        compact?: boolean;
        curve?: "linear" | "monotone";
        facet?: {
           field: ...;
           scales?: ...;
        };
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "line";
        legend?: boolean;
        points?: boolean;
        series: {
           colorSlot?: ...;
           field: ...;
           label?: ...;
        }[];
        stack?: "none" | "absolute" | "percent";
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        x: string;
      }
        | {
        category: string;
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        innerRadiusRatio?: number;
        kind: "pie";
        legend?: boolean;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        value: string;
      }
        | {
        facet?: {
           field: ...;
           scales?: ...;
        };
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        group?: string;
        kind: "scatter";
        label?: string;
        legend?: boolean;
        size?: string;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        x: string;
        y: string;
      }
        | {
        bins?: number;
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "histogram";
        legend?: boolean;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        value: string;
      }
        | {
        color?: "diverging" | "sequential";
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "heatmap";
        legend?: boolean;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        value: string;
        x: string;
        y: string;
      }
        | {
        after: string;
        before: string;
        category: string;
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "dumbbell";
        legend?: boolean;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
      }
        | {
        category: string;
        change: string;
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "waterfall";
        legend?: boolean;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        total?: string;
      }
        | {
        conversion?: "previous" | "first";
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "funnel";
        legend?: boolean;
        stage: string;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        value: string;
      }
        | {
        color?: "diverging" | "sequential";
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "us-map";
        label?: string;
        latitude: string;
        legend?: boolean;
        longitude: string;
        state: string;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        value: string;
      }
        | {
        color?: "diverging" | "sequential";
        format?: {
           compact?: ...;
           dateStyle?: ...;
           maximumFractionDigits?: ...;
           wholeNumberTicks?: ...;
        };
        grid?: boolean;
        kind: "choropleth";
        legend?: boolean;
        region: string;
        summary?: {
           field: ...;
           fn: ...;
           label?: ...;
        };
        value: string;
      }
        | {
        kind: "table";
      };
   }
     | {
     background?: boolean;
     id: string;
     kind: "text-cell";
     layout: {
        h: number;
        w: number;
        x: number;
        y: number;
     };
     ref?: undefined;
     text: string;
     variant: "body" | "heading-1" | "heading-2";
     visualization?: undefined;
  })[];
}[];

metrics?

optional metrics?: {
  aggregation: {
     field?: string;
     fn: "min" | "max" | "count" | "avg" | "sum";
  };
  format?: {
     money?: {
        currencyCode?: string;
        representation: "decimal" | "minorUnits";
        scale: number;
     };
     type: "string" | "number" | "boolean" | "date" | "enum" | "datetime" | "money";
  };
  key: string;
  label: string;
  subject: string;
}[];

subjects

subjects: {
  defaultColumns?: string[];
  fields: {
     capabilities: {
        aggregatable: boolean;
        filterable: boolean;
        groupable: boolean;
        sortable: boolean;
     };
     enumValues?: string[];
     key: string;
     label: string;
     money?: {
        currencyCode?: string;
        representation: "decimal" | "minorUnits";
        scale: number;
     };
     type: "string" | "number" | "boolean" | "date" | "enum" | "datetime" | "money";
  }[];
  key: string;
  label: string;
}[];

metrics

readonly metrics: ReadonlyMap<string, ResolvedMetric>;

Defined in: server/insights/model/define-reporting-model.ts:229


subjects

readonly subjects: ReadonlyMap<string, ResolvedSubject>;

Defined in: server/insights/model/define-reporting-model.ts:228

On this page