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. PortSubmission fans out to many tables, 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 coast_11_portinterface.

Submissions

flowchart LR
  PSB1[PortSubmission] --> PSB2[SubmissionCargo]
  PSB1[PortSubmission] --> PSB3[TransmissionAttempt]
  PSB1[PortSubmission] --> PSB4[PortAcknowledgment]
  PSB1[PortSubmission] --> PSB5[PortCorrection]
  PSB1[PortSubmission] --> PSB1

Terminal Notices

flowchart LR
  AUT1[PortInterfaceAuthority] --> TN1[TerminalNotice]

Reconciliation & Deadlines

flowchart LR
  PSB1[PortSubmission] --> REC1[PortInterfaceReconciliation]
  TN1[TerminalNotice] --> REC1[PortInterfaceReconciliation]
  PRO1[PortInterfaceProfile] --> DL1[TransmissionDeadline]
  PSB1[PortSubmission] --> EX1[PortInterfaceException]
  TN1[TerminalNotice] --> EX1[PortInterfaceException]
  DL1[TransmissionDeadline] --> EX1[PortInterfaceException]

Profiles & Sources

flowchart LR
  AUT1[PortInterfaceAuthority] --> PRO1[PortInterfaceProfile]
  PRO1[PortInterfaceProfile] --> PSB1[PortSubmission]

No shared tables and no foreign keys: sibling applications are linked by canonical_ref strings and by messages. Everything on the right of the authority is simulated.

flowchart LR
  subgraph coast_11_portinterface
    SUB[PortSubmission]
    ACK[PortAcknowledgment]
    NOT[TerminalNotice]
    EXC[PortInterfaceException]
  end
  subgraph coast_02_manifest
    EC[effective cargo]
  end
  subgraph coast_06_voyage
    VS[voyage and port call snapshots]
    CM[cargo call mapping]
  end
  subgraph coast_16_assurance
    AS[assurance case and action]
  end
  subgraph coast_03_tracking
    TR[container movements]
  end
  subgraph simulated authority
    SIM[simulation adapter]
  end
  EC -. "manifest.effective_cargo (positive lines)" .-> SUB
  VS -. "voyage.snapshot / voyage.portcall_snapshot" .-> SUB
  CM -. "voyage.cargo_call_mapped" .-> SUB
  SUB -- "simulated transport" --> SIM
  SIM -. "simulated response" .-> ACK
  SIM -. "simulated notice" .-> NOT
  SUB -. "portinterface.submission_status" .-> VS
  SUB -. "portinterface.submission_status" .-> AS
  NOT -. "portinterface.terminal_notice (observation only)" .-> TR
  EXC -. "portinterface.exception_raised" .-> AS
  AS -. "assurance.action_requested" .-> EXC