Исходный код вики VKPHT. Релиз нота R4 (24Q1)

Версия 12.2 от Александра Баруткина на 2024/06/25 02:43

Последние авторы
1 {{toc/}}
2
3 = ADM. Управление правами доступа =
4
5 В этом релизе мы выпускаем модуль "Управление правами доступа" и на данном этапе мы умеем защищать представления, методы работы с таблицами реализованными через Hateoas (все справочники в Админ.Панели), исполняемые методы (вариант 2) - возможность их запустить или нет, и исполняемые методы с указанием допустимых значений (вариант 3).
6
7 Мы выпустили базовые роли на полный доступ в систему, сейчас каждый пользователь в системе на стенде DEV, состоит в этой групповой роли и получает доступы через коннектор "Управление правами доступа", а также начали настраивать роли для сервисов системы, реализовано на примере Оргструктуры.
8
9 Благодаря "Управление правами доступа" мы можем настроить множество ролей и групп, которые будут давать доступ разным пользователям согласно их полномочий.
10
11 Мы предоставляем, как полный доступ к представлениям и методам, так и даём разрешения для части объекта, при использовании разрезов доступа.
12
13 Разрез можем формировать по значению атрибута, непосредственно в системе, по значению ключевого слова в KeyCloack и по значению ключевого слова, которые собираются через настраиваемую job процедуру и содержит все доступные каждому пользователю значения доступа для заранее настроенного разреза.
14
15 Защита методов позволяет давать разрешения отдельно на чтение и отдельно на запись (создание/изменение/удаление).
16
17 Всё это позволяет максимально гибко настроить систему и через Административные панели системы выстраивать матрицу ролей и их полномочия.
18
19 (% class="table-bordered" %)
20 |**Тема**|**Описание **|**Задача RM**
21 |Реализация экранных форм с помощью административных панелей - "Управление правами доступа"|(((
22 * Реализована модель данных
23 * Реализованы "Управление объектами доступа"
24 * Реализованы "Управление ключевыми словами"
25 * Реализованы "Управление наборами значений для атрибутов доступа"
26 * Реализованы "Управление полномочиями по ролям"
27 )))|(((
28 [[https:~~/~~/redmine.goodt.me/issues/102161>>url:https://redmine.goodt.me/issues/102161]]
29
30 СУР_МЕТОДЫ/HATEOAS Админ. панели. Сборка прототипа
31 )))
32 |Перевод коннектора на работу через "Управление правами доступа"|(((
33 * Реализованы доступы к объектам
34 * Реализованы типы сущностей: dataset
35 * Реализована защита доступов к представлениям
36 )))|(((
37 [[https:~~/~~/redmine.goodt.me/issues/101505>>url:https://redmine.goodt.me/issues/101505]]
38
39 СУР_КОННЕКТОР/Переключение на работу dataset через коннектор СУР
40 )))
41 |Реализована защита методов через "Управление правами доступа"|(((
42 * Реализованы типы сущностей: business
43 * Реализована защита доступов к методам HATEOAS и к bff-методам
44 )))|(((
45 [[https:~~/~~/redmine.goodt.me/issues/102160>>url:https://redmine.goodt.me/issues/102160]]
46
47 СУР_МЕТОДЫ/Защита методов по варианту 2 (BFF методы)
48
49 [[https:~~/~~/redmine.goodt.me/issues/102160>>url:https://redmine.goodt.me/issues/102160]]
50
51 СУР_МЕТОДЫ/Защита методов по варианту 1 (HATEOAS)
52 )))
53 |Выполнена настройка базовых ролей системы VKPHT|(((
54 * Произведена первичная регистрация всех представлений
55 * Настроены первичные роли all_r и all_w
56 * Всем пользователям назначены проектные роли или предоставлены полные доступы в систему VKPHT
57 )))|(((
58 [[https:~~/~~/redmine.goodt.me/issues/108563>>url:https://redmine.goodt.me/issues/108563]]
59
60 Заполнить Permission для всех сервисов
61 )))
62 |Реализация функции keywords, основанных на автоматической регистрации значений|(((
63 * Реализованы keywords c типом token
64 * Реализованы keywords c типом value
65 )))|(((
66 [[https:~~/~~/redmine.goodt.me/issues/92596>>url:https://redmine.goodt.me/issues/92596]]
67
68 [СУР] Реализация функции keywords
69 )))
70 |Документация "ADM.Управление правами доступа"|(((
71 * Выпущена первая версия эксплуатационной документации "ADM.Управление правами доступа"
72 )))|(((
73 [[https:~~/~~/redmine.goodt.me/issues/115679>>url:https://redmine.goodt.me/issues/115679]]
74
75 ADM. Документация R4 (Q1)
76 )))
77
78 = AWA. Управление нотификациями =
79
80 (% class="table-bordered" style="width:1109px" %)
81 |**Тема**|**Описание **|**Задача RM**
82 | | |(% style="width:252px" %)
83 |Отредактированы данные таблиц бд notification на стенде [[https:~~/~~/vkpht-dev.goodt.me>>url:https://vkpht-dev.goodt.me/editor/#/apps]] для миграции.|Отредактированы данные таблиц бд notification на стенде [[https:~~/~~/vkpht-dev.goodt.me>>url:https://vkpht-dev.goodt.me/editor/#/apps]] для миграции:
84 удалены тестовые и закрытые записи, проставлены признаки у системных записей (is_system=true).|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/114431>>url:https://redmine.goodt.me/issues/114431]]
85 |Добавление поля is_system|Добавлено поле is_system c типом данных bool (true/false), со значением по умолчанию false в таблицы бд notification.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/114424>>url:https://redmine.goodt.me/issues/114424]]
86 |Добавление всплывающего сообщения при успешном создании события|Добавили всплывающее сообщение при успешном создании события в реестрах "Уведомления о событиях" и "Ручные рассылки".
87 Текстовка: "Событие "Код события" "Название события" создано".
88 В сообщении присутствует гиперссылка, при нажатии на которую, происходит переход к созданному событию (автоматически устанавливается фильтр в код события): при нажатии на текст/кнопку записывается в хранилище переменная(которую слушают таблица и фильтр) и закрывается попап.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/108113>>url:https://redmine.goodt.me/issues/108113]]
89 |Добавление пагинации|Добавлен на страницу выбора получателей инструмента управления количеством отображаемых записей - Пагинация.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101674>>url:https://redmine.goodt.me/issues/101674]]
90 |Попап добавления получателей|Вывели в табличном представлении (попап добавления получателей) табельный номер сотрудника. По атрибуту доступна фильтрация и поиск.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101676>>url:https://redmine.goodt.me/issues/101676]]
91 |Добавление кнопки "Удалить всех"|(((
92 В карточках "Добавить шаблон" и "Редактировать шаблон" реестров "Уведомления о событиях" и "Ручные рассылки" добавили кнопку "Удалить всех", при нажатии на которую удаляются все выбранные получатели.
93 )))|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101661>>url:https://redmine.goodt.me/issues/101661]]
94 |Вывод полного списка получателей в отдельном попапе|Реализован вывод полного списка получателей в отдельном попапе, а не в табличном представлении. Исправлено на странице Уведомления о событиях и Ручные рассылки.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101681>>url:https://redmine.goodt.me/issues/101681]]
95 |Доработка виджета ElemCreateNitificationEvent|(((
96 Доработка виджета ElemCreateNitificationEvent: кнопка "Отправить уведомления". Кнопка неактивна для событий, у которых не создан ни один шаблон уведомления.
97 )))|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/96705>>url:https://redmine.goodt.me/issues/96705]]
98
99 = BPS. Управление фоновыми программам =
100
101 (% class="table-bordered" style="width:1109px" %)
102 |**Тема**|**Описание **|**Задача RM**
103 |Реализация фоновой программы TASKS_REASSIGNMENT.|Реализация фоновой программы TASKS_REASSIGNMENT. Фоновая программа переноса задач, в случаях, когда у сотрудника появляется новое назначение и имеется закрытое старое назначение|[[https:~~/~~/redmine.goodt.me/issues/106128>>url:https://redmine.goodt.me/issues/106128]]
104
105 = BPM. Управление конфигурацией бизнес-объектов =
106
107 (% class="table-bordered" %)
108 |**Тема**|**Описание **|**Задача RM**
109 |Удаление добавленного статуса на экране Матрица статусных переходов|- Добавлена иконка корзины для удаления неиспользуемого в статусной модели статуса|[[https:~~/~~/redmine.goodt.me/issues/114771>>url:https://redmine.goodt.me/issues/114771]]
110 |Исправление возможности использования различных сервисов при конфигурации справочников|- Проведен рефакторинг методов конфигурации севрисов, к которым возможно обращение для получения данных справочника|[[https:~~/~~/redmine.goodt.me/issues/107135>>url:https://redmine.goodt.me/issues/107135]]
111 |Изменения в UX для справочников административной панели|- Проведены различные исправления и изменения в пользовательском пути при работе со справочниками административной панели|(((
112 [[https:~~/~~/redmine.goodt.me/issues/114978>>url:https://redmine.goodt.me/issues/114978]]
113
114 [[https:~~/~~/redmine.goodt.me/issues/114306>>url:https://redmine.goodt.me/issues/114306]]
115 )))
116 |Рефакторинг интерфейса заведения поля бизнес-объекта|(((
117 - Проведена группировка конфигурации поля бизнес-объекта
118
119 - Добавлены дополнительные возможности конфигурации
120 )))|[[https:~~/~~/redmine.goodt.me/issues/113104>>url:https://redmine.goodt.me/issues/113104]]
121 |Ведение нового типа владельца БО - employee |- Реализована механика и необходимые проверки для ведения бизнес-объектов с типом владельца - работник (employee) |[[https:~~/~~/redmine.goodt.me/issues/104881>>url:https://redmine.goodt.me/issues/104881]]
122
123 = CFG. Управление конфигурацией =
124
125 (% class="table-bordered" %)
126 |**Тема**|**Описание **|**Задача RM**
127 |Доработка модели данных для учета системных записей и возможности управления их доступностью для редактирования при настройке системы на проекте.|(((
128 * Структура таблиц обновлена с учетом признаков is_system и is_editable
129 * Изменения учтены в работе HATEOAS методов для таблиц
130 )))|(((
131 [[https:~~/~~/redmine.goodt.me/issues/110241>>url:https://redmine.goodt.me/issues/110241]]
132
133 Актуализация модели данных с учетом признаков is_system и is_editable
134 )))
135
136 = INT. Управление интеграцией =
137
138 INT0 Общие требования
139
140 (% class="table-bordered" %)
141 |**Тема**|**Описание **|**Задача RM**
142 |Создание сервиса и БД интеграции
143 Создание структур данных|(((
144 * Создан сервис и БД интеграции.
145 * Созданы структуры данных.
146 * Предзаполнены таблицы в БД.
147 * Развернут  SFTP сервер.
148
149
150 )))|(((
151 [[https:~~/~~/redmine.goodt.me/issues/100207>>url:https://redmine.goodt.me/issues/100207]]
152
153 API_ИП/1 Разработка механизма хранения информации по интеграции
154 )))
155 |Реализация метода разбора данных из файла в БД интеграции|Реализован метод разбора xlsx файла **PutFileInBuffer **, проверка на структуру файла, на то что файл не пуст и забор его данных в БД интеграции.|(((
156 [[https:~~/~~/redmine.goodt.me/issues/99568>>url:https://redmine.goodt.me/issues/99568]]
157
158 Реализация API метода PutFileInBuffer для разбора данных заполненного шаблона
159 )))
160 |(((
161 Регистрация модуля в метамодели и разработка базовых методов
162 )))|(((
163 * Модуль интеграции зарегистрирован в метамодели.
164 * Реализован hateoas и представления бизнес-модели.
165 * Реализованы настройки работы с SFTP сервером.
166 * Реализованы методы: 
167 ** **GetFileList  **/api/import/buffer/file-list  - Вызывается по кнопке "Создать поток" на странице правил обработки данных по шаблонам. Метод создает интеграционный поток и формирует список файлов соответствующие критериям (путь к сфтп, префикс, расширение). Регистрирует в системе записи интеграционных файлов (flow_file)
168 ** **GetFileData **/api/import/buffer/file-data - Вызывается по кнопке "Забрать данные в буффер" на странице правил обработки данных по шаблонам. Метод заполняет данные flow_file, вызывает метод **PutFileInBuffer**, вызывает метод **MoveFile **по результату забора данных
169 ** ** GetExecuteFlowFileListCheck  **/api/integration/execution/check -Вызывается по нажатию "проверить без вставки" Метод проверяет данные в БД интеграции.
170 ** ** GetExecuteFlowFileListCheckInsert  **/api/integration/execution/insert - Вызывается по нажатию "проверить и загрузить"  Метод проверяет данные в БД интеграции и загружает в целевую систему.
171 ** **MoveFile - **забирает файл по указанному пути и перекладывает файл по указанному пути
172 * В рамках методов реализовано логирование ошибок.
173 * Доработана структура данных БД интеграции.
174 )))|(((
175 [[https:~~/~~/redmine.goodt.me/issues/102235>>url:https://redmine.goodt.me/issues/102235]]
176
177 API_ИП/2 Разработка методов (базовые)
178 )))
179 |Разработка базовых интерфейсов для прохождения основного сценария|(((
180 * Реализованы на UI основные таблицы:
181 ** Просмотр шаблонов.
182 ** Просмотр типов файла интеграционной платформы.
183 ** Просмотр состава данных шаблона интеграции.
184 ** Просмотр алгоритма проверки шаблонов интеграции.
185 ** Просмотр типов файлов для интеграции.
186 ** Просмотр реестра источников файлов для интеграции.
187 ** Просмотр правил обработки данных по шаблонам по интеграционным потокам.
188 ** Просмотр правил обработки данных по шаблонам.
189 ** Просмотр реестр интеграционных потоков.
190 ** Просмотр файлов интеграции.
191 ** Просмотр строк файлов интеграции.
192 ** Редактирование файлов интеграционного потока.
193 ** Редактирование карточки интеграционного потока.
194 ** Редактирование карточки правил обработки данных по шаблонам.
195 * Реализованы элементы на UI, которые обеспечивают вызов методов и прохождение всего сценария работы с интеграционным потоком на примере любого бизнес- объекта:
196 ** Создание потока через вызов метода.
197 ** Создание и обработки потока через вызов метода.
198 ** Забор данных в БД интеграции через вызов метода. 
199 ** Проверка и загрузка через вызов метода.
200 ** Формирование и скачивание отчетности через вызов метода.   
201 ** Скачивание пустого шаблона через вызов метода.   
202 )))|(((
203 [[https:~~/~~/redmine.goodt.me/issues/109401>>url:https://redmine.goodt.me/issues/109401]]
204
205 API_ИП/2 Разработка интерфейсов
206 )))
207 |Разработка мастер методов для массового создания и обработки потоков |(((
208 Реализованы мастер методы:
209
210 * **executeAllIntegrationSteps **/api/integration/template-flow/{id}/execute - Вызывается по кнопке "Создать и обработать поток"  для определенного правила обработки. Мастер метод который вызывает внутри себя подряд все методы:
211 ** /api/import/buffer/file-list
212 ** /api/import/buffer/file-data
213 ** /api/integration/execution/check
214 ** /api/integration/execution/insert
215 * (((
216 **ChainLaunch **/api/integration/template-flow/execute - Вызывается по кнопке "Создать и обработать все потоки поток"  для определенного правила обработки. Мастер метод который вызывает внутри себя подряд все методы:
217
218 * /api/import/buffer/file-list
219 * /api/import/buffer/file-data
220 * /api/integration/execution/check
221 * /api/integration/execution/insert
222 )))
223 )))|(((
224 [[https:~~/~~/redmine.goodt.me/issues/109436>>url:https://redmine.goodt.me/issues/109436]]
225
226 API_ИП/2 Разработка расширенного списка методов, реализующих функционал массового запуска базовых методов ИП
227
228
229 )))
230 |Стабилизация интерфейса и работы системы|(((
231 Свёрстаны все страницы интерфейса
232
233 Реализованы методы:
234
235 * **GetEmptyTemplate **api/integration/api/import/buffer/file/{id}/excel - Вызывается по кнопке "Скачать". Метод генерирует пустой шаблон для заполнения на основе данных БД.
236 * **ErrorLinesDownload **api/integration/api/template/{id}/generate - Вызывается по кнопке "Загрузить ошибочные строки". Метод генерирует файл сapi/integration/api/template/{id}/generate - Вызывается по кнопке "Загрузить о ошибочными строками, которые не загрузились в целевую систему.
237
238
239 )))|(((
240 [[https:~~/~~/redmine.goodt.me/issues/104186>>url:https://redmine.goodt.me/issues/104186]]
241
242 API_ИП/3 Стабилизация
243 )))
244 |Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть 1 |(((
245 Для таблиц:
246
247 * Legal_entity
248 * Division
249 * Person
250 * Employee
251 * Position
252 * Role
253 * Division_team
254
255 Выполнено:
256
257 * Обновлена структура хранения данных в БД.
258 * Исправлены представления.
259 * Реализована обработка и вставка в целевую систему шаблонов.
260 * Подготовлены пустые xlsx шаблоны.
261 * Подготовлены заполненные xlsx шаблоны.
262
263
264 )))|(((
265 [[https:~~/~~/redmine.goodt.me/issues/101583>>url:https://redmine.goodt.me/issues/101583]]
266
267 API (Интеграционная платформа). Загрузка оргструктуры. Часть 1
268 )))
269 |Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть 2|(((
270 Для таблиц:
271
272 * Project
273 * Function
274 * Legal_entity_team
275 * Division_function
276 * Function_team
277 * Project_team
278 * Work_function
279 * Location
280
281 Выполнено:
282
283 * Обновлена структура хранения данных в БД.
284 * Исправлены представления.
285 * Реализована обработка и вставка в целевую систему шаблонов.
286 * Подготовлены пустые xlsx шаблоны.
287 * Подготовлены заполненные xlsx шаблоны.
288
289
290 )))|(((
291 [[https:~~/~~/redmine.goodt.me/issues/101584>>url:https://redmine.goodt.me/issues/101584]]
292
293 API (Интеграционная платформа). Загрузка оргструктуры. Часть 2
294 )))
295 |Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть 3|(((
296 Для таблиц:
297
298 * Structure
299 * Workplace
300 * Person_disability
301 * Person_privilege
302 * Personnel_document
303 * Employee_condition
304 * Placement
305 * employee_education
306 * work_experience
307
308 Выполнено:
309
310 * Обновлена структура хранения данных в БД.
311 * Исправлена представления.
312 * Реализована обработка и вставка в целевую систему шаблонов.
313 * Подготовлены пустые xlsx шаблоны.
314 * Подготовлены заполненные xlsx шаблоны.
315
316
317 )))|[[https:~~/~~/redmine.goodt.me/issues/101604>>url:https://redmine.goodt.me/issues/101604]](((
318 API (Интеграционная платформа). Загрузка оргструктуры. Часть 3
319 )))
320 |Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть НМИ|(((
321 Для таблиц:
322
323 * legal_entity_status
324 * legal_entity_type
325 * division_status
326 * division_group
327 * position_type
328 * position_status
329 * position_rank
330 * job_title
331 * position_category
332 * family_status
333 * system_role
334 * team_type
335 * team_status
336 * work_function_status
337 * project_type
338 * project_status
339 * function_status
340 * assignment_type
341 * assignment_status
342 * assignment_category
343 * job_title_cluster
344 * cost_center
345 * position_importance
346 * location_group
347 * project_team_status
348 * substitution_type
349 * citizenship
350
351 Выполнено:
352
353 * Обновлена структура хранения данных в БД
354 * Исправлена представления
355 * Реализована обработка и вставка в целевую систему шаблонов
356 * Подготовлены пустые xlsx шаблоны
357 * Подготовлены заполненные xlsx шаблоны
358 )))
359
360 = ONB0 Общие требования =
361
362 (% class="table-bordered" %)
363 |=(((
364 **Тема**
365 )))|=(((
366 **Описание**
367 )))|=(% colspan="1" %)(((
368 Задача RM
369 )))
370 |(% colspan="1" %)(((
371 Редактирование раздела "Полезные материалы" через административную панель
372 )))|(% colspan="1" %)(((
373 У Администратора Системы появилась возможность редактировать состав раздела "Полезные материалы" процесса "Адаптация" через административную панель. Теперь состав раздела можно сконфигурировать: задать заголовок, описание и ссылку на материал из внешнего ресурса.
374 )))|(% colspan="1" %)(((
375 [[https:~~/~~/redmine.goodt.me/issues/106869>>url:https://redmine.goodt.me/issues/106869]]
376 )))
377 |(((
378 Редактирование плана адаптации
379 )))|(((
380 В рамках развития процесса "Адаптации" добавлена возможность через административную панель формировать состав задач и подзадач плана адаптации работников.
381 )))|(((
382 [[https:~~/~~/redmine.goodt.me/issues/106949>>url:https://redmine.goodt.me/issues/106949]]
383 )))
384 |Настройка фоновой программы|Реализована новая фоновая программа, которая формирует индивидуальный план адаптации нового работника исходя из настройки плана адаптации. Кроме этого, назначение опросов выведены в отдельный фоновый процесс, который при необходимости отключается.|[[https:~~/~~/redmine.goodt.me/issues/106949>>url:https://redmine.goodt.me/issues/106949]]
385
386 = PLT0 Общие требования =
387
388 (% class="table-bordered" %)
389 |=(((
390 **Тема**
391 )))|=(((
392 **Описание**
393 )))|=(% colspan="1" %)(((
394 Задача RM
395 )))
396 |(% colspan="1" %)Переход на RT-Core|(% colspan="1" %)Переход на rt-core, включение TS2 в rt-core|(% colspan="1" %)[[https:~~/~~/redmine.goodt.me/issues/103594>>url:https://redmine.goodt.me/issues/103594]]
397 |(% colspan="1" %)Фоновая программа обработки переводов и тасков|(% colspan="1" %)Новый функционал фоновой программы позволяет обрабатывать переводы работника и "переводить" на его новое назначение его исторические таски основных процессов|(% colspan="1" %)[[https:~~/~~/redmine.goodt.me/issues/106128>>url:https://redmine.goodt.me/issues/106128]]
398
399 = PLT2 Оргструктура =
400
401 (% class="table-bordered" %)
402 |=(((
403 **Тема**
404 )))|=(((
405 **Описание**
406 )))|=(% colspan="1" %)(((
407 Задача RM
408 )))
409 |(% colspan="1" %)(((
410 Новая структура для раздела "Образование" профиля работника
411 )))|(% colspan="1" %)(((
412 В модель данных модуля добавлена новая структура для хранения данных образования работника
413 )))|(% colspan="1" %)(((
414 [[https:~~/~~/redmine.goodt.me/issues/110997>>url:https://redmine.goodt.me/issues/110997]]
415 )))
416 |(% colspan="1" %)Органиграмма 2.0|(% colspan="1" %)Обновление и изменение функционала визуализации Органиграммы|(% colspan="1" %)(((
417 [[https:~~/~~/redmine.goodt.me/issues/93958>>url:https://redmine.goodt.me/issues/93958]]
418
419 [[https:~~/~~/redmine.goodt.me/issues/101978>>url:https://redmine.goodt.me/issues/101978]]
420 )))
421
422 = Разворачивание системы =
423
424 (% class="table-bordered" %)
425 |**Сервис**|**Описание**|**Значения переменных**|**Примечания**
426 |rtl-core|Изменение или добавление|RTL_ROOT_URL: https:~/~/root_url|
427 |rtl-job|Изменение или добавление|(((
428 RTL_BACKEND_TASKSETTING_URL:   [[__https:~~/~~/root_url/rtl-api/rt-core/old__>>url:https://root_url/rtl-api/rt-core/old]]
429
430 RTL_BACKEND_RTCORE_URL:        [[__https:~~/~~/root_url/rtl-api/rt-core__>>url:https://root_url/rtl-api/rt-core]]
431 )))|
432 |hr-competence|Изменение или удаление| |Удален frontend сервис
433 |my-attestation|Изменение или удаление| |Удален frontend сервис
434 |vkph-admin|Изменение или добавление| |Добавлен frontend сервис