datamodel/source/structure/r7.sindri.json

278 lines
4.4 KiB
JSON
Raw Permalink Normal View History

2025-03-31 17:27:00 +00:00
{
"domains": [
{
"name": "sessions",
"data_fields": [
{
"name": "key",
"type": "string_medium",
"nullable": false
},
{
"name": "data",
"type": "string_long",
"nullable": false
}
],
"constraints": [
{
"kind": "unique",
"parameters": {
"fields": ["key"]
}
}
]
},
2025-03-31 19:41:13 +00:00
{
2025-07-07 12:10:34 +02:00
"name": "groups",
2025-03-31 19:41:13 +00:00
"key_field": {
"name": "id"
},
"data_fields": [
{
"name": "name",
"type": "string_short",
"nullable": false
}
],
"constraints": [
{
"kind": "unique",
"parameters": {
"fields": ["name"]
}
}
]
},
2025-03-31 17:27:00 +00:00
{
2025-07-07 12:10:34 +02:00
"name": "admins",
"key_field": {
"name": "id"
},
2025-03-31 17:27:00 +00:00
"data_fields": [
{
2025-07-07 12:10:34 +02:00
"name": "name",
"type": "string_short",
"nullable": false
},
{
"name": "email_address",
"type": "string_medium",
"nullable": true
},
{
"name": "password_image",
2025-03-31 17:27:00 +00:00
"type": "string_medium",
"nullable": false
},
{
2025-07-07 12:10:34 +02:00
"name": "password_fail_count",
2025-03-31 17:27:00 +00:00
"type": "integer",
"nullable": false
}
],
"constraints": [
{
"kind": "unique",
"parameters": {
2025-07-07 12:10:34 +02:00
"fields": ["name"]
2025-03-31 17:27:00 +00:00
}
}
]
},
{
"name": "members",
"key_field": {
"name": "id"
},
"data_fields": [
{
2025-07-07 12:10:34 +02:00
"name": "name",
2025-03-31 17:27:00 +00:00
"type": "string_short",
"nullable": false
},
{
2025-07-07 12:10:34 +02:00
"name": "email_address",
2025-03-31 17:27:00 +00:00
"type": "string_short",
"nullable": true
},
{
"name": "enabled",
"type": "boolean",
"nullable": false
},
{
"name": "password_image",
"type": "string_medium",
"nullable": true
},
{
"name": "password_change_last_attempt",
"type": "integer",
"nullable": true
},
{
"name": "password_change_token",
"type": "string_medium",
"nullable": true
}
],
"constraints": [
{
"kind": "unique",
"parameters": {
2025-07-07 12:10:34 +02:00
"fields": ["name"]
2025-03-31 17:27:00 +00:00
}
}
]
},
{
"name": "member_groups",
"data_fields": [
{
"name": "member_id",
"type": "integer",
"nullable": false
},
{
2025-07-07 12:10:34 +02:00
"name": "group_id",
"type": "integer",
2025-03-31 17:27:00 +00:00
"nullable": false
},
{
"name": "_dummy",
"type": "boolean",
"nullable": true
}
],
"constraints": [
{
"kind": "foreign_key",
"parameters": {
"fields": ["member_id"],
"reference": {
"name": "members",
"fields": ["id"]
}
}
},
2025-07-07 12:10:34 +02:00
{
"kind": "foreign_key",
"parameters": {
"fields": ["group_id"],
"reference": {
"name": "groups",
"fields": ["id"]
}
}
},
2025-03-31 17:27:00 +00:00
{
"kind": "unique",
"parameters": {
2025-07-07 12:10:34 +02:00
"fields": ["member_id","group_id"]
2025-03-31 17:27:00 +00:00
}
}
]
},
{
2025-07-07 12:10:34 +02:00
"name": "invitations",
2025-03-31 17:27:00 +00:00
"key_field": {
"name": "id"
},
"data_fields": [
{
"name": "key",
"type": "string_short",
"nullable": false
},
2025-04-01 04:21:11 +00:00
{
"name": "expiry",
"type": "integer",
"nullable": true
},
2025-03-31 17:27:00 +00:00
{
2025-04-12 10:21:25 +00:00
"name": "name_changeable",
"type": "boolean",
2025-03-31 17:27:00 +00:00
"nullable": false
},
{
"name": "name_value",
"type": "string_short",
2025-03-31 19:41:13 +00:00
"nullable": false
2025-03-31 17:27:00 +00:00
},
{
2025-04-12 10:21:25 +00:00
"name": "email_address_changeable",
"type": "boolean",
2025-03-31 17:27:00 +00:00
"nullable": false
},
{
"name": "email_address_value",
"type": "string_short",
"nullable": true
2025-04-01 04:21:11 +00:00
},
{
2025-04-12 10:21:25 +00:00
"name": "groups_changeable",
"type": "boolean",
2025-04-01 04:21:11 +00:00
"nullable": false
2025-03-31 17:27:00 +00:00
}
],
"constraints": [
{
"kind": "unique",
"parameters": {
"fields": ["key"]
}
}
]
},
{
2025-07-07 12:10:34 +02:00
"name": "invitation_groups",
2025-03-31 17:27:00 +00:00
"data_fields": [
{
2025-07-07 12:10:34 +02:00
"name": "invitation_id",
2025-03-31 17:27:00 +00:00
"type": "integer",
"nullable": false
},
{
2025-07-07 12:10:34 +02:00
"name": "group_id",
2025-03-31 17:27:00 +00:00
"type": "string_medium",
"nullable": false
},
{
"name": "_dummy",
"type": "boolean",
"nullable": true
}
],
"constraints": [
{
"kind": "foreign_key",
"parameters": {
2025-07-07 12:10:34 +02:00
"fields": ["invitation_id"],
"reference": {
"name": "invitations",
"fields": ["id"]
}
}
},
{
"kind": "foreign_key",
"parameters": {
"fields": ["group_id"],
2025-03-31 17:27:00 +00:00
"reference": {
2025-07-07 12:10:34 +02:00
"name": "groups",
2025-03-31 17:27:00 +00:00
"fields": ["id"]
}
}
},
{
"kind": "unique",
"parameters": {
2025-07-07 12:10:34 +02:00
"fields": ["invitation_id","group_id"]
2025-03-31 17:27:00 +00:00
}
}
]
}
]
}