update depedencies, changes to support updated authentication-module
[squeep-indie-auther] / documentation / media / postgres-er.svg
index ac8658e4be78f93ff519221d14b5384a21da411f..0d3027d9ca63ef7aef520c648d99b78991c266d6 100644 (file)
 <!-- Generated by graphviz version 2.50.0 (20211204.2007)
  -->
 <!-- Title: indieAutherERD Pages: 1 -->
-<svg width="669pt" height="668pt"
- viewBox="0.00 0.00 669.00 668.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 664)">
+<svg width="669pt" height="669pt"
+ viewBox="0.00 0.00 669.00 669.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 665)">
 <title>indieAutherERD</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-664 665,-664 665,4 -4,4"/>
-<text text-anchor="middle" x="330.5" y="-635.2" font-family="Times,serif" font-size="26.00">IndieAuther Entity&#45;Relations</text>
-<text text-anchor="middle" x="330.5" y="-606.2" font-family="Times,serif" font-size="26.00">Postgres</text>
-<text text-anchor="middle" x="330.5" y="-577.2" font-family="Times,serif" font-size="26.00">Schema 1.1.0</text>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-665 665,-665 665,4 -4,4"/>
+<text text-anchor="middle" x="330.5" y="-636.2" font-family="Times,serif" font-size="26.00">IndieAuther Entity&#45;Relations</text>
+<text text-anchor="middle" x="330.5" y="-607.2" font-family="Times,serif" font-size="26.00">Postgres</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,-186.5 0.5,-209.5 159.5,-209.5 159.5,-186.5 0.5,-186.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="1.5,-187.5 1.5,-208.5 158.5,-208.5 158.5,-187.5 1.5,-187.5"/>
-<text text-anchor="start" x="4.5" y="-194.3" font-family="Times,serif" font-size="14.00">REDEEMED_TICKET</text>
-<polygon fill="none" stroke="black" points="0.5,-165.5 0.5,-186.5 159.5,-186.5 159.5,-165.5 0.5,-165.5"/>
-<text text-anchor="start" x="49.5" y="-172.3" font-family="Times,serif" font-size="14.00">ticket_id</text>
-<polygon fill="none" stroke="black" points="0.5,-144.5 0.5,-165.5 159.5,-165.5 159.5,-144.5 0.5,-144.5"/>
-<text text-anchor="start" x="52.5" y="-151.3" font-family="Times,serif" font-size="14.00">created</text>
-<polygon fill="none" stroke="black" points="0.5,-123.5 0.5,-144.5 159.5,-144.5 159.5,-123.5 0.5,-123.5"/>
-<text text-anchor="start" x="54" y="-130.3" font-family="Times,serif" font-size="14.00">subject</text>
-<polygon fill="none" stroke="black" points="0.5,-102.5 0.5,-123.5 159.5,-123.5 159.5,-102.5 0.5,-102.5"/>
-<text text-anchor="start" x="48.5" y="-109.3" font-family="Times,serif" font-size="14.00">resource</text>
-<polygon fill="none" stroke="black" points="0.5,-81.5 0.5,-102.5 159.5,-102.5 159.5,-81.5 0.5,-81.5"/>
-<text text-anchor="start" x="70" y="-88.3" font-family="Times,serif" font-size="14.00">iss</text>
-<polygon fill="none" stroke="black" points="0.5,-60.5 0.5,-81.5 159.5,-81.5 159.5,-60.5 0.5,-60.5"/>
-<text text-anchor="start" x="60" y="-67.3" font-family="Times,serif" font-size="14.00">token</text>
-<polygon fill="none" stroke="black" points="0.5,-39.5 0.5,-60.5 159.5,-60.5 159.5,-39.5 0.5,-39.5"/>
-<text text-anchor="start" x="59.5" y="-46.3" font-family="Times,serif" font-size="14.00">ticket</text>
-<polygon fill="none" stroke="black" points="0.5,-18.5 0.5,-39.5 159.5,-39.5 159.5,-18.5 0.5,-18.5"/>
-<text text-anchor="start" x="45" y="-25.3" font-family="Times,serif" font-size="14.00">published</text>
+<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="375.5,-501.5 375.5,-524.5 501.5,-524.5 501.5,-501.5 375.5,-501.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="376.5,-502.5 376.5,-523.5 500.5,-523.5 500.5,-502.5 376.5,-502.5"/>
-<text text-anchor="start" x="411.5" y="-509.3" font-family="Times,serif" font-size="14.00">TOKEN</text>
-<polygon fill="none" stroke="black" points="375.5,-480.5 375.5,-501.5 501.5,-501.5 501.5,-480.5 375.5,-480.5"/>
-<text text-anchor="start" x="411.5" y="-487.3" font-family="Times,serif" font-size="14.00">code_id</text>
-<polygon fill="none" stroke="black" points="375.5,-459.5 375.5,-480.5 501.5,-480.5 501.5,-459.5 375.5,-459.5"/>
-<text text-anchor="start" x="405" y="-466.3" font-family="Times,serif" font-size="14.00">profile_id</text>
-<polygon fill="none" stroke="black" points="375.5,-438.5 375.5,-459.5 501.5,-459.5 501.5,-438.5 375.5,-438.5"/>
-<text text-anchor="start" x="411" y="-445.3" font-family="Times,serif" font-size="14.00">created</text>
-<polygon fill="none" stroke="black" points="375.5,-417.5 375.5,-438.5 501.5,-438.5 501.5,-417.5 375.5,-417.5"/>
-<text text-anchor="start" x="412" y="-424.3" font-family="Times,serif" font-size="14.00">expires</text>
-<polygon fill="none" stroke="black" points="375.5,-396.5 375.5,-417.5 501.5,-417.5 501.5,-396.5 375.5,-396.5"/>
-<text text-anchor="start" x="382.5" y="-403.3" font-family="Times,serif" font-size="14.00">refresh_expires</text>
-<polygon fill="none" stroke="black" points="375.5,-375.5 375.5,-396.5 501.5,-396.5 501.5,-375.5 375.5,-375.5"/>
-<text text-anchor="start" x="403.5" y="-382.3" font-family="Times,serif" font-size="14.00">refreshed</text>
-<polygon fill="none" stroke="black" points="375.5,-354.5 375.5,-375.5 501.5,-375.5 501.5,-354.5 375.5,-354.5"/>
-<text text-anchor="start" x="408" y="-361.3" font-family="Times,serif" font-size="14.00">duration</text>
-<polygon fill="none" stroke="black" points="375.5,-333.5 375.5,-354.5 501.5,-354.5 501.5,-333.5 375.5,-333.5"/>
-<text text-anchor="start" x="378.5" y="-340.3" font-family="Times,serif" font-size="14.00">refresh_duration</text>
-<polygon fill="none" stroke="black" points="375.5,-312.5 375.5,-333.5 501.5,-333.5 501.5,-312.5 375.5,-312.5"/>
-<text text-anchor="start" x="389" y="-319.3" font-family="Times,serif" font-size="14.00">refresh_count</text>
-<polygon fill="none" stroke="black" points="375.5,-291.5 375.5,-312.5 501.5,-312.5 501.5,-291.5 375.5,-291.5"/>
-<text text-anchor="start" x="400.5" y="-298.3" font-family="Times,serif" font-size="14.00">is_revoked</text>
-<polygon fill="none" stroke="black" points="375.5,-270.5 375.5,-291.5 501.5,-291.5 501.5,-270.5 375.5,-270.5"/>
-<text text-anchor="start" x="409" y="-277.3" font-family="Times,serif" font-size="14.00">is_token</text>
-<polygon fill="none" stroke="black" points="375.5,-249.5 375.5,-270.5 501.5,-270.5 501.5,-249.5 375.5,-249.5"/>
-<text text-anchor="start" x="408" y="-256.3" font-family="Times,serif" font-size="14.00">client_id</text>
-<polygon fill="none" stroke="black" points="375.5,-228.5 375.5,-249.5 501.5,-249.5 501.5,-228.5 375.5,-228.5"/>
-<text text-anchor="start" x="407" y="-235.3" font-family="Times,serif" font-size="14.00">resource</text>
-<polygon fill="none" stroke="black" points="375.5,-207.5 375.5,-228.5 501.5,-228.5 501.5,-207.5 375.5,-207.5"/>
-<text text-anchor="start" x="396" 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="node5" class="node">
 <title>token_scope</title>
