Репозитории¶
Проект состоит из нескольких репозиториев — у каждого своя роль.
| Репозиторий | Назначение |
|---|---|
| Адаптер Kafka | Исходный код подсистемы (этот репозиторий) |
| Базовый проект | Конфигурация базы данных — базовая конфигурация для разработки |
| Примеры | Тестовое расширение: примеры использования API и отладка интеграции |
| Юнит-тесты | Юнит-тесты адаптера Kafka: YAxUnit |
| UI-тесты | UI-тесты адаптера Kafka: Vanessa Automation |
| Отчеты тестов | Опубликованные Allure HTML-отчеты тестов |
| Набор скриптов | Скрипты для развёртывания среды разработки |
| Расширение КД | Расширение для КД 3.1+, адаптирующее типовую конвертацию данных под произвольный XDTO |
| Задачи и база знаний | Issues и доска GitHub Projects, Memory Bank, SDD/ADR, локальный MCP-сервер и валидатор документации |
Взаимосвязи¶
flowchart LR
ADAPTER["Адаптер Kafka<br/>(подсистема)"]
BASE["Базовый проект<br/>(инфобаза для разработки)"]
examples["Примеры<br/>(расширение с примерами)"]
TESTS_UNIT["Юнит-тесты<br/>(YAxUnit)"]
TESTS_UI["UI-тесты<br/>(Vanessa Automation)"]
TESTS_UI_REPORTS["Отчеты UI-тестов<br/>(Allure + GitHub Pages)"]
TOOLS["Набор скриптов<br/>(dev-окружение)"]
CONV["Расширение КД<br/>(КД 3.1 + XDTO)"]
TASKS["Задачи и база знаний<br/>(Issues + Memory Bank + SDD/ADR)"]
BASE -.подключает.-> ADAPTER
examples -.расширяет.-> BASE
TESTS_UNIT -.тестирует.-> ADAPTER
TESTS_UI -.тестирует.-> ADAPTER
TESTS_UI_REPORTS -.публикует отчеты.-> TESTS_UI
TOOLS -.поднимает.-> ADAPTER
CONV -.дополняет.-> ADAPTER
TASKS -.сопровождает.-> ADAPTER Что где лежит и когда нужно¶
Адаптер Kafka¶
Главный репозиторий. Внутри: исходники подсистемы в формате EDT (src/ — XML .mdo + BSL .bsl), документация MkDocs (docs/), CI-воркфлоу сборки релизов и деплоя документации (.github/workflows/). Нужен всем: пользователи берут отсюда релизы, контрибьюторы — исходники.
Базовый проект¶
Минимальная конфигурация с БСП — информационная база, на которой ведётся разработка и тестирование адаптера. Адаптер подключается к ней как библиотека. Нужен контрибьютору с самого начала — см. onboarding-маршрут.
Примеры¶
Расширение с примерами использования API: обработчики продюсеров/консьюмеров, произвольные события, прямой API. На его коде основан раздел Примеры. Удобен как песочница для ручной отладки интеграции.
Набор скриптов (kafka-tools)¶
Docker Compose-манифесты и скрипты: локальный кластер Kafka, ELK для внешнего логирования, готовые настройки индексов Elasticsearch / OpenSearch. Нужен для развёртывания окружения разработки.
Расширение КД¶
Расширение для 1С:Конвертация данных 3.1+, адаптирующее типовую конвертацию под произвольный XDTO. Нужно только тем, кто использует КД 3.1 как способ сериализации.
Задачи и база знаний (kfk-tasks)¶
Единый репозиторий сопровождения проекта. GitHub Issues используются для постановки и обсуждения задач, а ход работ отображается на доске GitHub Projects.
Каталог memory-bank/ содержит поддерживаемый проектный контекст: архитектуру адаптера, карту репозиториев, компоненты, публичный API, потоки данных и правила разработки. Изменения проектируются в SDD-спецификациях, а значимые архитектурные решения фиксируются в ADR.
Локальный Memory Bank MCP предоставляет ограниченное чтение, поиск и формирование контекста задачи без загрузки всей документации. В этом же репозитории находятся валидатор структуры и ссылок, автоматические тесты MCP и инструкции по установке. Markdown остаётся каноническим форматом и читается без MCP, расширений VS Code или плагинов Obsidian.
Тестирование¶
За тесты отвечают три репозитория:
| Контур | Репозиторий | Инструмент | Что покрывает |
|---|---|---|---|
| Юнит-тесты | kafka-adapter-tests-unit | YAxUnit | Логика общих модулей: регистрация, маршрутизация, сериализация |
| UI-тесты | kafka-adapter-tests-ui | Vanessa Automation | Пользовательские сценарии: формы настройки, панель администрирования, очереди |
| Отчёты | kafka-adapter-tests-reports | Allure + GitHub Pages | Публикация HTML-отчётов о прогонах (со скриншотами UI-тестов) |
В CI тесты встроены в конвейер выпуска: юнит- и UI-тесты запускаются параллельно в Docker-образе с полноценной 1С (виртуальный дисплей Xvfb для GUI-тестов), и файлы релиза публикуются только после успешного прохождения обоих контуров. Отдельным джобом считается покрытие через Coverage41C.
Локально тесты запускаются из EDT на базовом проекте с подключёнными адаптером и тестовыми расширениями — инструкции запуска смотрите в README соответствующего тест-репозитория.
Связанные проекты (внешние)¶
- Simple Kafka Connector 1C — внешний компонент (DLL), на котором построен адаптер.
- Kafka1CExtension — базовый проект, послуживший отправной точкой.
- JSONEditor — UI-редактор JSON, встроенный в адаптер.
- RDT1C — инструменты разработчика 1С.
- tools_ui_1c — универсальные инструменты для управляемых форм.
- YAxUnit — фреймворк для юнит-тестирования.
- onec-docker — репозиторий, использованный при создании CI.