feat(per-instance-hook-scoping): scope observability + backup hooks by instance

This commit is contained in:
Developer
2026-07-09 23:54:31 +00:00
parent ad61d92b32
commit 3bc7ce5269
12 changed files with 268 additions and 73 deletions
@@ -1075,10 +1075,16 @@ class SettingsStore:
row = conn.execute("SELECT * FROM backup_jobs WHERE id = ?", (job_id,)).fetchone()
return self._row_to_job(row) if row else None
def list_backup_jobs(self) -> list[dict[str, Any]]:
def list_backup_jobs(self, service_id: str | None = None) -> list[dict[str, Any]]:
self.init_schema()
where = ""
params: list[Any] = []
if service_id:
where = "WHERE service_id = ?"
params.append(service_id)
sql = f"SELECT * FROM backup_jobs {where} ORDER BY created_at DESC"
with self.connect() as conn:
rows = conn.execute("SELECT * FROM backup_jobs ORDER BY created_at DESC").fetchall()
rows = conn.execute(sql, params).fetchall()
return [self._row_to_job(row) for row in rows]
# ------------------------------------------------------------------
@@ -1167,6 +1173,7 @@ class SettingsStore:
job_id: str | None = None,
status: str | None = None,
limit: int = 50,
service_id: str | None = None,
) -> list[dict[str, Any]]:
self.init_schema()
clauses: list[str] = []
@@ -1177,6 +1184,9 @@ class SettingsStore:
if status:
clauses.append("status = ?")
params.append(status)
if service_id:
clauses.append("job_id IN (SELECT id FROM backup_jobs WHERE service_id = ?)")
params.append(service_id)
where = f"WHERE {' AND '.join(clauses)}" if clauses else ""
sql = f"SELECT * FROM backup_runs {where} ORDER BY created_at DESC LIMIT ?"
params.append(max(1, min(int(limit), 200)))
@@ -1257,6 +1267,7 @@ class SettingsStore:
job_id: str | None = None,
acknowledged: bool | None = None,
severity: str | None = None,
service_id: str | None = None,
) -> list[dict[str, Any]]:
self.init_schema()
clauses: list[str] = []
@@ -1270,6 +1281,9 @@ class SettingsStore:
if severity:
clauses.append("severity = ?")
params.append(severity)
if service_id:
clauses.append("job_id IN (SELECT id FROM backup_jobs WHERE service_id = ?)")
params.append(service_id)
where = f"WHERE {' AND '.join(clauses)}" if clauses else ""
sql = f"SELECT * FROM backup_alerts {where} ORDER BY created_at DESC"
with self.connect() as conn: