update depedencies, changes to support updated authentication-module
[squeep-indie-auther] / documentation / media / sqlite-er.svg
index 8d036edbeb7b15a8bd63ba7d5a6f8bfda8e19dfa..9935e635a4e9f15d500a19b0b63ef88ec10efdee 100644 (file)
 <!-- Generated by graphviz version 2.50.0 (20211204.2007)
  -->
 <!-- Title: indieAutherERD Pages: 1 -->
-<svg width="656pt" height="639pt"
- viewBox="0.00 0.00 656.00 639.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 635)">
+<svg width="669pt" height="640pt"
+ viewBox="0.00 0.00 669.00 640.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 636)">
 <title>indieAutherERD</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-635 652,-635 652,4 -4,4"/>
-<text text-anchor="middle" x="324" y="-606.2" font-family="Times,serif" font-size="26.00">IndieAuther Entity&#45;RelationsSQLite</text>
-<text text-anchor="middle" x="324" y="-577.2" font-family="Times,serif" font-size="26.00">Schema 1.0.0</text>
-<!-- token -->
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-636 665,-636 665,4 -4,4"/>
+<text text-anchor="middle" x="330.5" y="-607.2" font-family="Times,serif" font-size="26.00">IndieAuther Entity&#45;RelationsSQLite</text>
+<text text-anchor="middle" x="330.5" y="-578.2" font-family="Times,serif" font-size="26.00">Schema 1.1.0</text>
+<!-- redeemed_ticket -->
 <g id="node1" class="node">
+<title>redeemed_ticket</title>
+<polygon fill="lightblue" stroke="transparent" points="0.5,-167.5 0.5,-190.5 159.5,-190.5 159.5,-167.5 0.5,-167.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="1.5,-168.5 1.5,-189.5 158.5,-189.5 158.5,-168.5 1.5,-168.5"/>
+<text text-anchor="start" x="4.5" y="-175.3" font-family="Times,serif" font-size="14.00">REDEEMED_TICKET</text>
+<polygon fill="none" stroke="black" points="0.5,-146.5 0.5,-167.5 159.5,-167.5 159.5,-146.5 0.5,-146.5"/>
+<text text-anchor="start" x="49.5" y="-153.3" font-family="Times,serif" font-size="14.00">ticket_id</text>
+<polygon fill="none" stroke="black" points="0.5,-125.5 0.5,-146.5 159.5,-146.5 159.5,-125.5 0.5,-125.5"/>
+<text text-anchor="start" x="52.5" y="-132.3" font-family="Times,serif" font-size="14.00">created</text>
+<polygon fill="none" stroke="black" points="0.5,-104.5 0.5,-125.5 159.5,-125.5 159.5,-104.5 0.5,-104.5"/>
+<text text-anchor="start" x="54" y="-111.3" font-family="Times,serif" font-size="14.00">subject</text>
+<polygon fill="none" stroke="black" points="0.5,-83.5 0.5,-104.5 159.5,-104.5 159.5,-83.5 0.5,-83.5"/>
+<text text-anchor="start" x="48.5" y="-90.3" font-family="Times,serif" font-size="14.00">resource</text>
+<polygon fill="none" stroke="black" points="0.5,-62.5 0.5,-83.5 159.5,-83.5 159.5,-62.5 0.5,-62.5"/>
+<text text-anchor="start" x="70" y="-69.3" font-family="Times,serif" font-size="14.00">iss</text>
+<polygon fill="none" stroke="black" points="0.5,-41.5 0.5,-62.5 159.5,-62.5 159.5,-41.5 0.5,-41.5"/>
+<text text-anchor="start" x="60" y="-48.3" font-family="Times,serif" font-size="14.00">token</text>
+<polygon fill="none" stroke="black" points="0.5,-20.5 0.5,-41.5 159.5,-41.5 159.5,-20.5 0.5,-20.5"/>
+<text text-anchor="start" x="59.5" y="-27.3" font-family="Times,serif" font-size="14.00">ticket</text>
+<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-20.5 159.5,-20.5 159.5,0.5 0.5,0.5"/>
+<text text-anchor="start" x="45" y="-6.3" font-family="Times,serif" font-size="14.00">published</text>
+</g>
+<!-- token -->
+<g id="node2" class="node">
 <title>token</title>
