feat: Apply policy alignment fixes to abisa-daily-sweep.py (Policy #11)
Changes: - Removed null_tenant check (tenant field deprecated June 1, 2026) - Added missing_owner and missing_organization L2 metrics - Updated baseline loader to track new metrics - Updated HTML dashboard: Null Tenant -> Missing Owner + Missing Org
This commit is contained in:
+13
-4
@@ -105,6 +105,8 @@ b_stale30 = baseline.get("stale_30d", 0)
|
|||||||
b_missing_type = baseline.get("missing_metadata_type", 0)
|
b_missing_type = baseline.get("missing_metadata_type", 0)
|
||||||
b_missing_agent = baseline.get("missing_metadata_agent_id", 0)
|
b_missing_agent = baseline.get("missing_metadata_agent_id", 0)
|
||||||
b_wrapped = baseline.get("wrapped_metadata", 0)
|
b_wrapped = baseline.get("wrapped_metadata", 0)
|
||||||
|
b_missing_owner = baseline.get("missing_metadata_owner", 0)
|
||||||
|
b_missing_org = baseline.get("missing_metadata_organization", 0)
|
||||||
baseline_date = ""
|
baseline_date = ""
|
||||||
try:
|
try:
|
||||||
with open(BASELINE_FILE) as f:
|
with open(BASELINE_FILE) as f:
|
||||||
@@ -126,8 +128,7 @@ wrapped_count = db_scalar_int("SELECT count(*) FROM nodes WHERE metadata LIKE '%
|
|||||||
wrapped_baseline = baseline.get("wrapped_metadata", 0)
|
wrapped_baseline = baseline.get("wrapped_metadata", 0)
|
||||||
# NULL namespace
|
# NULL namespace
|
||||||
null_ns = db_scalar_int("SELECT count(*) FROM nodes WHERE metadata NOT LIKE '%namespace%'")
|
null_ns = db_scalar_int("SELECT count(*) FROM nodes WHERE metadata NOT LIKE '%namespace%'")
|
||||||
# NULL tenant
|
|
||||||
null_tenant = db_scalar_int("SELECT count(*) FROM nodes WHERE metadata NOT LIKE '%tenant%'")
|
|
||||||
|
|
||||||
# Auto-fix NULL namespace for known tenants
|
# Auto-fix NULL namespace for known tenants
|
||||||
null_ns_nodes = db_query_rows(
|
null_ns_nodes = db_query_rows(
|
||||||
@@ -199,6 +200,10 @@ insert_repair_log(
|
|||||||
stale30 = db_scalar_int("SELECT count(*) FROM nodes WHERE updated_at IS NOT NULL AND updated_at < datetime('now','-30 days')")
|
stale30 = db_scalar_int("SELECT count(*) FROM nodes WHERE updated_at IS NOT NULL AND updated_at < datetime('now','-30 days')")
|
||||||
stale60 = db_scalar_int("SELECT count(*) FROM nodes WHERE updated_at IS NOT NULL AND updated_at < datetime('now','-60 days')")
|
stale60 = db_scalar_int("SELECT count(*) FROM nodes WHERE updated_at IS NOT NULL AND updated_at < datetime('now','-60 days')")
|
||||||
|
|
||||||
|
# L2: MISSING OWNER (Policy #11)
|
||||||
|
missing_owner = db_scalar_int("SELECT count(*) FROM nodes WHERE metadata NOT LIKE '%owner%'")
|
||||||
|
missing_org = db_scalar_int("SELECT count(*) FROM nodes WHERE metadata NOT LIKE '%organization%'")
|
||||||
|
|
||||||
# Log stale finding
|
# Log stale finding
|
||||||
insert_repair_log(
|
insert_repair_log(
|
||||||
None, "abisa_l2_flag_stale",
|
None, "abisa_l2_flag_stale",
|
||||||
@@ -440,8 +445,12 @@ html = f"""<!DOCTYPE html>
|
|||||||
<span style="color:#e0e0e0;font-size:11px;font-weight:600">{fmt_num(null_ns, b_null_ns)}</span>
|
<span style="color:#e0e0e0;font-size:11px;font-weight:600">{fmt_num(null_ns, b_null_ns)}</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex;justify-content:space-between;padding:4px 10px;background:#0d1117;border-radius:4px">
|
<div style="display:flex;justify-content:space-between;padding:4px 10px;background:#0d1117;border-radius:4px">
|
||||||
<span style="color:#888;font-size:11px">Null Tenant</span>
|
<span style="color:#888;font-size:11px">Missing Owner</span>
|
||||||
<span style="color:#e0e0e0;font-size:11px;font-weight:600">{null_tenant}</span>
|
<span style="color:#e0e0e0;font-size:11px;font-weight:600">{fmt_num(missing_owner, b_missing_owner)}</span>
|
||||||
|
</div>
|
||||||
|
<div style="display:flex;justify-content:space-between;padding:4px 10px;background:#0d1117;border-radius:4px">
|
||||||
|
<span style="color:#888;font-size:11px">Missing Org</span>
|
||||||
|
<span style="color:#e0e0e0;font-size:11px;font-weight:600">{fmt_num(missing_org, b_missing_org)}</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex;justify-content:space-between;padding:4px 10px;background:#0d1117;border-radius:4px">
|
<div style="display:flex;justify-content:space-between;padding:4px 10px;background:#0d1117;border-radius:4px">
|
||||||
<span style="color:#888;font-size:11px">Null Explanations</span>
|
<span style="color:#888;font-size:11px">Null Explanations</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user