Make a dashboard its widgets: drop the pages and sections nobody drew

This commit is contained in:
2026-08-25 12:30:22 +02:00
parent 2840cc8e2b
commit 7ff29ca939
17 changed files with 273 additions and 497 deletions
+6 -121
View File
@@ -428,12 +428,12 @@ export const DashboardDef_InputSchema = {
title: 'Icon',
default: ''
},
pages: {
widgets: {
items: {
'$ref': '#/components/schemas/PageDef-Input'
'$ref': '#/components/schemas/WidgetDef'
},
type: 'array',
title: 'Pages'
title: 'Widgets'
},
settings: {
additionalProperties: {
@@ -496,12 +496,12 @@ export const DashboardDef_OutputSchema = {
title: 'Icon',
default: ''
},
pages: {
widgets: {
items: {
'$ref': '#/components/schemas/PageDef-Output'
'$ref': '#/components/schemas/WidgetDef'
},
type: 'array',
title: 'Pages'
title: 'Widgets'
},
settings: {
additionalProperties: {
@@ -538,11 +538,6 @@ export const DashboardSummarySchema = {
title: 'Title',
default: ''
},
page_count: {
type: 'integer',
title: 'Page Count',
default: 0
},
widget_count: {
type: 'integer',
title: 'Widget Count',
@@ -2048,66 +2043,6 @@ export const OAuthClientRegisterSchema = {
description: 'RFC 7591 dynamic client registration request.'
} as const;
export const PageDef_InputSchema = {
properties: {
id: {
type: 'string',
title: 'Id'
},
title: {
type: 'string',
title: 'Title',
default: ''
},
icon: {
type: 'string',
title: 'Icon',
default: ''
},
sections: {
items: {
'$ref': '#/components/schemas/SectionDef-Input'
},
type: 'array',
title: 'Sections'
}
},
type: 'object',
required: ['id'],
title: 'PageDef',
description: 'One tab of a dashboard.'
} as const;
export const PageDef_OutputSchema = {
properties: {
id: {
type: 'string',
title: 'Id'
},
title: {
type: 'string',
title: 'Title',
default: ''
},
icon: {
type: 'string',
title: 'Icon',
default: ''
},
sections: {
items: {
'$ref': '#/components/schemas/SectionDef-Output'
},
type: 'array',
title: 'Sections'
}
},
type: 'object',
required: ['id'],
title: 'PageDef',
description: 'One tab of a dashboard.'
} as const;
export const PairRequestSchema = {
properties: {
code: {
@@ -2676,56 +2611,6 @@ export const SecretValueSchema = {
title: 'SecretValue'
} as const;
export const SectionDef_InputSchema = {
properties: {
id: {
type: 'string',
title: 'Id'
},
title: {
type: 'string',
title: 'Title',
default: ''
},
widgets: {
items: {
'$ref': '#/components/schemas/WidgetDef'
},
type: 'array',
title: 'Widgets'
}
},
type: 'object',
required: ['id'],
title: 'SectionDef',
description: 'A grid of widgets under a heading.'
} as const;
export const SectionDef_OutputSchema = {
properties: {
id: {
type: 'string',
title: 'Id'
},
title: {
type: 'string',
title: 'Title',
default: ''
},
widgets: {
items: {
'$ref': '#/components/schemas/WidgetDef'
},
type: 'array',
title: 'Widgets'
}
},
type: 'object',
required: ['id'],
title: 'SectionDef',
description: 'A grid of widgets under a heading.'
} as const;
export const SeriesAnswerSchema = {
properties: {
metric: {
+2 -41
View File
@@ -116,7 +116,7 @@ export type DashboardDef_Input = {
canvas_width?: number;
canvas_height?: number;
icon?: string;
pages?: Array<PageDef_Input>;
widgets?: Array<WidgetDef>;
settings?: {
[key: string]: SettingDef;
};
@@ -134,7 +134,7 @@ export type DashboardDef_Output = {
canvas_width?: number;
canvas_height?: number;
icon?: string;
pages?: Array<PageDef_Output>;
widgets?: Array<WidgetDef>;
settings?: {
[key: string]: SettingDef;
};
@@ -153,7 +153,6 @@ export type DashboardsPublic = {
export type DashboardSummary = {
name: string;
title?: string;
page_count?: number;
widget_count?: number;
has_draft?: boolean;
version?: number;
@@ -750,26 +749,6 @@ export type OAuthClientRegister = {
token_endpoint_auth_method?: (string | null);
};
/**
* One tab of a dashboard.
*/
export type PageDef_Input = {
id: string;
title?: string;
icon?: string;
sections?: Array<SectionDef_Input>;
};
/**
* One tab of a dashboard.
*/
export type PageDef_Output = {
id: string;
title?: string;
icon?: string;
sections?: Array<SectionDef_Output>;
};
export type PairRequest = {
code: string;
};
@@ -947,24 +926,6 @@ export type SecretValue = {
value: string;
};
/**
* A grid of widgets under a heading.
*/
export type SectionDef_Input = {
id: string;
title?: string;
widgets?: Array<WidgetDef>;
};
/**
* A grid of widgets under a heading.
*/
export type SectionDef_Output = {
id: string;
title?: string;
widgets?: Array<WidgetDef>;
};
export type SeriesAnswer = {
metric: string;
lines?: Array<MetricSeries>;