fix(settings): sync generated schemas

- entity.go: tighten SessionMaxAge validate tag gte=0 -> gte=1 to match the panel UI (min 60) and the hand-written setting.ts schema

- GeneralTab.tsx: add max bounds to sessionMaxAge (525600) and pageSize (1000), raise pageSize min to 1

- regenerate zod.ts/types.ts, picking up pending drift: panelProxy field, client group field, InboundFallback.dest, and dropping the stale hysteria2 protocol enum value
This commit is contained in:
MHSanaei
2026-05-31 19:00:26 +02:00
parent 982a78ecdd
commit b1c141a515
5 changed files with 17 additions and 7 deletions

View File

@@ -27,6 +27,7 @@ export interface AllSetting {
ldapUserFilter: string;
ldapVlessField: string;
pageSize: number;
panelProxy: string;
remarkModel: string;
restartXrayOnClientDisable: boolean;
sessionMaxAge: number;
@@ -113,6 +114,7 @@ export interface AllSettingView {
ldapUserFilter: string;
ldapVlessField: string;
pageSize: number;
panelProxy: string;
remarkModel: string;
restartXrayOnClientDisable: boolean;
sessionMaxAge: number;
@@ -183,6 +185,7 @@ export interface Client {
enable: boolean;
expiryTime: number;
flow?: string;
group?: string;
id?: string;
limitIp: number;
password?: string;
@@ -210,6 +213,7 @@ export interface ClientRecord {
enable: boolean;
expiryTime: number;
flow: string;
group: string;
id: number;
limitIp: number;
password: string;
@@ -295,6 +299,7 @@ export interface InboundClientIps {
export interface InboundFallback {
alpn: string;
childId: number;
dest: string;
id: number;
masterId: number;
name: string;

View File

@@ -29,9 +29,10 @@ export const AllSettingSchema = z.object({
ldapUserFilter: z.string(),
ldapVlessField: z.string(),
pageSize: z.number().int().min(1).max(1000),
panelProxy: z.string(),
remarkModel: z.string(),
restartXrayOnClientDisable: z.boolean(),
sessionMaxAge: z.number().int().min(0).max(525600),
sessionMaxAge: z.number().int().min(1).max(525600),
subAnnounce: z.string(),
subCertFile: z.string(),
subClashEnable: z.boolean(),
@@ -116,9 +117,10 @@ export const AllSettingViewSchema = z.object({
ldapUserFilter: z.string(),
ldapVlessField: z.string(),
pageSize: z.number().int().min(1).max(1000),
panelProxy: z.string(),
remarkModel: z.string(),
restartXrayOnClientDisable: z.boolean(),
sessionMaxAge: z.number().int().min(0).max(525600),
sessionMaxAge: z.number().int().min(1).max(525600),
subAnnounce: z.string(),
subCertFile: z.string(),
subClashEnable: z.boolean(),
@@ -188,6 +190,7 @@ export const ClientSchema = z.object({
enable: z.boolean(),
expiryTime: z.number().int(),
flow: z.string().optional(),
group: z.string().optional(),
id: z.string().optional(),
limitIp: z.number().int(),
password: z.string().optional(),
@@ -217,6 +220,7 @@ export const ClientRecordSchema = z.object({
enable: z.boolean(),
expiryTime: z.number().int(),
flow: z.string(),
group: z.string(),
id: z.number().int(),
limitIp: z.number().int(),
password: z.string(),
@@ -288,7 +292,7 @@ export const InboundSchema = z.object({
listen: z.string(),
nodeId: z.number().int().nullable().optional(),
port: z.number().int().min(1).max(65535),
protocol: z.enum(['vmess', 'vless', 'trojan', 'shadowsocks', 'wireguard', 'hysteria', 'hysteria2', 'http', 'mixed', 'tunnel']),
protocol: z.enum(['vmess', 'vless', 'trojan', 'shadowsocks', 'wireguard', 'hysteria', 'http', 'mixed', 'tunnel']),
remark: z.string(),
settings: z.unknown(),
sniffing: z.unknown(),
@@ -310,6 +314,7 @@ export type InboundClientIps = z.infer<typeof InboundClientIpsSchema>;
export const InboundFallbackSchema = z.object({
alpn: z.string(),
childId: z.number().int(),
dest: z.string(),
id: z.number().int(),
masterId: z.number().int(),
name: z.string(),