Перейти к основному содержимому

Описание технической архитектуры программного обеспечения «DocsSklad»

Версия документа: 0.2
Дата подготовки: 2026-06-04
Дата утверждения: 2026-06-04
Правообладатель: ИП Рыбин Анатолий Сергеевич
Программное обеспечение: «DocsSklad»
Версия ПО: 1.0

1. Общая архитектура

«DocsSklad» является клиент-серверным веб-приложением, интегрированным с сервисом «МойСклад», DataSklad Vendor и подсистемой обработки загруженных документов.

Пользовательский интерфейс может открываться внутри «МоегоСклада» по context key и напрямую по адресу https://docs.datasklad.com/app с авторизацией по логину и паролю. Серверная часть обрабатывает авторизацию, загрузку файлов, распознавание, сопоставление данных, связь с API «МоегоСклада» и фоновые задачи.

2. Основные компоненты

2.1. Пользовательский интерфейс

Интерфейс предоставляет функции:

  • загрузка документа поставщика;
  • просмотр результата распознавания;
  • сопоставление контрагента и номенклатуры;
  • создание документа в «МоемСкладе»;
  • просмотр статусов и ошибок.

2.2. Backend/API

Серверная часть реализует:

  • обработку пользовательских запросов;
  • авторизацию при открытии из «МоегоСклада» по context key;
  • прямую авторизацию по логину и паролю;
  • прием и обработку загруженных файлов;
  • распознавание и нормализацию данных документа;
  • взаимодействие с API «МоегоСклада»;
  • фоновые задачи и повторную обработку временно неуспешных операций.

Основной стек: Python, FastAPI, SQLAlchemy, Alembic, PostgreSQL, Docker, Nuxt, Vue.

2.3. DataSklad Vendor

DataSklad Vendor используется как авторизационный центр, административная консоль и распределительный мост между «МоимСкладом», Vendor API «МоегоСклада» и решениями DataSklad.

2.4. База данных

База данных используется для хранения сведений об установках, состояниях аккаунтов, тарифах, настройках, технических статусах обработки и служебных данных, необходимых для работы ПО.

2.5. Обработка файлов

Загруженные файлы используются для распознавания и создания документов в «МоемСкладе». Проверочный контур должен использовать тестовые файлы без закрытых данных клиентов.

3. Внешние интеграции

ПО взаимодействует с:

  • каталогом решений «МоегоСклада»;
  • Vendor API «МоегоСклада»;
  • API «МоегоСклада»;
  • подсистемой обработки и распознавания документов.

4. Потоки данных

  1. Пользователь устанавливает «DocsSklad» в аккаунт «МоегоСклада».
  2. «МойСклад» отправляет vendor-запрос в DataSklad Vendor.
  3. Пользователь открывает интерфейс ПО.
  4. Пользователь загружает документ поставщика.
  5. ПО обрабатывает файл и извлекает данные.
  6. Пользователь проверяет и сопоставляет данные.
  7. ПО создает документ в «МоемСкладе» через API «МоегоСклада».

5. Размещение и инфраструктура

ПО размещается в Яндекс Облаке. Для разработки и эксплуатации используются отдельные контуры окружений. API поставляется в Docker-контейнерах и публикуется через инфраструктуру DataSklad.

6. Хранение исходного текста и объектного кода

Исходный текст ПО хранится в Git-репозиториях, доступ к которым ограничен правообладателем. Объектный код и контейнерные образы хранятся в закрытых инфраструктурных хранилищах, используемых для выпуска ПО.

Технические средства хранения исходного текста, объектного кода, контейнерных образов и сборки размещаются на серверах Яндекс Облака на территории Российской Федерации.

7. Безопасность данных

Секреты и параметры окружения не хранятся в публичных репозиториях и документации. Проверочный контур не должен содержать production-секреты, реальные пароли пользователей, закрытые документы клиентов и параметры основной инфраструктуры.

8. Зависимости и сторонние компоненты

Подробный перечень сторонних компонентов, версий, лицензий и назначения приведен в документе «Перечень сторонних компонентов».