Возможности и ограничения приложений
Marketplace предоставляет разработчикам богатые возможности по расширению функциональности Аспро.Cloud, но одновременно накладывает ряд ограничений, чтобы сохранить стабильность и безопасность системы. Ниже перечислено, что могут делать встроенные приложения, а чего им делать нельзя (или ограничено правилами платформы):
- Расширение интерфейса: приложения могут встраивать свои элементы в UI портала через поддерживаемые точки интеграции – добавлять кнопки, вкладки, виджеты, новые страницы и т.д. (см. следующий раздел). При этом приложение не может произвольно менять существующий интерфейс или поведение ядра за пределами предоставленных точек встройки. Например, оно не может удалять штатные разделы меню или вмешиваться в чужие интерфейсы модулей, только добавлять свои компоненты в разрешённых местах.
- Доступ к данным и действиям: приложения могут вызывать API Аспро.Cloud для чтения или изменения данных (создавать сущности, получать списки и пр.), но только в пределах разрешений, указанных в манифесте . Перед установкой администратор явно одобряет запрошенные права, и любые попытки приложения выйти за эти рамки блокируются системой безопасности. Например, если приложению не разрешён доступ к контактам CRM, оно не сможет через API получить эти данные – платформа отвергнет такой запрос. Это реализует принцип минимально необходимых привилегий.
- Изоляция и безопасность: встроенные приложения работают в песочнице. Если приложение запускается внутри браузера (как встроенный фронтенд-модуль), оно изолировано в iframe (с другим доменом) или аналогичной sandbox-среде . Обмен данными с основным приложением происходит через контролируемые механизмы (например, postMessage API или вызовы SDK, которые проверяют корректность запросов) . Прямое выполнение неподписанных скриптов в контексте страницы Аспро.Cloud запрещено – платформа при необходимости будет санитизировать контент приложения, удаляя опасные элементы (скрипты, стили вне разрешённых областей и т.д.) . Эти меры предотвращают XSS-атаки и утечки данных.
- Взаимодействие с внешними сервисами: если приложение общается с внешними серверами (например, вебхуки или собственный бекенд приложения), это взаимодействие происходит по HTTPS с проверкой сертификатов и ограничением по времени ответа . Со стороны Аспро.Cloud предусмотрены таймауты и логирование таких вызовов, чтобы сбой внешнего сервиса не влиял на работу платформы . Приложение не может напрямую подключаться к внутренним сервисам Аспро.Cloud или обходить API – все внешние интеграции осуществляются открытыми методами, описанными в документации.
- Хранение данных и секретов: приложения могут хранить необходимые данные (например, настройки) через предоставленные механизмы платформы. Секретные данные (ключи API, токены) сохраняются в зашифрованном виде – Аспро.Cloud гарантирует, что даже администратор портала не сможет их просмотреть, только обновить при необходимости . Таким образом, приложение не должно пытаться хранить пароли или ключи открытым текстом. Собственные данные приложения (например, кэш или временные файлы) могут храниться либо на стороне сервера разработчика, либо в выделенных хранилищах, если такие будут предоставлены SDK.
- Производительность и квоты: чтобы защищать платформу от перегрузки, для приложений введены квоты и лимиты. Например, ограничено число API-вызовов в единицу времени, объем использованного хранилища, количество создаваемых объектов и т.д. Даже если приложению разрешён доступ к какому-то API, слишком частые запросы будут автоматически блокироваться на уровне платформы . Внешние приложения (менее доверенные) лимитируются строже, внутренние – чуть мягче, но в любом случае есть потолок использования ресурсов . Разработчик должен учитывать эти ограничения и оптимизировать приложение (например, кешировать данные, запрашивать только необходимое).
- Установка и управление: устанавливать или удалять приложения могут только администраторы портала (либо пользователи с особой ролью “Менеджер приложений”) . Обычные сотрудники не вправе самостоятельно подключать приложения без разрешения – это предотвращает несанкционированное расширение функционала . После установки администратор может назначать приложение определённым ролям или пользователям (ограничивать круг тех, кто его видит и использует) . Приложение не может изменять свою видимость или права доступа произвольно – все контролируется настройками портала.
- Модерация и обновления: перед публикацией каждое приложение проходит проверку со стороны Аспро.Cloud. Проверяется отсутствие вредоносных действий, корректность реализации UI/UX в рамках платформы и обоснованность запрашиваемых прав . Приложения, не соответствующие требованиям безопасности или качества, не будут допущены в каталог. Обновления существующих приложений также контролируются: новая версия проходит модерацию, и только после одобрения становится доступна пользователям. Таким образом, разработчики не могут обходным путём внедрить в приложение злонамеренный код – любые изменения проходят ревью. Кроме того, рекомендуется подписывать пакеты приложений цифровой подписью разработчика для гарантии их целостности; в будущем платформа планирует проверять подпись при установке для дополнительной безопасности .
- Коммерческие ограничения: на старте маркетплейса, вероятно, все приложения бесплатны либо имеют собственную внеплатформенную оплату. В дальнейшем Аспро.Cloud может ввести поддержку платных приложений и внутренних покупок . Это означает, что приложение не должно самостоятельно вмешиваться в систему оплаты платформы. Если у приложения модель подписки или оплаты, это указывается в его описании, и процесс активации будет стандартизирован (например, через отметку “требуется отдельная покупка”).
В совокупности, эти ограничения гарантируют, что приложения расширяют возможности Аспро.Cloud без ущерба стабильности, безопасности и управляемости системы. Разработчики должны следовать руководствам SDK и политики платформы, чтобы их приложение успешно прошло модерацию и работало корректно у пользователей.