Платформа «Сократ». Технические средства хранения исходного текста и объектного кода и средства компиляции
Документ правообладателя — ООО «ОФИЭЛЬ». Описывает технические средства, используемые для хранения исходного текста и объектного кода Платформы «Сократ», а также средства компиляции исходного текста в объектный код. Все перечисленные средства принадлежат правообладателю или арендуются им у российских поставщиков и размещены на территории Российской Федерации.
1. Хранение исходного текста
| Параметр | Значение |
|---|---|
| Система контроля версий | Git |
| Сервер | GitLab (self-hosted) — собственная инсталляция правообладателя |
| Размещение | сервер российского облачного провайдера, ЦОД на территории РФ (адрес площадки сообщается уполномоченным органам по запросу) |
| Состав | репозитории серверной части, комплекта развёртывания и мобильного приложения |
| Доступ | только сотрудники правообладателя, по персональным учётным записям; изменения вносятся через запросы на слияние с рецензированием |
Депонированные в Роспатенте листинги исходного текста совпадают с состоянием репозиториев на дату подачи заявок (контрольные суммы SHA-256 хранятся у правообладателя).
2. Хранение объектного кода
| Компонент | Форма объектного кода | Хранилище |
|---|---|---|
| Серверная часть | Docker-образы (Linux x86-64) | закрытый реестр образов правообладателя в облаке российского провайдера (ЦОД в РФ); образы версионируются тегами выпусков |
| Комплект развёртывания | Ansible-плейбуки, шаблоны Docker Compose (интерпретируемые, не компилируются) | репозиторий на сервере GitLab правообладателя |
| Мобильное приложение, Android | подписанные пакеты APK / AAB | сборочная станция правообладателя; публикация в RuStore |
| Мобильное приложение, iOS | подписанные пакеты IPA | сборочная станция правообладателя; публикация в App Store |
3. Средства компиляции
Серверная часть
Python — интерпретируемый язык; «компиляция» в объектный код — сборка Docker-образа:
| Средство | Назначение |
|---|---|
| Docker Engine, Docker Buildx | сборка образа по Dockerfile на сборочной станции правообладателя; готовый образ публикуется в закрытый реестр образов с тегом выпуска |
| GitLab CI | конвейер автоматических проверок на каждое изменение: статический анализ исходного текста и тесты |
| Исполнители GitLab CI | контейнерные исполнители на серверах правообладателя в РФ |
Мобильное приложение
| Средство | Назначение |
|---|---|
| Flutter SDK, Dart SDK | компиляция Dart-кода в машинный код (AOT) для Android и iOS |
| Android SDK, Android NDK, Gradle, JDK | сборка и подписание APK/AAB; платформенный код Kotlin |
| Xcode, CocoaPods | сборка и подписание IPA; платформенный код Swift |
| Сборочные станции | оборудование правообладателя, размещённое на территории РФ |
Комплект развёртывания
Ansible на рабочем месте администратора развёртывания; проверка синтаксиса и статический анализ плейбуков выполняются в GitLab CI.
4. Схема процесса
- Разработчик вносит изменение в ветку репозитория GitLab → запрос на слияние → рецензирование → автоматические проверки CI.
- Из состояния основной ветки, прошедшего проверки, на сборочной станции правообладателя собирается Docker-образ серверной части и публикуется в реестр образов правообладателя с тегом версии.
- Мобильное приложение собирается на сборочных станциях из помеченного тегом состояния репозитория, подписывается ключами правообладателя и публикуется в магазины приложений.
- Развёртывание/обновление инсталляций выполняется Ansible-плейбуками, которые загружают образы только из реестра правообладателя.
Все звенья процесса находятся под управлением правообладателя; зарубежные сервисы для хранения кода, сборки или доставки обновлений не используются.