# INTEGRATION.md — f7cloud_mobile > Мобильный клиент F7 (ячейка B, роль `b-dev-mobile`). Контракты компонента для > интеграционного контроля (f7_platform, CONVENTIONS §2). ## Назначение Нативное Android-приложение F7cloud (Kotlin 2.3 + Jetpack Compose): файлы, почта, календарь, контакты, задачи, конференции (Talk), техподдержка, Deck. Замена legacy WebView-оболочки `android-webview`. ## Хосты - **Не имеет своих серверных компонентов.** Работает на устройствах пользователей (Android, minSdk 26). - Сборка — на инфраструктуре ячейки B (markov-cloudi), Gradle 9.3 / AGP 8.13 / JDK 21. - Хосты ячейки A приложение не занимает; взаимодействие — только как HTTP-клиент тенанта F7. URL сервера задаёт пользователь на экране входа; дефолт поля — `BuildConfig.DEFAULT_SERVER_URL` (свойство сборки `f7DefaultServerUrl`, по умолчанию пусто — прод-URL в сборку не вшит, решение mail/035). - Зашитых обращений к боевым хостам A нет с v0.5.114: убраны дефолт `forbion.f7cloud.ru` (экран входа) и preconnect к `hpb-prod.f7cloud.ru` (`TalkHelper.buildPreconnectScript` — теперь только origin сессии). ## Отдаёт (provides) - APK `ru.forbion.f7cloud.mobile` (текущая версия 0.5.113 / code 121, `app/build.gradle`). Дистрибуция: пока ручная (debug APK); канал через F7 App Store (`dev-appstore`, R26) — предмет будущего согласования. - Серверных портов/API/файлов НЕ предоставляет. ## Потребляет (depends on) — все контракты на стороне ТЕНАНТА F7 | Контракт | Что используется | |---|---| | OCS `/ocs/v2.php/cloud/user` | авторизация, `davUserId` (пароль/app-password при 2FA) | | OCS `DELETE /ocs/v2.php/core/apppassword` | ревокация app password при logout (best-effort) | | WebDAV | файлы (PROPFIND, `oc:fileid`) | | CalDAV | календарь и задачи | | CardDAV | контакты | | NC Mail API (+ preferences, trusted senders, text blocks) | почта | | OCS `/ocs/v2.php/apps/spreed` **/api/v4**, bot **/api/v1** | Talk: чат, конференции, звонки (vendor-форк talk-android v23.0.0, GPL-3.0) | | Dashboard API v1/v2/v3 (`apps/dashboard/api/*`) | виджеты «Главной» | | Richdocuments Direct Editing (`apps/richdocuments/api/v1/document`) + Collabora (`coll.f7cloud.ru`) | офисные документы | | `f7support` (NC-апп) | тикеты техподдержки | | Deck API | карточки | | `themes/forbion/` (иконки, CSS-эталоны) | брендинг/вёрстка | | `f7push` (NC-апп) + Firebase FCM | push-уведомления | ## Общие/глобальные ресурсы (ARCHITECTURE §3) - Приложение **потребляет** §3-ресурсы «Версии NC/Talk и OCS-API конференции» (NC 32.0.5, spreed /api/v4, bot /api/v1) как read-only клиент — тот же класс зависимости, что у транскрипции (R5): апгрейд Talk/NC на тенантах может ломать клиента. Ничего на серверах НЕ изменяет и не конфигурирует. - Касание серверной стороны (новые эндпоинты, конфиги, регистрация в App Store) — только через письмо `integrator-b` ДО реализации. ## Инварианты и допущения - Тенант отвечает по OCS v2 / WebDAV / CalDAV / CardDAV; spreed — API v4, bot v1 (см. форк `f7_talk` 22.0.12-f7.N — инварианты OCS сохранены, это нам и нужно). - Тема `forbion` доступна на сервере (иконки грузятся с тенанта). - Richdocuments + Collabora включены на тенанте, где нужны офис-документы. - Смена версий/схем перечисленных API на тенантах = ломающее изменение для приложения → просьба уведомлять через CHANGELOG платформы / письмо. ## Секреты (где, НЕ значения) - В git секретов нет. Учётные данные пользователя — только на устройстве (session storage `core/auth`). - `google-services.json` (Firebase) — вне git; путь сборки документируется в PROJECT-STATUS.md. - Release-keystore для подписи — вне git (пока не настроен, сборки debug). ## Версия / changelog - Текущее: v0.5.113 (code 121) — модуль «Задачи». История — CHANGELOG.md и git-история `app/build.gradle`.