02 — System Diagram

🔍 Open the Interactive Diagram Viewer — pan, mouse-wheel zoom, fit-to-screen, full-screen, per-area tabs, the full ERD, and a focus mode that draws one model and its neighbours at a chosen depth. ERPProject is a hub table, so its links can be hidden to declutter the overview.

Regenerate the viewer after any DSL, menu_config.yaml or diagram_config.yaml change: python scripts/build_diagram_viewer.py erpam.

The assurance spine

flowchart TD
  Entity[Entity]
  Proj[ERPProject]
  Leg[LegacySystem]
  BP[BusinessProcess]
  Req[Requirement]
  Dsn[SolutionDesign]
  DO[DataObject]
  MR[MigrationRule]
  MB[MigrationBatch]
  Rec[Reconciliation]
  IF[Interface]
  TCy[TestCycle]
  TCa[TestCase]
  Def[Defect]
  RA[RemediationAction]
  ER[EvidenceRequirement]
  EV[EvidenceSubmission]
  RdA[ReadinessArea]
  GLD[GoLiveDecision]
  CR[ClosureRequest]
  CA[ClosureApproval]
  SH[StatusHistory]

  Entity --> Proj
  Proj --> Leg
  Proj --> BP
  Proj --> Req
  BP --> Req
  Req --> Dsn
  Proj --> DO
  DO --> MR
  DO --> MB
  MB --> Rec
  Proj --> IF
  Proj --> TCy
  TCy --> TCa
  Req --> TCa
  TCa --> Def
  Def --> RA
  Req --> ER
  Def --> ER
  ER --> EV
  Proj --> RdA
  Proj --> GLD
  Proj --> CR
  CR --> CA
  Proj --> SH

How to read it

  • ERPProject is the hub. Almost everything hangs off it; the viewer lets you hide those hub edges to see local structure (migration, testing, readiness).
  • Migration is a chain: a Data Object has Migration Rules and Batches, and each batch carries a Reconciliation that must pass its tolerance.
  • Defects trace to tests. A Test Case can raise a Defect; a go_live_blocking defect must be resolved (via Remediation Actions) and evidenced before go-live.
  • Readiness gates the decision. Readiness Areas are assessed; the authorised Go-Live Decision can be APPROVED, CONDITIONAL, DEFERRED or REJECTED.
  • Closure is two-part: a Closure Request and an independent Closure Approval (which may itself be DEFERRED until conditions are met).
  • StatusHistory is the audit trail of the project's state transitions.

Backing data (denormalised for display)

Each foreign key carries a denormalised <fk>_name display column so lists read in plain language (e.g. a Reconciliation shows its batch code; a Defect shows its test-case title) without a join at read time — the house style for these apps.