mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-06-15 20:25:23 +02:00
chore: update drizzle-orm version to 0.41.0 in package.json and pnpm-lock.yaml; refactor schema definitions for improved clarity and consistency across various database schemas
This commit is contained in:
@@ -57,7 +57,7 @@
|
||||
"dockerode": "4.0.2",
|
||||
"dotenv": "16.4.5",
|
||||
"drizzle-dbml-generator": "0.10.0",
|
||||
"drizzle-orm": "^0.41.0",
|
||||
"drizzle-orm": "0.41.0",
|
||||
"drizzle-zod": "0.5.1",
|
||||
"yaml": "2.8.1",
|
||||
"lodash": "4.17.21",
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
import { and, eq } from "drizzle-orm";
|
||||
import { drizzle, type PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
||||
import postgres from "postgres";
|
||||
import { dbUrl } from "./constants";
|
||||
import * as schema from "./schema";
|
||||
|
||||
export { and, eq };
|
||||
export * from "./schema";
|
||||
|
||||
declare global {
|
||||
var db: PostgresJsDatabase<typeof schema> | undefined;
|
||||
}
|
||||
|
||||
@@ -37,22 +37,22 @@ const createSchema = createInsertSchema(ai, {
|
||||
isEnabled: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export const apiCreateAi = z.object({
|
||||
name: z.string().min(1, { message: "Name is required" }),
|
||||
apiUrl: z.string().url({ message: "Please enter a valid URL" }),
|
||||
apiKey: z.string(),
|
||||
model: z.string().min(1, { message: "Model is required" }),
|
||||
isEnabled: z.boolean().optional(),
|
||||
});
|
||||
export const apiCreateAi = createSchema
|
||||
.pick({
|
||||
name: true,
|
||||
apiUrl: true,
|
||||
apiKey: true,
|
||||
model: true,
|
||||
isEnabled: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiUpdateAi = z.object({
|
||||
aiId: z.string().min(1),
|
||||
name: z.string().min(1, { message: "Name is required" }).optional(),
|
||||
apiUrl: z.string().url({ message: "Please enter a valid URL" }).optional(),
|
||||
apiKey: z.string().optional(),
|
||||
model: z.string().min(1, { message: "Model is required" }).optional(),
|
||||
isEnabled: z.boolean().optional(),
|
||||
});
|
||||
export const apiUpdateAi = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
aiId: z.string().min(1),
|
||||
})
|
||||
.omit({ organizationId: true });
|
||||
|
||||
export const deploySuggestionSchema = z.object({
|
||||
environmentId: z.string().min(1),
|
||||
|
||||
@@ -328,11 +328,9 @@ const createSchema = createInsertSchema(applications, {
|
||||
customGitUrl: z.string().optional(),
|
||||
buildPath: z.string().optional(),
|
||||
environmentId: z.string(),
|
||||
// Override pgEnums so Zod 4 infers only string literals, not numeric enum indices
|
||||
sourceType: z
|
||||
.enum(["github", "docker", "git", "gitlab", "bitbucket", "gitea", "drop"])
|
||||
.optional(),
|
||||
triggerType: z.enum(["push", "tag"]).optional(),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]),
|
||||
buildType: z.enum([
|
||||
"dockerfile",
|
||||
@@ -524,83 +522,9 @@ export const apiFindMonitoringStats = z.object({
|
||||
appName: z.string().min(1),
|
||||
});
|
||||
|
||||
export const apiUpdateApplication = z.object({
|
||||
applicationId: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
appName: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
env: z.string().optional(),
|
||||
environmentId: z.string().optional(),
|
||||
title: z.string().optional(),
|
||||
subtitle: z.string().optional(),
|
||||
enabled: z.boolean().optional(),
|
||||
command: z.string().optional(),
|
||||
args: z.array(z.string()).optional(),
|
||||
memoryReservation: z.string().optional(),
|
||||
memoryLimit: z.string().optional(),
|
||||
cpuReservation: z.string().optional(),
|
||||
cpuLimit: z.string().optional(),
|
||||
buildArgs: z.string().optional(),
|
||||
buildSecrets: z.string().optional(),
|
||||
watchPaths: z.array(z.string()).optional(),
|
||||
previewEnv: z.string().optional(),
|
||||
previewBuildArgs: z.string().optional(),
|
||||
previewBuildSecrets: z.string().optional(),
|
||||
previewLabels: z.array(z.string()).optional(),
|
||||
previewWildcard: z.string().optional(),
|
||||
previewPort: z.number().optional(),
|
||||
previewHttps: z.boolean().optional(),
|
||||
previewPath: z.string().optional(),
|
||||
previewLimit: z.number().optional(),
|
||||
isPreviewDeploymentsActive: z.boolean().optional(),
|
||||
previewRequireCollaboratorPermissions: z.boolean().optional(),
|
||||
rollbackActive: z.boolean().optional(),
|
||||
sourceType: z
|
||||
.enum(["docker", "git", "github", "gitlab", "bitbucket", "gitea", "drop"])
|
||||
.optional(),
|
||||
cleanCache: z.boolean().optional(),
|
||||
repository: z.string().optional(),
|
||||
owner: z.string().optional(),
|
||||
branch: z.string().optional(),
|
||||
buildPath: z.string().optional(),
|
||||
triggerType: z.enum(["push", "tag"]).optional(),
|
||||
autoDeploy: z.boolean().optional(),
|
||||
gitlabProjectId: z.number().optional(),
|
||||
gitlabRepository: z.string().optional(),
|
||||
gitlabOwner: z.string().optional(),
|
||||
gitlabBranch: z.string().optional(),
|
||||
gitlabBuildPath: z.string().optional(),
|
||||
giteaRepository: z.string().optional(),
|
||||
giteaOwner: z.string().optional(),
|
||||
giteaBranch: z.string().optional(),
|
||||
giteaBuildPath: z.string().optional(),
|
||||
bitbucketRepository: z.string().optional(),
|
||||
bitbucketRepositorySlug: z.string().optional(),
|
||||
bitbucketOwner: z.string().optional(),
|
||||
bitbucketBranch: z.string().optional(),
|
||||
bitbucketBuildPath: z.string().optional(),
|
||||
dockerImage: z.string().optional(),
|
||||
username: z.string().optional(),
|
||||
password: z.string().optional(),
|
||||
registryUrl: z.string().optional(),
|
||||
customGitUrl: z.string().optional(),
|
||||
customGitBranch: z.string().optional(),
|
||||
customGitBuildPath: z.string().optional(),
|
||||
customGitSSHKeyId: z.string().optional(),
|
||||
dockerfile: z.string().optional(),
|
||||
dockerContextPath: z.string().optional(),
|
||||
dockerBuildStage: z.string().optional(),
|
||||
buildType: z
|
||||
.enum([
|
||||
"dockerfile",
|
||||
"heroku_buildpacks",
|
||||
"paketo_buildpacks",
|
||||
"nixpacks",
|
||||
"static",
|
||||
"railpack",
|
||||
])
|
||||
.optional(),
|
||||
publishDirectory: z.string().optional(),
|
||||
isStaticSpa: z.boolean().optional(),
|
||||
createEnvFile: z.boolean().optional(),
|
||||
});
|
||||
export const apiUpdateApplication = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
applicationId: z.string().min(1),
|
||||
})
|
||||
.omit({ serverId: true });
|
||||
|
||||
@@ -162,36 +162,28 @@ const createSchema = createInsertSchema(compose, {
|
||||
customGitSSHKeyId: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
composePath: z.string().min(1),
|
||||
// Override pgEnums so Zod 4 infers only string literals, not numeric enum indices
|
||||
composeType: z.enum(["docker-compose", "stack"]).optional(),
|
||||
sourceType: z
|
||||
.enum(["git", "github", "gitlab", "bitbucket", "gitea", "raw"])
|
||||
.optional(),
|
||||
triggerType: z.enum(["push", "tag"]).optional(),
|
||||
composeStatus: z.enum(["idle", "running", "done", "error"]).optional(),
|
||||
watchPaths: z.array(z.string()).optional(),
|
||||
});
|
||||
|
||||
export const apiCreateCompose = z.object({
|
||||
name: z.string().min(1),
|
||||
description: z.string().optional(),
|
||||
environmentId: z.string().min(1),
|
||||
composeType: z.enum(["docker-compose", "stack"]).optional(),
|
||||
appName: z
|
||||
.string()
|
||||
.min(1)
|
||||
.max(63)
|
||||
.regex(APP_NAME_REGEX, APP_NAME_MESSAGE)
|
||||
.optional(),
|
||||
serverId: z.string().optional(),
|
||||
composeFile: z.string().optional(),
|
||||
export const apiCreateCompose = createSchema.pick({
|
||||
name: true,
|
||||
description: true,
|
||||
environmentId: true,
|
||||
composeType: true,
|
||||
appName: true,
|
||||
serverId: true,
|
||||
composeFile: true,
|
||||
});
|
||||
|
||||
export const apiCreateComposeByTemplate = z.object({
|
||||
environmentId: z.string().min(1),
|
||||
id: z.string().min(1),
|
||||
serverId: z.string().optional(),
|
||||
});
|
||||
export const apiCreateComposeByTemplate = createSchema
|
||||
.pick({
|
||||
environmentId: true,
|
||||
})
|
||||
.extend({
|
||||
id: z.string().min(1),
|
||||
serverId: z.string().optional(),
|
||||
});
|
||||
|
||||
export const apiFindCompose = z.object({
|
||||
composeId: z.string().min(1),
|
||||
@@ -219,25 +211,20 @@ export const apiFetchServices = z.object({
|
||||
type: z.enum(["fetch", "cache"]).optional().default("cache"),
|
||||
});
|
||||
|
||||
export const apiUpdateCompose = z.object({
|
||||
composeId: z.string().min(1),
|
||||
composeFile: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
name: z.string().min(1).optional(),
|
||||
description: z.string().optional(),
|
||||
env: z.string().optional(),
|
||||
appName: z.string().optional(),
|
||||
environmentId: z.string().optional(),
|
||||
composeType: z.enum(["docker-compose", "stack"]).optional(),
|
||||
sourceType: z
|
||||
.enum(["git", "github", "gitlab", "bitbucket", "gitea", "raw"])
|
||||
.optional(),
|
||||
triggerType: z.enum(["push", "tag"]).optional(),
|
||||
watchPaths: z.array(z.string()).optional(),
|
||||
composePath: z.string().min(1).optional(),
|
||||
});
|
||||
export const apiUpdateCompose = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
composeId: z.string(),
|
||||
composeFile: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
})
|
||||
.omit({ serverId: true });
|
||||
|
||||
export const apiRandomizeCompose = z.object({
|
||||
composeId: z.string().min(1),
|
||||
suffix: z.string().optional(),
|
||||
});
|
||||
export const apiRandomizeCompose = createSchema
|
||||
.pick({
|
||||
composeId: true,
|
||||
})
|
||||
.extend({
|
||||
suffix: z.string().optional(),
|
||||
composeId: z.string().min(1),
|
||||
});
|
||||
|
||||
@@ -66,5 +66,6 @@ export const apiUpdateGitlab = z.object({
|
||||
name: z.string().min(1),
|
||||
gitlabId: z.string().min(1),
|
||||
gitlabUrl: z.string().min(1),
|
||||
gitProviderId: z.string().min(1),
|
||||
gitlabInternalUrl: z.string().optional().nullable(),
|
||||
});
|
||||
|
||||
@@ -198,27 +198,12 @@ export const apiResetMariadb = createSchema
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiUpdateMariaDB = z.object({
|
||||
mariadbId: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
appName: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
dockerImage: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
args: z.array(z.string()).optional(),
|
||||
env: z.string().optional(),
|
||||
databaseName: z.string().min(1).optional(),
|
||||
databaseUser: z.string().min(1).optional(),
|
||||
databasePassword: z.string().optional(),
|
||||
databaseRootPassword: z.string().optional(),
|
||||
memoryReservation: z.string().optional(),
|
||||
memoryLimit: z.string().optional(),
|
||||
cpuReservation: z.string().optional(),
|
||||
cpuLimit: z.string().optional(),
|
||||
externalPort: z.number().optional(),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]).optional(),
|
||||
environmentId: z.string().optional(),
|
||||
});
|
||||
export const apiUpdateMariaDB = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
mariadbId: z.string().min(1),
|
||||
})
|
||||
.omit({ serverId: true });
|
||||
|
||||
export const apiRebuildMariadb = createSchema
|
||||
.pick({
|
||||
|
||||
@@ -144,79 +144,65 @@ const createSchema = createInsertSchema(mongo, {
|
||||
ulimitsSwarm: UlimitsSwarmSchema.nullable(),
|
||||
});
|
||||
|
||||
const mongoPasswordSchema = z
|
||||
.string()
|
||||
.regex(/^[a-zA-Z0-9@#%^&*()_+\-=[\]{}|;:,.<>?~`]*$/, {
|
||||
message:
|
||||
"Password contains invalid characters. Please avoid: $ ! ' \" \\ / and space characters for database compatibility",
|
||||
});
|
||||
|
||||
export const apiCreateMongo = z.object({
|
||||
name: z.string().min(1),
|
||||
appName: z
|
||||
.string()
|
||||
.min(1)
|
||||
.max(63)
|
||||
.regex(APP_NAME_REGEX, APP_NAME_MESSAGE)
|
||||
.optional(),
|
||||
dockerImage: z.string().default("mongo:15"),
|
||||
environmentId: z.string().min(1),
|
||||
description: z.string().optional(),
|
||||
databaseUser: z.string().min(1),
|
||||
databasePassword: mongoPasswordSchema,
|
||||
serverId: z.string().optional(),
|
||||
replicaSets: z.boolean().default(false),
|
||||
export const apiCreateMongo = createSchema.pick({
|
||||
name: true,
|
||||
appName: true,
|
||||
dockerImage: true,
|
||||
environmentId: true,
|
||||
description: true,
|
||||
databaseUser: true,
|
||||
databasePassword: true,
|
||||
serverId: true,
|
||||
replicaSets: true,
|
||||
});
|
||||
|
||||
export const apiFindOneMongo = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
});
|
||||
|
||||
export const apiChangeMongoStatus = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]),
|
||||
});
|
||||
export const apiChangeMongoStatus = createSchema
|
||||
.pick({
|
||||
mongoId: true,
|
||||
applicationStatus: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiSaveEnvironmentVariablesMongo = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
env: z.string().optional(),
|
||||
});
|
||||
export const apiSaveEnvironmentVariablesMongo = createSchema
|
||||
.pick({
|
||||
mongoId: true,
|
||||
env: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiSaveExternalPortMongo = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
externalPort: z.number(),
|
||||
});
|
||||
export const apiSaveExternalPortMongo = createSchema
|
||||
.pick({
|
||||
mongoId: true,
|
||||
externalPort: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiDeployMongo = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
});
|
||||
export const apiDeployMongo = createSchema
|
||||
.pick({
|
||||
mongoId: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiUpdateMongo = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
appName: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
dockerImage: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
args: z.array(z.string()).optional(),
|
||||
env: z.string().optional(),
|
||||
databaseUser: z.string().min(1).optional(),
|
||||
databasePassword: mongoPasswordSchema.optional(),
|
||||
memoryReservation: z.string().optional(),
|
||||
memoryLimit: z.string().optional(),
|
||||
cpuReservation: z.string().optional(),
|
||||
cpuLimit: z.string().optional(),
|
||||
externalPort: z.number().optional(),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]).optional(),
|
||||
environmentId: z.string().optional(),
|
||||
replicaSets: z.boolean().optional(),
|
||||
});
|
||||
export const apiUpdateMongo = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
mongoId: z.string().min(1),
|
||||
})
|
||||
.omit({ serverId: true });
|
||||
|
||||
export const apiResetMongo = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
appName: z.string().min(1),
|
||||
});
|
||||
export const apiResetMongo = createSchema
|
||||
.pick({
|
||||
mongoId: true,
|
||||
appName: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiRebuildMongo = z.object({
|
||||
mongoId: z.string().min(1),
|
||||
});
|
||||
export const apiRebuildMongo = createSchema
|
||||
.pick({
|
||||
mongoId: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
@@ -144,81 +144,66 @@ const createSchema = createInsertSchema(mysql, {
|
||||
ulimitsSwarm: UlimitsSwarmSchema.nullable(),
|
||||
});
|
||||
|
||||
const mysqlPasswordSchema = z
|
||||
.string()
|
||||
.regex(/^[a-zA-Z0-9@#%^&*()_+\-=[\]{}|;:,.<>?~`]*$/, {
|
||||
message:
|
||||
"Password contains invalid characters. Please avoid: $ ! ' \" \\ / and space characters for database compatibility",
|
||||
});
|
||||
|
||||
export const apiCreateMySql = z.object({
|
||||
name: z.string().min(1),
|
||||
appName: z
|
||||
.string()
|
||||
.min(1)
|
||||
.max(63)
|
||||
.regex(APP_NAME_REGEX, APP_NAME_MESSAGE)
|
||||
.optional(),
|
||||
dockerImage: z.string().default("mysql:8"),
|
||||
environmentId: z.string().min(1),
|
||||
description: z.string().optional(),
|
||||
databaseName: z.string().min(1),
|
||||
databaseUser: z.string().min(1),
|
||||
databasePassword: mysqlPasswordSchema,
|
||||
databaseRootPassword: mysqlPasswordSchema.optional(),
|
||||
serverId: z.string().optional(),
|
||||
export const apiCreateMySql = createSchema.pick({
|
||||
name: true,
|
||||
appName: true,
|
||||
dockerImage: true,
|
||||
environmentId: true,
|
||||
description: true,
|
||||
databaseName: true,
|
||||
databaseUser: true,
|
||||
databasePassword: true,
|
||||
databaseRootPassword: true,
|
||||
serverId: true,
|
||||
});
|
||||
|
||||
export const apiFindOneMySql = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
});
|
||||
|
||||
export const apiChangeMySqlStatus = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]),
|
||||
});
|
||||
export const apiChangeMySqlStatus = createSchema
|
||||
.pick({
|
||||
mysqlId: true,
|
||||
applicationStatus: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiSaveEnvironmentVariablesMySql = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
env: z.string().optional(),
|
||||
});
|
||||
export const apiSaveEnvironmentVariablesMySql = createSchema
|
||||
.pick({
|
||||
mysqlId: true,
|
||||
env: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiSaveExternalPortMySql = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
externalPort: z.number(),
|
||||
});
|
||||
export const apiSaveExternalPortMySql = createSchema
|
||||
.pick({
|
||||
mysqlId: true,
|
||||
externalPort: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiResetMysql = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
appName: z.string().min(1),
|
||||
});
|
||||
export const apiResetMysql = createSchema
|
||||
.pick({
|
||||
mysqlId: true,
|
||||
appName: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiDeployMySql = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
});
|
||||
export const apiDeployMySql = createSchema
|
||||
.pick({
|
||||
mysqlId: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiUpdateMySql = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
appName: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
dockerImage: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
args: z.array(z.string()).optional(),
|
||||
env: z.string().optional(),
|
||||
databaseName: z.string().min(1).optional(),
|
||||
databaseUser: z.string().min(1).optional(),
|
||||
databasePassword: mysqlPasswordSchema.optional(),
|
||||
databaseRootPassword: mysqlPasswordSchema.optional(),
|
||||
memoryReservation: z.string().optional(),
|
||||
memoryLimit: z.string().optional(),
|
||||
cpuReservation: z.string().optional(),
|
||||
cpuLimit: z.string().optional(),
|
||||
externalPort: z.number().optional(),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]).optional(),
|
||||
environmentId: z.string().optional(),
|
||||
});
|
||||
export const apiUpdateMySql = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
mysqlId: z.string().min(1),
|
||||
})
|
||||
.omit({ serverId: true });
|
||||
|
||||
export const apiRebuildMysql = z.object({
|
||||
mysqlId: z.string().min(1),
|
||||
});
|
||||
export const apiRebuildMysql = createSchema
|
||||
.pick({
|
||||
mysqlId: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
@@ -188,26 +188,12 @@ export const apiResetPostgres = createSchema
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiUpdatePostgres = z.object({
|
||||
postgresId: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
appName: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
dockerImage: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
args: z.array(z.string()).optional(),
|
||||
env: z.string().optional(),
|
||||
databaseName: z.string().min(1).optional(),
|
||||
databaseUser: z.string().min(1).optional(),
|
||||
databasePassword: z.string().optional(),
|
||||
memoryReservation: z.string().optional(),
|
||||
memoryLimit: z.string().optional(),
|
||||
cpuReservation: z.string().optional(),
|
||||
cpuLimit: z.string().optional(),
|
||||
externalPort: z.number().optional(),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]).optional(),
|
||||
environmentId: z.string().optional(),
|
||||
});
|
||||
export const apiUpdatePostgres = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
postgresId: z.string().min(1),
|
||||
})
|
||||
.omit({ serverId: true });
|
||||
|
||||
export const apiRebuildPostgres = createSchema
|
||||
.pick({
|
||||
|
||||
@@ -37,23 +37,31 @@ const createSchema = createInsertSchema(projects, {
|
||||
description: z.string().optional(),
|
||||
});
|
||||
|
||||
export const apiCreateProject = z.object({
|
||||
name: z.string().min(1),
|
||||
description: z.string().optional(),
|
||||
env: z.string(),
|
||||
export const apiCreateProject = createSchema.pick({
|
||||
name: true,
|
||||
description: true,
|
||||
env: true,
|
||||
});
|
||||
|
||||
export const apiFindOneProject = z.object({
|
||||
projectId: z.string().min(1),
|
||||
});
|
||||
export const apiRemoveProject = createSchema
|
||||
.pick({
|
||||
projectId: true,
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiRemoveProject = z.object({
|
||||
// export const apiUpdateProject = createSchema
|
||||
// .pick({
|
||||
// name: true,
|
||||
// description: true,
|
||||
// projectId: true,
|
||||
// env: true,
|
||||
// })
|
||||
// .required();
|
||||
|
||||
export const apiUpdateProject = createSchema.partial().extend({
|
||||
projectId: z.string().min(1),
|
||||
});
|
||||
|
||||
export const apiUpdateProject = z.object({
|
||||
projectId: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
description: z.string().optional(),
|
||||
env: z.string().optional(),
|
||||
});
|
||||
// .omit({ serverId: true });
|
||||
|
||||
@@ -174,24 +174,12 @@ export const apiResetRedis = createSchema
|
||||
})
|
||||
.required();
|
||||
|
||||
export const apiUpdateRedis = z.object({
|
||||
redisId: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
appName: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
dockerImage: z.string().optional(),
|
||||
command: z.string().optional(),
|
||||
args: z.array(z.string()).optional(),
|
||||
env: z.string().optional(),
|
||||
databasePassword: z.string().optional(),
|
||||
memoryReservation: z.string().optional(),
|
||||
memoryLimit: z.string().optional(),
|
||||
cpuReservation: z.string().optional(),
|
||||
cpuLimit: z.string().optional(),
|
||||
externalPort: z.number().optional(),
|
||||
applicationStatus: z.enum(["idle", "running", "done", "error"]).optional(),
|
||||
environmentId: z.string().optional(),
|
||||
});
|
||||
export const apiUpdateRedis = createSchema
|
||||
.partial()
|
||||
.extend({
|
||||
redisId: z.string().min(1),
|
||||
})
|
||||
.omit({ serverId: true });
|
||||
|
||||
export const apiRebuildRedis = createSchema
|
||||
.pick({
|
||||
|
||||
Reference in New Issue
Block a user