1
0
mirror of https://github.com/firstBitSportivnaya/PSSL.git synced 2025-01-12 02:28:02 +02:00

Create workflow for generate puml (#109)

Добавлен воркфлоу генерации .svg-файлов из .puml. Добавлена ER-диаграмма подсистемы управления интеграциями в документацию
This commit is contained in:
Permichev Vladislav 2024-09-24 10:00:35 +03:00 committed by GitHub
parent c64d466d08
commit 38c9027ad0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 237 additions and 0 deletions

23
.github/workflows/generate-puml-svg.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: generate plantuml
on: push
jobs:
generate_plantuml:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
repository-projects: write
name: plantuml
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: plantuml
id: plantuml
uses: grassedge/generate-plantuml-action@v1.5
with:
message: "Render PlantUML files"
path: docs/images
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -0,0 +1,3 @@
# ER-диаграмма подсистемы управление интеграциями
![image](images/ERArchitectureIntegrationsSubsystem.svg)

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -0,0 +1,210 @@
@startuml integrations_subsystem
title ER-Diagram integrations subsystem
entity "Справочник: Интегрируемые системы" as eSysInt {
*УникальныйИдентификатор : uuid <<generated>>
--
*Код : строка (9)
*Наименование : строка (100)
Родитель (иерархия групп) : uuid <<FK>>
ИдентификаторНастройки : строка (100)
}
entity "Справочник: Настройки интеграции" as eIntSettings {
*УникальныйИдентификатор : uuid <<generated>>
--
*Код : строка (9)
*Наименование : строка (100)
Родитель (иерархия групп) : uuid <<FK>>
ИнтегрируемаяСистема : uuid <<FK>>
ТипИнтеграции : uuid <<FK>>
СтрокаПодключения : строка (100)
Порт : строка (7)
ВнешняяКомпонента : хранилище значений
УчетнаяЗапись : uuid <<FK>>
ТипАвторизации : uuid <<FK>>
ИдентификаторНастройки : строка (100)
ИспользоватьПользовательскиеФункции : булево
Имя объекта : строка (100)
ИзмененВручную : булево
ИмяФайлаВнешнейКомпоненты : строка (100)
}
entity "Безопасное хранилище" as eSecureStorage {
*Ссылка : uuid <<FK>>
*Ключ : строка : "Логин", "Пароль", "Токен"
Значение : строка
}
entity "Справочник: Типы интеграций" as eIntTypes {
*УникальныйИдентификатор : uuid <<generated>>
--
*Код : строка (9)
*Наименование : строка (100)
Родитель (иерархия элементов) : uuid <<FK>>
}
enum "Справочник: Типы интеграций - предопределенные элементы" as eIntTypes_predetermined {
+ Файловые обмены:
- Каталог
- FTP-ресурсы
- Почтовый клиент
+ Прямое подключение к БД:
- -
+ Вызов внешней процедуры:
- SOAP
- REST API
- COM
- Внешняя компонента
- Командная строка
+ Брокеры сообщений:
- RabbitMq
- Kafka
}
entity "Справочник БСП: Учетные записи электронной почты" as eEmailAccounts {
УникальныйИдентификатор : uuid <<generated>>
}
enum "Перечисление: Типы авторизации" as eAuthorizationTypes {
+ Базовая
+ Токен
}
entity "Справочник: Интеграционные потоки" as eIntFlows {
*УникальныйИдентификатор : uuid <<generated>>
--
*Код : строка (9)
*Наименование : строка (100)
Родитель (иерархия элементов) : uuid <<FK>>
ИдентификаторНастройки : строка (100)
НастройкаИнтеграции : uuid <<FK>>
ТочкаВхода : строка (неогр)
ПользовательскаяФункция : uuid <<FK>>
ИзмененВручную : булево
--
Параметры входа
--
- НомерСтроки
- Имя : строка (неогр)
- Тип : uuid <<FK>>
- ПараметрURL : булево
- ЗначениеПоУмолчанию : булево, строка, число, дата, любая ссылка
- ПолеОбъекта : строка (100)
}
enum "Перечисление: Методы запроса REST" as eRestMethodTypes {
+ GET
+ POST
+ PUT
+ PATCH
+ DELETE
}
entity "Справочник: Пользовательские функции" as eUserFunctions {
УникальныйИдентификатор : uuid <<generated>>
}
enum "Перечисление: Типы параметров интеграций" as eIntParamsTypes {
+ Строка
+ Число
+ Булево
+ Null
+ Массив
+ Объект
+ Дата
}
entity "Справочник: История интеграции" as eIntHistory {
*УникальныйИдентификатор : uuid <<generated>>
--
*Код : строка (36)
ДатаИнтеграции : дата и время
ДатаИнтеграцииВМиллисекундах : число (20, 0)
ИнтегрируемаяСистема : uuid <<FK>>
Статус : uuid <<FK>>
ФорматИнтеграции : uuid <<FK>>
ИсходящееСообщение : строка (неогр)
ВходящееСообщение : строка (неогр)
ОписаниеОшибки : строка (неогр)
ПротоколОбмена : строка (неогр)
ИнтеграционныйПоток : uuid <<FK>>
Ошибка : булево
Пользователь : uuid <<FK>>
ДлительностьОбмена : число (5, 0)
ДлительностьВызова : число (5, 0)
--
Объекты интеграции
--
- НомерСтроки
- ОбъектИнтеграции : любая ссылка
- СозданОбновлен : uuid <<FK>>
}
enum "Перечисление: Статусы интеграции" as eIntStatuses {
+ Выгружено
+ Загружено
+ ОшибкаВыгрузки
+ ОшибкаЗагрузки
}
enum "Перечисление: Форматы интеграции" as eIntFormates {
+ XML
+ JSON
+ DBF
+ CSV
+ TXT
+ XLS / XLSX
+ BAT / SH
+ DLL
+ HTML
+ ПроизвольныйФормат
}
entity "Справочник БСП: Пользователи" as eUsers {
УникальныйИдентификатор : uuid <<generated>>
}
enum "Перечисление: Создан обновлен" as eCreatedUpdated {
+ Создан
+ Обновлен
}
eSysInt <- eSysInt : Родитель
eIntSettings <- eIntSettings : Родитель
eIntSettings ---> eSysInt : ИнтегрируемаяСистема
eIntSettings ---> eIntTypes : ТипИнтеграции
eIntSettings ..> eSecureStorage : Хранение параметров подключения
eIntSettings ---> eEmailAccounts : УчетнаяЗапись
eIntSettings ---> eAuthorizationTypes : ТипАвторизации
eIntSettings .. eIntTypes_predetermined
eIntFlows <- eIntFlows : Родитель
eIntFlows --> eIntSettings : НастройкаИнтеграции
eIntFlows --> eUserFunctions : ПользовательскаяФункция
eIntFlows --> eIntParamsTypes : Тип (параметры входа)
eIntHistory --> eSysInt : ИнтегрируемаяСистема
eIntHistory --> eIntStatuses : Статус
eIntHistory --> eIntFormates : ФорматИнтеграции
eIntHistory --> eIntFlows : ИнтреграционныйПоток
eIntHistory --> eUsers : Пользователь
eIntHistory -> eCreatedUpdated : СозданОбновлен (объекты интеграции)
newpage
note as eIntSettings_predetermined
Справочник: Настройки интеграции - предопределенные элементы
<#lightblue,#black>|= Код |= Наименование |= Родитель |= ИнтегрируемаяСистема |= ТипИнтеграции |= СтрокаПодключения |= Порт |= ВнешняяКомпонента |= УчетнаяЗапись |= ТипАвторизации |= ИдентификаторНастройки |= ИспользоватьПользовательскиеФункции |= Имя COM-объекта |= ИзмененВручную |
<#white>| 000000001 | RabbitMQ | <пустая ссылка> | RabbitMQ | RabbitMQ | <путь к серверу> | <порт сервера> | - | <пустая ссылка> | "базовая" по умолчанию | <идентификатор> | Ложь | - | Ложь |
<#white>| 000000002 | Kafka | <пустая ссылка> | Kafka | Kafka | <путь к серверу> | <порт сервера> | - | <пустая ссылка> | "базовая" по умолчанию | <идентификатор> | Ложь | - | Ложь |
<#white>| 000000003 | ActiveDirectory | <пустая ссылка> | ActiveDirectory | COM | Provider="ADsDSOObject" | - | - | <пустая ссылка> | "базовая" по умолчанию | <идентификатор> | Ложь | ADODB.Connection | Ложь |
end note
@enduml