-<polygon fill="lightblue" stroke="transparent" points="362.5,-501.5 362.5,-524.5 488.5,-524.5 488.5,-501.5 362.5,-501.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="363.5,-502.5 363.5,-523.5 487.5,-523.5 487.5,-502.5 363.5,-502.5"/>
-<text text-anchor="start" x="398.5" y="-509.3" font-family="Times,serif" font-size="14.00">TOKEN</text>
-<polygon fill="none" stroke="black" points="362.5,-480.5 362.5,-501.5 488.5,-501.5 488.5,-480.5 362.5,-480.5"/>
-<text text-anchor="start" x="398.5" y="-487.3" font-family="Times,serif" font-size="14.00">code_id</text>
-<polygon fill="none" stroke="black" points="362.5,-459.5 362.5,-480.5 488.5,-480.5 488.5,-459.5 362.5,-459.5"/>
-<text text-anchor="start" x="392" y="-466.3" font-family="Times,serif" font-size="14.00">profile_id</text>
-<polygon fill="none" stroke="black" points="362.5,-438.5 362.5,-459.5 488.5,-459.5 488.5,-438.5 362.5,-438.5"/>
-<text text-anchor="start" x="398" y="-445.3" font-family="Times,serif" font-size="14.00">created</text>
-<polygon fill="none" stroke="black" points="362.5,-417.5 362.5,-438.5 488.5,-438.5 488.5,-417.5 362.5,-417.5"/>
-<text text-anchor="start" x="399" y="-424.3" font-family="Times,serif" font-size="14.00">expires</text>
-<polygon fill="none" stroke="black" points="362.5,-396.5 362.5,-417.5 488.5,-417.5 488.5,-396.5 362.5,-396.5"/>
-<text text-anchor="start" x="369.5" y="-403.3" font-family="Times,serif" font-size="14.00">refresh_expires</text>
-<polygon fill="none" stroke="black" points="362.5,-375.5 362.5,-396.5 488.5,-396.5 488.5,-375.5 362.5,-375.5"/>
-<text text-anchor="start" x="390.5" y="-382.3" font-family="Times,serif" font-size="14.00">refreshed</text>
-<polygon fill="none" stroke="black" points="362.5,-354.5 362.5,-375.5 488.5,-375.5 488.5,-354.5 362.5,-354.5"/>
-<text text-anchor="start" x="395" y="-361.3" font-family="Times,serif" font-size="14.00">duration</text>
-<polygon fill="none" stroke="black" points="362.5,-333.5 362.5,-354.5 488.5,-354.5 488.5,-333.5 362.5,-333.5"/>
-<text text-anchor="start" x="365.5" y="-340.3" font-family="Times,serif" font-size="14.00">refresh_duration</text>
-<polygon fill="none" stroke="black" points="362.5,-312.5 362.5,-333.5 488.5,-333.5 488.5,-312.5 362.5,-312.5"/>
-<text text-anchor="start" x="376" y="-319.3" font-family="Times,serif" font-size="14.00">refresh_count</text>
-<polygon fill="none" stroke="black" points="362.5,-291.5 362.5,-312.5 488.5,-312.5 488.5,-291.5 362.5,-291.5"/>
-<text text-anchor="start" x="387.5" y="-298.3" font-family="Times,serif" font-size="14.00">is_revoked</text>
-<polygon fill="none" stroke="black" points="362.5,-270.5 362.5,-291.5 488.5,-291.5 488.5,-270.5 362.5,-270.5"/>
-<text text-anchor="start" x="396" y="-277.3" font-family="Times,serif" font-size="14.00">is_token</text>
-<polygon fill="none" stroke="black" points="362.5,-249.5 362.5,-270.5 488.5,-270.5 488.5,-249.5 362.5,-249.5"/>
-<text text-anchor="start" x="395" y="-256.3" font-family="Times,serif" font-size="14.00">client_id</text>
-<polygon fill="none" stroke="black" points="362.5,-228.5 362.5,-249.5 488.5,-249.5 488.5,-228.5 362.5,-228.5"/>
-<text text-anchor="start" x="394" y="-235.3" font-family="Times,serif" font-size="14.00">resource</text>
-<polygon fill="none" stroke="black" points="362.5,-207.5 362.5,-228.5 488.5,-228.5 488.5,-207.5 362.5,-207.5"/>
-<text text-anchor="start" x="383" y="-214.3" font-family="Times,serif" font-size="14.00">profile_data</text>
+<polygon fill="lightblue" stroke="transparent" points="375.5,-502.5 375.5,-525.5 501.5,-525.5 501.5,-502.5 375.5,-502.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="376.5,-503.5 376.5,-524.5 500.5,-524.5 500.5,-503.5 376.5,-503.5"/>
+<text text-anchor="start" x="411.5" y="-510.3" font-family="Times,serif" font-size="14.00">TOKEN</text>
+<polygon fill="none" stroke="black" points="375.5,-481.5 375.5,-502.5 501.5,-502.5 501.5,-481.5 375.5,-481.5"/>
+<text text-anchor="start" x="411.5" y="-488.3" font-family="Times,serif" font-size="14.00">code_id</text>
+<polygon fill="none" stroke="black" points="375.5,-460.5 375.5,-481.5 501.5,-481.5 501.5,-460.5 375.5,-460.5"/>
+<text text-anchor="start" x="405" y="-467.3" font-family="Times,serif" font-size="14.00">profile_id</text>
+<polygon fill="none" stroke="black" points="375.5,-439.5 375.5,-460.5 501.5,-460.5 501.5,-439.5 375.5,-439.5"/>
+<text text-anchor="start" x="411" y="-446.3" font-family="Times,serif" font-size="14.00">created</text>
+<polygon fill="none" stroke="black" points="375.5,-418.5 375.5,-439.5 501.5,-439.5 501.5,-418.5 375.5,-418.5"/>
+<text text-anchor="start" x="412" y="-425.3" font-family="Times,serif" font-size="14.00">expires</text>
+<polygon fill="none" stroke="black" points="375.5,-397.5 375.5,-418.5 501.5,-418.5 501.5,-397.5 375.5,-397.5"/>
+<text text-anchor="start" x="382.5" y="-404.3" font-family="Times,serif" font-size="14.00">refresh_expires</text>
+<polygon fill="none" stroke="black" points="375.5,-376.5 375.5,-397.5 501.5,-397.5 501.5,-376.5 375.5,-376.5"/>
+<text text-anchor="start" x="403.5" y="-383.3" font-family="Times,serif" font-size="14.00">refreshed</text>
+<polygon fill="none" stroke="black" points="375.5,-355.5 375.5,-376.5 501.5,-376.5 501.5,-355.5 375.5,-355.5"/>
+<text text-anchor="start" x="408" y="-362.3" font-family="Times,serif" font-size="14.00">duration</text>
+<polygon fill="none" stroke="black" points="375.5,-334.5 375.5,-355.5 501.5,-355.5 501.5,-334.5 375.5,-334.5"/>
+<text text-anchor="start" x="378.5" y="-341.3" font-family="Times,serif" font-size="14.00">refresh_duration</text>
+<polygon fill="none" stroke="black" points="375.5,-313.5 375.5,-334.5 501.5,-334.5 501.5,-313.5 375.5,-313.5"/>
+<text text-anchor="start" x="389" y="-320.3" font-family="Times,serif" font-size="14.00">refresh_count</text>
+<polygon fill="none" stroke="black" points="375.5,-292.5 375.5,-313.5 501.5,-313.5 501.5,-292.5 375.5,-292.5"/>
+<text text-anchor="start" x="400.5" y="-299.3" font-family="Times,serif" font-size="14.00">is_revoked</text>
+<polygon fill="none" stroke="black" points="375.5,-271.5 375.5,-292.5 501.5,-292.5 501.5,-271.5 375.5,-271.5"/>
+<text text-anchor="start" x="409" y="-278.3" font-family="Times,serif" font-size="14.00">is_token</text>
+<polygon fill="none" stroke="black" points="375.5,-250.5 375.5,-271.5 501.5,-271.5 501.5,-250.5 375.5,-250.5"/>
+<text text-anchor="start" x="408" y="-257.3" font-family="Times,serif" font-size="14.00">client_id</text>
+<polygon fill="none" stroke="black" points="375.5,-229.5 375.5,-250.5 501.5,-250.5 501.5,-229.5 375.5,-229.5"/>
+<text text-anchor="start" x="407" y="-236.3" font-family="Times,serif" font-size="14.00">resource</text>
+<polygon fill="none" stroke="black" points="375.5,-208.5 375.5,-229.5 501.5,-229.5 501.5,-208.5 375.5,-208.5"/>
+<text text-anchor="start" x="396" y="-215.3" font-family="Times,serif" font-size="14.00">profile_data</text>
 </g>
 <!-- token_scope -->
-<g id="node4" class="node">
+<g id="node5" class="node">
 <title>token_scope</title>
-<polygon fill="lightblue" stroke="transparent" points="528,-315.5 528,-338.5 648,-338.5 648,-315.5 528,-315.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="529,-316.5 529,-337.5 647,-337.5 647,-316.5 529,-316.5"/>
-<text text-anchor="start" x="532" y="-323.3" font-family="Times,serif" font-size="14.00">TOKEN_SCOPE</text>
-<polygon fill="none" stroke="black" points="528,-294.5 528,-315.5 648,-315.5 648,-294.5 528,-294.5"/>
-<text text-anchor="start" x="561" y="-301.3" font-family="Times,serif" font-size="14.00">code_id</text>
-<polygon fill="none" stroke="black" points="528,-273.5 528,-294.5 648,-294.5 648,-273.5 528,-273.5"/>
-<text text-anchor="start" x="557.5" y="-280.3" font-family="Times,serif" font-size="14.00">scope_id</text>
+<polygon fill="lightblue" stroke="transparent" points="541,-316.5 541,-339.5 661,-339.5 661,-316.5 541,-316.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="542,-317.5 542,-338.5 660,-338.5 660,-317.5 542,-317.5"/>
+<text text-anchor="start" x="545" y="-324.3" font-family="Times,serif" font-size="14.00">TOKEN_SCOPE</text>
+<polygon fill="none" stroke="black" points="541,-295.5 541,-316.5 661,-316.5 661,-295.5 541,-295.5"/>
+<text text-anchor="start" x="574" y="-302.3" font-family="Times,serif" font-size="14.00">code_id</text>
+<polygon fill="none" stroke="black" points="541,-274.5 541,-295.5 661,-295.5 661,-274.5 541,-274.5"/>
+<text text-anchor="start" x="570.5" y="-281.3" font-family="Times,serif" font-size="14.00">scope_id</text>
 </g>
 <!-- token&#45;&gt;token_scope -->
 <g id="edge2" class="edge">
 <title>token:pk_code_id&#45;&gt;token_scope:fk_code_id</title>
