{ "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"] } } ] }, { "name": "groups", "key_field": { "name": "id" }, "data_fields": [ { "name": "name", "type": "string_short", "nullable": false } ], "constraints": [ { "kind": "unique", "parameters": { "fields": ["name"] } } ] }, { "name": "admins", "key_field": { "name": "id" }, "data_fields": [ { "name": "name", "type": "string_short", "nullable": false }, { "name": "email_address", "type": "string_medium", "nullable": true }, { "name": "password_image", "type": "string_medium", "nullable": false }, { "name": "password_fail_count", "type": "integer", "nullable": false } ], "constraints": [ { "kind": "unique", "parameters": { "fields": ["name"] } } ] }, { "name": "members", "key_field": { "name": "id" }, "data_fields": [ { "name": "name", "type": "string_short", "nullable": false }, { "name": "email_address", "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": { "fields": ["name"] } } ] }, { "name": "member_groups", "data_fields": [ { "name": "member_id", "type": "integer", "nullable": false }, { "name": "group_id", "type": "integer", "nullable": false }, { "name": "_dummy", "type": "boolean", "nullable": true } ], "constraints": [ { "kind": "foreign_key", "parameters": { "fields": ["member_id"], "reference": { "name": "members", "fields": ["id"] } } }, { "kind": "foreign_key", "parameters": { "fields": ["group_id"], "reference": { "name": "groups", "fields": ["id"] } } }, { "kind": "unique", "parameters": { "fields": ["member_id","group_id"] } } ] }, { "name": "invitations", "key_field": { "name": "id" }, "data_fields": [ { "name": "key", "type": "string_short", "nullable": false }, { "name": "expiry", "type": "integer", "nullable": true }, { "name": "name_changeable", "type": "boolean", "nullable": false }, { "name": "name_value", "type": "string_short", "nullable": false }, { "name": "email_address_changeable", "type": "boolean", "nullable": false }, { "name": "email_address_value", "type": "string_short", "nullable": true }, { "name": "groups_changeable", "type": "boolean", "nullable": false } ], "constraints": [ { "kind": "unique", "parameters": { "fields": ["key"] } } ] }, { "name": "invitation_groups", "data_fields": [ { "name": "invitation_id", "type": "integer", "nullable": false }, { "name": "group_id", "type": "string_medium", "nullable": false }, { "name": "_dummy", "type": "boolean", "nullable": true } ], "constraints": [ { "kind": "foreign_key", "parameters": { "fields": ["invitation_id"], "reference": { "name": "invitations", "fields": ["id"] } } }, { "kind": "foreign_key", "parameters": { "fields": ["group_id"], "reference": { "name": "groups", "fields": ["id"] } } }, { "kind": "unique", "parameters": { "fields": ["invitation_id","group_id"] } } ] } ] }