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
|
||||
|
||||
- Datenmodell für Zeitbild
|
||||
- Datenmodell für [zeitbild](/zeitbild/meta)
|
||||
|
||||
|
||||
## Nutzung
|
||||
|
||||
- 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