-<path fill="none" stroke="black" d="M489.5,-491.5C570.54,-491.5 454.5,-320.92 517.83,-305.6"/>
-<polygon fill="black" stroke="black" points="518.06,-305.57 528.48,-308.97 523.03,-305.04 528,-304.5 528,-304.5 528,-304.5 523.03,-305.04 527.52,-300.03 518.06,-305.57 518.06,-305.57"/>
+<path fill="none" stroke="black" d="M502.5,-492.5C583.54,-492.5 467.5,-321.92 530.83,-306.6"/>
+<polygon fill="black" stroke="black" points="531.06,-306.57 541.48,-309.97 536.03,-306.04 541,-305.5 541,-305.5 541,-305.5 536.03,-306.04 540.52,-301.03 531.06,-306.57 531.06,-306.57"/>
 </g>
 <!-- profile -->
-<g id="node2" class="node">
+<g id="node3" class="node">
 <title>profile</title>
-<polygon fill="lightblue" stroke="transparent" points="206.5,-355.5 206.5,-378.5 299.5,-378.5 299.5,-355.5 206.5,-355.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="207.5,-356.5 207.5,-377.5 298.5,-377.5 298.5,-356.5 207.5,-356.5"/>
-<text text-anchor="start" x="219.5" y="-363.3" font-family="Times,serif" font-size="14.00">PROFILE</text>
-<polygon fill="none" stroke="black" points="206.5,-334.5 206.5,-355.5 299.5,-355.5 299.5,-334.5 206.5,-334.5"/>
-<text text-anchor="start" x="219.5" y="-341.3" font-family="Times,serif" font-size="14.00">profile_id</text>
-<polygon fill="none" stroke="black" points="206.5,-313.5 206.5,-334.5 299.5,-334.5 299.5,-313.5 206.5,-313.5"/>
-<text text-anchor="start" x="209.5" y="-320.3" font-family="Times,serif" font-size="14.00">identifier_id</text>
-<polygon fill="none" stroke="black" points="206.5,-292.5 206.5,-313.5 299.5,-313.5 299.5,-292.5 206.5,-292.5"/>
-<text text-anchor="start" x="229.5" y="-299.3" font-family="Times,serif" font-size="14.00">profile</text>
+<polygon fill="lightblue" stroke="transparent" points="219.5,-356.5 219.5,-379.5 312.5,-379.5 312.5,-356.5 219.5,-356.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="220.5,-357.5 220.5,-378.5 311.5,-378.5 311.5,-357.5 220.5,-357.5"/>
+<text text-anchor="start" x="232.5" y="-364.3" font-family="Times,serif" font-size="14.00">PROFILE</text>
+<polygon fill="none" stroke="black" points="219.5,-335.5 219.5,-356.5 312.5,-356.5 312.5,-335.5 219.5,-335.5"/>
+<text text-anchor="start" x="232.5" y="-342.3" font-family="Times,serif" font-size="14.00">profile_id</text>
+<polygon fill="none" stroke="black" points="219.5,-314.5 219.5,-335.5 312.5,-335.5 312.5,-314.5 219.5,-314.5"/>
+<text text-anchor="start" x="222.5" y="-321.3" font-family="Times,serif" font-size="14.00">identifier_id</text>
+<polygon fill="none" stroke="black" points="219.5,-293.5 219.5,-314.5 312.5,-314.5 312.5,-293.5 219.5,-293.5"/>
+<text text-anchor="start" x="242.5" y="-300.3" font-family="Times,serif" font-size="14.00">profile</text>
 </g>
 <!-- profile&#45;&gt;token -->
 <g id="edge1" class="edge">
 <title>profile:pk_profile_id&#45;&gt;token:fk_profile_id</title>
-<path fill="none" stroke="black" d="M300.5,-345.5C358.57,-345.5 306.81,-455.82 351.58,-469.18"/>
-<polygon fill="black" stroke="black" points="351.59,-469.18 360.91,-474.96 356.54,-469.84 361.5,-470.5 361.5,-470.5 361.5,-470.5 356.54,-469.84 362.09,-466.04 351.59,-469.18 351.59,-469.18"/>
+<path fill="none" stroke="black" d="M313.5,-346.5C371.57,-346.5 319.81,-456.82 364.58,-470.18"/>
+<polygon fill="black" stroke="black" points="364.59,-470.18 373.91,-475.96 369.54,-470.84 374.5,-471.5 374.5,-471.5 374.5,-471.5 369.54,-470.84 375.09,-467.04 364.59,-470.18 364.59,-470.18"/>
 </g>
 <!-- profile_scope -->
