Function: capEnumValues()
function capEnumValues(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;
}[];
}, limit?: number): {
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/ask/prompt-payload.ts:28
Truncate every field's enumValues to limit, returning a NEW metadata
object. Pure: the caller's metadata (which the registry caches per-model) is
never mutated. Fields with no enumValues, and lists already at or under the
limit, are passed through unchanged.
Parameters
| Parameter | Type | Default value |
|---|---|---|
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; }[]; } | undefined |
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; }[] | ... |
metadata.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; })[]; }[] | ... |
metadata.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; }[] | ... |
metadata.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; }[] | ... |
limit | number | MAX_ENUM_VALUES_PER_FIELD |
Returns
{
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;
}[];
}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;
}[];