From 2d17a6b792c230acf3f96b5392bde90b332181bd Mon Sep 17 00:00:00 2001 From: Misaka_Company Date: Tue, 17 Mar 2026 15:48:16 +0800 Subject: [PATCH] feat(rustfs): add RustFS configuration schema and manager support Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- src/main/services/config/config-manager.ts | 8 ++++++++ src/main/types/config.schema.ts | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/services/config/config-manager.ts b/src/main/services/config/config-manager.ts index dfd65cf..128d0f9 100644 --- a/src/main/services/config/config-manager.ts +++ b/src/main/services/config/config-manager.ts @@ -94,6 +94,14 @@ const DEFAULT_CONFIG: FullConfig = { level: 'info', auditRetention: 30, appRetention: 14 + }, + rustfs: { + enabled: false, + endpoint: '', + accessKey: '', + secretKey: '', + bucket: 'erpauto', + region: 'us-east-1' } } diff --git a/src/main/types/config.schema.ts b/src/main/types/config.schema.ts index bd96cea..6995d63 100644 --- a/src/main/types/config.schema.ts +++ b/src/main/types/config.schema.ts @@ -131,6 +131,18 @@ export const loggingConfigSchema = z.object({ appRetention: z.number().int().min(1).max(365).default(14) }) +/** + * RustFS 对象存储配置 Schema + */ +export const rustfsConfigSchema = z.object({ + enabled: z.boolean().default(false), + endpoint: z.string().min(1, 'RustFS endpoint is required'), + accessKey: z.string().min(1, 'RustFS access key is required'), + secretKey: z.string().min(1, 'RustFS secret key is required'), + bucket: z.string().min(1, 'RustFS bucket is required'), + region: z.string().default('us-east-1') +}) + /** * 完整应用配置 Schema */ @@ -142,7 +154,8 @@ export const fullConfigSchema = z.object({ validation: validationConfigSchema, cleaner: cleanerConfigSchema, orderResolution: orderResolutionSchema, - logging: loggingConfigSchema + logging: loggingConfigSchema, + rustfs: rustfsConfigSchema.optional() }) /** @@ -154,6 +167,7 @@ export type MySqlConfig = z.infer export type SqlServerConfig = z.infer export type ErpSystemConfig = z.infer export type LoggingConfig = z.infer +export type RustfsConfig = z.infer /** * 验证并解析配置