2603.8 purging old records

This commit is contained in:
2026-03-13 16:01:19 -04:00
parent 86573769ca
commit 1e57388299
8 changed files with 191 additions and 17 deletions

View File

@@ -181,6 +181,38 @@ function run_fetch(): array {
return $results;
}
// ── Settings ──────────────────────────────────────────────────────────────────
function get_setting(string $key, string $default = ''): string {
$s = db()->prepare('SELECT value FROM settings WHERE key_name = ?');
$s->execute([$key]);
$row = $s->fetchColumn();
return $row !== false ? $row : $default;
}
function set_setting(string $key, string $value): void {
$s = db()->prepare(
'INSERT INTO settings (key_name, value) VALUES (?, ?)
ON DUPLICATE KEY UPDATE value = VALUES(value)'
);
$s->execute([$key, $value]);
}
// ── Purge ─────────────────────────────────────────────────────────────────────
/**
* Delete connections older than retention_days setting.
* Returns the number of rows deleted.
*/
function purge_old_connections(): int {
$days = max(1, (int)get_setting('retention_days', '7'));
$s = db()->prepare(
'DELETE FROM connections WHERE occurred_at < NOW() - INTERVAL ? DAY'
);
$s->execute([$days]);
return $s->rowCount();
}
// ── Upstream version check ────────────────────────────────────────────────────
define('UPSTREAM_VERSION_URL', 'https://git.ny.daprogs.com/api/v1/repos/DAProgs/portspoof_concentrator/raw/version.php?ref=main');