-<polygon fill="lightblue" stroke="transparent" points="541,-315.5 541,-338.5 661,-338.5 661,-315.5 541,-315.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="542,-316.5 542,-337.5 660,-337.5 660,-316.5 542,-316.5"/>
-<text text-anchor="start" x="545" y="-323.3" font-family="Times,serif" font-size="14.00">TOKEN_SCOPE</text>
-<polygon fill="none" stroke="black" points="541,-294.5 541,-315.5 661,-315.5 661,-294.5 541,-294.5"/>
-<text text-anchor="start" x="574" y="-301.3" font-family="Times,serif" font-size="14.00">code_id</text>
-<polygon fill="none" stroke="black" points="541,-273.5 541,-294.5 661,-294.5 661,-273.5 541,-273.5"/>
-<text text-anchor="start" x="570.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="M502.5,-491.5C583.54,-491.5 467.5,-320.92 530.83,-305.6"/>
-<polygon fill="black" stroke="black" points="531.06,-305.57 541.48,-308.97 536.03,-305.04 541,-304.5 541,-304.5 541,-304.5 536.03,-305.04 540.52,-300.03 531.06,-305.57 531.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="node3" class="node">
 <title>profile</title>
-<polygon fill="lightblue" stroke="transparent" points="219.5,-355.5 219.5,-378.5 312.5,-378.5 312.5,-355.5 219.5,-355.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="220.5,-356.5 220.5,-377.5 311.5,-377.5 311.5,-356.5 220.5,-356.5"/>
-<text text-anchor="start" x="232.5" y="-363.3" font-family="Times,serif" font-size="14.00">PROFILE</text>
-<polygon fill="none" stroke="black" points="219.5,-334.5 219.5,-355.5 312.5,-355.5 312.5,-334.5 219.5,-334.5"/>
-<text text-anchor="start" x="232.5" y="-341.3" font-family="Times,serif" font-size="14.00">profile_id</text>
-<polygon fill="none" stroke="black" points="219.5,-313.5 219.5,-334.5 312.5,-334.5 312.5,-313.5 219.5,-313.5"/>
-<text text-anchor="start" x="222.5" y="-320.3" font-family="Times,serif" font-size="14.00">identifier_id</text>
-<polygon fill="none" stroke="black" points="219.5,-292.5 219.5,-313.5 312.5,-313.5 312.5,-292.5 219.5,-292.5"/>
-<text text-anchor="start" x="242.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="M313.5,-345.5C371.57,-345.5 319.81,-455.82 364.58,-469.18"/>
-<polygon fill="black" stroke="black" points="364.59,-469.18 373.91,-474.96 369.54,-469.84 374.5,-470.5 374.5,-470.5 374.5,-470.5 369.54,-469.84 375.09,-466.04 364.59,-469.18 364.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="node7" class="node">
 <title>profile_scope</title>
