feat: парсер самосвидетельства health-ответов (handbook spec §5)
Панель читает расширенное тело health: identity (service/version/build/
environment/uptime|since), mode из белого списка {maintenance, readonly,
draining} — нейтральный бейдж в карточке, gauges — числа чипами.
Белый список известных полей: сырое тело не хранится и не логируется
(эндпоинт без авторизации), bool/вложенные значения в gauges отбрасываются,
неизвестный mode игнорируется (mode ≠ лайвность).

service_samples.report (JSON, NULL = нет самосвидетельства); колонка
добавляется к живым БД guarded ALTER в db.init_db (паттерн будущих
миграций). В API — report в списке сервисов и в истории проб.
Карточка «Сервисы»: v+environment+аптайм (fmtUptime), бейдж mode
(тексты i18n en/uk/ru), чипы gauges; пустые строки не рисуются.
1 parent 23e3313 commit fe202ff9854d092e9a1214f2a36dec7012998d03
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 4 hours ago
Showing 9 changed files
View
README.md
View
panel/backend/app/api/services.py
View
panel/backend/app/db.py
View
panel/backend/app/schema.sql
View
panel/backend/app/services_probe.py
View
panel/frontend/src/i18n/messages/en.js
View
panel/frontend/src/i18n/messages/ru.js
View
panel/frontend/src/i18n/messages/uk.js
View
panel/frontend/src/pages/ServicesPage.vue