From 60afe2c739491de6f3813ff186506a4c7089cfe8 Mon Sep 17 00:00:00 2001 From: Jiri Uhlir Date: Wed, 3 Jun 2026 11:41:02 +0200 Subject: [PATCH] Add maintenance scripts --- maintenance/backup-retention.sh | 4 ++++ maintenance/deployment-retention.sh | 13 +++++++++++++ maintenance/health-retention.sh | 13 +++++++++++++ maintenance/incident-retention.sh | 14 ++++++++++++++ maintenance/job-retention.sh | 20 ++++++++++++++++++++ 5 files changed, 64 insertions(+) create mode 100755 maintenance/backup-retention.sh create mode 100755 maintenance/deployment-retention.sh create mode 100755 maintenance/health-retention.sh create mode 100755 maintenance/incident-retention.sh create mode 100755 maintenance/job-retention.sh diff --git a/maintenance/backup-retention.sh b/maintenance/backup-retention.sh new file mode 100755 index 0000000..4a51bbd --- /dev/null +++ b/maintenance/backup-retention.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +echo "Backup retention not implemented yet." diff --git a/maintenance/deployment-retention.sh b/maintenance/deployment-retention.sh new file mode 100755 index 0000000..f8eb524 --- /dev/null +++ b/maintenance/deployment-retention.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +DB_FILE="/opt/appfactory/data/appfactory/appfactory.db" + +echo "Deleting deployments older than 90 days..." + +sqlite3 "$DB_FILE" " +DELETE FROM deployments +WHERE created_at < datetime('now','-90 day'); +" + +echo "Done." diff --git a/maintenance/health-retention.sh b/maintenance/health-retention.sh new file mode 100755 index 0000000..24aac43 --- /dev/null +++ b/maintenance/health-retention.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +DB_FILE="/opt/appfactory/data/appfactory/appfactory.db" + +echo "Deleting service health records older than 30 days..." + +sqlite3 "$DB_FILE" " +DELETE FROM service_health +WHERE checked_at < datetime('now','-30 day'); +" + +echo "Done." diff --git a/maintenance/incident-retention.sh b/maintenance/incident-retention.sh new file mode 100755 index 0000000..9fa4b90 --- /dev/null +++ b/maintenance/incident-retention.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail + +DB_FILE="/opt/appfactory/data/appfactory/appfactory.db" + +echo "Deleting resolved incidents older than 180 days..." + +sqlite3 "$DB_FILE" " +DELETE FROM service_incidents +WHERE status='resolved' +AND ended_at < datetime('now','-180 day'); +" + +echo "Done." diff --git a/maintenance/job-retention.sh b/maintenance/job-retention.sh new file mode 100755 index 0000000..540f1f6 --- /dev/null +++ b/maintenance/job-retention.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +DB_FILE="/opt/appfactory/data/appfactory/appfactory.db" + +echo "Deleting completed jobs older than 30 days..." + +sqlite3 "$DB_FILE" " +DELETE FROM job_logs +WHERE job_id IN ( + SELECT id + FROM jobs + WHERE created_at < datetime('now','-30 day') +); + +DELETE FROM jobs +WHERE created_at < datetime('now','-30 day'); +" + +echo "Done."