-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #180 from RabotaRu/v2.6.3
V2.6.3
- Loading branch information
Showing
57 changed files
with
6,891 additions
and
3,588 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ node_modules | |
/certs | ||
/gitlab | ||
/plugins | ||
/src/hidden | ||
|
||
./plugins.json | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
174 changes: 174 additions & 0 deletions
174
public/documentation/docs/manual/docs/examples/sa-anim.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
config: | ||
distance: 80 | ||
trackWidth: 18 | ||
nodes: | ||
# Внешняя среда | ||
outside: | ||
title: Внешняя среда | ||
outside.user: # Пользователь | ||
title: Пользователь | ||
symbol: user | ||
outside.application: # FrontEnd приложение | ||
title: AndroidApp | ||
symbol: system | ||
|
||
# Внутренняя среда | ||
inside: | ||
title: Внутренняя среда | ||
inside.apigateway: # API шлюз | ||
title: API Шлюз | ||
symbol: component | ||
inside.backend: # Бэкенд | ||
title: Backend | ||
symbol: component | ||
inside.sso: # Сервис авторизации | ||
title: SSO | ||
symbol: component | ||
inside.logger: # Подсистема логирования | ||
title: Логер | ||
symbol: component | ||
inside.postgres: # База данных для хранения бизнес-данных | ||
title: Основная БД | ||
symbol: database | ||
inside.redis: # База данных для хранения сессий | ||
title: Основная БД | ||
symbol: database | ||
links: | ||
# Внешняя среда | ||
- from: outside.user # Модифицируем идентификаторы в связях | ||
to: outside.application | ||
style: "<->" | ||
|
||
# Внутренняя среда | ||
- from: outside.application | ||
to: inside.apigateway | ||
style: "<->" | ||
- from: inside.apigateway | ||
to: inside.backend | ||
style: "<->" | ||
- from: inside.apigateway | ||
to: inside.sso | ||
style: "<->" | ||
- from: inside.backend | ||
to: inside.postgres | ||
style: "<->" | ||
- from: inside.sso | ||
to: inside.redis | ||
style: "<->" | ||
- from: inside.backend | ||
to: inside.logger | ||
style: "->" | ||
- from: inside.apigateway | ||
to: inside.logger | ||
style: "->" | ||
|
||
# Анимация | ||
animation: | ||
# Здесь создаем именованные действия, которы будут доступны в сценариях | ||
actions: | ||
hello: # Идентификатор действия | ||
- action: info # Информировать пользователя. Доступны: clean / info / focus-node / focus-neighbors | ||
text: Давай я объясню как здесь все устроено # Текст, который будет выводиться пользователю | ||
focus-user: | ||
- action: focus-node # Установить фокус на объекте диаграммы | ||
target: outside.user # RegEx выражение определяющее с какими идентификаторами будут выделены элементы диаграммы | ||
- action: info # Одно действие может иметь пакет команд, которые будут выполнены последовательно | ||
text: Это пользователь, которому мы предоставляем услугу | ||
focus-frontend: | ||
- action: focus-node | ||
target: outside.application | ||
- action: info | ||
text: Для этого он использует наше приложение для Android | ||
focus-apigateway: | ||
- action: focus-node # Здесь просим выделить всех соседей | ||
target: inside.apigateway # По маске | ||
- action: info | ||
text: Все запросы из приложений поступают в шлюз | ||
focus-apigateway-neighbors: | ||
- action: focus-neighbors # Подсвечиваем всех соседей | ||
target: inside.apigateway # Шлюза | ||
- action: info | ||
text: Шлюз маршрутизирует запросы в нужные системы | ||
focus-backend: | ||
- action: focus-node | ||
target: inside.backend | ||
- action: info | ||
text: Вся бизнес-логика реализуется здесь | ||
focus-database: | ||
- action: focus-node | ||
target: inside.postgres | ||
- action: info | ||
text: В этой базе данных хранится вся бизнес-информация | ||
focus-sso: | ||
- action: focus-node | ||
target: inside.sso | ||
- action: info | ||
text: Для авторизации используется отдельный сервис | ||
focus-redis: | ||
- action: focus-node | ||
target: inside.redis | ||
- action: info | ||
text: Активные сессии пользователей хранятся в этой базе | ||
bay: | ||
- action: info | ||
text: Теперь ты знаешь все. | ||
clean: | ||
- action: clean # Отчистить действия | ||
target: ".*" # выполненные над всеми объектами на диаграмме | ||
user-about: | ||
- action: focus-node | ||
target: outside.user | ||
- action: info | ||
text: Наш пользователь это молодые люди от 18 до 35 лет. Они используют наш сервис для покупки виртуальных вещей в играх. | ||
# Из заранее описанных действий создаются сценарии | ||
scenarios: | ||
about-user: | ||
title: Кто наш пользователь? | ||
steps: | ||
- action: clean | ||
- action: user-about | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
explain: # Идентификатор сценария | ||
title: Объясни мне, что здесь? # Название сценария для пользователя | ||
steps: # Шаги | ||
- action: clean | ||
- action: hello # Идентификатор действия | ||
delay: 2000 # Длительность шага в миллисекундах | ||
voice: true # Признак голосовой подсказки. Переход на следующий шаг не происходит пока не будет завершен синтез речи | ||
- action: focus-user | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
- action: focus-frontend | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
- action: focus-apigateway | ||
delay: 2000 | ||
voice: true | ||
- action: focus-apigateway-neighbors | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
- action: focus-backend | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
- action: focus-database | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
- action: focus-sso | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
- action: focus-redis | ||
delay: 2000 | ||
voice: true | ||
- action: clean | ||
- action: bay | ||
delay: 2000 | ||
voice: true | ||
|
63 changes: 63 additions & 0 deletions
63
public/documentation/docs/manual/docs/examples/sa-complex.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
config: | ||
distance: 80 | ||
trackWidth: 18 | ||
nodes: | ||
# Внешняя среда | ||
outside: | ||
title: Внешняя среда | ||
outside.user: # Пользователь | ||
title: Пользователь | ||
symbol: user | ||
outside.application: # FrontEnd приложение | ||
title: AndroidApp | ||
symbol: system | ||
|
||
# Внутренняя среда | ||
inside: | ||
title: Внутренняя среда | ||
inside.apigateway: # API шлюз | ||
title: API Шлюз | ||
symbol: component | ||
inside.backend: # Бэкенд | ||
title: Backend | ||
symbol: component | ||
inside.sso: # Сервис авторизации | ||
title: SSO | ||
symbol: component | ||
inside.logger: # Подсистема логирования | ||
title: Логер | ||
symbol: component | ||
inside.postgres: # База данных для хранения бизнес-данных | ||
title: Основная БД | ||
symbol: database | ||
inside.redis: # База данных для хранения сессий | ||
title: Основная БД | ||
symbol: database | ||
links: | ||
# Внешняя среда | ||
- from: outside.user # Модифицируем идентификаторы в связях | ||
to: outside.application | ||
style: "<->" | ||
|
||
# Внутренняя среда | ||
- from: outside.application | ||
to: inside.apigateway | ||
style: "<->" | ||
- from: inside.apigateway | ||
to: inside.backend | ||
style: "<->" | ||
- from: inside.apigateway | ||
to: inside.sso | ||
style: "<->" | ||
- from: inside.backend | ||
to: inside.postgres | ||
style: "<->" | ||
- from: inside.sso | ||
to: inside.redis | ||
style: "<->" | ||
- from: inside.backend | ||
to: inside.logger | ||
style: "->" | ||
- from: inside.apigateway | ||
to: inside.logger | ||
style: "->" |
73 changes: 73 additions & 0 deletions
73
public/documentation/docs/manual/docs/examples/sa-query.jsonata
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
( | ||
/* Определяем константы */ | ||
$rowHeight := 18; | ||
$fontHeight := 16; | ||
$fontWidth := 10; | ||
$padding := 8; | ||
/* Определяем фильтр для компонентов архитектуры */ | ||
$matcher := /^[a-zA-Z]*\.[a-zA-Z]*$/i; | ||
/* Сохраняем ссылку на корень манифеста */ | ||
$manifest := $; | ||
/* Готовим список нод */ | ||
$nodes := $merge(components.$spread().( | ||
$id := $split($keys()[0], ".")[1]; | ||
$matcher($keys()[0]) ? { | ||
$id: { | ||
"title": *.title, | ||
/* Для каждого элемента будет свой символ кроме "actor" */ | ||
"symbol": | ||
*.entity = "actor" ? "user" | ||
: *.aspects ? "symbol-" & $id : "component", | ||
/* Получаем список аспектов */ | ||
"aspects": *.aspects.( | ||
$aspect := $lookup($manifest.aspects, $); | ||
{ | ||
"title": $aspect.title, | ||
"id": $ | ||
} | ||
), | ||
/* Получаем список связей */ | ||
"links": *.links[$matcher(id)].{ | ||
|
||
"from": $id, | ||
"to": $split(id, ".")[1], | ||
"style": direction, | ||
"title": title | ||
} | ||
} | ||
} | ||
)); | ||
/* Готовим символы */ | ||
$symbols := $merge($nodes.$spread().( | ||
$id := "symbol-" & $keys()[0]; | ||
/* Определяем количество аспектов для вычисления высоты символа */ | ||
$aspectCount := $count(*.aspects); | ||
/* Определяем максимальную длину текста для вычисления ширины символа */ | ||
$maxTitle := $max(*.aspects.($length($.title))); | ||
/* Вычисляем размеры символа */ | ||
$width := $maxTitle ? $maxTitle * $fontWidth + $padding * 2 : 64; /* Умножаем на ширину символа */ | ||
$height := ($aspectCount + 1) * $rowHeight + $padding * 2; /* Умножаем на высоту строки */ | ||
{ | ||
$id: /* Генерируем символ */ | ||
"<g>" | ||
/* Создаем контейнер */ | ||
& "<rect width=" & $width & " height=" & $height & " fill=\"#eee\" stroke=\"#222\" rx=3 />" | ||
/* Заполняем аспектами */ | ||
& $join($map(*.aspects, function($v, $i) { | ||
"<a href=\"/architect/aspects/" & $v.id & "\" >" | ||
& "<text x=6 y=" & ($i * $rowHeight + $padding + $rowHeight) & " style=\"font-size:" & $fontHeight & "\" fill=\"blue\">" & $v.title & "</text>" | ||
& "</a>" | ||
})) | ||
& "</g>" | ||
} | ||
)); | ||
{ | ||
"config": { | ||
"distance": 130, | ||
"trackWidth": 24 | ||
}, | ||
"symbols": $symbols, | ||
"nodes": $nodes, | ||
"links": $nodes.*.links | ||
} | ||
) |
Oops, something went wrong.