feat(scheduler): добавить расписание бэкапов и автообновление сертификатов
Docker images / prepare-release (push) Successful in 6s
Docker images / backend-image (push) Successful in 2m13s
Docker images / frontend-image (push) Successful in 2m11s
Docker images / updater-image (push) Successful in 50s
Docker images / notify-webhook (push) Has been skipped
Docker images / publish-release (push) Successful in 8s
Docker images / prepare-release (push) Successful in 6s
Docker images / backend-image (push) Successful in 2m13s
Docker images / frontend-image (push) Successful in 2m11s
Docker images / updater-image (push) Successful in 50s
Docker images / notify-webhook (push) Has been skipped
Docker images / publish-release (push) Successful in 8s
This commit is contained in:
@@ -29,6 +29,10 @@
|
||||
"./certificates": {
|
||||
"types": "./dist/certificates.d.ts",
|
||||
"default": "./dist/certificates.js"
|
||||
},
|
||||
"./backups": {
|
||||
"types": "./dist/backups.d.ts",
|
||||
"default": "./dist/backups.js"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
import { z } from "zod"
|
||||
|
||||
export const backupFrequencySchema = z.enum(["daily", "weekly", "monthly"])
|
||||
export const backupFormatSchema = z.enum(["rsc", "backup"])
|
||||
|
||||
export const backupScheduleSettingsDtoSchema = z.object({
|
||||
enabled: z.boolean(),
|
||||
frequency: backupFrequencySchema,
|
||||
hour: z.number().int().min(0).max(23),
|
||||
minute: z.number().int().min(0).max(59),
|
||||
weekDay: z.number().int().min(0).max(6),
|
||||
monthDay: z.number().int().min(1).max(28),
|
||||
keepCount: z.number().int().min(1).max(365),
|
||||
format: backupFormatSchema,
|
||||
serverIds: z.array(z.string()),
|
||||
lastRunAt: z.string().nullable().optional(),
|
||||
lastDurationMs: z.number().int().nullable().optional(),
|
||||
lastError: z.string().nullable().optional(),
|
||||
updatedAt: z.string().optional(),
|
||||
})
|
||||
|
||||
export const putBackupScheduleSettingsSchema = z.object({
|
||||
enabled: z.boolean().optional(),
|
||||
frequency: backupFrequencySchema.optional(),
|
||||
hour: z.number().int().min(0).max(23).optional(),
|
||||
minute: z.number().int().min(0).max(59).optional(),
|
||||
weekDay: z.number().int().min(0).max(6).optional(),
|
||||
monthDay: z.number().int().min(1).max(28).optional(),
|
||||
keepCount: z.number().int().min(1).max(365).optional(),
|
||||
format: backupFormatSchema.optional(),
|
||||
serverIds: z.array(z.string()).optional(),
|
||||
})
|
||||
|
||||
export type BackupScheduleSettingsDto = z.infer<typeof backupScheduleSettingsDtoSchema>
|
||||
@@ -103,8 +103,25 @@ export const testAcmeCloudflareSettingsSchema = z.object({
|
||||
cloudflareApiToken: z.string().optional(),
|
||||
})
|
||||
|
||||
export const certificateRenewSettingsDtoSchema = z.object({
|
||||
enabled: z.boolean(),
|
||||
intervalSec: z.number().int().min(300),
|
||||
renewBeforeDays: z.number().int().min(1).max(90),
|
||||
lastCollectedAt: z.string().nullable().optional(),
|
||||
lastDurationMs: z.number().int().nullable().optional(),
|
||||
lastError: z.string().nullable().optional(),
|
||||
updatedAt: z.string().optional(),
|
||||
})
|
||||
|
||||
export const putCertificateRenewSettingsSchema = z.object({
|
||||
enabled: z.boolean().optional(),
|
||||
intervalSec: z.number().int().min(300).optional(),
|
||||
renewBeforeDays: z.number().int().min(1).max(90).optional(),
|
||||
})
|
||||
|
||||
export type CertificateDto = z.infer<typeof certificateDtoSchema>
|
||||
export type CertificatesListResponse = z.infer<typeof certificatesListResponseSchema>
|
||||
export type CertificateIssueRequest = z.infer<typeof certificateIssueRequestSchema>
|
||||
export type CertificateIssueJob = z.infer<typeof certificateIssueJobSchema>
|
||||
export type AcmeCloudflareSettingsDto = z.infer<typeof acmeCloudflareSettingsDtoSchema>
|
||||
export type CertificateRenewSettingsDto = z.infer<typeof certificateRenewSettingsDtoSchema>
|
||||
|
||||
@@ -2,3 +2,4 @@ export * from "./servers.js"
|
||||
export * from "./alerts.js"
|
||||
export * from "./events.js"
|
||||
export * from "./certificates.js"
|
||||
export * from "./backups.js"
|
||||
|
||||
Reference in New Issue
Block a user