aboutsummaryrefslogtreecommitdiff
path: root/docs/whiteboard-object-model.dot
blob: fd8b30641314a0e9808ef2c3758d7daffdf296e2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// $Id$

// This is an attempt to capture
// http://subvert-rpki.hactrn.net/docs/prague-whiteboard-2007-03-22-23:15:01.jpg

// {arrowhead,arrowtail} shapes to use for database object relationships:
//   1-  none
//   m-  crow

digraph gsstsig_systems {
	rotate=90;	size="11,8.5";	splines=true;	ratio=fill;

	node [ shape=record ];

	// Objects visible in left-to-right protocol
	node	[ color=black ];
	issuer	[ label="issuer cust_id|{RPP}" ];
	parent	[ label="parent|{URL|key}" ];
	repo	[ label="repository|{URL|key}" ];
	ca	[ label="CA|{CRL #|cert #}" ];
	child;
	biz_sign;

	// Objects created on the fly by the RPKI engine
	node	[ color=green ];
	child_cert;
	ca_key_pair;
	ee_certs;
	roa;
	latest_ca_cert;
	latest_crl;

	// One-many mappings
	edge [ color=black, arrowtail=none, arrowhead=crow ];
	child -> biz_sign;
	issuer -> ca;
	issuer -> child;
	issuer -> parent;
	parent -> ca;
	repo -> biz_sign;
	repo -> parent;

	// Many-many mappings
	edge [ color=black, arrowtail=crow, arrowhead=crow ];
	ca -> child;

	// One-many mappings
	edge [ color=green, arrowtail=none, arrowhead=crow ];
	ca -> ca_key_pair;
	child -> child_cert;

	// One-one mappings
	edge [ color=green, arrowtail=none, arrowhead=none ];
	ca_key_pair -> latest_ca_cert;
	ca_key_pair -> latest_crl;
	ee_certs -> roa;

	// Weird one-many
	edge [ color=green, arrowtail=none, arrowhead=crow, style=dashed ];
	ca_key_pair -> child_cert;
	ca_key_pair -> ee_certs;
}

// Local Variables:
// compile-command: "neato -Tps2 whiteboard-object-model.dot | ps2pdf - whiteboard-object-model.pdf"
// End: