fix(core): Support inserting dates to data store via the insert endpoint (#18404)

This commit is contained in:
Jaakko Husso
2025-08-18 10:42:32 +03:00
committed by GitHub
parent 58aad35592
commit dc86984ae0
7 changed files with 270 additions and 12 deletions

View File

@@ -1,8 +1,11 @@
import { z } from 'zod';
import { Z } from 'zod-class';
import { dataStoreColumnNameSchema } from '../../schemas/data-store.schema';
import {
dataStoreColumnNameSchema,
dataStoreColumnValueSchema,
} from '../../schemas/data-store.schema';
export class AddDataStoreRowsDto extends Z.class({
data: z.array(z.record(dataStoreColumnNameSchema, z.any())),
data: z.array(z.record(dataStoreColumnNameSchema, dataStoreColumnValueSchema)),
}) {}

View File

@@ -56,4 +56,5 @@ export {
type DataStoreRows,
type DataStoreListOptions,
type DataStoreUserTableName,
dateTimeSchema,
} from './schemas/data-store.schema';

View File

@@ -51,6 +51,15 @@ export type DataStoreListOptions = Partial<ListDataStoreQueryDto> & {
filter: { projectId: string };
};
export const dateTimeSchema = z
.string()
.datetime({ offset: true })
.transform((s) => new Date(s))
.pipe(z.date());
// Dates are received as date strings and validated before insertion
export const dataStoreColumnValueSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);
export type DataStoreColumnJsType = string | number | boolean | Date;
export type DataStoreRows = Array<Record<string, DataStoreColumnJsType | null>>;