Skip to content

Commit 47dd486

Browse files
committed
Документация
1 parent 3f8d131 commit 47dd486

10 files changed

Lines changed: 363 additions & 32 deletions

File tree

docs/.vitepress/config.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ export default defineConfig({
4646
text: 'Практические руководства',
4747
items: [
4848
{ text: 'Создание потока данных', link: '/guide/create-flow' },
49-
{ text: 'Настройка подписчиков', link: '/guide/configure-subscribers' }
49+
{ text: 'Настройка подписчиков', link: '/guide/configure-subscribers' },
50+
{ text: 'Настройка эндпоинтов', link: '/guide/configure-endpoints' },
51+
{ text: 'Обработка входящих HTTP', link: '/guide/incoming-http-processing' }
5052
]
5153
}
5254
],
@@ -57,10 +59,12 @@ export default defineConfig({
5759
{ text: 'Обзор архитектуры', link: '/concepts/' },
5860
{ text: 'Потоки данных', link: '/concepts/data-flows' },
5961
{ text: 'Подписчики', link: '/concepts/subscribers' },
62+
{ text: 'Kafka-консьюмеры', link: '/concepts/kafka-consumers' },
6063
{ text: 'Очереди сообщений', link: '/concepts/message-queues' },
6164
{ text: 'Валидация', link: '/concepts/validation' },
6265
{ text: 'Многопоточность', link: '/concepts/multithreading' },
63-
{ text: 'Мониторинг и метрики', link: '/concepts/monitoring' }
66+
{ text: 'Мониторинг и метрики', link: '/concepts/monitoring' },
67+
{ text: 'Управление эндпоинтами', link: '/concepts/endpoint-management' }
6468
]
6569
}
6670
],
@@ -105,7 +109,7 @@ export default defineConfig({
105109

106110
// Social links
107111
socialLinks: [
108-
{ icon: 'github', link: 'https://github.com/your-org/integration_subsystem' }
112+
{ icon: 'github', link: 'https://github.com/Segate-ekb/integration_subsystem' }
109113
],
110114

111115
// Last updated text

docs/api/index.md

Lines changed: 55 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ outline: deep
1212
Подсистема интеграции
1313
├── Справочники (конфигурация)
1414
│ ├── инт_ПотокиДанных
15-
│ ├── инт_Подписчики
1615
│ ├── инт_ПодписчикиHTTP
1716
│ ├── инт_ПодписчикиRabbitMQ
1817
│ ├── инт_ПодписчикиKafka
@@ -33,6 +32,9 @@ outline: deep
3332
│ ├── инт_ИсторияСтатусовРассылкиСообщений
3433
│ ├── инт_МенеджерПотоковФормированияСообщений
3534
│ ├── инт_МенеджерПотоковОтправкиСообщений
35+
│ ├── инт_АктивныеКонсьюмеры
36+
│ ├── инт_СтатистикаОбработкиСообщений
37+
│ ├── инт_СообщенияКУдалению
3638
│ ├── инт_ХешиОбъектов
3739
│ ├── инт_ИдентификаторыВнешнихСистем
3840
│ └── инт_КэшированиеСхемOpenApi
@@ -41,27 +43,35 @@ outline: deep
4143
│ ├── инт_ФормированиеИсходящихСообщений
4244
│ ├── инт_ОтправкаИсходящихСообщений
4345
│ ├── инт_ОбработкаВходящихПотоков
46+
│ ├── инт_МенеджерВходящихПотоков
47+
│ ├── инт_КонсьюмерОчередей
4448
│ ├── инт_ВалидаторПакетов
4549
│ ├── инт_КоннекторHTTP
4650
│ ├── инт_ПодписчикиОбщий
47-
│ ├── инт_РаботаССообщениямиПроизвольныйHTTP
48-
│ ├── инт_РаботаССообщениямиRabbitMQ
49-
│ ├── инт_РаботаССообщениямиKafka
50-
│ └── инт_РаботаССообщениямиJRPC2
51+
│ ├── инт_РаботаСКафка
52+
│ ├── инт_РаботаСБезопаснымХранилищем
53+
│ ├── инт_ЭндпоинтыКлиент
54+
│ └── инт_ЭндпоинтыКлиентСервер
5155
5256
├── Перечисления
5357
│ ├── инт_НаправлениеПотокаДанных
5458
│ ├── инт_СтатусыИсходящихСообщений
5559
│ ├── инт_СтатусыВходящихСообщений
5660
│ ├── инт_СтатусыРассылкиИсходящихСообщений
5761
│ ├── инт_ТипыПодписчиков
58-
│ └── инт_ТипыАвторизации
62+
│ ├── инт_ТипыАвторизации
63+
│ ├── инт_СпособыПередачиПараметровПоHTTP
64+
│ └── инт_ТипыСжатияKafka
5965
6066
├── Регламентные задания
6167
│ ├── инт_МенеджерПотоковФормированияИсходящихСообщений
6268
│ ├── инт_МенеджерПотоковРассылкиСообщений
69+
│ ├── инт_МенеджерВходящихПотоков
6370
│ ├── инт_ОбработкаВходящейОчереди
64-
│ └── инт_ОчисткаУстаревшихСообщений
71+
│ ├── инт_ОчисткаУстаревшихСообщений
72+
│ ├── инт_ОчисткаСтатистикиОбработкиСообщений
73+
│ ├── пэмВыполнитьРасчетМетрик
74+
│ └── пэмРегламентныеОперации
6575
6676
└── HTTP-сервисы
6777
└── prometheus (экспорт метрик)
@@ -74,9 +84,13 @@ outline: deep
7484
| Объект | Описание |
7585
|--------|----------|
7686
| `инт_ПотокиДанных` | Потоки данных с обработчиками |
77-
| `инт_Подписчики` | Базовый справочник подписчиков |
87+
| `инт_ПодписчикиHTTP` | HTTP/HTTPS подписчики |
88+
| `инт_ПодписчикиKafka` | Подписчики Apache Kafka |
89+
| `инт_ПодписчикиJRPC` | Подписчики JSON-RPC 2.0 |
90+
| `инт_ПодписчикиПодсистемаИнтеграции` | Межбазовые подписчики |
91+
| `инт_ПодписчикиRabbitMQ` | Подписчики RabbitMQ |
7892
| `инт_Схемы` | OpenAPI-схемы для валидации |
79-
| `инт_Эндпоинты` | Настройки подключения |
93+
| `инт_Эндпоинты` | Настройки подключения (URL, авторизация) |
8094

8195
### Регистры сведений
8296

@@ -146,18 +160,44 @@ outline: deep
146160
| `Отправлено` | Успешно отправлено |
147161
| `ОшибкаОтправки` | Ошибка отправки |
148162

149-
### инт_ТипыПодписчиков
163+
### инт_ТипыАвторизации
150164

151165
| Значение | Описание |
152166
|----------|----------|
153-
| `HTTP` | Произвольный HTTP |
154-
| `ПодсистемаИнтеграции` | Межбазовый обмен |
155-
| `RabbitMQ` | AMQP брокер |
156-
| `Kafka` | Apache Kafka |
157-
| `JRPC` | JSON-RPC 2.0 |
167+
| `Анонимный` | Без авторизации |
168+
| `Basic` | HTTP Basic Auth |
169+
| `Bearer` | Bearer Token |
170+
| `Digest` | HTTP Digest Auth |
171+
| `Tls` | Клиентский TLS-сертификат (mTLS) |
172+
| `ApiKey` | API Key в HTTP-заголовке |
173+
174+
### инт_ТипыСжатияKafka
175+
176+
| Значение | Описание |
177+
|----------|----------|
178+
| `БезСжатия` | Без сжатия (none) |
179+
| `Gzip` | Gzip |
180+
| `Snappy` | Google Snappy |
181+
| `Lz4` | LZ4 |
182+
| `Zstd` | Zstandard |
158183

159184
## Типы данных
160185

186+
### ОпределяемыйТип.инт_Подписчик
187+
188+
Полиморфный тип для ссылки на любой справочник подписчика. Используется в табличной части `ПодписчикиПотока` справочника `инт_ПотокиДанных`.
189+
190+
```
191+
ОпределяемыйТип.инт_Подписчик
192+
├── СправочникСсылка.инт_ПодписчикиHTTP
193+
├── СправочникСсылка.инт_ПодписчикиJRPC
194+
├── СправочникСсылка.инт_ПодписчикиПодсистемаИнтеграции
195+
├── СправочникСсылка.инт_ПодписчикиKafka
196+
└── СправочникСсылка.инт_ПодписчикиRabbitMQ
197+
```
198+
199+
Диспетчеризация вызовов реализована в модуле `инт_ПодписчикиОбщий`.
200+
161201
### ОпределяемыйТип.инт_ИсходныеДанные
162202

163203
Типы, которые могут быть исходными данными для сообщений:
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
---
2+
outline: deep
3+
---
4+
5+
# Управление эндпоинтами
6+
7+
Справочник `инт_Эндпоинты` хранит настройки подключения ко внешним системам: URL, тип авторизации и учётные данные. Все подписчики ссылаются на эндпоинт — это позволяет переключать среды (dev/test/prod) одним изменением без правки каждого подписчика.
8+
9+
## Структура эндпоинта
10+
11+
| Реквизит | Тип | Описание |
12+
|----------|-----|----------|
13+
| `Наименование` | Строка(150) | Понятное имя (например, «WMS Production») |
14+
| `АдресРесурса` | Строка(500) | Базовый URL (`https://api.example.com`) |
15+
| `ТипАвторизации` | `инт_ТипыАвторизации` | Способ авторизации |
16+
| `ПроверятьSSL` | Булево | Проверять TLS-сертификат сервера (по умолчанию `Истина`) |
17+
| `ТаймаутСоединения` | Число | Таймаут подключения в секундах |
18+
19+
Секретные данные (пароли, токены, ключи) **не хранятся в реквизитах справочника** — они записываются в `БезопасноеХранилище` при сохранении формы и читаются оттуда при отправке запросов.
20+
21+
## Типы авторизации
22+
23+
### Анонимный
24+
25+
Без авторизации. Используется для публичных API или внутренних сервисов в доверенной сети.
26+
27+
### Basic
28+
29+
HTTP Basic Authentication — имя пользователя и пароль передаются в заголовке `Authorization: Basic <base64>`.
30+
31+
| Параметр | Описание |
32+
|----------|----------|
33+
| Пользователь | Логин |
34+
| Пароль | Пароль (хранится в БезопасноеХранилище) |
35+
36+
### Bearer
37+
38+
Bearer Token — токен передаётся в заголовке `Authorization: Bearer <token>`.
39+
40+
| Параметр | Описание |
41+
|----------|----------|
42+
| Токен | Access token или API key (хранится в БезопасноеХранилище) |
43+
44+
### Digest
45+
46+
HTTP Digest Authentication — более безопасный вариант Basic Auth с challenge-response механизмом.
47+
48+
| Параметр | Описание |
49+
|----------|----------|
50+
| Пользователь | Логин |
51+
| Пароль | Пароль (хранится в БезопасноеХранилище) |
52+
53+
### TLS (mTLS)
54+
55+
Клиентский TLS-сертификат для двусторонней аутентификации (Mutual TLS).
56+
57+
| Параметр | Описание |
58+
|----------|----------|
59+
| Источник сертификата | Файл `.pfx`/`.p12` или хранилище Windows |
60+
| Путь к файлу | Полный путь к файлу сертификата |
61+
| Пароль сертификата | Пароль защиты файла (хранится в БезопасноеХранилище) |
62+
| Отпечаток (хранилище) | Fingerprint сертификата в хранилище Windows |
63+
64+
### ApiKey
65+
66+
API Key в произвольном HTTP-заголовке.
67+
68+
| Параметр | Описание |
69+
|----------|----------|
70+
| Имя заголовка | Например, `X-API-Key` или `X-Auth-Token` |
71+
| Значение ключа | Сам ключ (хранится в БезопасноеХранилище) |
72+
73+
## Хранение секретных данных
74+
75+
Все чувствительные данные хранятся в регистре `инт_БезопасноеХранилищеДанных` (обёртка над стандартным `БезопасноеХранилище`). Ключи хранения зависят от типа авторизации:
76+
77+
| Ключ | Тип авторизации | Содержимое |
78+
|------|-----------------|------------|
79+
| `Basic_Пользователь` | Basic, Digest | Имя пользователя |
80+
| `Basic_Пароль` | Basic, Digest | Пароль |
81+
| `Bearer_Токен` | Bearer | Токен |
82+
| `Tls_СертификатПуть` | Tls | Путь к файлу сертификата |
83+
| `Tls_СертификатПароль` | Tls | Пароль сертификата |
84+
| `Tls_СертификатХранилище` | Tls | Отпечаток сертификата Windows |
85+
| `ApiKey_ИмяЗаголовка` | ApiKey | Имя заголовка |
86+
| `ApiKey_Значение` | ApiKey | Значение ключа |
87+
88+
::: warning Права доступа
89+
Запись в безопасное хранилище требует права администратора или наличия роли `инт_АдминистраторПодсистемы`. Убедитесь, что регламентные задания также имеют право на чтение.
90+
:::
91+
92+
## Проверка подключения
93+
94+
Форма элемента эндпоинта содержит кнопку **«Проверить подключение»**, которая выполняет тестовый HTTP-запрос (для Kafka — проверку доступности брокера) и отображает результат. Это позволяет убедиться в корректности настроек до запуска потоков.
95+
96+
```bsl
97+
// Программная проверка подключения
98+
Результат = инт_КоннекторHTTP.ПроверитьПодключение(Эндпоинт);
99+
Если Результат.Успех Тогда
100+
Сообщить("Подключение успешно: " + Результат.КодСостояния);
101+
Иначе
102+
Сообщить("Ошибка: " + Результат.ОписаниеОшибки);
103+
КонецЕсли;
104+
```
105+
106+
## Несколько сред (dev/test/prod)
107+
108+
Рекомендуемый подход: создайте три эндпоинта с одинаковыми именами с суффиксами, например:
109+
110+
```
111+
WMS API (Dev) → https://wms-dev.internal/api
112+
WMS API (Test) → https://wms-test.internal/api
113+
WMS API (Prod) → https://wms.example.com/api
114+
```
115+
116+
Подписчик в потоке данных ссылается на один эндпоинт. При переключении среды достаточно поменять ссылку в подписчике — без изменения авторизационных данных. Все три эндпоинта хранят свои собственные учётные данные.
117+
118+
## Следующие шаги
119+
120+
- [Настройка подписчиков](/guide/configure-subscribers) — привязка эндпоинтов к типам подписчиков
121+
- [Настройка эндпоинтов (практика)](/guide/configure-endpoints) — пошаговое руководство
122+
- [Подписчики](/concepts/subscribers) — типы подписчиков и их параметры

docs/concepts/index.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ outline: deep
8383
| Объект | Назначение |
8484
|--------|------------|
8585
| `инт_ПотокиДанных` | Определение потоков: направление, обработчик, валидация |
86-
| `инт_Подписчики` | Базовый справочник подписчиков |
87-
| `инт_ПодписчикиHTTP` | HTTP-подписчики с настройками endpoint |
88-
| `инт_ПодписчикиRabbitMQ` | Подписчики RabbitMQ |
86+
| `инт_ПодписчикиHTTP` | HTTP/HTTPS подписчики |
8987
| `инт_ПодписчикиKafka` | Подписчики Apache Kafka |
9088
| `инт_ПодписчикиJRPC` | Подписчики JSON-RPC 2.0 |
89+
| `инт_ПодписчикиПодсистемаИнтеграции` | Межбазовая интеграция |
90+
| `инт_ПодписчикиRabbitMQ` | Подписчики RabbitMQ |
9191
| `инт_Схемы` | Схемы валидации (OpenAPI 3.0) |
9292
| `инт_Эндпоинты` | Настройки подключения к внешним системам |
9393

@@ -102,15 +102,22 @@ outline: deep
102102
| `инт_ОчередьОтправкиИсходящихСообщений` | Связь сообщение ↔ подписчик |
103103
| `инт_МенеджерПотоковФормированияСообщений` | Контроль фоновых заданий формирования |
104104
| `инт_МенеджерПотоковОтправкиСообщений` | Контроль фоновых заданий отправки |
105+
| `инт_АктивныеКонсьюмеры` | Активные фоновые задания Kafka-консьюмеров |
106+
| `инт_СтатистикаОбработкиСообщений` | Статистика обработки (производительность) |
105107

106108
### Общие модули (логика)
107109

108110
| Модуль | Назначение |
109111
|--------|------------|
110112
| `инт_ФормированиеИсходящихСообщений` | Запуск потоков формирования |
111113
| `инт_ОтправкаИсходящихСообщений` | Запуск потоков отправки |
114+
| `инт_МенеджерВходящихПотоков` | Управление Kafka-консьюмерами |
115+
| `инт_КонсьюмерОчередей` | Чтение сообщений из Kafka |
116+
| `инт_ПодписчикиОбщий` | Диспетчер вызовов типизированных подписчиков |
112117
| `инт_ВалидаторПакетов` | Валидация по OpenAPI-схемам |
113118
| `инт_КоннекторHTTP` | HTTP-клиент для отправки |
119+
| `инт_РаботаСКафка` | Работа с Apache Kafka (отправка, чтение, топики) |
120+
| `инт_РаботаСБезопаснымХранилищем` | Управление секретами в безопасном хранилище |
114121

115122
## Жизненный цикл сообщения
116123

@@ -139,6 +146,7 @@ outline: deep
139146
- [Потоки данных](/concepts/data-flows) — подробнее о конфигурации потоков
140147
- [Подписчики](/concepts/subscribers) — типы и настройка подписчиков
141148
- [Kafka-консьюмеры](/concepts/kafka-consumers) — входящие потоки из Kafka
149+
- [Управление эндпоинтами](/concepts/endpoint-management) — авторизация и безопасное хранение
142150
- [Валидация](/concepts/validation) — работа с OpenAPI-схемами
143151
- [Многопоточность](/concepts/multithreading) — параллельная обработка
144152
- [Мониторинг и метрики](/concepts/monitoring) — Prometheus-метрики и алерты

0 commit comments

Comments
 (0)