diff --git a/schemas/apps.toml.schema.json b/schemas/apps.toml.schema.json new file mode 100644 index 00000000..4833c35d --- /dev/null +++ b/schemas/apps.toml.schema.json @@ -0,0 +1,64 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/YunoHost/apps/blob/master/schemas/apps.toml.schema.json", + "title": "Yunohost's apps.toml schema", + "version": "0", + + "type": "object", + "required": [], + "additionalProperties": false, + "patternProperties": { + "^[a-z0-9_-]*$": { + "type": "object", + "required": ["url", "state"], + "additionalProperties": false, + "properties": { + "category": { + "type": "string" + }, + "subtags": { + "type": "array", + "items": { + "type": "string" + }, + "additionalItems": false + }, + "level": { + "type": "integer", + "minimum": 0, + "maximum": 8 + }, + "state": { + "type": "string", + "enum": ["working", "notworking", "inprogress"] + }, + "url": { + "type": "string", + "format": "url" + }, + "antifeatures": { + "type": "array", + "items": { + "type": "string" + }, + "additionalItems": false + }, + "potential_alternative_to": { + "type": "array", + "items": { + "type": "string" + }, + "additionalItems": false + }, + "revision": { + "type": "string", + "pattern": "^[a-z0-9]{32,64}$" + }, + "branch": { + "type": "string" + } + } + } + } + +} diff --git a/schemas/categories.toml.schema.json b/schemas/categories.toml.schema.json new file mode 100644 index 00000000..ebb9b95e --- /dev/null +++ b/schemas/categories.toml.schema.json @@ -0,0 +1,52 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/YunoHost/apps/blob/master/schemas/categories.toml.schema.json", + "title": "Yunohost's categories.toml schema", + "version": "0", + + "$defs": { + "translated_string": { + "type": "object", + "required": ["en"], + "additionalProperties": false, + "patternProperties": { + "^[a-z]{2}$": { + "type": "string" + } + } + } + }, + + "type": "object", + "required": [], + "additionalProperties": false, + "patternProperties": { + "^[a-z0-9_-]*$": { + "type": "object", + "required": ["icon", "title", "description"], + "additionalProperties": false, + "properties": { + "icon": { + "type": "string" + }, + "title": { "$ref": "#/$defs/translated_string" }, + "description": { "$ref": "#/$defs/translated_string" }, + "subtags": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-z_]*$": { + "type": "object", + "required": ["title"], + "additionalProperties": false, + "properties": { + "title": { "$ref": "#/$defs/translated_string" } + } + } + } + } + } + } + } + +}