database migration 1.0.4, store topic fetch etag/last-modified, provide these when...
[websub-hub] / src / db / postgres / sql / schema / 1.0.4 / 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.4",
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 <tr><td port="">http_etag</td></tr>
35 <tr><td port="">http_last_modified</td></tr>
36 </table>
37 >];
38
39 topic_fetch_in_progress [label=<
40 <table cellspacing="0" cellborder="1" border="0">
41 <tr><td border="2" bgcolor="lightblue">TOPIC_FETCH_IN_PROGRESS</td></tr>
42 <tr><td port="fk_id">id</td></tr>
43 <tr><td port="">claimant</td></tr>
44 <tr><td port="">claimed</td></tr>
45 <tr><td port="">claim_expires</td></tr>
46 </table>
47 >];
48 topic:pk_id -> topic_fetch_in_progress:fk_id;
49
50 topic_content_history [label=<
51 <table cellspacing="0" cellborder="1" border="0">
52 <tr><td border="2" bgcolor="lightblue">TOPIC_CONTENT_HISTORY</td></tr>
53 <tr><td port="fk_topic_id">topic_id</td></tr>
54 <tr><td port="">content_updated</td></tr>
55 <tr><td port="">content_size</td></tr>
56 <tr><td port="">content_hash</td></tr>
57 </table>
58 >];
59 topic:pk_id -> topic_content_history:fk_topic_id;
60
61 subscription [label=<
62 <table cellspacing="0" cellborder="1" border="0">
63 <tr><td border="2" bgcolor="lightblue">SUBSCRIPTION</td></tr>
64 <tr><td port="pk_id">id</td></tr>
65 <tr><td port="">created</td></tr>
66 <tr><td port="fk_topic_id">topic_id</td></tr>
67 <tr><td port="">callback</td></tr>
68 <tr><td port="">verified</td></tr>
69 <tr><td port="">expires</td></tr>
70 <tr><td port="">secret</td></tr>
71 <tr><td port="">signature_algorithm</td></tr>
72 <tr><td port="">http_remote_addr</td></tr>
73 <tr><td port="">http_from</td></tr>
74 <tr><td port="">content_delivered</td></tr>
75 <tr><td port="">latest_content_delivered</td></tr>
76 <tr><td port="">delivery_attempts_since_success</td></tr>
77 <tr><td port="">delivery_next_attempt</td></tr>
78 </table>
79 >];
80 topic:pk_id -> subscription:fk_topic_id;
81
82 subscription_delivery_in_progress [label=<
83 <table cellspacing="0" cellborder="1" border="0">
84 <tr><td border="2" bgcolor="lightblue">SUBSCRIPTION_DELIVERY_IN_PROGRESS</td></tr>
85 <tr><td port="fk_id">id</td></tr>
86 <tr><td port="">claimant</td></tr>
87 <tr><td port="">claimed</td></tr>
88 <tr><td port="">claim_expires</td></tr>
89 </table>
90 >];
91 subscription:pk_id -> subscription_delivery_in_progress:fk_id;
92
93 verification [label=<
94 <table cellspacing="0" cellborder="1" border="0">
95 <tr><td border="2" bgcolor="lightblue">VERIFICATION</td></tr>
96 <tr><td port="pk_id">id</td></tr>
97 <tr><td port="">created</td></tr>
98 <tr><td port="fk_topic_id">topic_id</td></tr>
99 <tr><td port="">callback</td></tr>
100 <tr><td port="">secret</td></tr>
101 <tr><td port="">signature_algorithm</td></tr>
102 <tr><td port="">http_remote_addr</td></tr>
103 <tr><td port="">http_from</td></tr>
104 <tr><td port="">mode</td></tr>
105 <tr><td port="">reason</td></tr>
106 <tr><td port="">lease_seconds</td></tr>
107 <tr><td port="">is_publisher_validated</td></tr>
108 <tr><td port="">request_id</td></tr>
109 <tr><td port="">attempts</td></tr>
110 <tr><td port="">next_attempt</td></tr>
111 </table>
112 >];
113 topic:pk_id -> verification:fk_topic_id;
114
115 verification_in_progress [label=<
116 <table cellspacing="0" cellborder="1" border="0">
117 <tr><td border="2" bgcolor="lightblue">VERIFICATION_IN_PROGRESS</td></tr>
118 <tr><td port="fk_id">id</td></tr>
119 <tr><td port="fk_topic_id">topic_id</td></tr>
120 <tr><td port="">callback</td></tr>
121 <tr><td port="">claimant</td></tr>
122 <tr><td port="">claimed</td></tr>
123 <tr><td port="">claim_expires</td></tr>
124 </table>
125 >];
126 verification:pk_id -> verification_in_progress:fk_id;
127 topic:pk_id -> verification_in_progress:fk_topic_id;
128
129 authentication [label=<
130 <table cellspacing="0" cellborder="1" border="0">
131 <tr><td border="2" bgcolor="lightblue">AUTHENTICATION</td></tr>
132 <tr><td port="">created</td></tr>
133 <tr><td port="">last_authenticated</td></tr>
134 <tr><td port="">identifier</td></tr>
135 <tr><td port="">credential</td></tr>
136 </table>
137 >];
138
139 }