feat(backup): add scheduler alerts and recovery notifications
This commit is contained in:
@@ -208,6 +208,9 @@ describe('configSchema — backup', () => {
|
||||
expect(result.backup.schedule).toBeUndefined();
|
||||
expect(result.backup.interval).toBe('24h');
|
||||
expect(result.backup.run_on_start).toBe(false);
|
||||
expect(result.backup.notify).toBeUndefined();
|
||||
expect(result.backup.failure_threshold).toBe(1);
|
||||
expect(result.backup.notify_recovery).toBe(true);
|
||||
expect(result.backup.include_vectors).toBe(true);
|
||||
expect(result.backup.minio.enabled).toBe(false);
|
||||
expect(result.backup.minio.prefix).toBe('flynn');
|
||||
@@ -222,6 +225,9 @@ describe('configSchema — backup', () => {
|
||||
schedule: '0 2 * * *',
|
||||
interval: '12h',
|
||||
run_on_start: true,
|
||||
notify: { channel: 'telegram', peer: '123' },
|
||||
failure_threshold: 3,
|
||||
notify_recovery: false,
|
||||
local_dir: '/tmp/flynn-backups',
|
||||
include_vectors: false,
|
||||
minio: {
|
||||
@@ -240,6 +246,9 @@ describe('configSchema — backup', () => {
|
||||
expect(result.backup.schedule).toBe('0 2 * * *');
|
||||
expect(result.backup.interval).toBe('12h');
|
||||
expect(result.backup.run_on_start).toBe(true);
|
||||
expect(result.backup.notify).toEqual({ channel: 'telegram', peer: '123' });
|
||||
expect(result.backup.failure_threshold).toBe(3);
|
||||
expect(result.backup.notify_recovery).toBe(false);
|
||||
expect(result.backup.local_dir).toBe('/tmp/flynn-backups');
|
||||
expect(result.backup.include_vectors).toBe(false);
|
||||
expect(result.backup.minio.enabled).toBe(true);
|
||||
|
||||
@@ -717,6 +717,12 @@ const backupSchema = z.object({
|
||||
schedule: z.string().optional(),
|
||||
interval: z.string().default('24h'),
|
||||
run_on_start: z.boolean().default(false),
|
||||
notify: z.object({
|
||||
channel: z.string().min(1),
|
||||
peer: z.string().min(1),
|
||||
}).optional(),
|
||||
failure_threshold: z.number().min(1).max(10).default(1),
|
||||
notify_recovery: z.boolean().default(true),
|
||||
local_dir: z.string().default('~/.local/share/flynn/backups'),
|
||||
include_vectors: z.boolean().default(true),
|
||||
minio: z.object({
|
||||
|
||||
Reference in New Issue
Block a user