Перейти к содержанию

Репозитории

Проект состоит из нескольких репозиториев — у каждого своя роль.

Репозиторий Назначение
Адаптер 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.