-<polygon fill="lightblue" stroke="transparent" points="372.5,-166.5 372.5,-189.5 505.5,-189.5 505.5,-166.5 372.5,-166.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="373.5,-167.5 373.5,-188.5 504.5,-188.5 504.5,-167.5 373.5,-167.5"/>
-<text text-anchor="start" x="376.5" y="-174.3" font-family="Times,serif" font-size="14.00">PROFILE_SCOPE</text>
-<polygon fill="none" stroke="black" points="372.5,-145.5 372.5,-166.5 505.5,-166.5 505.5,-145.5 372.5,-145.5"/>
-<text text-anchor="start" x="405.5" y="-152.3" font-family="Times,serif" font-size="14.00">profile_id</text>
-<polygon fill="none" stroke="black" points="372.5,-124.5 372.5,-145.5 505.5,-145.5 505.5,-124.5 372.5,-124.5"/>
-<text text-anchor="start" x="408.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="M313.5,-345.5C398.06,-345.5 293.42,-171.48 361.72,-156.52"/>
-<polygon fill="black" stroke="black" points="362.05,-156.49 372.45,-159.98 367.02,-155.99 372,-155.5 372,-155.5 372,-155.5 367.02,-155.99 371.55,-151.02 362.05,-156.49 362.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="node4" class="node">
 <title>scope</title>
