mirror of
https://github.com/YunoHost/apps.git
synced 2024-09-03 20:06:07 +02:00
Add config_panel.toml json schema for CI validation (#2402)
This commit is contained in:
parent
f0ec1f0de0
commit
d0e0d8e5a3
1 changed files with 227 additions and 0 deletions
227
schemas/config_panel.schema.json
Normal file
227
schemas/config_panel.schema.json
Normal file
|
@ -0,0 +1,227 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"$id": "https://raw.githubusercontent.com/YunoHost/apps/master/schemas/config_panel.v1.schema.json",
|
||||
"title": "Yunohost app config_panel.toml schema",
|
||||
"version": "0",
|
||||
"type": "object",
|
||||
"$defs": {
|
||||
"translated_string": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^[a-z]{2}$": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"minProperties": 1
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"boolean_or_string": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"panel": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"$ref": "#/$defs/translated_string"
|
||||
},
|
||||
"help": {
|
||||
"$ref": "#/$defs/translated_string"
|
||||
},
|
||||
"services": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/section"
|
||||
}
|
||||
},
|
||||
"section": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"$ref": "#/$defs/translated_string"
|
||||
},
|
||||
"help": {
|
||||
"$ref": "#/$defs/translated_string"
|
||||
},
|
||||
"services": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"visible": {
|
||||
"$ref": "#/$defs/boolean_or_string"
|
||||
},
|
||||
"optional": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/option"
|
||||
}
|
||||
},
|
||||
"option": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"string",
|
||||
"text",
|
||||
"select",
|
||||
"tags",
|
||||
"email",
|
||||
"url",
|
||||
"date",
|
||||
"time",
|
||||
"color",
|
||||
"password",
|
||||
"path",
|
||||
"boolean",
|
||||
"domain",
|
||||
"user",
|
||||
"group",
|
||||
"number",
|
||||
"range",
|
||||
"alert",
|
||||
"markdown",
|
||||
"file",
|
||||
"app",
|
||||
"button"
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"type": [
|
||||
"string",
|
||||
"number",
|
||||
"boolean"
|
||||
]
|
||||
},
|
||||
"example": {
|
||||
"type": [
|
||||
"string",
|
||||
"number",
|
||||
"boolean"
|
||||
]
|
||||
},
|
||||
"optional": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"ask": {
|
||||
"$ref": "#/$defs/translated_string"
|
||||
},
|
||||
"help": {
|
||||
"$ref": "#/$defs/translated_string"
|
||||
},
|
||||
"choices": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^[a-zA-Z0-9_]*$": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"pattern": {
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"regexp": {
|
||||
"type": "string",
|
||||
"format": "regex"
|
||||
},
|
||||
"error": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"yes": {
|
||||
"$ref": "#/$defs/boolean_or_string"
|
||||
},
|
||||
"no": {
|
||||
"$ref": "#/$defs/boolean_or_string"
|
||||
},
|
||||
"visible": {
|
||||
"$ref": "#/$defs/boolean_or_string"
|
||||
},
|
||||
"bind": {
|
||||
"type": "string"
|
||||
},
|
||||
"style": {
|
||||
"type": "string",
|
||||
"enum": ["info", "danger", "success"]
|
||||
},
|
||||
"redact": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"enabled": {
|
||||
"$ref": "#/$defs/boolean_or_string"
|
||||
},
|
||||
"readonly": {
|
||||
"$ref": "#/$defs/boolean_or_string"
|
||||
},
|
||||
"accept": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"min": {
|
||||
"type": "integer"
|
||||
},
|
||||
"max": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"properties": {
|
||||
"version": {
|
||||
"description": "config_panel.toml format / version",
|
||||
"type": "string",
|
||||
"pattern": "^[0-9]*(\\.[0-9])*$"
|
||||
},
|
||||
"i18n": {
|
||||
"description": "Translation domain",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/panel"
|
||||
},
|
||||
"required": [
|
||||
"version"
|
||||
]
|
||||
}
|
Loading…
Add table
Reference in a new issue