document db entity relationships
[websub-hub] / src / db / postgres / sql / schema / 1.0.0 / er.dot
1 digraph WebsubHubERD {
2 graph[
3 rankdir=LR,
4 overlap=false,
5 splines=true,
6 label="Websub Hub Entity-Relations\nPostgres\nSchema 1.0.0",
7 labelloc="t",
8 fontsize=26,
9 ];
10 // layout=neato;
11 node[shape=plain];
12 edge[arrowhead=crow];
13
14 topic [label=<
15 <table cellspacing="0" cellborder="1" border="0">
16 <tr><td border="2" bgcolor="lightblue">TOPIC</td></tr>
17 <tr><td port="pk_id">id</td></tr>
18 <tr><td port="">created</td></tr>
19 <tr><td port="">url</td></tr>
20 <tr><td port="">lease_seconds_preferred</td></tr>
21 <tr><td port="">lease_seconds_min</td></tr>
22 <tr><td port="">lease_seconds_max</td></tr>
23 <tr><td port="">publisher_validation_url</td></tr>
24 <tr><td port="">content_hash_algorithm</td></tr>
25 <tr><td port="">is_active</td></tr>
26 <tr><td port="">is_deleted</td></tr>
27 <tr><td port="">last_publish</td></tr>
28 <tr><td port="">content_fetch_next_attempt</td></tr>
29 <tr><td port="">content_fetch_attempts_since_success</td></tr>
30 <tr><td port="">content_updated</td></tr>
31 <tr><td port="">content</td></tr>
32 <tr><td port="">content_hash</td></tr>
33 <tr><td port="">content_type</td></tr>
34 </table>
35 >];
36
37 topic_fetch_in_progress [label=<
38 <table cellspacing="0" cellborder="1" border="0">
39 <tr><td border="2" bgcolor="lightblue">TOPIC_FETCH_IN_PROGRESS</td></tr>
40 <tr><td port="fk_id">id</td></tr>
41 <tr><td port="">claimant</td></tr>
42 <tr><td port="">claimed</td></tr>
43 <tr><td port="">claim_expires</td></tr>
44 </table>
45 >];
46 topic:pk_id -> topic_fetch_in_progress:fk_id;
47
48 subscription [label=<
49 <table cellspacing="0" cellborder="1" border="0">
50 <tr><td border="2" bgcolor="lightblue">SUBSCRIPTION</td></tr>
51 <tr><td port="pk_id">id</td></tr>
52 <tr><td port="">created</td></tr>
53 <tr><td port="fk_topic_id">topic_id</td></tr>
54 <tr><td port="">callback</td></tr>
55 <tr><td port="">verified</td></tr>
56 <tr><td port="">expires</td></tr>
57 <tr><td port="">secret</td></tr>
58 <tr><td port="">signature_algorithm</td></tr>
59 <tr><td port="">http_remote_addr</td></tr>
60 <tr><td port="">http_from</td></tr>
61 <tr><td port="">content_delivered</td></tr>
62 <tr><td port="">delivery_attempts_since_success</td></tr>
63 <tr><td port="">delivery_next_attempt</td></tr>
64 </table>
65 >];
66 topic:pk_id -> subscription:fk_topic_id;
67
68 subscription_delivery_in_progress [label=<
69 <table cellspacing="0" cellborder="1" border="0">
70 <tr><td border="2" bgcolor="lightblue">SUBSCRIPTION_DELIVERY_IN_PROGRESS</td></tr>
71 <tr><td port="fk_id">id</td></tr>
72 <tr><td port="">claimant</td></tr>
73 <tr><td port="">claimed</td></tr>
74 <tr><td port="">claim_expires</td></tr>
75 </table>
76 >];
77 subscription:pk_id -> subscription_delivery_in_progress:fk_id;
78
79 verification [label=<
80 <table cellspacing="0" cellborder="1" border="0">
81 <tr><td border="2" bgcolor="lightblue">VERIFICATION</td></tr>
82 <tr><td port="pk_id">id</td></tr>
83 <tr><td port="">created</td></tr>
84 <tr><td port="fk_topic_id">topic_id</td></tr>
85 <tr><td port="">callback</td></tr>
86 <tr><td port="">secret</td></tr>
87 <tr><td port="">signature_algorithm</td></tr>
88 <tr><td port="">http_remote_addr</td></tr>
89 <tr><td port="">http_from</td></tr>
90 <tr><td port="">mode</td></tr>
91 <tr><td port="">reason</td></tr>
92 <tr><td port="">lease_seconds</td></tr>
93 <tr><td port="">is_publisher_validated</td></tr>
94 <tr><td port="">request_id</td></tr>
95 <tr><td port="">attempts</td></tr>
96 <tr><td port="">next_attempt</td></tr>
97 </table>
98 >];
99 topic:pk_id -> verification:fk_topic_id;
100
101 verification_in_progress [label=<
102 <table cellspacing="0" cellborder="1" border="0">
103 <tr><td border="2" bgcolor="lightblue">VERIFICATION_IN_PROGRESS</td></tr>
104 <tr><td port="fk_id">id</td></tr>
105 <tr><td port="fk_topic_id">topic_id</td></tr>
106 <tr><td port="">callback</td></tr>
107 <tr><td port="">claimant</td></tr>
108 <tr><td port="">claimed</td></tr>
109 <tr><td port="">claim_expires</td></tr>
110 </table>
111 >];
112 verification:pk_id -> verification_in_progress:fk_id;
113 topic:pk_id -> verification_in_progress:fk_topic_id;
114
115 authentication [label=<
116 <table cellspacing="0" cellborder="1" border="0">
117 <tr><td border="2" bgcolor="lightblue">AUTHENTICATION</td></tr>
118 <tr><td port="">created</td></tr>
119 <tr><td port="">last_authenticated</td></tr>
120 <tr><td port="">identifier</td></tr>
121 <tr><td port="">credential</td></tr>
122 </table>
123 >];
124
125 }