-<g id="node6" class="node">
+<g id="node7" class="node">
 <title>profile_scope</title>
-<polygon fill="lightblue" stroke="transparent" points="359.5,-166.5 359.5,-189.5 492.5,-189.5 492.5,-166.5 359.5,-166.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="360.5,-167.5 360.5,-188.5 491.5,-188.5 491.5,-167.5 360.5,-167.5"/>
-<text text-anchor="start" x="363.5" y="-174.3" font-family="Times,serif" font-size="14.00">PROFILE_SCOPE</text>
-<polygon fill="none" stroke="black" points="359.5,-145.5 359.5,-166.5 492.5,-166.5 492.5,-145.5 359.5,-145.5"/>
-<text text-anchor="start" x="392.5" y="-152.3" font-family="Times,serif" font-size="14.00">profile_id</text>
-<polygon fill="none" stroke="black" points="359.5,-124.5 359.5,-145.5 492.5,-145.5 492.5,-124.5 359.5,-124.5"/>
-<text text-anchor="start" x="395.5" y="-131.3" font-family="Times,serif" font-size="14.00">scope_id</text>
+<polygon fill="lightblue" stroke="transparent" points="372.5,-167.5 372.5,-190.5 505.5,-190.5 505.5,-167.5 372.5,-167.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="373.5,-168.5 373.5,-189.5 504.5,-189.5 504.5,-168.5 373.5,-168.5"/>
+<text text-anchor="start" x="376.5" y="-175.3" font-family="Times,serif" font-size="14.00">PROFILE_SCOPE</text>
+<polygon fill="none" stroke="black" points="372.5,-146.5 372.5,-167.5 505.5,-167.5 505.5,-146.5 372.5,-146.5"/>
+<text text-anchor="start" x="405.5" y="-153.3" font-family="Times,serif" font-size="14.00">profile_id</text>
+<polygon fill="none" stroke="black" points="372.5,-125.5 372.5,-146.5 505.5,-146.5 505.5,-125.5 372.5,-125.5"/>
+<text text-anchor="start" x="408.5" y="-132.3" font-family="Times,serif" font-size="14.00">scope_id</text>
 </g>
 <!-- profile&#45;&gt;profile_scope -->
 <g id="edge5" class="edge">
 <title>profile:pk_profile_id&#45;&gt;profile_scope:fk_profile_id</title>
-<path fill="none" stroke="black" d="M300.5,-345.5C385.06,-345.5 280.42,-171.48 348.72,-156.52"/>
-<polygon fill="black" stroke="black" points="349.05,-156.49 359.45,-159.98 354.02,-155.99 359,-155.5 359,-155.5 359,-155.5 354.02,-155.99 358.55,-151.02 349.05,-156.49 349.05,-156.49"/>
+<path fill="none" stroke="black" d="M313.5,-346.5C398.06,-346.5 293.42,-172.48 361.72,-157.52"/>
+<polygon fill="black" stroke="black" points="362.05,-157.49 372.45,-160.98 367.02,-156.99 372,-156.5 372,-156.5 372,-156.5 367.02,-156.99 371.55,-152.02 362.05,-157.49 362.05,-157.49"/>
 </g>
 <!-- scope -->
-<g id="node3" class="node">
+<g id="node4" class="node">
 <title>scope</title>
