// $URL$ // $Id$ // // {arrowhead,arrowtail} shapes indicate database object relationships: // 1- none // m- crow // // Color code: // Blue: visible in left-right protocol // Green: created on the fly digraph rpki_engine_objects { rotate=90; size="11,8.5"; splines=true; ratio=fill; node [ shape=record ]; // Objects visible in left-to-right protocol node [ color=blue ]; self [ label="Self|{Preferences}" ]; parent [ label="Parent|{URI|TA|SIA Base}" ]; repo [ label="Repository|{URI|TA}" ]; child [ label="Child|{TA}" ]; biz_sign [ label="Business\nSigning Context|{Keypair|CertChain}" ]; route_origin [ label="Route\nOrigin|{AS Number|Address/Prefix List}" ]; // Objects created on the fly by the RPKI engine node [ color=green ]; ca [ label="CA|{CRL #|Last Issued Serial #}" ]; child_cert [ label="Child Certificate" ]; roa_ee_cert [ label="EE Certificate|{ROA}" ]; man_ee_cert [ label="EE Certificate|{Manifest}" ]; ca_key_pair [ label="CA Key Pair|{Latest CA Certificate|Latest CRL}" ]; // One-many mappings edge [ color=blue, arrowtail=none, arrowhead=crow ]; self -> biz_sign; biz_sign -> child; biz_sign -> parent; biz_sign -> repo; self -> child; self -> parent; repo -> parent; self -> route_origin; // This is many-many because each child is an entity, each CA // can have multiple children, and each child can hold certs // from multiple CAs (thanks, RobL). // ca -> child [ color=green, arrowtail=crow, arrowhead=crow ]; // One-many mappings edge [ color=green, arrowtail=none, arrowhead=crow ]; ca -> ca_key_pair; child -> child_cert; parent -> ca; // Weird one-many edge [ color=green, arrowtail=none, arrowhead=crow, style=dashed ]; ca_key_pair -> child_cert; ca_key_pair -> roa_ee_cert; ca_key_pair -> man_ee_cert; // One-one mapping -- separate object to highlight dynamic nature edge [ color=green, arrowtail=none, arrowhead=none, style=solid ]; route_origin -> roa_ee_cert; } // Local Variables: // compile-command: "dot -Tps2 repository-engine-objects.dot | ps2pdf - repository-engine-objects.pdf" // End: