Search by

skeeks / cms-mobile

skeeks-semenov

Интеграция SkeekS CMS с мобильными приложениями: устройства и push-уведомления

Package info

github.com/skeeks-cms/cms-mobile

Type:yii2-extension

pkg:composer/skeeks/cms-mobile

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.1.3 2026-10-07 18:04 UTC

This package is auto-updated.

Last update: 2026-10-07 18:04:52 UTC


README

Подключаемая интеграция SkeekS CMS с мобильными приложениями: установки, связь с авторизованным сеансом, разрешения и push-уведомления. Сайт без мобильного приложения не устанавливает этот пакет.

Пакет владеет моделями установок и результатов доставки, их миграцией, JS-мостом Capacitor, контроллером регистрации и адаптером Firebase. Обычные сеансы, remember-me и выход на устройствах принадлежат skeeks/cms. Обработчики отправки используют существующую очередь skeeks/cms-job.

Состояние разработки

Реализован Android/Capacitor/FCM. iOS/APNs и другие клиенты пока не подключены; название пакета и его серверная граница не ограничены Android. Подробности настройки и ограничений — MOBILE-PUSH.md.

Установка: composer require skeeks/cms-mobile:^0.1.0. Требуется CMS версии 6.4.9.35 или новее. Порядок получения ключа Firebase, настройки params.php и запуска очереди описан в MOBILE-PUSH.md.

Контракт приложения

Канонический endpoint: POST /cms-mobile/push-v1/register. Авторизация — действующий cookie-сеанс сайта в WebView, включая обычный Yii CSRF. Поля form-urlencoded: app_id, installation_id, installation_secret, platform, app_version, permission и token при разрешённом push. Сервер определяет пользователя по сеансу; user_id клиента не используется. Ответ содержит безопасные поля установки, без токена или секретов.

Версия приложения — диагностическое поле, не версия API. Совместимые дополнения оставляют push-v1; несовместимое изменение требует новой версии endpoint с сохранением прежней для поддерживаемых установленных приложений. Нативный iOS-токен APNs нельзя выдавать за FCM-токен Android: новый адаптер должен явно определить платформу и тип адреса доставки.

Проверка

php tests/user-sessions-push.php <vendor/autoload.php> проверяет регистрацию, смену аккаунта, отзыв, конфликт токена, очистку истории, расширение карточки сеанса и обработчик доставки на SQLite с имитатором транспорта. Реальный push требует серверных credentials Firebase и проверки на устройстве.

node tests/bridge.cjs проверяет ротацию конфликтующего токена и ограничение повторов при задержке его удаления нативным плагином.

Проверена отдельная установка Composer в пустой временный vendor с текущими исходниками пакета и локальным набором зависимостей рабочего проекта; мобильные тесты проходят и на этой установке. Это не проверка опубликованного релиза. Проверки SQLite/имитатора не заменяют нагрузочные конкурентные проверки MariaDB и приёмку Android с настоящим Firebase. Общий кэш access token FCM пока не введён; авторизация выполняется перед отправкой. iOS остаётся отдельным следующим этапом.