1create_table("identity_recovery_addresses") {
2 t.Column("id", "uuid", {primary: true})
3
4 t.Column("via", "string", {"size": 16})
5 t.Column("value", "string", {"size": 400})
6
7 t.Column("identity_id", "uuid")
8 t.ForeignKey("identity_id", {"identities": ["id"]}, {"on_delete": "cascade"})
9}
10
11add_index("identity_recovery_addresses", ["via", "value"], { "unique": true, "name": "identity_recovery_addresses_status_via_uq_idx" })
12add_index("identity_recovery_addresses", ["via", "value"], { "name": "identity_recovery_addresses_status_via_idx" })
13
14create_table("selfservice_recovery_requests") {
15 t.Column("id", "uuid", {primary: true})
16 t.Column("request_url", "string", {"size": 2048})
17 t.Column("issued_at", "timestamp", { "default_raw": "CURRENT_TIMESTAMP" })
18 t.Column("expires_at", "timestamp")
19 t.Column("messages", "json", {"null": true})
20 t.Column("active_method", "string", {"size": 32, "null": true})
21 t.Column("csrf_token", "string")
22 t.Column("state", "string", {"size": 32})
23
24 t.Column("recovered_identity_id", "uuid", { "null": true })
25 t.ForeignKey("recovered_identity_id", {"identities": ["id"]}, {"on_delete": "cascade"})
26}
27
28create_table("selfservice_recovery_request_methods") {
29 t.Column("id", "uuid", {primary: true})
30 t.Column("method", "string", {"size": 32})
31 t.Column("config", "json")
32
33 t.Column("selfservice_recovery_request_id", "uuid")
34 t.ForeignKey("selfservice_recovery_request_id", {"selfservice_recovery_requests": ["id"]}, {"on_delete": "cascade"})
35}
36
37create_table("identity_recovery_tokens") {
38 t.Column("id", "uuid", {primary: true})
39
40 t.Column("token", "string", {"size": 64})
41 t.Column("used", "bool", {"default": false})
42 t.Column("used_at", "timestamp", {"null": true})
43
44 t.Column("identity_recovery_address_id", "uuid")
45 t.ForeignKey("identity_recovery_address_id", {"identity_recovery_addresses": ["id"]}, {"on_delete": "cascade"})
46
47 t.Column("selfservice_recovery_request_id", "uuid")
48 t.ForeignKey("selfservice_recovery_request_id", {"selfservice_recovery_requests": ["id"]}, {"on_delete": "cascade"})
49}
50
51add_index("identity_recovery_tokens", ["token"], { "unique": true, "name": "identity_recovery_addresses_code_uq_idx" })
52add_index("identity_recovery_tokens", ["token"], { "name": "identity_recovery_addresses_code_idx" })
View as plain text