-<polygon fill="lightblue" stroke="transparent" points="182.5,-125.5 182.5,-148.5 323.5,-148.5 323.5,-125.5 182.5,-125.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="183.5,-126.5 183.5,-147.5 322.5,-147.5 322.5,-126.5 183.5,-126.5"/>
-<text text-anchor="start" x="227" y="-133.3" font-family="Times,serif" font-size="14.00">SCOPE</text>
-<polygon fill="none" stroke="black" points="182.5,-104.5 182.5,-125.5 323.5,-125.5 323.5,-104.5 182.5,-104.5"/>
-<text text-anchor="start" x="222.5" y="-111.3" font-family="Times,serif" font-size="14.00">scope_id</text>
-<polygon fill="none" stroke="black" points="182.5,-83.5 182.5,-104.5 323.5,-104.5 323.5,-83.5 182.5,-83.5"/>
-<text text-anchor="start" x="232.5" y="-90.3" font-family="Times,serif" font-size="14.00">scope</text>
-<polygon fill="none" stroke="black" points="182.5,-62.5 182.5,-83.5 323.5,-83.5 323.5,-62.5 182.5,-62.5"/>
-<text text-anchor="start" x="212.5" y="-69.3" font-family="Times,serif" font-size="14.00">description</text>
-<polygon fill="none" stroke="black" points="182.5,-41.5 182.5,-62.5 323.5,-62.5 323.5,-41.5 182.5,-41.5"/>
-<text text-anchor="start" x="213.5" y="-48.3" font-family="Times,serif" font-size="14.00">application</text>
-<polygon fill="none" stroke="black" points="182.5,-20.5 182.5,-41.5 323.5,-41.5 323.5,-20.5 182.5,-20.5"/>
-<text text-anchor="start" x="204.5" y="-27.3" font-family="Times,serif" font-size="14.00">is_permanent</text>
-<polygon fill="none" stroke="black" points="182.5,0.5 182.5,-20.5 323.5,-20.5 323.5,0.5 182.5,0.5"/>
-<text text-anchor="start" x="185.5" y="-6.3" font-family="Times,serif" font-size="14.00">is_manually_added</text>
+<polygon fill="lightblue" stroke="transparent" points="195.5,-126.5 195.5,-149.5 336.5,-149.5 336.5,-126.5 195.5,-126.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="196.5,-127.5 196.5,-148.5 335.5,-148.5 335.5,-127.5 196.5,-127.5"/>
+<text text-anchor="start" x="240" y="-134.3" font-family="Times,serif" font-size="14.00">SCOPE</text>
+<polygon fill="none" stroke="black" points="195.5,-105.5 195.5,-126.5 336.5,-126.5 336.5,-105.5 195.5,-105.5"/>
+<text text-anchor="start" x="235.5" y="-112.3" font-family="Times,serif" font-size="14.00">scope_id</text>
+<polygon fill="none" stroke="black" points="195.5,-84.5 195.5,-105.5 336.5,-105.5 336.5,-84.5 195.5,-84.5"/>
+<text text-anchor="start" x="245.5" y="-91.3" font-family="Times,serif" font-size="14.00">scope</text>
+<polygon fill="none" stroke="black" points="195.5,-63.5 195.5,-84.5 336.5,-84.5 336.5,-63.5 195.5,-63.5"/>
+<text text-anchor="start" x="225.5" y="-70.3" font-family="Times,serif" font-size="14.00">description</text>
+<polygon fill="none" stroke="black" points="195.5,-42.5 195.5,-63.5 336.5,-63.5 336.5,-42.5 195.5,-42.5"/>
+<text text-anchor="start" x="226.5" y="-49.3" font-family="Times,serif" font-size="14.00">application</text>
+<polygon fill="none" stroke="black" points="195.5,-21.5 195.5,-42.5 336.5,-42.5 336.5,-21.5 195.5,-21.5"/>
+<text text-anchor="start" x="217.5" y="-28.3" font-family="Times,serif" font-size="14.00">is_permanent</text>
+<polygon fill="none" stroke="black" points="195.5,-0.5 195.5,-21.5 336.5,-21.5 336.5,-0.5 195.5,-0.5"/>
+<text text-anchor="start" x="198.5" y="-7.3" font-family="Times,serif" font-size="14.00">is_manually_added</text>
 </g>
 <!-- scope&#45;&gt;token_scope -->
 <g id="edge3" class="edge">
 <title>scope:pk_scope_id&#45;&gt;token_scope:fk_scope_id</title>
-<path fill="none" stroke="black" d="M323,-115.5C398.11,-115.5 433.59,-68.28 492,-115.5 548.48,-161.16 461,-271.95 518.03,-282.66"/>
-<polygon fill="black" stroke="black" points="518.03,-282.66 527.62,-287.98 523.02,-283.08 528,-283.5 528,-283.5 528,-283.5 523.02,-283.08 528.38,-279.02 518.03,-282.66 518.03,-282.66"/>
+<path fill="none" stroke="black" d="M336,-116.5C411.11,-116.5 446.59,-69.28 505,-116.5 561.48,-162.16 474,-272.95 531.03,-283.66"/>
+<polygon fill="black" stroke="black" points="531.03,-283.66 540.62,-288.98 536.02,-284.08 541,-284.5 541,-284.5 541,-284.5 536.02,-284.08 541.38,-280.02 531.03,-283.66 531.03,-283.66"/>
 </g>
 <!-- scope&#45;&gt;profile_scope -->
 <g id="edge6" class="edge">
 <title>scope:pk_scope_id&#45;&gt;profile_scope:fk_scope_id</title>
-<path fill="none" stroke="black" d="M323,-115.5C336.99,-115.5 340.05,-126.87 349.09,-132.02"/>
-<polygon fill="black" stroke="black" points="349.3,-132.07 357.91,-138.86 354.15,-133.28 359,-134.5 359,-134.5 359,-134.5 354.15,-133.28 360.09,-130.14 349.3,-132.07 349.3,-132.07"/>
+<path fill="none" stroke="black" d="M336,-116.5C349.99,-116.5 353.05,-127.87 362.09,-133.02"/>
+<polygon fill="black" stroke="black" points="362.3,-133.07 370.91,-139.86 367.15,-134.28 372,-135.5 372,-135.5 372,-135.5 367.15,-134.28 373.09,-131.14 362.3,-133.07 362.3,-133.07"/>
 </g>
 <!-- authentication -->
-<g id="node5" class="node">
+<g id="node6" class="node">
 <title>authentication</title>
