fix: harden dashboard model validation
This commit is contained in:
parent
7cfd5b4069
commit
74651a49de
4 changed files with 288 additions and 13 deletions
|
|
@ -64,7 +64,7 @@ const DatasourceReferenceSchema = Type.Union([
|
|||
ExternalDatasourceSchema,
|
||||
]);
|
||||
|
||||
const MetricValueSchema = Type.Object(
|
||||
const NumericMetricValueSchema = Type.Object(
|
||||
{
|
||||
kind: Type.Union([
|
||||
Type.Literal("percent"),
|
||||
|
|
@ -72,21 +72,34 @@ const MetricValueSchema = Type.Object(
|
|||
Type.Literal("temperature"),
|
||||
Type.Literal("latency"),
|
||||
Type.Literal("number"),
|
||||
Type.Literal("text"),
|
||||
]),
|
||||
value: Type.Union([Type.Number(), Type.String()]),
|
||||
value: Type.Number(),
|
||||
unit: Type.Optional(Type.String({ minLength: 1 })),
|
||||
precision: Type.Optional(Type.Integer({ minimum: 0, maximum: 4 })),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
|
||||
const TextMetricValueSchema = Type.Object(
|
||||
{
|
||||
kind: Type.Literal("text"),
|
||||
value: Type.String(),
|
||||
unit: Type.Optional(Type.String({ minLength: 1 })),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
|
||||
const MetricValueSchema = Type.Union([
|
||||
NumericMetricValueSchema,
|
||||
TextMetricValueSchema,
|
||||
]);
|
||||
|
||||
const ThresholdSchema = Type.Object(
|
||||
{
|
||||
warning: Type.Optional(Type.Number()),
|
||||
danger: Type.Optional(Type.Number()),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
{ additionalProperties: false, minProperties: 1 },
|
||||
);
|
||||
|
||||
export const TelemetryCardSchema = Type.Object(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue