Compare commits
12 commits
dev-public
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4634026487 | ||
|
|
b84e2dd732 | ||
|
|
9a82410937 | ||
|
|
7157cf511a | ||
|
|
aebc1556ab | ||
|
|
110345fd77 | ||
|
|
53b9c7d6b4 | ||
|
|
a81f73b76d | ||
|
|
30a13783cd | ||
|
|
cc9ab1a6a2 | ||
|
|
cada0f26b7 | ||
|
|
e14c977aaa |
|
|
@ -2,10 +2,11 @@
|
||||||
|
|
||||||
## Beschreibung
|
## Beschreibung
|
||||||
|
|
||||||
- Datenmodell für Zeitbild
|
- Datenmodell für [zeitbild](/zeitbild/meta)
|
||||||
|
|
||||||
|
|
||||||
## Nutzung
|
## Nutzung
|
||||||
|
|
||||||
- siehe `tools/build -h`
|
- siehe `tools/build -h`
|
||||||
|
- Beispiel: `path=/tmp/zeitbild.sqlite && rm ${path} -f | tools/build -f sqlite | sqlite3 ${path}`
|
||||||
|
|
||||||
|
|
|
||||||
49
source/migrations/r3-r4.postgresql.sql
Normal file
49
source/migrations/r3-r4.postgresql.sql
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
-- users
|
||||||
|
|
||||||
|
ALTER TABLE
|
||||||
|
"users"
|
||||||
|
ADD COLUMN
|
||||||
|
"dav_token" VARCHAR(255)
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
-- caldav_resources
|
||||||
|
|
||||||
|
ALTER TABLE
|
||||||
|
"caldav_resources"
|
||||||
|
RENAME TO
|
||||||
|
"ics_feed_resources"
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE
|
||||||
|
"ics_feed_resources"
|
||||||
|
DROP COLUMN
|
||||||
|
"read_only"
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE
|
||||||
|
"ics_feed_resources"
|
||||||
|
ADD COLUMN
|
||||||
|
"from_fucked_up_wordpress" BOOLEAN NOT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
COMMENT ON COLUMN
|
||||||
|
"resources"."kind"
|
||||||
|
IS
|
||||||
|
'»local« | »ics_feed«'
|
||||||
|
;
|
||||||
|
|
||||||
|
COMMENT ON COLUMN
|
||||||
|
"resources"."sub_id"
|
||||||
|
IS
|
||||||
|
'local_resources.id | ics_feed_resources.id'
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
-- _meta
|
||||||
|
|
||||||
|
UPDATE
|
||||||
|
"_meta"
|
||||||
|
SET
|
||||||
|
"revision" = 'r4'
|
||||||
|
;
|
||||||
34
source/migrations/r4-r5.postgresql.sql
Normal file
34
source/migrations/r4-r5.postgresql.sql
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
-- calendars
|
||||||
|
|
||||||
|
ALTER TABLE
|
||||||
|
"calendars"
|
||||||
|
ADD COLUMN
|
||||||
|
"hue" INTEGER NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE
|
||||||
|
"calendars"
|
||||||
|
SET
|
||||||
|
"hue" = (("id" * 40503) % 65535)
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE
|
||||||
|
"calendars"
|
||||||
|
ALTER COLUMN
|
||||||
|
"hue" SET NOT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
COMMENT ON COLUMN
|
||||||
|
"calendars"."hue"
|
||||||
|
IS
|
||||||
|
'scaled to a value between 0 and 65535'
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
-- _meta
|
||||||
|
|
||||||
|
UPDATE
|
||||||
|
"_meta"
|
||||||
|
SET
|
||||||
|
"revision" = 'r5'
|
||||||
|
;
|
||||||
48
source/migrations/r5-r6.postgresql.sql
Normal file
48
source/migrations/r5-r6.postgresql.sql
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
-- groups
|
||||||
|
CREATE TABLE
|
||||||
|
groups(
|
||||||
|
"id" SERIAL,
|
||||||
|
"name" VARCHAR(63) NOT NULL,
|
||||||
|
"label" VARCHAR(255) NOT NULL,
|
||||||
|
UNIQUE ("name"),
|
||||||
|
UNIQUE ("id")
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- user_groups
|
||||||
|
CREATE TABLE
|
||||||
|
user_groups(
|
||||||
|
"id" SERIAL,
|
||||||
|
"user_id" INTEGER NOT NULL,
|
||||||
|
"group_id" INTEGER NOT NULL,
|
||||||
|
FOREIGN KEY ("user_id") REFERENCES "users"("id"),
|
||||||
|
FOREIGN KEY ("group_id") REFERENCES "groups"("id"),
|
||||||
|
UNIQUE ("user_id","group_id"),
|
||||||
|
UNIQUE ("id")
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- calendar_access_attributed_group
|
||||||
|
CREATE TABLE
|
||||||
|
calendar_access_attributed_group(
|
||||||
|
"id" SERIAL,
|
||||||
|
"calendar_id" INTEGER NOT NULL,
|
||||||
|
"group_id" INTEGER NOT NULL,
|
||||||
|
"level" INTEGER NOT NULL,
|
||||||
|
FOREIGN KEY ("calendar_id") REFERENCES "calendars"("id"),
|
||||||
|
FOREIGN KEY ("group_id") REFERENCES "groups"("id"),
|
||||||
|
UNIQUE ("calendar_id","group_id"),
|
||||||
|
UNIQUE ("id")
|
||||||
|
)
|
||||||
|
;
|
||||||
|
COMMENT ON COLUMN calendar_access_attributed_group.level IS '0:none | 1:view | 2:edit | 3:admin';
|
||||||
|
|
||||||
|
-- calendar_access_attributed_user
|
||||||
|
ALTER TABLE
|
||||||
|
calendar_access_attributed
|
||||||
|
RENAME TO
|
||||||
|
calendar_access_attributed_user
|
||||||
|
;
|
||||||
|
|
||||||
|
-- meta
|
||||||
|
UPDATE _meta SET revision = 'r6';
|
||||||
284
source/structure/r2.sindri.json
Normal file
284
source/structure/r2.sindri.json
Normal file
|
|
@ -0,0 +1,284 @@
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
{
|
||||||
|
"name": "sessions",
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "key",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "data",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "JSON"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["key"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "auth_internal",
|
||||||
|
"key_field": null,
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "password_image",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email_address",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "_dummy",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resource_events",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "local_resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "begin",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "end",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "location",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "description",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["local_resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "local_resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "caldav_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "url",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "read_only",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "kind",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "»local« | »caldav«"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sub_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "local_resources.id | caldav_resources.id"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["kind","sub_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendars",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_public",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_level_default",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendar_access_attributed",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "calendar_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "level",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "calendars",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["user_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "users",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id","user_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
289
source/structure/r3.sindri.json
Normal file
289
source/structure/r3.sindri.json
Normal file
|
|
@ -0,0 +1,289 @@
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
{
|
||||||
|
"name": "sessions",
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "key",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "data",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "JSON"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["key"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "auth_internal",
|
||||||
|
"key_field": null,
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "password_image",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email_address",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "_dummy",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resource_events",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "local_resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "begin",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "end",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "location",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "link",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "description",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["local_resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "local_resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "caldav_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "url",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "read_only",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "kind",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "»local« | »caldav«"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sub_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "local_resources.id | caldav_resources.id"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["kind","sub_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendars",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_public",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_level_default",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendar_access_attributed",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "calendar_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "level",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "calendars",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["user_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "users",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id","user_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
294
source/structure/r4.sindri.json
Normal file
294
source/structure/r4.sindri.json
Normal file
|
|
@ -0,0 +1,294 @@
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
{
|
||||||
|
"name": "sessions",
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "key",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "data",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "JSON"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["key"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "auth_internal",
|
||||||
|
"key_field": null,
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "password_image",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email_address",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dav_token",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "_dummy",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resource_events",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "local_resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "begin",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "end",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "location",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "link",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "description",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["local_resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "local_resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ics_feed_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "url",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "from_fucked_up_wordpress",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "kind",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "»local« | »ics_feed«"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sub_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "local_resources.id | ics_feed_resources.id"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["kind","sub_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendars",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_public",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_level_default",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendar_access_attributed",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "calendar_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "level",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "calendars",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["user_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "users",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id","user_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
300
source/structure/r5.sindri.json
Normal file
300
source/structure/r5.sindri.json
Normal file
|
|
@ -0,0 +1,300 @@
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
{
|
||||||
|
"name": "sessions",
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "key",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "data",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "JSON"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["key"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "auth_internal",
|
||||||
|
"key_field": null,
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "password_image",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email_address",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dav_token",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "_dummy",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resource_events",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "local_resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "begin",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "end",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "location",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "link",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "description",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["local_resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "local_resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ics_feed_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "url",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "from_fucked_up_wordpress",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "kind",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "»local« | »ics_feed«"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sub_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "local_resources.id | ics_feed_resources.id"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["kind","sub_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendars",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_public",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_level_default",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hue",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "scaled to a value between 0 and 65535"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendar_access_attributed",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "calendar_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "level",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "calendars",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["user_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "users",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id","user_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
424
source/structure/r6.sindri.json
Normal file
424
source/structure/r6.sindri.json
Normal file
|
|
@ -0,0 +1,424 @@
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
{
|
||||||
|
"name": "sessions",
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "key",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "data",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "JSON"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["key"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "auth_internal",
|
||||||
|
"key_field": null,
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "password_image",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "groups",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "label",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "email_address",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dav_token",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_groups",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "group_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["user_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "users",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["group_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "groups",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["user_id", "group_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "_dummy",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local_resource_events",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "local_resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "begin",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "end",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "location",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "link",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "description",
|
||||||
|
"type": "string_long",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["local_resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "local_resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ics_feed_resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "url",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "from_fucked_up_wordpress",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resources",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "kind",
|
||||||
|
"type": "string_short",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "»local« | »ics_feed«"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sub_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "local_resources.id | ics_feed_resources.id"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["kind","sub_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendars",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"type": "string_medium",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_public",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "access_level_default",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "resource_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hue",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "scaled to a value between 0 and 65535"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["resource_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "resources",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendar_access_attributed_group",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "calendar_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "group_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "level",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "calendars",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["group_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "groups",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id","group_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "calendar_access_attributed_user",
|
||||||
|
"key_field": {
|
||||||
|
"name": "id"
|
||||||
|
},
|
||||||
|
"data_fields": [
|
||||||
|
{
|
||||||
|
"name": "calendar_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "level",
|
||||||
|
"type": "integer",
|
||||||
|
"nullable": false,
|
||||||
|
"description": "0:none | 1:view | 2:edit | 3:admin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"constraints": [
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "calendars",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "foreign_key",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["user_id"],
|
||||||
|
"reference": {
|
||||||
|
"name": "users",
|
||||||
|
"fields": ["id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "unique",
|
||||||
|
"parameters": {
|
||||||
|
"fields": ["calendar_id","user_id"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
2050
tools/sindri/sindri
2050
tools/sindri/sindri
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue