{
    "name": "Мастерская",
    "description": "Учебный пример для отдельной тестовой среды. Не использует реальные сообщения и секреты.",
    "version": "1.0.0",
    "permissions": {
        "telegram.read": {},
        "bot.read": {},
        "bot.send": {},
        "db.read": {},
        "db.write": {},
        "interface.write": {},
        "files.read": {},
        "files.write": {},
        "web.request": {
            "domains": [
                "postman-echo.com"
            ]
        },
        "tasks.create": {},
        "modules.call": {
            "modules": [
                "0123456789abcdef0123456789abcdef"
            ]
        }
    },
    "dependencies": [
        "0123456789abcdef0123456789abcdef"
    ],
    "changes": "Первый учебный пример.",
    "source": true,
    "interface": {
        "commands": [
            {
                "id": "workshop",
                "alias": "workshop",
                "access": "owner",
                "source": "both"
            }
        ],
        "handlers": [],
        "callbacks": [
            {
                "id": "pressed",
                "fields": {},
                "access": "owner",
                "confirm": false
            }
        ],
        "actions": [
            {
                "id": "cancel",
                "fields": {},
                "access": "owner",
                "confirm": false
            },
            {
                "id": "execute",
                "fields": {
                    "text": {
                        "type": "string",
                        "min": 1,
                        "max": 800,
                        "required": true
                    }
                },
                "access": "owner",
                "confirm": false
            },
            {
                "id": "fetch",
                "fields": {
                    "url": {
                        "type": "string",
                        "min": 1,
                        "max": 2048,
                        "required": true
                    }
                },
                "access": "owner",
                "confirm": false
            },
            {
                "id": "filecheck",
                "fields": {
                    "size": {
                        "type": "integer",
                        "min": 0,
                        "max": 200000,
                        "required": true
                    }
                },
                "access": "owner",
                "confirm": false
            },
            {
                "id": "schedule",
                "fields": {},
                "access": "owner",
                "confirm": false
            }
        ],
        "functions": [],
        "signals": [],
        "tasks": [
            {
                "id": "tick",
                "fields": {}
            }
        ],
        "requests": [],
        "config": {},
        "pages": [
            {
                "id": "main",
                "title": {
                    "ru": "Мастерская",
                    "en": "Workshop"
                },
                "elements": [
                    {
                        "id": "status",
                        "type": "text"
                    },
                    {
                        "id": "runs",
                        "type": "metric",
                        "label": {
                            "ru": "Задачи",
                            "en": "Tasks"
                        }
                    },
                    {
                        "id": "execute",
                        "type": "form",
                        "action": "execute",
                        "label": {
                            "ru": "Проверить",
                            "en": "Run checks"
                        }
                    },
                    {
                        "id": "filecheck",
                        "type": "form",
                        "action": "filecheck",
                        "label": {
                            "ru": "Проверить файл",
                            "en": "Check file"
                        }
                    },
                    {
                        "id": "fetch",
                        "type": "form",
                        "action": "fetch",
                        "label": {
                            "ru": "Проверить адрес",
                            "en": "Check URL"
                        }
                    },
                    {
                        "id": "schedule",
                        "type": "button",
                        "action": "schedule",
                        "label": {
                            "ru": "Запустить расписание",
                            "en": "Start schedule"
                        }
                    },
                    {
                        "id": "cancel",
                        "type": "button",
                        "action": "cancel",
                        "label": {
                            "ru": "Остановить расписание",
                            "en": "Stop schedule"
                        }
                    }
                ]
            }
        ]
    }
}
