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:
mumuni-bot
2026-06-02 01:19:37 +00:00
parent c65ded9890
commit 79f3ebbe3d
+13 -4
View File
@@ -105,6 +105,8 @@ b_stale30 = baseline.get("stale_30d", 0)
b_missing_type = baseline.get("missing_metadata_type", 0)
b_missing_agent = baseline.get("missing_metadata_agent_id", 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 = ""
try:
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)
# NULL 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
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')")
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
insert_repair_log(
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>
</div>
<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:#e0e0e0;font-size:11px;font-weight:600">{null_tenant}</span>
<span style="color:#888;font-size:11px">Missing Owner</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 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>