-<polygon fill="lightblue" stroke="transparent" points="195.5,-125.5 195.5,-148.5 336.5,-148.5 336.5,-125.5 195.5,-125.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="196.5,-126.5 196.5,-147.5 335.5,-147.5 335.5,-126.5 196.5,-126.5"/>
-<text text-anchor="start" x="240" y="-133.3" font-family="Times,serif" font-size="14.00">SCOPE</text>
-<polygon fill="none" stroke="black" points="195.5,-104.5 195.5,-125.5 336.5,-125.5 336.5,-104.5 195.5,-104.5"/>
-<text text-anchor="start" x="235.5" y="-111.3" font-family="Times,serif" font-size="14.00">scope_id</text>
-<polygon fill="none" stroke="black" points="195.5,-83.5 195.5,-104.5 336.5,-104.5 336.5,-83.5 195.5,-83.5"/>
-<text text-anchor="start" x="245.5" y="-90.3" font-family="Times,serif" font-size="14.00">scope</text>
-<polygon fill="none" stroke="black" points="195.5,-62.5 195.5,-83.5 336.5,-83.5 336.5,-62.5 195.5,-62.5"/>
-<text text-anchor="start" x="225.5" y="-69.3" font-family="Times,serif" font-size="14.00">description</text>
-<polygon fill="none" stroke="black" points="195.5,-41.5 195.5,-62.5 336.5,-62.5 336.5,-41.5 195.5,-41.5"/>
-<text text-anchor="start" x="226.5" y="-48.3" font-family="Times,serif" font-size="14.00">application</text>
-<polygon fill="none" stroke="black" points="195.5,-20.5 195.5,-41.5 336.5,-41.5 336.5,-20.5 195.5,-20.5"/>
-<text text-anchor="start" x="217.5" y="-27.3" font-family="Times,serif" font-size="14.00">is_permanent</text>
-<polygon fill="none" stroke="black" points="195.5,0.5 195.5,-20.5 336.5,-20.5 336.5,0.5 195.5,0.5"/>
-<text text-anchor="start" x="198.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="M336,-115.5C411.11,-115.5 446.59,-68.28 505,-115.5 561.48,-161.16 474,-271.95 531.03,-282.66"/>
-<polygon fill="black" stroke="black" points="531.03,-282.66 540.62,-287.98 536.02,-283.08 541,-283.5 541,-283.5 541,-283.5 536.02,-283.08 541.38,-279.02 531.03,-282.66 531.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="M336,-115.5C349.99,-115.5 353.05,-126.87 362.09,-132.02"/>
-<polygon fill="black" stroke="black" points="362.3,-132.07 370.91,-138.86 367.15,-133.28 372,-134.5 372,-134.5 372,-134.5 367.15,-133.28 373.09,-130.14 362.3,-132.07 362.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="node6" class="node">
 <title>authentication</title>
