Отчёты и документы

Документ — это отчёт или дашборд: сетка блоков с графиками, таблицами, метриками и текстом. Документы образуют дерево папок, хранятся как обычные JSON-файлы и обновляются на экране в реальном времени.

Структура документа

Каждый документ описывается JSON-файлом document.json: заголовок, массив блоков, переменные, права доступа и метаданные.

{
  "title": "Название документа",
  "blocks": [],
  "variables": {},
  "permissions": { "access": "admin-only" },
  "settings": {
    "rangeSelector": false,
    "timeframeSelector": false
  },
  "metadata": {
    "created": "ISO8601",
    "modified": "ISO8601",
    "version": 1,
    "tags": ["тег1"],
    "icon": "filename.svg"
  }
}

Вложенность и навигация

  • документы образуют дерево папок — вложенность не ограничена;
  • навигация по дереву — через хлебные крошки;
  • пути документов могут содержать переменные — один шаблон порождает семейство отчётов (подробнее — Переменные и шаблоны);
  • перемещение и удаление документов выполняются прямо в интерфейсе.

Хранение: JSON-файлы

Документы хранятся в /data/documents/ как JSON-файлы. Это значит: версионирование в Git, ручное редактирование в любом редакторе, перенос между инстансами простым копированием папки.

Мгновенный reload

  • file watcher на inotify отслеживает изменения файлов документов;
  • кэш списка документов инвалидируется — новые и изменённые отчёты появляются сразу;
  • правки ИИ или ручные правки JSON видны на экране без перезагрузки;
  • обновления блоков транслируются клиентам через SignalR/WebSocket.

Права доступа

  • admin-only — документ виден только администратору;
  • authenticated — всем вошедшим пользователям;
  • public — публичные отчёты можно показывать без входа: удобно для внешних дашбордов.

Метаданные, поиск, импорт и экспорт

  • метаданные: версия, теги, иконка, даты создания и изменения;
  • поиск по всем документам — с главного экрана;
  • импорт и экспорт документов для переноса между инстансами;
  • «Лучшие документы» и «Недавние документы» на главном экране.

← Оглавление документации