1. Triage severity matrix
| Severity | Primary agent | UI surface |
| P0 โ Perimeter breach | Irongate (Agent 14) | ๐จ DMZ QUARANTINE |
| P0 โ Config hash drift | Ironwatch + Irontech | GOVERNANCE DRIFT DETECTED โ FREEZE COMMAND POST |
| P1 โ Threat pipeline SLA | Ironlock (Agent 6) | Active Risks / clearance queue |
| P1 โ ESG physical gate | Ironbloom (Agent 18) | 400 PHYSICAL_UNIT_REQUIRED |
| P2 โ Export integrity | Irontrust (Agent 3) | Export Tabular Ledger Data (CSV) |
2. DMZ quarantine workflow
- Operator opens ๐จ DMZ QUARANTINE (
/admin/clearance, data-testid header-dmz-quarantine-chip).
- Review threat ingress metadata and Irongate sanitization stamp.
- Decision paths (from clearanceActions):
[DMZ QUARANTINE: REJECTED] false positive archive, or [DMZ QUARANTINE: ESCALATED] direct SecOps handoff.
- Append chain-of-custody via Audit Trail (AUDIT TRAIL nav tab โ
/reports/audit-trail).
3. Error catalog (support KB excerpts)
| Code / message | Cause | Resolution |
| PHYSICAL_UNIT_REQUIRED | Ironbloom monetary-only payload | Supply kWh, L, or km per lib/sustainability/constants.ts |
| CRITICAL_INGESTION_FAILURE | Missing physical units on asset | Reject at Irongate; re-ingest with physical metrics |
| Tenant scope pending | No Command Center tenant selected | Select Medshield/Vaultbank/Gridcore in tenant switcher |
| Testing protocol artifact missing | docx not in docs/ | Restore Ironframe-UI-UX-Feature-Test-Protocol.docx |
4. Java โ QuarantineDecisionGate
package com.ironframe.grc.ops;
public enum QuarantineOutcome { REJECTED_FALSE_POSITIVE, ESCALATED_SECOPS, PENDING_REVIEW }
public final class QuarantineDecisionGate {
public static QuarantineOutcome evaluate(boolean irongatePassed, boolean mappedControlsPresent) {
if (!irongatePassed) return QuarantineOutcome.PENDING_REVIEW;
if (!mappedControlsPresent) return QuarantineOutcome.ESCALATED_SECOPS;
return QuarantineOutcome.REJECTED_FALSE_POSITIVE;
}
}
5. Multi-tenant isolation (RLS)
All server actions resolve tenant via getActiveTenantUuidFromCookies(). Cross-tenant reads are blocked at Prisma query scope (tenantCompanyId: { in: tenantCompanyIds }). Integration test gate: TENANT-001 through TENANT-004 in docs/Ironframe-UI-UX-Feature-Test-Matrix.csv.