-<polygon fill="lightblue" stroke="transparent" points="0,-333.5 0,-356.5 146,-356.5 146,-333.5 0,-333.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="1,-334.5 1,-355.5 145,-355.5 145,-334.5 1,-334.5"/>
-<text text-anchor="start" x="4" y="-341.3" font-family="Times,serif" font-size="14.00">AUTHENTICATION</text>
-<polygon fill="none" stroke="black" points="0,-312.5 0,-333.5 146,-333.5 146,-312.5 0,-312.5"/>
-<text text-anchor="start" x="29.5" y="-319.3" font-family="Times,serif" font-size="14.00">identifier_id</text>
-<polygon fill="none" stroke="black" points="0,-291.5 0,-312.5 146,-312.5 146,-291.5 0,-291.5"/>
-<text text-anchor="start" x="45.5" y="-298.3" font-family="Times,serif" font-size="14.00">created</text>
-<polygon fill="none" stroke="black" points="0,-270.5 0,-291.5 146,-291.5 146,-270.5 0,-270.5"/>
-<text text-anchor="start" x="6.5" y="-277.3" font-family="Times,serif" font-size="14.00">last_authenticated</text>
-<polygon fill="none" stroke="black" points="0,-249.5 0,-270.5 146,-270.5 146,-249.5 0,-249.5"/>
-<text text-anchor="start" x="39.5" y="-256.3" font-family="Times,serif" font-size="14.00">identifier</text>
-<polygon fill="none" stroke="black" points="0,-228.5 0,-249.5 146,-249.5 146,-228.5 0,-228.5"/>
-<text text-anchor="start" x="36.5" y="-235.3" font-family="Times,serif" font-size="14.00">credential</text>
+<polygon fill="lightblue" stroke="transparent" points="6.5,-334.5 6.5,-357.5 152.5,-357.5 152.5,-334.5 6.5,-334.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="7.5,-335.5 7.5,-356.5 151.5,-356.5 151.5,-335.5 7.5,-335.5"/>
+<text text-anchor="start" x="10.5" y="-342.3" font-family="Times,serif" font-size="14.00">AUTHENTICATION</text>
+<polygon fill="none" stroke="black" points="6.5,-313.5 6.5,-334.5 152.5,-334.5 152.5,-313.5 6.5,-313.5"/>
+<text text-anchor="start" x="36" y="-320.3" font-family="Times,serif" font-size="14.00">identifier_id</text>
+<polygon fill="none" stroke="black" points="6.5,-292.5 6.5,-313.5 152.5,-313.5 152.5,-292.5 6.5,-292.5"/>
+<text text-anchor="start" x="52" y="-299.3" font-family="Times,serif" font-size="14.00">created</text>
+<polygon fill="none" stroke="black" points="6.5,-271.5 6.5,-292.5 152.5,-292.5 152.5,-271.5 6.5,-271.5"/>
+<text text-anchor="start" x="13" y="-278.3" font-family="Times,serif" font-size="14.00">last_authenticated</text>
+<polygon fill="none" stroke="black" points="6.5,-250.5 6.5,-271.5 152.5,-271.5 152.5,-250.5 6.5,-250.5"/>
+<text text-anchor="start" x="46" y="-257.3" font-family="Times,serif" font-size="14.00">identifier</text>
+<polygon fill="none" stroke="black" points="6.5,-229.5 6.5,-250.5 152.5,-250.5 152.5,-229.5 6.5,-229.5"/>
+<text text-anchor="start" x="43" y="-236.3" font-family="Times,serif" font-size="14.00">credential</text>
+<polygon fill="none" stroke="black" points="6.5,-208.5 6.5,-229.5 152.5,-229.5 152.5,-208.5 6.5,-208.5"/>
+<text text-anchor="start" x="52" y="-215.3" font-family="Times,serif" font-size="14.00">otp_key</text>
 </g>
 <!-- authentication&#45;&gt;profile -->
 <g id="edge4" class="edge">
 <title>authentication:pk_identifier_id&#45;&gt;profile:fk_identifier_id</title>
-<path fill="none" stroke="black" d="M146,-323.5C168.73,-323.5 176.8,-323.5 195.41,-323.5"/>
-<polygon fill="black" stroke="black" points="195.5,-323.5 205.5,-328 200.5,-323.5 205.5,-323.5 205.5,-323.5 205.5,-323.5 200.5,-323.5 205.5,-319 195.5,-323.5 195.5,-323.5"/>
+<path fill="none" stroke="black" d="M153.5,-324.5C178.66,-324.5 187.39,-324.5 208.32,-324.5"/>
+<polygon fill="black" stroke="black" points="208.5,-324.5 218.5,-329 213.5,-324.5 218.5,-324.5 218.5,-324.5 218.5,-324.5 213.5,-324.5 218.5,-320 208.5,-324.5 208.5,-324.5"/>
 </g>
 <!-- resource -->
-<g id="node7" class="node">
+<g id="node8" class="node">
 <title>resource</title>
