diff --git a/ivideon/puml/9159.puml b/ivideon/puml/9159.puml
index f7c22f4..7d4dfa4 100644
--- a/ivideon/puml/9159.puml
+++ b/ivideon/puml/9159.puml
@@ -16,11 +16,14 @@ package "api_concept.entities/maas" {
package "maas/api/impl/organization" {
class MaasOrganization {
+ + {field} PERMISSIONS_COLLECTION = db.main().permission_grants
+ + share_grant(\n grantee_id,\n permission\n)
}
}
package "api_concept.backend/impl/permission_grant" {
class PermissionGrant {
+ + {field} COLLECTION = db.main().ivideon.permission_grants
+ find()
}
diff --git a/ivideon/puml/9179/analytics_node.puml b/ivideon/puml/9179/analytics_node.puml
new file mode 100644
index 0000000..9d5588f
--- /dev/null
+++ b/ivideon/puml/9179/analytics_node.puml
@@ -0,0 +1,60 @@
+@startuml
+title Узел аналитики: взаимодействие сервисов и внешних систем
+
+skinparam componentStyle rectangle
+skinparam wrapWidth 200
+skinparam maxMessageSize 200
+
+'=== Внешние системы ===
+cloud "Централ (API5)" as CENTRAL
+cloud "Видеоноды" as VNODE
+
+'=== Узел аналитики ===
+node "Analytics Node" {
+ [ivideon-analytics-controller\n(analytics-controller)] as CTRL
+ [ivideon-analytics-video-proxy\n(analytics-video-proxy)] as PROXY
+ [ivideon-event-saver\n(analytics-event-saver)] as SAVER
+ [ivideon-cloud-vs\n(cloud-vs)] as CLVS
+ [ivideon-analytics-visitor-counter\n(analytics-visitor-counter)] as VC
+
+ database "База данных\nMongoDB\ncollections:\n- analytics.channels\n- analytics.events" as DB
+}
+
+'=== Связи с Централом (API5) ===
+CTRL -down-> CENTRAL : Периодическая синхронизация\n• Получение списка камер\n• Получение/обновление настроек облачных модулей\n• Оповещение об ошибках\n• Передача метрик
+PROXY -down-> CENTRAL : Запросы к API5 для получения\nпараметров/доступа к видеопотоку\n(со стороны видеонод)
+
+'=== Поток видео ===
+PROXY --> CLVS : Проксирование видеопотока\n(FLV в формате видеонод)
+PROXY ..> VNODE : Доступ к потокам с видеонод\n(через API5 Централа)
+
+'=== WebSocket-взаимодействие ===
+CTRL -left-> PROXY : WebSocket (к серверу PROXY)\nУведомления об ошибках ivideon-analytics-video-proxy
+CLVS -right-> CTRL : WebSocket (к серверу CLVS)\nСобытия облачного видеосервера
+
+'=== Счётчик посетителей ===
+VC --> CTRL : События счётчика (по FLV-потоку)\nдля аналитики
+
+'=== Синхронизация состояния через БД ===
+CTRL -down-> DB : Обновление состояния каналов\n(collection: analytics.channels)
+PROXY -down-> DB : Периодическая вычитка состояния каналов\n• При state=stream_awaited ⇒ выставляет state=streaming\n• Выставление acknowledgment-статусов
+PROXY -left-> CTRL : Логическая синхронизация состояния\nчерез общую БД (channels)
+
+'=== Работа с событиями ===
+CTRL -down-> DB : Обработка и запись событий\n(collection: analytics.events)
+SAVER -down-> DB : Периодическая вычитка событий
+SAVER -down-> CENTRAL : Доставка событий в API5\n(тип события ⇒ соответствующий запрос)
+
+'=== Легенда ===
+legend right
+Каналы связи
+● HTTP/API: сплошная стрелка
+● WebSocket: подпись "WebSocket"
+● БД-синхронизация: стрелка к DB с пояснением
+
+Коллекции
+analytics.channels — состояние каналов/ACK
+analytics.events — события для отправки в облако
+endlegend
+
+@enduml
diff --git a/ivideon/puml/9179/analytics_node_stream.puml b/ivideon/puml/9179/analytics_node_stream.puml
new file mode 100644
index 0000000..24d12f0
--- /dev/null
+++ b/ivideon/puml/9179/analytics_node_stream.puml
@@ -0,0 +1,34 @@
+@startuml
+title Сценарий: запуск стрима, назначение канала и переход в streaming
+
+participant CENTRAL as "Централ (API5)"
+participant CTRL as "analytics-controller"
+database DB as "DB (analytics.channels)"
+participant PROXY as "analytics-video-proxy"
+participant VNODE as "Видеоноды"
+participant CLVS as "cloud-vs"
+
+== Синхронизация с централом ==
+CTRL -> CENTRAL : GET /cameras (список камер на обработку)\nGET /cloud-analytics/settings
+CENTRAL --> CTRL : список камер, настройки
+
+== Назначение канала ==
+CTRL -> DB : upsert channel{cameraId, state=stream_awaited,\nsettings, rev, ...} -> analytics.channels
+
+== PROXY подхватывает канал ==
+PROXY -> DB : poll analytics.channels
+DB --> PROXY : channel{state=stream_awaited}
+PROXY -> DB : update channel.state=streaming,\nack={rev, ts}
+
+== Получение видео и проксирование ==
+PROXY -> CENTRAL : API5 запрос параметров доступа к потоку
+CENTRAL --> PROXY : креденшелы/URL
+PROXY -> VNODE : запрос видеопотока (через выданные параметры)
+VNODE --> PROXY : FLV поток (формат видеонод)
+PROXY -> CLVS : проксирование FLV в cloud-vs (ingest)
+
+note right of CLVS
+cloud-vs получает поток в формате
+видеонод (FLV) и готов генерировать события
+end note
+@enduml
diff --git a/ivideon/puml/9179/general.puml b/ivideon/puml/9179/general.puml
new file mode 100644
index 0000000..e16ca3e
--- /dev/null
+++ b/ivideon/puml/9179/general.puml
@@ -0,0 +1,51 @@
+@startuml
+title Разбор ноды ssh ar1-misc01.extcam.com
+
+
+file services {
+ component "zabbix-agent2"
+ component "syslog-ng"
+ card ivideon {
+ component "ivideon-analytics-carrier" as i_analy_c #red
+ component "ivideon-server-cloud-vca"
+ component "ivideon-analytics-heatmaps"
+ component "ivideon-sentry-proxy"
+ component iavc [
+ ivideon-analytics-visitor-counter
+ ====
+ Обёртка для облачного счётчика посетителей,
+ использует flv-поток для аналитики
+ ]
+ component iavp [
+ ivideon-analytics-video-proxy
+ ====
+ сервис, проксирующий поток от видеонод в облачный видеосервер
+ ]
+ component iaes [
+ ivideon-analytics-event-saver
+ ====
+ Cервис, выполняющий доставку в облако событий облачного видеосервера,
+ предварительно обработанных сервисом ivideon-analytics-controller.
+ ]
+ component iac_card [
+ ivideon-analytics-controller
+ ====
+ Получение от централа актуального списка камер на обработку
+ ....
+ Получение и обновление настроек облачных модулей видеоаналитики
+ ....
+ Обработка событий от облачного видеосервера/счётчика посетителей
+ ....
+ Реагирование на ошибки ivideon-analytics-video-proxy
+ ....
+ Оповещение централа о различных ошибках
+ ....
+ Передача метрик в централ
+ ]
+ }
+}
+note top of i_analy_c
+ Данный сервис не хочет подниматься
+end note
+
+@enduml
\ No newline at end of file