TimelixTimelix
Блочная система

Блоковая модель данных

Иерархия блоков, типы, порядок и представления в Timelix

Идея

В Timelix почти весь пользовательский контент хранится как строки в таблице блоков. У блока есть:

  • type — семантика блока
  • content — JSON со специфичными данными
  • parent_id — родитель в дереве
  • position — порядок среди соседних блоков
  • title, archived, tags, layout_data — отображение и раскладки

Так продукт может единообразно искать, перемещать и версионировать контент.

Иерархия

flowchart TD
  root[Корень или страница]
  root --> childA[Дочерний блок]
  root --> childB[Контейнер]
  childB --> nested[Вложенный контент]

Правило простое: у блока один родитель, а порядок детей задаётся position.

Типы блоков

Помимо документных типов, в продукте активно используются:

  • company — компания; в content может храниться todoListId
  • role — роль или AI-агент; в content лежат prompt, linkedToolIds, disabledToolIds, disabledSystemTools
  • контейнеры с containerType (N8nConnector, AgentServer, TanStackAI) — описывают интеграции как дочерние блоки роли

Полный перечень типов и деталей полей — в utils/drizzle/schema.ts и entities/block/types/blockTypes.ts.

Базы, страницы и представления

Для табличных сущностей Timelix использует отдельные таблицы database, database_property, page_property_value и представления view. При этом сами страницы и большая часть контента всё равно опираются на блочную модель.

Связи между блоками хранятся через block_link.

Почему это важно для модулей

  • Timelix Tools читает настройки инструментов из content роли
  • Timelix Chat и Timelix Context поднимают роль и компанию как блоки
  • todoListId для MCP и задач живёт в компании, а не в отдельной таблице интеграций

Расширенная документация в репозитории

Для разработки UI и API конкретных типов блоков используйте каталог internal-docs/entities/block/. Карта developer-доков: Документация для разработчиков.

Связанные разделы

  • Задачи и MCP — как todoListId компании используется инструментами
  • Timelix Tools — какие поля роли влияют на набор инструментов

On this page