diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d1518ae --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +# CHANGELOG — f7cloud_mobile + +Формат: `ГГГГ-ММ-ДД | версия | изменение | контракты | риск` + +- 2026-07-07 | v0.5.113 (121) | Онбординг в федерацию F7: заведены INTEGRATION.md и CHANGELOG.md, роль `b-dev-mobile` (ячейка B). Код без изменений | INTEGRATION.md создан: задекларированы потребляемые контракты тенанта (OCS/WebDAV/CalDAV/CardDAV/Mail/spreed v4/Dashboard/Richdocuments/f7push) | нет +- до 2026-07-07 | ≤0.5.113 | Разработка вне федерации (сессии Cursor Agent): нативные модули файлы/почта/календарь/контакты/задачи/Talk/поддержка/Deck | хронология — PROJECT-STATUS.md | — diff --git a/INTEGRATION.md b/INTEGRATION.md new file mode 100644 index 0000000..902c439 --- /dev/null +++ b/INTEGRATION.md @@ -0,0 +1,66 @@ +# 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 сервера задаёт пользователь на экране входа, + дефолт в UI: `https://forbion.f7cloud.ru` — `app/.../AppScaffold.kt:682`). + +## Отдаёт (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) | +| 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`.