System Diagram

The Data Centre Infrastructure Assurance data model, mapped — 16 models, 30 relationships

🔍 For serious exploration, open the Interactive Diagram Viewer — pan, mouse-wheel zoom, fit-to-screen, full-screen, per-module tabs, the full 30-relationship ERD, and a focus mode that draws one model and its neighbours at a chosen depth. Site is a campus column referenced by nearly every model, so the viewer hides those links by default — a toggle brings them back. The diagrams below are the readable, static summary of the principal links only.


Architecture Overview

Five areas mirror the sidebar menu. Every arrow means "one row of the left model is referenced by many rows of the right model".

flowchart LR
    subgraph EST["🏢 Estate & dependencies"]
        Site --> Location
        Location --> Asset
        Asset --> AssetDependency
    end

    subgraph CTL["🛡️ Critical controls"]
        CriticalEvent --> CriticalControl
        CriticalControl --> ControlAsset
    end

    subgraph VER["✔️ Verification"]
        CriticalControl --> VerificationRequirement
        VerificationRequirement --> VerificationActivity
    end

    subgraph ASR["🚨 Assurance & exceptions"]
        VerificationActivity --> AssuranceException
        AssuranceException --> CorrectiveAction
        AssuranceException --> Evidence
        AssuranceException --> Approval
    end

    subgraph CHG["🔧 Change & conflicts"]
        ChangeRequest --> ChangeAsset
        ChangeRequest --> OperationalConflict
    end

    Asset --> ControlAsset
    Asset --> VerificationActivity
    Asset --> AssuranceException
    Asset --> ChangeAsset
    Asset --> OperationalConflict

The load-bearing crossovers (why this is an assurance model and not five separate registers): Asset delivers controls (ControlAsset), is the subject of verification and exceptions, is affected by changes (ChangeAsset), and is what an OperationalConflict points at. The AssetDependency graph is what lets "GEN-02 out of service" translate into "Data Hall 02 redundancy compromised".

Estate & dependencies

flowchart LR
    Site --> Location
    Location --> Location
    Site --> Asset
    Location --> Asset
    Asset --> Asset
    Asset -->|source / target| AssetDependency

Location and Asset both self-nest (campus → building → hall; parent asset → sub-asset). AssetDependency has two links to Asset — the source and the target of each directed relationship (FEEDS, BACKED_BY, STANDBY_FOR, REDUNDANT_WITH, …).

Controls, verification and assurance

flowchart LR
    CriticalEvent --> CriticalControl
    CriticalControl --> ControlAsset
    Asset --> ControlAsset
    CriticalControl --> VerificationRequirement
    VerificationRequirement --> VerificationActivity
    CriticalControl --> VerificationActivity
    Asset --> VerificationActivity
    VerificationActivity --> AssuranceException
    CriticalControl --> AssuranceException
    Asset --> AssuranceException
    AssuranceException --> CorrectiveAction
    AssuranceException --> Evidence
    AssuranceException --> Approval

CorrectiveAction, Evidence and Approval attach to their source through a polymorphic source_type + source_id (they can hang off an exception, a verification, a change or an audit), so those links are conceptual rather than hard foreign keys — shown here for readability.

Change & conflicts

flowchart LR
    Site --> ChangeRequest
    ChangeRequest --> ChangeAsset
    Asset --> ChangeAsset
    ChangeRequest --> OperationalConflict
    Asset -->|affected asset| OperationalConflict
    CriticalControl -->|affected control| OperationalConflict

An OperationalConflict references the change it was raised against, the asset and control it affects, and (by exception_code) the open exception it collides with — the shape of the flagship DC-SCENARIO-001 conflict.


The interactive viewer is generated from menu_config.yaml and generated/json/dccia_relationship_metadata.json by apps/dccia/scripts/build_diagram_viewer.py. Re-run it after any DSL or menu change so the ERD always matches the schema.