-<polygon fill="lightblue" stroke="transparent" points="6.5,-333.5 6.5,-356.5 152.5,-356.5 152.5,-333.5 6.5,-333.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="7.5,-334.5 7.5,-355.5 151.5,-355.5 151.5,-334.5 7.5,-334.5"/>
-<text text-anchor="start" x="10.5" y="-341.3" font-family="Times,serif" font-size="14.00">AUTHENTICATION</text>
-<polygon fill="none" stroke="black" points="6.5,-312.5 6.5,-333.5 152.5,-333.5 152.5,-312.5 6.5,-312.5"/>
-<text text-anchor="start" x="36" y="-319.3" font-family="Times,serif" font-size="14.00">identifier_id</text>
-<polygon fill="none" stroke="black" points="6.5,-291.5 6.5,-312.5 152.5,-312.5 152.5,-291.5 6.5,-291.5"/>
-<text text-anchor="start" x="52" y="-298.3" font-family="Times,serif" font-size="14.00">created</text>
-<polygon fill="none" stroke="black" points="6.5,-270.5 6.5,-291.5 152.5,-291.5 152.5,-270.5 6.5,-270.5"/>
-<text text-anchor="start" x="13" y="-277.3" font-family="Times,serif" font-size="14.00">last_authenticated</text>
-<polygon fill="none" stroke="black" points="6.5,-249.5 6.5,-270.5 152.5,-270.5 152.5,-249.5 6.5,-249.5"/>
-<text text-anchor="start" x="46" y="-256.3" font-family="Times,serif" font-size="14.00">identifier</text>
-<polygon fill="none" stroke="black" points="6.5,-228.5 6.5,-249.5 152.5,-249.5 152.5,-228.5 6.5,-228.5"/>
-<text text-anchor="start" x="43" 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="M153.5,-323.5C178.66,-323.5 187.39,-323.5 208.32,-323.5"/>
-<polygon fill="black" stroke="black" points="208.5,-323.5 218.5,-328 213.5,-323.5 218.5,-323.5 218.5,-323.5 218.5,-323.5 213.5,-323.5 218.5,-319 208.5,-323.5 208.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="node8" class="node">
 <title>resource</title>
-<polygon fill="lightblue" stroke="transparent" points="32.5,-458.5 32.5,-481.5 126.5,-481.5 126.5,-458.5 32.5,-458.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="33.5,-459.5 33.5,-480.5 125.5,-480.5 125.5,-459.5 33.5,-459.5"/>
-<text text-anchor="start" x="36.5" y="-466.3" font-family="Times,serif" font-size="14.00">RESOURCE</text>
-<polygon fill="none" stroke="black" points="32.5,-437.5 32.5,-458.5 126.5,-458.5 126.5,-437.5 32.5,-437.5"/>
-<text text-anchor="start" x="38" y="-444.3" font-family="Times,serif" font-size="14.00">resource_id</text>
-<polygon fill="none" stroke="black" points="32.5,-416.5 32.5,-437.5 126.5,-437.5 126.5,-416.5 32.5,-416.5"/>
-<text text-anchor="start" x="39" y="-423.3" font-family="Times,serif" font-size="14.00">description</text>
-<polygon fill="none" stroke="black" points="32.5,-395.5 32.5,-416.5 126.5,-416.5 126.5,-395.5 32.5,-395.5"/>
-<text text-anchor="start" x="52" y="-402.3" font-family="Times,serif" font-size="14.00">created</text>
-<polygon fill="none" stroke="black" points="32.5,-374.5 32.5,-395.5 126.5,-395.5 126.5,-374.5 32.5,-374.5"/>
-<text text-anchor="start" x="57" 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="node9" class="node">
 <title>almanac</title>
-<polygon fill="lightblue" stroke="transparent" points="37.5,-541.5 37.5,-564.5 121.5,-564.5 121.5,-541.5 37.5,-541.5"/>
-<polygon fill="none" stroke="black" stroke-width="2" points="38.5,-542.5 38.5,-563.5 120.5,-563.5 120.5,-542.5 38.5,-542.5"/>
-<text text-anchor="start" x="41.5" y="-549.3" font-family="Times,serif" font-size="14.00">ALMANAC</text>
-<polygon fill="none" stroke="black" points="37.5,-520.5 37.5,-541.5 121.5,-541.5 121.5,-520.5 37.5,-520.5"/>
-<text text-anchor="start" x="59.5" y="-527.3" font-family="Times,serif" font-size="14.00">event</text>
-<polygon fill="none" stroke="black" points="37.5,-499.5 37.5,-520.5 121.5,-520.5 121.5,-499.5 37.5,-499.5"/>
-<text text-anchor="start" x="63.5" y="-506.3" font-family="Times,serif" font-size="14.00">date</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="63.5" y="-507.3" font-family="Times,serif" font-size="14.00">date</text>
 </g>
 </g>
 </svg>