-<polygon fill="lightblue" stroke="transparent" points="26,-458.5 26,-481.5 120,-481.5 120,-458.5 26,-458.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="27,-459.5 27,-480.5 119,-480.5 119,-459.5 27,-459.5"/>
-<text text-anchor="start" x="30" y="-466.3" font-family="Times,serif" font-size="14.00">RESOURCE</text>
-<polygon fill="none" stroke="black" points="26,-437.5 26,-458.5 120,-458.5 120,-437.5 26,-437.5"/>
-<text text-anchor="start" x="31.5" y="-444.3" font-family="Times,serif" font-size="14.00">resource_id</text>
-<polygon fill="none" stroke="black" points="26,-416.5 26,-437.5 120,-437.5 120,-416.5 26,-416.5"/>
-<text text-anchor="start" x="32.5" y="-423.3" font-family="Times,serif" font-size="14.00">description</text>
-<polygon fill="none" stroke="black" points="26,-395.5 26,-416.5 120,-416.5 120,-395.5 26,-395.5"/>
-<text text-anchor="start" x="45.5" y="-402.3" font-family="Times,serif" font-size="14.00">created</text>
-<polygon fill="none" stroke="black" points="26,-374.5 26,-395.5 120,-395.5 120,-374.5 26,-374.5"/>
-<text text-anchor="start" x="50.5" y="-381.3" font-family="Times,serif" font-size="14.00">secret</text>
+<polygon fill="lightblue" stroke="transparent" points="32.5,-459.5 32.5,-482.5 126.5,-482.5 126.5,-459.5 32.5,-459.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="33.5,-460.5 33.5,-481.5 125.5,-481.5 125.5,-460.5 33.5,-460.5"/>
+<text text-anchor="start" x="36.5" y="-467.3" font-family="Times,serif" font-size="14.00">RESOURCE</text>
+<polygon fill="none" stroke="black" points="32.5,-438.5 32.5,-459.5 126.5,-459.5 126.5,-438.5 32.5,-438.5"/>
+<text text-anchor="start" x="38" y="-445.3" font-family="Times,serif" font-size="14.00">resource_id</text>
+<polygon fill="none" stroke="black" points="32.5,-417.5 32.5,-438.5 126.5,-438.5 126.5,-417.5 32.5,-417.5"/>
+<text text-anchor="start" x="39" y="-424.3" font-family="Times,serif" font-size="14.00">description</text>
+<polygon fill="none" stroke="black" points="32.5,-396.5 32.5,-417.5 126.5,-417.5 126.5,-396.5 32.5,-396.5"/>
+<text text-anchor="start" x="52" y="-403.3" font-family="Times,serif" font-size="14.00">created</text>
+<polygon fill="none" stroke="black" points="32.5,-375.5 32.5,-396.5 126.5,-396.5 126.5,-375.5 32.5,-375.5"/>
+<text text-anchor="start" x="57" y="-382.3" font-family="Times,serif" font-size="14.00">secret</text>
 </g>
 <!-- almanac -->
-<g id="node8" class="node">
+<g id="node9" class="node">
 <title>almanac</title>
-<polygon fill="lightblue" stroke="transparent" points="31,-541.5 31,-564.5 115,-564.5 115,-541.5 31,-541.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="32,-542.5 32,-563.5 114,-563.5 114,-542.5 32,-542.5"/>
-<text text-anchor="start" x="35" y="-549.3" font-family="Times,serif" font-size="14.00">ALMANAC</text>
-<polygon fill="none" stroke="black" points="31,-520.5 31,-541.5 115,-541.5 115,-520.5 31,-520.5"/>
-<text text-anchor="start" x="53" y="-527.3" font-family="Times,serif" font-size="14.00">event</text>
-<polygon fill="none" stroke="black" points="31,-499.5 31,-520.5 115,-520.5 115,-499.5 31,-499.5"/>
-<text text-anchor="start" x="51.5" y="-506.3" font-family="Times,serif" font-size="14.00">epoch</text>
+<polygon fill="lightblue" stroke="transparent" points="37.5,-542.5 37.5,-565.5 121.5,-565.5 121.5,-542.5 37.5,-542.5"/>
+<polygon fill="none" stroke="black" stroke-width="2" points="38.5,-543.5 38.5,-564.5 120.5,-564.5 120.5,-543.5 38.5,-543.5"/>
+<text text-anchor="start" x="41.5" y="-550.3" font-family="Times,serif" font-size="14.00">ALMANAC</text>
+<polygon fill="none" stroke="black" points="37.5,-521.5 37.5,-542.5 121.5,-542.5 121.5,-521.5 37.5,-521.5"/>
+<text text-anchor="start" x="59.5" y="-528.3" font-family="Times,serif" font-size="14.00">event</text>
+<polygon fill="none" stroke="black" points="37.5,-500.5 37.5,-521.5 121.5,-521.5 121.5,-500.5 37.5,-500.5"/>
+<text text-anchor="start" x="58" y="-507.3" font-family="Times,serif" font-size="14.00">epoch</text>
 </g>
 </g>
 </svg>