Схемы SOBERIS

Система управления схемами данных позволяет определять структуру документов и справочников, а также управлять их версиями и совместимостью.
Обзор функционала

Страница схем предоставляет полный набор инструментов для работы со схемами данных в SOBERIS:
Создание схем
  • Создание схем документов и справочников с визуальным конструктором полей и типов данных.
Экспорт и импорт
  • Экспорт выбранных схем в JSON и импорт схем из файлов.
Поиск и фильтрация
  • Поиск схем по ID версии, названию, дате создания и типу схемы.
Управление кэшем
  • Очистка кэша схем для обновления данных в системе.
Интерфейс страницы схем

Панель инструментов

В верхней части страницы расположена панель инструментов с основными действиями:
Создание схем
  • Создать схему документа — создание новой схемы для документов
  • Создать схему справочника — создание новой схемы для справочников
Действия со схемами
  • Очистить кэш — очистка кэша выбранной схемы
  • Экспорт — экспорт выбранных схем в JSON файл
  • Импорт — импорт схем из JSON файла
  • Редактировать — редактирование выбранной схемы
  • Спецификация — просмотр спецификации схемы
Фильтры и поиск

Система поиска позволяет быстро найти нужные схемы по различным критериям:
  • ID версии схемы: Уникальный идентификатор версии схемы (UUID формат)
  • Название схемы: Автодополнение по названиям существующих схем
  • Дата создания: Диапазон дат создания схем (от и до)
  • Тип схемы: Фильтр по типу - каталог или документ
Настройка отображения

В разделе "Показать колонки" можно настроить какие поля отображать в таблице результатов:
  • ID версии
  • Создано пользователем
  • Название
  • Описание
  • Дата создания
  • Каталог
Работа с таблицей схем

Навигация и выбор

Таблица результатов поддерживает различные способы взаимодействия:
  • Сортировка — клик по заголовку колонки для сортировки по возрастанию/убыванию
  • Выбор строк — checkbox для выбора отдельных схем или всех на странице
  • Выделение строки — клик по строке для выбора активной схемы
  • Пагинация — навигация по страницам при большом количестве результатов
Отображаемые поля
API-функции

Поиск схем

Поиск схем выполняется через API endpoint /sbrs-schema/search-schema с поддержкой фильтрации:
POST /sbrs-schema/search-schema
Content-Type: application/json

{
  "versionId": "550e8400-e29b-41d4-a716-446655440000",
  "schemaId": "user-profile",
  "creationDateFrom": 1640995200000,
  "creationDateTo": 1672531199000,
  "reference": true
}
Получение схемы

Получение полной схемы по ID версии:
POST /sbrs-schema/get-schema
Content-Type: application/json

{
  "versionId": "550e8400-e29b-41d4-a716-446655440000"
}
Экспорт схем

Экспорт выбранных схем в JSON формат:
POST /sbrs-schema/export-schemas
Content-Type: application/json

{
  "versionId": [
    "550e8400-e29b-41d4-a716-446655440000",
    "550e8400-e29b-41d4-a716-446655440001"
  ]
}
Импорт схем

Импорт схем из JSON файла с поддержкой принудительного обновления:
POST /sbrs-schema/import-schemas
Content-Type: application/json

[
  {
    "sbrsSchemaVersionId": "550e8400-e29b-41d4-a716-446655440000",
    "title": "user-profile",
    "fullSchema": { ... },
    "createdAt": "2024-01-01T12:00:00Z",
    "updatedAt": "2024-01-01T12:00:00Z",
    "retired": false,
    "directory": false,
    "forceUpdate": false
  }
]
Очистка кэша схемы

Очистка кэша конкретной схемы:
POST /sbrs-cache/clear-schema-cache
Content-Type: application/json
SBRS-Schema-Name: user-profile
Права доступа

Различные операции требуют соответствующих ролей пользователя:
Конструктор схем

Создание схемы документа

При создании новой схемы документа открывается визуальный конструктор с возможностями:
  • Основная информация — название, описание, версия схемы
  • Свойства схемы — определение полей и их типов
  • Обязательные параметры — указание обязательных полей
  • Валидация — проверка корректности схемы
  • Предварительный просмотр — просмотр результирующей JSON Schema
Типы полей

Конструктор поддерживает различные типы полей:
Простые типы:
  • Строка (string)
  • Число (number)
  • Логический (boolean)
  • Дата (date)
  • UUID
Сложные типы:
  • Объект (object)
  • Массив (array)
  • Ссылка на поле справочка
  • Ссылка на другую схему
Создание схемы справочника

Схемы справочников используются для определения структуры метаданных каталогов и имеют специфические особенности по сравнению со схемами документов.
Управление версиями

Совместимость схем

При обновлении схем система проверяет совместимость с предыдущими версиями:
⚠️ Правила совместимости
  • Нельзя удалять обязательные поля
  • Нельзя изменять типы существующих полей
  • Можно добавлять новые необязательные поля
  • Можно делать обязательные поля необязательными
Принудительное обновление

При нарушении совместимости система предложит выполнить принудительное обновление с предупреждением о возможных последствиях.
Лицензирование

Некоторые операции требуют наличия действующей лицензии:
🔐 Лицензированный функционал
  • Импорт схем из JSON файлов
  • Экспорт схем в JSON файлы (в некоторых конфигурациях)
  • Расширенные возможности конструктора схем
Примеры использования

Создание схемы профиля пользователя:
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "Профиль пользователя",
  "description": "Схема для хранения данных профиля пользователя",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Уникальный идентификатор пользователя"
    },
    "username": {
      "type": "string",
      "minLength": 3,
      "maxLength": 50,
      "description": "Имя пользователя"
    },
    "email": {
      "type": "string",
      "format": "email",
      "description": "Электронная почта"
    },
    "profile": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "description": "Имя"
        },
        "lastName": {
          "type": "string", 
          "description": "Фамилия"
        },
        "birthDate": {
          "type": "string",
          "format": "date",
          "description": "Дата рождения"
        }
      },
      "required": ["firstName", "lastName"]
    }
  },
  "required": ["id", "username", "email"]
}
Поиск схем по названию
1. Введите начало названия схемы в поле "Название схемы"
2. Система покажет автодополнение с доступными вариантами
3. Выберите нужную схему или введите полное название
4. Нажмите "Поиск" для получения результатов
Экспорт и импорт схем
# Экспорт:
1. Выберите нужные схемы в таблице с помощью checkbox
2. Нажмите кнопку "Экспорт" в панели инструментов
3. Схемы будут сохранены в JSON файл на ваш компьютер

# Импорт:
1. Нажмите кнопку "Импорт" в панели инструментов
2. Выберите JSON файл со схемами
3. Система проанализирует файл и покажет результат импорта
4. Конфликтующие схемы можно обновить принудительно
💡 Полезные советы
  • Используйте описательные названия для схем, чтобы легко находить их в будущем
  • Регулярно экспортируйте важные схемы для создания резервных копий
  • Проверяйте совместимость при обновлении схем, чтобы избежать проблем с существующими данными
  • Используйте фильтры для быстрого поиска схем в больших проектах
  • Очищайте кэш схем после внесения изменений для обновления системы
Made on
Tilda