Каталог решений Кабинет разработчика Документация О платформе Демо CRM
SPECIFICATION v1.0 Zero-Daemon Pure-PHP

Руководство разработчика модулей TropaTT

Стандарты создания, упаковки, криптографической подписи и распространения расширений для экосистемы TropaTT CRM.

// 01. Структура дистрибутива расширения

Модуль поставляется в виде обычного ZIP-архива. В корне архива обязательно должен находиться файл дескриптора manifest.json:

my-extension/
├── manifest.json            # Обязательный дескриптор расширения (метаданные, зависимости)
├── README.md                # Описание, скриншоты и инструкция по настройке
├── migrations/              # Каталог миграций БД (выполняются ModuleMigrationRunner)
│   └── 001_init.sql
├── web/                     # Пользовательские интерфейсы и шаблоны CRM
│   └── controller/
│   └── template/
└── api/                     # Серверная бизнес-логика, сервисы и контроллеры
    └── ServiceProvider.php

// 02. Спецификация manifest.json

Манифест валидируется платформой по строгой JSON-схеме. Все обязательные поля должны быть заполнены:

{
  "code": "ecommerce-gateway",
  "name": "E-Commerce Universal Gateway",
  "version": "1.1.0",
  "category": "ecommerce",
  "min_core_version": "1.0.0",
  "description": "Универсальный шлюз синхронизации заказов и лидов из CMS",
  "license": "free",
  "permissions": ["orders.read", "orders.write", "webhooks.listen"]
}

// 03. Статический аудит AST Security Linter

Для гарантии безопасности инстансов TropaTT, дистрибутив сканируется до коммита в базу. Запрещены:

  • Динамическое исполнение кода: eval(), create_function()
  • Вызовы системной оболочки ОС: exec(), passthru(), system(), shell_exec(), popen()
  • Уязвимости обхода директорий Zip Slip: пути с ../ в именах файлов внутри архива

// 04. Лицензирование и ключи

Маркетплейс поддерживает открытые (Free / MIT) и коммерческие модули. При коммерческом распространении сервер генерирует криптографически подписанный лицензионный ключ для конкретного домена покупателя.

// 05. Автоматическая публикация через API и cURL

Вендоры могут встраивать публикацию релизов в свои CI/CD пайплайны GitHub Actions или GitLab CI:

curl -X POST https://marketplace.tropatt.com/api/v1/vendor/publish \
  -H "X-API-KEY: your_vendor_secret_key" \
  -F "package=@extension-v1.1.0.zip" \
  -F "price_model=free"