From 8d59994680c26fa42e7205e2acf00a1665f552d1 Mon Sep 17 00:00:00 2001 From: Justin Wind Date: Sun, 13 Mar 2022 15:53:18 -0700 Subject: [PATCH] document db entity relationships --- documentation/media/postgres-er.svg | 250 ++++++++++++++++++++++++ documentation/media/sqlite-er.svg | 250 ++++++++++++++++++++++++ src/db/postgres/sql/schema/1.0.0/er.dot | 125 ++++++++++++ src/db/postgres/sql/schema/1.0.1/er.dot | 125 ++++++++++++ src/db/postgres/sql/schema/1.0.2/er.dot | 126 ++++++++++++ src/db/postgres/sql/schema/1.0.3/er.dot | 137 +++++++++++++ src/db/sqlite/sql/schema/1.0.0/er.dot | 125 ++++++++++++ src/db/sqlite/sql/schema/1.0.1/er.dot | 125 ++++++++++++ src/db/sqlite/sql/schema/1.0.2/er.dot | 126 ++++++++++++ src/db/sqlite/sql/schema/1.0.3/er.dot | 137 +++++++++++++ 10 files changed, 1526 insertions(+) create mode 100644 documentation/media/postgres-er.svg create mode 100644 documentation/media/sqlite-er.svg create mode 100644 src/db/postgres/sql/schema/1.0.0/er.dot create mode 100644 src/db/postgres/sql/schema/1.0.1/er.dot create mode 100644 src/db/postgres/sql/schema/1.0.2/er.dot create mode 100644 src/db/postgres/sql/schema/1.0.3/er.dot create mode 100644 src/db/sqlite/sql/schema/1.0.0/er.dot create mode 100644 src/db/sqlite/sql/schema/1.0.1/er.dot create mode 100644 src/db/sqlite/sql/schema/1.0.2/er.dot create mode 100644 src/db/sqlite/sql/schema/1.0.3/er.dot diff --git a/documentation/media/postgres-er.svg b/documentation/media/postgres-er.svg new file mode 100644 index 0000000..b7db5b4 --- /dev/null +++ b/documentation/media/postgres-er.svg @@ -0,0 +1,250 @@ + + + + + + +WebsubHubERD + +Websub Hub Entity-Relations +Postgres +Schema 1.0.3 + + +topic + + +TOPIC + +id + +created + +url + +lease_seconds_preferred + +lease_seconds_min + +lease_seconds_max + +publisher_validation_url + +content_hash_algorithm + +is_active + +is_deleted + +last_publish + +content_fetch_next_attempt + +content_fetch_attempts_since_success + +content_updated + +content + +content_hash + +content_type + + + +topic_fetch_in_progress + + +TOPIC_FETCH_IN_PROGRESS + +id + +claimant + +claimed + +claim_expires + + + +topic:pk_id->topic_fetch_in_progress:fk_id + + + + + +topic_content_history + + +TOPIC_CONTENT_HISTORY + +topic_id + +content_updated + +content_size + +content_hash + + + +topic:pk_id->topic_content_history:fk_topic_id + + + + + +subscription + + +SUBSCRIPTION + +id + +created + +topic_id + +callback + +verified + +expires + +secret + +signature_algorithm + +http_remote_addr + +http_from + +content_delivered + +latest_content_delivered + +delivery_attempts_since_success + +delivery_next_attempt + + + +topic:pk_id->subscription:fk_topic_id + + + + + +verification + + +VERIFICATION + +id + +created + +topic_id + +callback + +secret + +signature_algorithm + +http_remote_addr + +http_from + +mode + +reason + +lease_seconds + +is_publisher_validated + +request_id + +attempts + +next_attempt + + + +topic:pk_id->verification:fk_topic_id + + + + + +verification_in_progress + + +VERIFICATION_IN_PROGRESS + +id + +topic_id + +callback + +claimant + +claimed + +claim_expires + + + +topic:pk_id->verification_in_progress:fk_topic_id + + + + + +subscription_delivery_in_progress + + +SUBSCRIPTION_DELIVERY_IN_PROGRESS + +id + +claimant + +claimed + +claim_expires + + + +subscription:pk_id->subscription_delivery_in_progress:fk_id + + + + + +verification:pk_id->verification_in_progress:fk_id + + + + + +authentication + + +AUTHENTICATION + +created + +last_authenticated + +identifier + +credential + + + diff --git a/documentation/media/sqlite-er.svg b/documentation/media/sqlite-er.svg new file mode 100644 index 0000000..e4a9c87 --- /dev/null +++ b/documentation/media/sqlite-er.svg @@ -0,0 +1,250 @@ + + + + + + +WebsubHubERD + +Websub Hub Entity-Relations +SQLite +Schema 1.0.3 + + +topic + + +TOPIC + +id + +created + +url + +lease_seconds_preferred + +lease_seconds_min + +lease_seconds_max + +publisher_validation_url + +content_hash_algorithm + +is_active + +is_deleted + +last_publish + +content_fetch_next_attempt + +content_fetch_attempts_since_success + +content_updated + +content + +content_hash + +content_type + + + +topic_fetch_in_progress + + +TOPIC_FETCH_IN_PROGRESS + +id + +claimant + +claimed + +claim_expires + + + +topic:pk_id->topic_fetch_in_progress:fk_id + + + + + +topic_content_history + + +TOPIC_CONTENT_HISTORY + +topic_id + +content_updated + +content_size + +content_hash + + + +topic:pk_id->topic_content_history:fk_topic_id + + + + + +subscription + + +SUBSCRIPTION + +id + +created + +topic_id + +callback + +verified + +expires + +secret + +signature_algorithm + +http_remote_addr + +http_from + +content_delivered + +latest_content_delivered + +delivery_attempts_since_success + +delivery_next_attempt + + + +topic:pk_id->subscription:fk_topic_id + + + + + +verification + + +VERIFICATION + +id + +created + +topic_id + +callback + +secret + +signature_algorithm + +http_remote_addr + +http_from + +mode + +reason + +lease_seconds + +is_publisher_validated + +request_id + +attempts + +next_attempt + + + +topic:pk_id->verification:fk_topic_id + + + + + +verification_in_progress + + +VERIFICATION_IN_PROGRESS + +id + +topic_id + +callback + +claimant + +claimed + +claim_expires + + + +topic:pk_id->verification_in_progress:fk_topic_id + + + + + +subscription_delivery_in_progress + + +SUBSCRIPTION_DELIVERY_IN_PROGRESS + +id + +claimant + +claimed + +claim_expires + + + +subscription:pk_id->subscription_delivery_in_progress:fk_id + + + + + +verification:pk_id->verification_in_progress:fk_id + + + + + +authentication + + +AUTHENTICATION + +created + +last_authenticated + +identifier + +credential + + + diff --git a/src/db/postgres/sql/schema/1.0.0/er.dot b/src/db/postgres/sql/schema/1.0.0/er.dot new file mode 100644 index 0000000..a70f150 --- /dev/null +++ b/src/db/postgres/sql/schema/1.0.0/er.dot @@ -0,0 +1,125 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\nPostgres\nSchema 1.0.0", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + subscription [label=< + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file diff --git a/src/db/postgres/sql/schema/1.0.1/er.dot b/src/db/postgres/sql/schema/1.0.1/er.dot new file mode 100644 index 0000000..53b63f2 --- /dev/null +++ b/src/db/postgres/sql/schema/1.0.1/er.dot @@ -0,0 +1,125 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\nPostgres\nSchema 1.0.1", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + subscription [label=< + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file diff --git a/src/db/postgres/sql/schema/1.0.2/er.dot b/src/db/postgres/sql/schema/1.0.2/er.dot new file mode 100644 index 0000000..c9bd7ed --- /dev/null +++ b/src/db/postgres/sql/schema/1.0.2/er.dot @@ -0,0 +1,126 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\nPostgres\nSchema 1.0.2", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + subscription [label=< + + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
latest_content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file diff --git a/src/db/postgres/sql/schema/1.0.3/er.dot b/src/db/postgres/sql/schema/1.0.3/er.dot new file mode 100644 index 0000000..eae5a5f --- /dev/null +++ b/src/db/postgres/sql/schema/1.0.3/er.dot @@ -0,0 +1,137 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\nPostgres\nSchema 1.0.3", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + topic_content_history [label=< + + + + + + +
TOPIC_CONTENT_HISTORY
topic_id
content_updated
content_size
content_hash
+ >]; + topic:pk_id -> topic_content_history:fk_topic_id; + + subscription [label=< + + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
latest_content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file diff --git a/src/db/sqlite/sql/schema/1.0.0/er.dot b/src/db/sqlite/sql/schema/1.0.0/er.dot new file mode 100644 index 0000000..9793ad3 --- /dev/null +++ b/src/db/sqlite/sql/schema/1.0.0/er.dot @@ -0,0 +1,125 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\nSQLite\nSchema 1.0.0", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + subscription [label=< + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id [ arrowhead = crow ]; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file diff --git a/src/db/sqlite/sql/schema/1.0.1/er.dot b/src/db/sqlite/sql/schema/1.0.1/er.dot new file mode 100644 index 0000000..103e54a --- /dev/null +++ b/src/db/sqlite/sql/schema/1.0.1/er.dot @@ -0,0 +1,125 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\SQLite\nSchema 1.0.1", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + subscription [label=< + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file diff --git a/src/db/sqlite/sql/schema/1.0.2/er.dot b/src/db/sqlite/sql/schema/1.0.2/er.dot new file mode 100644 index 0000000..82cb5b1 --- /dev/null +++ b/src/db/sqlite/sql/schema/1.0.2/er.dot @@ -0,0 +1,126 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\nSQLite\nSchema 1.0.2", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + subscription [label=< + + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
latest_content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file diff --git a/src/db/sqlite/sql/schema/1.0.3/er.dot b/src/db/sqlite/sql/schema/1.0.3/er.dot new file mode 100644 index 0000000..0fe277b --- /dev/null +++ b/src/db/sqlite/sql/schema/1.0.3/er.dot @@ -0,0 +1,137 @@ +digraph WebsubHubERD { + graph[ + rankdir=LR, + overlap=false, + splines=true, + label="Websub Hub Entity-Relations\nSQLite\nSchema 1.0.3", + labelloc="t", + fontsize=26, + ]; + // layout=neato; + node[shape=plain]; + edge[arrowhead=crow]; + + topic [label=< + + + + + + + + + + + + + + + + + + + +
TOPIC
id
created
url
lease_seconds_preferred
lease_seconds_min
lease_seconds_max
publisher_validation_url
content_hash_algorithm
is_active
is_deleted
last_publish
content_fetch_next_attempt
content_fetch_attempts_since_success
content_updated
content
content_hash
content_type
+ >]; + + topic_fetch_in_progress [label=< + + + + + + +
TOPIC_FETCH_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + topic:pk_id -> topic_fetch_in_progress:fk_id; + + topic_content_history [label=< + + + + + + +
TOPIC_CONTENT_HISTORY
topic_id
content_updated
content_size
content_hash
+ >]; + topic:pk_id -> topic_content_history:fk_topic_id; + + subscription [label=< + + + + + + + + + + + + + + + + +
SUBSCRIPTION
id
created
topic_id
callback
verified
expires
secret
signature_algorithm
http_remote_addr
http_from
content_delivered
latest_content_delivered
delivery_attempts_since_success
delivery_next_attempt
+ >]; + topic:pk_id -> subscription:fk_topic_id; + + subscription_delivery_in_progress [label=< + + + + + + +
SUBSCRIPTION_DELIVERY_IN_PROGRESS
id
claimant
claimed
claim_expires
+ >]; + subscription:pk_id -> subscription_delivery_in_progress:fk_id; + + verification [label=< + + + + + + + + + + + + + + + + + +
VERIFICATION
id
created
topic_id
callback
secret
signature_algorithm
http_remote_addr
http_from
mode
reason
lease_seconds
is_publisher_validated
request_id
attempts
next_attempt
+ >]; + topic:pk_id -> verification:fk_topic_id; + + verification_in_progress [label=< + + + + + + + + +
VERIFICATION_IN_PROGRESS
id
topic_id
callback
claimant
claimed
claim_expires
+ >]; + verification:pk_id -> verification_in_progress:fk_id; + topic:pk_id -> verification_in_progress:fk_topic_id; + + authentication [label=< + + + + + + +
AUTHENTICATION
created
last_authenticated
identifier
credential
+ >]; + +} \ No newline at end of file -- 2.43.2